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.
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:
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.
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).
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.
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
IT Convergence Technology Services will be making a series of posts on Oracle SOA solutions on this blog throughout the year. We invite you to use the comment section to ask questions, make your own observations, or simply share ideas. You can access all SOA related posts by simply clicking on the Oracle SOA Suite tag.