Monday, August 25, 2014

Oracle Internet Directory: Not able to create OID while installing on windows server 2008

I was trying to install Oracle Internet directory on Windows Server 2008 R2 64-bit, but at the configuration step where the all the components are created and installed the OID is not created and configurations fails and stops at that point.
Actually the main reason is OID is not able to start after creation and following error occurs:

Error creating ASComponent oid1.
Cause: 
An internal operation has failed: Failed to start the component
Action: 
See logs for more details.

oracle.as.config.ProvisionException: Failed to start the component
at oracle.as.provisioning.fmwadmin.ASComponentProv.createComponent(ASComponentProv.java:157)
at oracle.as.provisioning.fmwadmin.ASComponentProv.createComponent(ASComponentProv.java:73)
at oracle.as.provisioning.fmwadmin.ASInstanceProv._createComponent(ASInstanceProv.java:401)
at oracle.as.provisioning.fmwadmin.ASInstanceProv.createComponent(ASInstanceProv.java:364)
at oracle.as.provisioning.fmwadmin.ASInstanceProv.createInstanceAndComponents(ASInstanceProv.java:136)
at oracle.as.provisioning.engine.WorkFlowExecutor._createASInstancesAndComponents(WorkFlowExecutor.java:523)
at oracle.as.provisioning.engine.WorkFlowExecutor.executeWLSWorkFlow(WorkFlowExecutor.java:439)

Solution:
  1. Once the configurations failed, then closed the installation wizard.
  2. deinstall instance, domain and remove all the services.
  3. Create the directory in oracle home i.e Oracle/Middleware/Oracle_IDM1/log/diag/clients
  4. Add the parameter "DIAG_ADR_ENABLED = OFF" in sqlnet.ora present in the directory E:\Oracle\Middleware\Oracle_IDM1\network\admin
  5. Now run the OID setup.exe and select Install only if you want configure oid later or select Install and configure, you will not get the error again.
Note: For more information please follow the Oracle Support Document Doc ID 1561852.1

Saturday, August 23, 2014

Weblogic: Not able to start weblogic server with Ldap configuration

I was working with Microsoft AD Ldap and weblogic, after configuring the ad ldap in weblogic I have re-ordered the authenticator and after that while restarting the weblogic server I am getting the following error:

oracle.security.jps.service.idstore.IdentityStoreException: JPS-00056: Failed to create identity store service instance idstore.ldap.provider:idstore.ldap. Reason: oracle.security.jps.JpsRuntimeException: JPS-00027: internal error You configured a generic WLS LDAPAuthenticator. The identity store type cannot be determined. Please choose an LDAP Authentication provider that matches your LDAP server.

This error is coming because when you configured the AD Ldap and save the file then by default generic ldap authenticator is set in the configuration file.

Solution:
To solve this issue follow the steps

  1. Go to the config folder in domain directory i.e. Oracle/Middleware/user_projects/domain/domain_name/config/ and open config.xml.
  2. Now under security configuration you can see the generic ldap is configured.
  3. Now manually change authenication-provider type to "wls:active-directory-authenticatorType".
  4. Save the file and restart the server.

Note: Fore more information refer the oracle support document Doc ID 1331981.1

Oracle Webcenter Content: Could not start up IDC server deployment

Sometimes while starting the webcenter content server (UCM) in cluster mode we are getting the following error:

javax.servlet.ServletException: Could not start up IDC server deployment.
at idcservlet.ServletUtils.initializeContentServer(ServletUtils.java:1253)
at idcservlet.ServletUtils.startAndConfigureServer(ServletUtils.java:542)
at idcservlet.ServletUtils.initializeAllServers(ServletUtils.java:455)
at idcservlet.IdcFilter.initContentServer(IdcFilter.java:132)
at idcservlet.IdcFilter.init(IdcFilter.java:124)
Caused By: java.io.IOException: UCM Server failed to initialize inside its servlet environment.
at intradoc.idcwls.IdcIntegrateWrapper.initializeServer(IdcIntegrateWrapper.java:138)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
Caused By: intradoc.common.ServiceException: 
at intradoc.server.IdcServerManager.init(IdcServerManager.java:224)
at intradoc.idcwls.IdcServletRequestUtils.initializeServer(IdcServletRequestUtils.java:624)
at intradoc.idcwls.IdcServletRequestUtils.initializeServer(IdcServletRequestUtils.java:455)
at intradoc.idcwls.IdcIntegrateWrapper.initializeServer(IdcIntegrateWrapper.java:102)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Caused By: java.lang.NullPointerException
at intradoc.data.ResultSetUtils.getIndexMustExist(ResultSetUtils.java:445)
at intradoc.server.utils.ComponentInstallHistory.compareAndUpdateComponents(ComponentInstallHistory.java:139)
at intradoc.server.IdcInstallInfo.buildComponentList(IdcInstallInfo.java:874)
at intradoc.server.IdcSystemLoader.finishInit(IdcSystemLoader.java:354)
at intradoc.server.IdcSystemLoader.init(IdcSystemLoader.java:336)
at intradoc.server.IdcServerManager.init(IdcServerManager.java:120)
at intradoc.idcwls.IdcServletRequestUtils.initializeServer(IdcServletRequestUtils.java:624)


This error occurs due to missing idccs_components.hda file in the shared file directory or sometimes this file got corrupted and ucm server is not able to start.

Solution:
To solve this issue there is idccs_components.hda.old file in the same directory i.e. cs/data/components/ now just rename that file and restart the webcenter content server.

Note: This is bug 13877118 and already raised in oracle support. For more information about this bug and fixes please follow this oracle support document Doc ID 1512338.1

Thursday, August 21, 2014

Oracle Webcenter Content: Using page debugger to customize the ucm instance

As you know that Oracle Webcenter Content formerly known as Oracle UCM is content management system which provides many out of box functionality to manage the content of an organization. But some times it happens that you required some features or functionality which is not provided by the product and you need to customize it. Like you need to alter the layout or look and feel, or need to change the functionality of the existing feature however in every case you need to change the source code of the applications or product.
Here in this blog post I am not going to tell you how to customize or add new features or functionality, but I will tell you about debugger that webcenter content provides which may help you in customizing you content server instance.
Well to customize the page it is very important to locate the source code of that feature or component.
For example: let say we need to add a column at folder level (refer my post add column at folder level in ucm)
Here are the steps:

  1. First we need to identify the page to modify the source code.
  2. Now for this you can use the page debugger in ucm to identify the page. Although it is time consuming activity but you have to deal with that (there may be other possibilities but I did like this). To use the debugger you need to append the &IsPageDebug=1 to the url of the page.
  3. In the example I have shown the tender folder page, so right click and copy the link address of this folder and append &IsPageDebug=1 i.e. http://x.x.x.x:16200/cs/idcplg?IdcService=COLLECTION_DISPLAY&hasCollectionID=true&dCollectionID=875446151231000004&&IsPageDebug=1
  4. You will see the page debugger tab at the right-bottom of the page.
  5. On the Debug tab click on "idocscript trace", and then try to look for the page you need to modify. Well I have search for body in that page to locate the page to be modified because generally the content is placed in the body element of a html page and there I got the folders_list_resource.htm page.
  6. Rest you can read it in the blog post (add column at folder level in ucm).

Other Debugging Options

In ucm there are other debugging options like

  • IsJava: Display the local data of a content server page
  • IsSoap: Display the local SOAP data of a content server page
  • For more debugging option go to http://docs.oracle.com/cd/E17904_01/doc.1111/e10726/c07_config_u_and_t.htm#BHAIFFGA

Oracle Webcenter Content: Adding column at folder level in UCM

I was working on one of the requirement asked by client that they need Content ID column at folder level i.e when user move to one folder then Content ID of the content present in that folder should be visible.

What is happening :  see the below figure in which there is no column for Content ID.




What is required :  In the below figure Content ID column is added


Solution:

Well this is not the out of box feature in oracle webcenter content, you have to think to find the source code and edit the source code  manually to achieve this funcationality.
  1. I have found the page i.e. folders_list_resource.htm which contains source code of folder content view shown above (using the debug view in oracle webcenter content).
  2. This file you will find in the folder %MW_HOME%/Oracle_ECM1/ucm/idc/components/Folders_g/resources
  3. In the source code go to line number 75 (in my case) you will find a code some thing like this <$rsMakeFromString("ListFields","dBindingName,dFileSize,dInDate,dDocAuthor","name")$>
  4. In this line add "dDocName"  i.e. <$rsMakeFromString("ListFields","dDocName,dBindingName,dFileSize,dInDate,dDocAuthor","name")$>
  5. Save the file and put back into folder (path specified in Step2).
  6. Refresh the page.

Note: I have done this customization in Oracle UCM 11.1.1.5.0, If there is something different in other version please share.

Thursday, August 14, 2014

Oracle Webcenter Content: Displaying only release content to the user

In Webcenter content when you check in the content, put the user in the user access list or roles in the roles access list and then send the content into workflow then by default user/roles that you have provided at the time of check-in can access the content before the content is approved by the approver. You can restrict this default behaviour but adding the variable in the general configuration of the wcc server i.e.

CollectionReleasedOnly=true

Steps to add the variable.:

  1. In the left navigation under Administration --> AdminServer.
  2. In the component manager window, go to General Configuration and add the CollectionReleasedOnly=true in Additional variable text box.
  3. Save the configuration.
  4. Restart the webcenter content server.

Webcenter Content: Export/Import of Content Server Configuration using Configuration Migration Utility (CMU)

Configuration Migration Utility (CMU) is a useful tool in webcenter content to migrate the wcc configuration from one environment to another. The CMU is installed by default when you installed the webcenter content server or if it is not installed you can install it from the advance component manager.
Configuration migration is a error prone process so while migrating if some components or configuration failed so just mark that component and later on create the configuration manually on to that server. Also it is recommended that if there is a lot of content server configuration so instead of creating one bundle you can go for multiple bundles to complete the configuration migration successful.

Export of Content Server Configuration:
  1. In the left navigation go to Administration -> Config Migration Admin --> configuration templates
  2. In the action menu, select Create New Template.
  3. Under child section, select the content server sections.
  4. Now under the content server sections, select the under child section what you want to migrate.
  5. Now let say we have to migrate content metadata, then click on the content metadata link under Items for section select items to be migrated or you can select all from the Action menu.
  6. From the action menu click save to save the configuration.
  7. In the Add Export Rule window give the name of the template and description of the template.
  8. Repeat step 5 to add more content migration items.
  9. After adding all the items, export the bundle from Action menu.
  10. Copy the Bundle from the server i.e. <CS path>/cmu/<Instance>/bundles/<bundle name>


Import of Content Server Configuration:
  1. In the left navigation go to Administration -> Config Migration Admin --> Upload Bundle
  2. Browse the bundle file, select forced overwrite and click on upload.
  3. In the Action menu click on Import.