Monday, November 17, 2008

Numerous bugs in the Oracle SOA Suite 10g silent installer

Three points I'd like to make:
  • The SOA Suite silent installer has several bugs.
  • It is possible to fully script a non-clustered Oracle SOA Suite 10g installation.
  • It is not possible to fully script a clustered Oracle SOA Suite 10g installation.

The Scenario

One of my customers wanted the ability to clone a clustered Oracle SOA Suite 10g (10.1.3.3) installation without spending the tremendous amount of time installing it. If you've ever followed the Enterprise Deployment Guide, you will understand their pain.

One option was to clone a master image, but OWSM on 10.1.3.3 doesn't support cloning. Furthermore, the customer was extremely comfortable (and preferred) a scripted approach so that was the route chosen.


The Approach

An
environment.properties file consisting of 102 settings needs to be first configured. Parameters include Oracle Home names, OPMN ports, multicast settings, RAC TNS strings, OS group, software location, etc, etc, etc. The script can run unattended* (there's a catch) and takes 1-2 hours to install a single node of the cluster.

The script essentially automates the steps detailed in the Enterprise Deployment Guide (10.1.3.3).

All you really need to do is update the
environment.properties on each server, and run the master script. Simple and consistent.

In a nutshell, the scripts did the following:

    1. Run IRCA to create the schemas.
    2. Install and configure OHS 10.1.3.1.0.
    3. Install and configure J2EE 10.1.3.1.0.
    4. Install and configure BPEL Process Manager 10.1.3.1.0.
    5. Install and configure ESB Runtime 10.1.3.1.0.
    6. Install and configure OWSM 10.1.3.1.0.
    7. Install and configure the OWSM Gateway home 10.1.3.1.0.
    8. Apply the 10.1.3.3.0 patchset on OHS.
    9. Apply the 10.1.3.3.0 patchset on J2EE.
    10. Apply the 10.1.3.3.0 patchset on OWSM Gateway.
    11. Deploy and configure ESB Design Time.
Sounds simple, but those who have done this before know the tremendous amount of pre- and post- configuration steps needed, and that's one of the key values of the scripts.


Issues with the SOA Suite 10g (10.1.3) silent installer

The silent installer has numerous bugs, namely:
    1. The silent installer doesn't pick up 3 parameters from the response file.

    There is no way around this but to manually run the OUI (for steps 3, 6, 9, and 10 above). Specifically, there is no way to specify the administration OC4J container, no way to specify the admin container to not be
    home, and cluster settings are not propagated to opmn.xml.

    Unfortunately, you can only work around the last setting, but not the other two.

    2. After the installation of OWSM, wsmadmin.sh always fails during the execution of the Configuration Assistants.
    (You can work around this.)

    Furthermore, it does not even work when manually invoked post-install. The error returned by
    wsmadmin.sh is misleading as shown below:
      oc4j.checkRMI:
      [echo] Checking stand-alone OC4J URI...
      [echo] deployer:oc4j:oradev1.aboulnaga.com:
      [stopwatch] [oc4j.checkRMI.time: 1.402 sec]
      Error 1

      BUILD FAILED
      /u01/app/oracle/product/10.1.3/soa_1/owsm/scripts/install.xml:1996: The following error occurred while executing this line:
      /u01/app/oracle/product/10.1.3/soa_1/owsm/scripts/deploy.xml:395: The following error occurred while executing this line:
      /u01/app/oracle/product/10.1.3/soa_1/owsm/scripts/oc4j.xml:24: Unable to locate a valid OC4J URI. The server is probably down.
    It is misleading since validating the URI is actually successful when issuing the command:

      $ORACLE_HOME/jdk/bin/java -jar admin_client.jar deployer:oc4j:opmn://oradev1.aboulnaga.com:6101/oc4j_wsm oc4jadmin password -validateURI

    Fortunately, the EAR files are built correctly, so you can work around this by manually deploying the ccore, policymanager, and gateway applications (located in
    $ORACLE_HOME/owsm/ears).

    3. The createinstance command does not update the process-set attribute in opmn.xml correctly.
    (You can work around this.)

    This will not be fixed in Oracle SOA Suite 10g (10.1.3). Fortunately, with some ingenious scripting using
    sed, you can work around this.

    4. There is no API or command line interface to configure OWSM.

    You must log on to WSM Control to perform the steps required by the Enterprise Deployment Guide. There is no way to work around this.

    5. The WSIL Configuration Assistant fails when attempting to install SOA Suite J2EE.

    Furthermore, it does not work when manually invoked either:
      # installActions log
      ---------------------------
      Launched configuration assistant 'Oracle Web Services Inspection Language Configuration Assistant'
      Tool type is: Recommended.
      The command being spawned is: '/u01/app/oracle/product/10.1.3/soa_1/ant/bin/ant -buildfile
      /u01/app/oracle/product/10.1.3/soa_1/webservices/lib/wsil-install.xml -logfile
      /u01/app/oracle/product/10.1.3/soa_1/cfgtoollogs/wsil.txt
      -DHOST=oradev1.aboulnaga.com -DOPMNPORT="6003" -DADMIN_USER=oc4jadmin
      -DOPMNINSTANCE=home -Denv.JAVA_HOME=/u01/app/oracle/product/10.1.3/soa_1/jdk
      -Denv.ANT_HOME=/u01/app/oracle/product/10.1.3/soa_1/ant
      -Denv.ORACLE_HOME=/u01/app/oracle/product/10.1.3/soa_1 *Protected value, not to be logged*'

      Start output from spawned process:
      ----------------------------------
      Buildfile: /u01/app/oracle/product/10.1.3/soa_1/webservices/lib/wsil-install.xml

      End output from spawned process.
      ----------------------------------
      Configuration assistant "Oracle Web Services Inspection Language Configuration Assistant" failed
      Buildfile: /u01/app/oracle/product/10.1.3/soa_1/webservices/lib/wsil-install.xml

      Result code for launching of configuration assistant is: 1

      # silent install log
      --------------------------
      silentInstall2008-10-22_01-19-04PM.log
      A configuration script needs to be run as root for the installation to be
      complete. Please run /u01/app/oracle/product/10.1.3/soa_1/root.sh as root at
      the end of install.
      Configuration assistant "Oracle Web Services Inspection Language Configuration Assistant" failed
      Buildfile: /u01/app/oracle/product/10.1.3/soa_1/webservices/lib/wsil-install.xml

      # opmn.xml
      -----------------
      <ias-component id="default_group">
      <process-type id="home" module-id="OC4J" status="enabled">
    Unfortunately, there is no workaround for this, so the only solution is to use the OUI.

Good luck.

To get a copy of the scripts, visit my sister site http://ThisIsAhmed.com.

2 comments:

Jameer said...

Dear Ahmed,

I am trying to install oracle fusion 10.1.3.0 on windows server 2003 with standard version...

Its show an error that oracle web service manager configuration assiant failed can u help to sort out the issue....

Thanks & Regards
Roshan Jameer
Mailid:roshanj.mca@gmail.com

Ahmed said...

Roshan,

Per the log you sent me, it seems that when the OWSM Configuration Assistant runs, it can't find the table APPLICATION_RESOURCES. This table is created during the installation by the following script:

    F:\OracleSoa\owsm\db\sql\APPLICATION_RESOURCES.sql

The script failed to execute for some strange reason. I emailed you two suggestions to try.