Saturday, December 14, 2013

Oracle Webcenter Content 11g Clustering (High Availability) using a shared storage

This blog post is  about the clustering of Oracle Webcenter Content11g using the shared file system on windows. Well one thing which makes Webcenter Content installation unique from other middleware installation is the use of shared file system. Shared content mainly consist of the information related to the Content Server Instances configuration, user data profiles, data or content uploaded to the Oracle Webcenter Content, weblayout or GUI of a Webcenter Content page as these information are important and must be in sync thats why these are kept on shared file system.

  1. Two physical machines i.e. Machine1 and Machine2.
  2. All the middleware and database setups and installers.
  3. On Machine1 we have Adminserver and UCMServer1.
  4. On Machine2 we have UCMServer2.
  5. Adminserver is not the part of cluster.
Steps for Installation and Configuration
  1. Supported version of JAVA must be installed on both the machine.
  2. Supported database must be installed. Check into the Oracle Fusion Middleware Certification Matrix for the supported database before installation.
  3. Run the supported RCU, generate all the required Oracle Webcenter Content tablespaces.
  4. Ensure that you have configured the shared storage on both the WCC nodes.
  5. Install weblogic on Machine1: 
    • Run the installer, Java -D64 -jar wls103N_generic.jar (N is the version number you are using)
    • Click next, choose the middleware directory eg. C:/oracle/middleware/
    • Click Next, register for  security updates (optional).
    • Click Next, choose install type (optional).
    • Click Next, choose jdk as desired.
    • Click Next, choose product installation directory.
    • Click Next, Install the product. 
  6. Install webcenter content on Machine1
    • Run the installer, go to the WCC installable folder run the setup in disk1 folder by executing the command setup.exe -jreLoc <path to jdk dir> eg. C:\Java\jdk1.6.0_30
    • Click Next, Install software updates (optional)
    • Click Next, prequisite checks.
    • Click Next, specify the middleware home directory for the installation and set the wcc directory to Oracle_ECM1
    • Click Next, weblogic directory auto selected.
    • Click Next, Install the product and finally click finish when installation completes.
  7. Configure WCC domain on Machine1
    • Run the config.cmd, go to oracle/middleware/Oracle_ECM1/common/bin folder.
    • Create new weblogic domain, click next.
    • Select WCC components, i.e. Oracle Universal Content Management - Content Server- 11.x.x.x[ Oracle_ECM1]. The other two option Oracle enterprise manager and Oracle JRF are auto selected. Click Next.
    • Enter the name of the domain and location of domain. Click Next.
    • Configure administrator username and password. Click Next.
    • Configure server start mode and jdk. Click Next.
    • Configure JDBC component schema, i.e. UCM_Schema. Click Next.
    • Test JDBC component schema. Click Next.
    • Select option configuration: Administration Server and Managed Server, Clusters and Machines.
    • Configure Administration Server :
      • Name: Adminserver (default)
      • Listen Address: <IP Address>
      • Listen Port: <port>, 7001 (default).
      • SSL Listen Port: N/A(default)
      • SSL enabled: unchecked (default).
    • Configure Managed Server:
      • Name: UCMServer1
      • Listen Address: <IP Address>
      • Listen Port: <port>, 16200 (default).
      • SSL Listen Port: N/A(default)
      • SSL enabled: unchecked (default).
      • Add one more row to create second managed server.
      • Name: UCMServer2
      • Listen Address: <IP Address>
      • Listen Port: <port>, 16200 (default).
      • SSL Listen Port: N/A(default)
      • SSL enabled: unchecked (default).
    • Configure Clusters:
      • Click on Add+
      • Name: UCM_Cluster
      • Cluster Messaging Mode: Unicast(default)
      • Multicast Address: N/A(default)
      • Multicast Port: N/A(default)
      • Cluster Address: <blank> (default).
    •  Assign both servers to the cluster.
    • Configure Machines:
      • Name: UCMMachine1
      • Node Manager Listen Address: <ip address>.
      • Node Manager Listen Port: 5556 (default).
      • Click on Add+
      • Name: UCMMachine2
      • Node Manager Listen Address: <ip address of second machine>.
      • Node Manager Listen Port: 5556 (default).
      • Click Next.
    • Add servers to the machines,
      •  add Adminserver and Managed server1 to the UCMMachine1 
      • add Managed server2 to the UCMMachine2.
    • Click Next to create a domain.
  8. Start the Adminserver on UCMMachine1, by executing C:/Oracle/Middleware/user_projects/domains/ecm_domain/bin/startWeblogic.cmd.
  9. Now the Configure and start the node manager on UCMMachine1.
  10. Open the adminstration console, i.e. http://IP:Port/console.
  11. Disable the Host Name Verification:
    • Go to Enviornment-->servers--->Adminserver-->SSL-->Advanced and set the host name verification value to none.
    •  Go to Enviornment-->servers--->ManagedServer1-->SSL-->Advanced and set the host name verification value to none.
    • Go to Enviornment-->servers--->ManagedServer2-->SSL-->Advanced and set the host name verification value to none.
  12. Restart the Adminserver.
  13. Start the UCMServer1. Open the configuration page i.e. http://IP:Port/cs.
  14. Set the WCC cluster information:
    • Cluster Node Identifier: UCMServer1 (name of the node's managed server -non editable)
    • Content Server Instance Folder: \\\\<IP-Adress>\\ucmshare/domain/ecmdomain/cs (this must be path to the shared/remote filesystem)
    • Native File Repository Location: \\\\<IP-Adress>\\ucmshare/domain/ecmdomain/cs/vault/ (this must be path to the shared/remote filesystem)
    •  Weblayout Folder: \\\\<IP-Adress>\\ucmshare/domain/ecmdomain/cs/weblayout/(this must be path to the shared/remote filesystem)
    • User Profile Folder:  \\\\<IP-Adress>\\ucmshare/domain/ecmdomain/cs/data/users/profiles/ (this must be path to the shared/remote filesystem, also this option shown for WCC version or later)
    • Content Server URL Prefix: /cs/ (non -editable, cs is default you can set any value)
    • Is new Content Server Instance: Checked.
    • Server Socket Port: 4444 (for RIDC access).
    • Incoming Socket Connectoin Address Security Filter:|  (append each member cluster node's ip address using the pipe "|" as a delimiter) .
    • Web Server HTTP(s) Address: localhost (optional)
    • Web Address is HTTPS: unchecked (default)
    • Company Mail Server: (set as needed)
    • Administrator Email Address: (set as needed).
    • Server Instance Name: UCMServer (non-editable)
    • Server Instance Label: UCMServer (set as needed)
    • Instance Description: UCMServer (set as needed)
    • Is Auto Number Enabled: Check (default).
    • Auto Number Prefix: WCC_ (change as needed)
    • FullText Search Option: none (set as needed)
    • External DataSource: <blank> (set as needed)
    • Submit.
  15. Restart the UCMServer1. Now UCM server on first cluster node is up and running.
  16. Install weblogic on Machine2: Follow the same steps as for installing the weblogic on Machine1.
  17. Install webcenter content on Machine2: Follow the same steps as for installing the webcenter content on Machine1.
  18. Configure Domain on Machine2:
    • Stop the Adminserver and UCMServer1.
    • Execute the pack command on Machine1 i.e. C:/oracle/middleware/Oracle_ECM1/common/bin/pack.cmd -managed=true -domain=C:/oracle/middleware/user_projects/domains/ecm_domain -template=ecm_template.jar -template_name="ecm domain"
    • A jar file named ecm_template.jar is created in the same directory i.e. C:/oracle/middleware/Oracle_ECM1/common/bin/.
    • Copy this template file in same folder on Machine2.
    • Run the unpack command on Machine2 i.e. C:/oracle/middleware/Oracle_ECM1/common/bin/unpack.cmd  -domain=C:/oracle/middleware/user_projects/domains/ecm_domain -template=ecm_template.jar.
  19.  Set up the node manager and start it on Machine2.
  20. Start Adminserver, UCMServer1 and UCMServer2.
  21. UCMServer2 automatically takes the information of WCC cluster information : from intradoc.cfg file that you have configured in step 14.
  22. Your UCM cluster is ready.
Note: I have followed the document 1359930.1 on oracle support.

    Monday, December 9, 2013

    Oracle SOA : deployment plan needs to be re-copied manually to each Cluster-Node / Managed Server

    SOA applications and resource adapters are installed using nostage deployment mode. Because of this, the administration sever does not copy the archive files from their source location when the nostage deployment mode is selected. However, each managed server must be able to access the same deployment plan. The solution is, to use the shared location for the deployment plan and applications. Please see the link below for more clarification

    Friday, December 6, 2013

    UCM Clustering Error on Windows intradoc.common.ServiceException: !syFileUtilsUnableToCreateSpecifiedDir

    When you are Installing Webcenter Content on a cluster, one of the thing which is unique from other middleware installation is requirement of shared filed system. So when you configure webcenter content after installing and creating of domain, then you have to provide path of following shared directories:
    • Content Server Instance Folder
    • Native File Repository Location
    • Weblayout Folder 
    • User Profile Folder ( or later)
    Now when you specified path of all the shared directories, while starting the second UCM Managed server you are facing the following issue:

    intradoc.common.ServiceException: !syFileUtilsUnableToCreateSpecifiedDir
    Unable to write intradoc.cfg

    Error Symptoms
    In my case this error comes due to incorrect path syntax I have specified for the shared directory.

    For example:
    I have shared directory on server
    the folder structure is H:\ucmshare\domain\ucm_domain\ucm_cluster\
    and i am specifying the directory path like this \\\ucmshare\domain\ucm_domain\ucm_cluster\ and I am getting the above error.


    I solved the above problem by specifying the following shared directory path:


    Please remember
    • Here ucmshare is a shared folder on server
    • Use of forward slash for specifying the directory, but to locate the server use backslash as used above.

    Wednesday, November 27, 2013

    Oracle Webcenter Content App for Android and iphone

    With the release of webcenter content, Oracle also releases the webcenter content app for Apple and Android devices.
    Installing the Oracle WebCenter Content Mobile app is just like installing other apps. Search for Oracle WebCenter Content in the App Store to find the app, then install it.
    After that open the application you are asked for user name and password. The address for the host computer is the url address where the Oracle WebCenter Content server is running. Just supply all the necessary information and you are ready to manage the content on your devices.

    for android :

    Oracle WebCenter Content App Demonstration for iOS by TEAM Informatics

    Tuesday, November 19, 2013

    Internal error: Failed to make composite state update: Composite "" does not exist.

    Sometimes when you are working on the BPEL Processes then your process goes into the faulted state and in that case you can't do anything(shutdown, startup, retired etc.) and when you click on any action following error is thrown:

    Internal error: Failed to make composite state update: Composite "Default/HelloWorld!1.0*soa_cad506cc-72bd-4b2c-9990-5c84ea3861c7" does not exist.

    Error Symptoms

    In my case this error comes when my Main Process is dependent on other composites and when I restart the Server before loading of the dependent composites my Main Process loads first and goes into the faulted state(as stated above).


    1. To resolve this issue you can localize the artifacts of the dependent composite so that after restarting the server the dependent artifacts are available to the Main Process.
    2. Or you can put dependent artifacts on the Oracle MDS Repository and give the reference of dependent artifacts from the MDS to the Main Process.
    Well I followed the Step 1.

    After these steps, I remove the composites which already in the faulted state from the MDS. Just follow this blog post :

    Delete BPEL Composites which are in unknown state : Failed to make composite state update: Composite "" does not exist.

    When your BPEL Processes goes into the unknown state and in that case you can't do anything(shutdown, startup, retired etc.) and when you click on any action following error is thrown:

    Internal error: Failed to make composite state update: Composite "Default/HelloWorld!1.0*soa_cad506cc-72bd-4b2c-9990-5c84ea3861c7" does not exist.
    In that case you can delete composite entry from the MDS and after restarting the server unknown composites are not visible in em console.

    How to remove composite entry from MDS
    1. Run ( /app1/Oracle/Middleware/Oracle_SOA1/common/bin/
    2. Connect to SOA Server Instance i.e. connect('weblogic', 'weblogic123', 't3://')
    3. Export the metadata. By running the command  exportMetadata(application='soa-infra', server='soa_server1', toLocation='/home/oracle/mds', docs='/**'), here "/home/oracle/mds"  is the location on the machine where all the MDS data exported.
    4. After Exporting the MDS, two folder are created in "/home/oracle/mds" i.e. deployed-composites and soa.
    5. Now  go to deployed-composites folder there is deployed-composite.xml, open that file in an editor and remove all the faulted composite entry.
    6. After saving the file, Import the MDS by running the command importMetadata(application='soa-infra',server='soa_server1', fromLocation='/home/oracle/mds',docs='/**')
    7. Restart the SOA Server.

    Monday, November 18, 2013

    ORA-00904: "ORA_ROWSCN": invalid identifier

    Sometimes when you look the database tables in SQL Developer or in Jdeveloper Database Navigator you are facing the following issue:
    ORA-00904: "ORA_ROWSCN": invalid identifier
    and you are not able to see the data in the table.

    In that case you can do following step
    Go to  preference -> database -> object viewer and uncheck the check-box  "Use ORA_ROWSCN for DataEditor insert and update statements." and then data is visible.

    Sunday, November 17, 2013

    Large Event Payload Causes: ORA-19011: Character string buffer too small ORA-06512: at "SYS.XMLTYPE"

    I am using oracle EDN in SOA, while testing the process i am getting the large event payload error:

    faultName: {{}runtimeFault} messageType: {{}RuntimeFaultMessage} parts: {{ summary=<summary>Error enqueing event:  ORA-06512: at "SYS.XMLTYPE", line 169 ORA-06512: at "DEV_SOAINFRA.EDN_ENQUEUE_
    BUSINESS_EVENT", line 13 ORA-06512: at "DEV_SOAINFRA.EDN_INTERNAL_PUBLISH_EVENT", line 4 </summary> ,detail=<detail>oracle.fabric.common.FabricException: Error enqueing event: ORA-19011: Character string buffer too small ORA-06512: at "SYS.XMLTYPE", line 169 ORA-06512: at "DEV_SOAINFRA.EDN_ENQUEUE_BUSINESS_EVENT", line 13 ORA-06512: at "DEV_SOAINFRA.EDN_INTERNAL_PUBLISH_EVENT",
    Well according to the oracle support when you publish an event to EDN with a large payload in a BPEL process, this error occurs and  it is reported as a unpublished bug 13801175.
    To resolve this issue you need to install the patch 13801175 (you can get it from metalink).
    Note: This issue has been fixed in SOA