Wednesday, September 2, 2009

Installing AIA 2.2.1 on an Oracle SOA Suite cluster

A recent project required installing Oracle Application Integration Architecture (AIA) Foundation Pack 2 (2.2.1) on Red Hat Linux ES 4. AIA requires Oracle SOA Suite 10g and Oracle Service Registry. However, the AIA installer is designed to install on a single-node advanced SOA Suite installation, and not a clustered one. For those who have installed a clustered Oracle SOA Suite, you will understand how drastically different it is in terms of installation and configuration.



Below are 3 issues I have encountered during my setup and resolutions to each of them.

Issue #1: The 'htdocs' directory does not exist in the SOA ORACLE_HOME

A prerequisite step to installing AIA involves editing httpd.conf to enable directory browsing. The AIA installer detects this by creating a temporary directory under $ORACLE_HOME/Apache/Apache/htdocs (since that is one location where it copies the static EBOs, etc.).

An example of the changes to httpd.conf:

Old -> Options FollowSymLinks MultiViews
New -> Options Indexes FollowSymLinks MultiViews
Unfortunately, the AIA installer is not aware that your web server (Oracle HTTP Server in this case) may be installed in a separate ORACLE_HOME, and thus fails as it checks for the existence of 'htdocs' in the SOA ORACLE_HOME.

Solution:
Manually copy the 'htdocs' directory from the OHS ORACLE_HOME to $ORACLE_HOME/Apache/Apache on the SOA ORACLE_HOME.

Issue #2: AIA install fails with 'ESB_ERROR Destination Not Found Error'

The AIA installer tries to configure its ErrorHandlingMDB to listen to AS JMS (in-memory). When performing a clustered install of Oracle SOA Suite as per the instructions in the Enterprise Deployment Guide, the ESB_ERROR topic will be hosted by AQ and the resource adapter will be OracleOJMS, so that both nodes use a common version.

However, by design, the AIA Installer looks only for the in-memory OracleASjms (see Oracle Bug #6932261).

Solution:
To work around this known issue, a dummy error topic is created so that the AIA installation can proceed, and once the installation is complete, the MDB will be configured to use the AQ based JMS instead of this dummy topic.

Follow these steps to create the dummy error topic:
1. In Enterprise Manager, click on oc4j_soa -> Administration -> JMS Destinations.
2. On the 'JMS Destinations' screen, click the Create button.
3. Choose 'Type' as Topic.
4. For 'Destination Name', enter ESB_ERROR_DUMMY.
5. For the 'JNDI' entry, enter jms/topic/ESB_ERROR.
6. Click on OK.
Issue # 3: The Configuration Assistant fails

The AIA installer logs all messages to $AIA_HOME/Infrastructure/install/logs/FPInstall.log. You may receive an error similar to the following in this log:
Failed to read wsdl.

Error happened when reading wsdl at "/u01/app/oracle/product/10.1.3/soa/bpel/domains/default/tmp/.bpel_AIADemogetSMItemPriceProvABCSImpl_1.0_df91da2143861b6e7a295558f2ee44ba.tmp/_AIADemogetSMItemPriceProvABCSImpl.wsdl", because "Error reading import of file:/u01/app/oracle/product/10.1.3/soa/bpel/domains/default/tmp/.bpel_AIADemogetSMItemPriceProvABCSImpl_1.0_df91da2143861b6e7a295558f2ee44ba.tmp/_AIADemogetSMItemPriceProvABCSImpl.wsdl: Failed to read WSDL from http://rh-soa.itciss.com:7777/AIAComponents/UtilityArtifacts/RuntimeFault.wsdl:WSDL not found".

Make sure wsdl exists at that URL and is valid.
Solution:
The Configuration Assistant fails because the WSDL points to certain XSD’s which are supposed to be hosted by the web server.

Simply copy the contents of the htdocs from the SOA ORACLE_HOME to the OHS ORACLE_HOME’s htdocs directory and run the command:
/u01/app/oracle/product/10.1.3/soa/jdk/bin/java -jar /u01/app/oracle/product/2.2.1/aia/Infrastructure/install/lib/AIAUtils.jar -i /u01/app/oracle/product/2.2.1/aia -nopips
Good luck!

3 comments:

Anonymous said...

Hi,

For Issue #2, you said that the MDB will be configured to use the AQ based JMS instead of this dummy topic.
But how do you do this configuration ?

Regards,
Thomas

Ahmed said...

This is actually performed automatically by the installer, so you don't have to worry about it.

As to how to do it exactly, I'm not sure. Unfortunately, at this time I don't have access to an AIA environment to confirm.

youtube html5 player said...
This comment has been removed by a blog administrator.