Professional Documents
Culture Documents
Cluster Deployments
Applicable to Foundation Pack Releases - versions 2.1 and 2.2
Applicable to SOA Suite 10.1.3.3 and above running on Oracle Application Server 10gR3 (OC4J)
(Oracle Metalink Note: 731120.1)
Oracle Application Integration Architecture (AIA) Foundation Pack is a comprehensive SOA based integration
product from Oracle that not only provides an architecture blue print for true SOA based integration of
enterprise applications, but also pre-built standards-based content required for integration and Programming
Models to achieve superior performance, scalability, extensibility, security etc.
In addition, AIA Foundation Pack (AIA FP) contains inbuilt tools for SOA governance, Integration validation,
error handling etc making it a comprehensive Integration Product for enterprises to jump start on Integration
initiatives. AIA FP runs on Oracle Fusion Middleware (FMW)
AIA Process Integration Packs (AIA PIPs) are pre-built end-to-end integrations built on AIA Foundation Pack.
PIPs are products that implement a specific set of business process between a specific set of Applications
(Oracle E-Business Suite, Siebel, SAP etc). Besides providing immediate value, PIPs derive all the principles
and infrastructure from FP, there by delivering a complete SOA implementation along with superior ownership
experience.
Deploying AIA to a highly available enterprise deployment provides the following distinct advantages.
Because AIA integrates business-critical Enterprise software, it is important to ensure that there is no
single point of failure and that system maintenance and failure recovery can happen without
impacting the business.
Workload can be distributed effectively to multiple nodes allowing for optimal usage of resources.
New resources can be added or removed easily. For example, an Order to Cash Integration could
need more resources during a specific season of the year
This document will detail how to install AIA Foundation Pack on a Highly Available SOA deployment (SOA
Cluster)
As mentioned earlier, AIA FP runs completely on Oracle SOA Suite and the underlying FMW
infrastructure. For this reason, AIA FP High Availability is directly derived from the underlying
enterprise deployment topology implemented for SOA Suite and the data tier.
Please refer Oracle Application Server 10gR3 Enterprise Deployment Guide to learn more.
The following are the basic Software applications required for an AIA Installation.
Oracle SOA Suite10gR3 (10.1.3.x) Oracle SOA Suite, J2EE server, HTTP Server
Oracle Database (10.2.0.1) Refer Application Server certification matrix to know all supported
database versions
Oracle Service Registry 10.1.3.0
The above information is dependent on the version on AIA Foundation Pack that is being installed. Refer AIA
Installation Guide on Oracle Metalink to know the exact software requirements
Please review Chapter 1 and Chapter 2 of the AIA Installation Guide to understand the basics of AIA
Installation.
It is required that you have set up the SOA Suite Cluster as per the Enterprise Deployment Guide before
attempting the steps provided in this document. Alternatively you can set up a simpler topology as mentioned
in the Topology section of this document.
The Enterprise Deployment Guide provides a reference topology that ensures that the SOA deployment is
highly available at all tiers (Web tier, Application Server Tier, Data tier and Security tier).
As the EDG rightly points out there are several variations possible to the proposed topology depending upon
user requirement.
For the purpose of this document, we would provide 2 variations
Topology A High Availability at all tiers (reference topology used in EDG)
Topology B Highly available only at Application tier (Simpler to implement)
This document would provide steps for both topologies. Once you choose your topology, follow the
appropriate sections in this document
For any other topology apart from the above, you can easily extrapolate the required steps based on the
explanation.
3.1 Topology A
In this topology the load balancer accepts external requests and in turn redirects requests to Oracle HTTP
servers (Apache Servers). These HTTP servers in turn point to one of the Application Server nodes that host
BPEL/ESB and other J2EE applications. The Application Sever nodes in turn point to an Oracle RAC
database.
Please refer figure 2, to see a complete representation of this topology. In addition, the figure also provides
summary information of different AIA artifacts to be installed at each tier
Load Balancer Balances external requests to one of the Oracle HTTP Servers (WEBHOSTn).
There would be two virtual hosts one for external requests that use HTTPS: 443 called the
soa.mycompany.com and an internal virtual host soainternal.mycompany.com
WEBHOST1/WEBHOST2 Servers that run Oracle HTTP servers in their Oracle Homes. Requests
are redirected to the APPHOSTn
This is where AIA Enterprise object library artifacts like EBO, EBS etc.(which are XSDs and WSDLs)
reside
APPHOST1/APPHOST2 - Servers that host Oracle SOA Suite Applications and the underlying J2EE
server infrastructure.
In this document we will consider only BPEL and ESB applications of SOA Suite. For other
applications such as OWSM, there are no AIA artifacts to be deployed. So please refer the Enterprise
Deployment Guide directly and follow SOA Suite best practices.
This tier hosts AIA delivered BPEL/ESB processes, J2EE applications, datasource configurations etc.
AIA Home will be made available in each host. AIA Home is more of a design time repository of
contents that are deployed to the OracleAS Oracle Home (called SOA HOME here). There are some
run-time dependencies with AIA Home as well, making it necessary to be on each server.
DBHOST3/DBHOST4 It is not necessary to use the SOA database for AIA schema/data also.
Users can optionally choose to use another database to store AIA specific data like XREF,
CAVS/BSR data, AIA Queues etc.
OSR on the other hand is a separate Oracle product that is used to publish run-time information about raw
services that make up AIA. Services thus published can be discovered across the enterprise.
OSR will contain information of all EBS and ABCS service implementations.
OSR is deployed as an application in oracle SOA Suite.
Registry should be installed in the same Application Server that hosts AIA BPEL/ESB processes
In addition, Oracle Service Registry product also provides ways to achieve clustered OSR implementations
thereby providing high availability for registry access. This is optional.
Note: AIA has no run-time dependency on OSR
More information is available at http://www.oracle.com/technology/tech/soa/uddi/osr_cluster_config.pdf
The following are basic verification steps (not comprehensive) to ensure that your SOA cluster is setup
correctly as per the EDG.
Navigating to the BPEL, ESB consoles successfully using the external Load Balancer URL as well as
each of the internal virtual host.
Ensuring that the EM console shows all participating nodes in active state. There must be only one
Active Design time.
Ensure that ESB Design-time is completely up and running by accessing the following URL
http://host:port/esb/dtStatus.jsp. This page should return a true
10
After you complete, remember to undeploy the samples and delete the previously created system.
Verify that you dont have any existing applications in your SOA cluster starting with default_
For example if you had deploy the LoanFlow demo, it wouldve created such applications. To check
this
Open the EM Console
Navigate to the container
In the Applications tab, drill down from BPEL>orabpel.
Select any application starting with default_ and undeploy
Use HTTP monitoring to ensure that both HTTP Servers serve requests
Accessing RAC database using a tool like TOAD to perform successful query, insert operations
(using individual DBHOST TNS entries as well as RAC TNS entry)
Ensure that all other configuration (like updating ESB metadata, Configuring slide repository etc) is
performed correctly as per the Enterprise Deployment Guide.
As per the Enterprise deployment guide ensure that the soapServerURL is set to internal virtual host
http://soainternal.mycompany.com and the soapCallbackUrl to external virtual host
http://soa.mycompany.com
If you are not using SSL for external access, both these properties should point to
http://soainternal.mycompany.com
Ensure that the cluster flag is set to true
Enable directory browsing in the Apache server of both WEBHOST1 and WEBHOST2 by editing the
httpd.conf file. This file is at <SOA_HOME>/Apache/Apache/conf/httpd.conf.
11
This document does not address clustering at data-tier, Security considerations, disaster recovery etc.
This is because there are no AIA considerations or special recommendations required. More information
on these topics can be found at the respective product documentation locations:
a. Security in Clusters: http://download.oracle.com/docs/html/A96687_01/manage.htm
b. Database clustering:
http://www.oracle.com/technology/products/database/clustering/index.html
c. Disaster Recovery:
http://download.oracle.com/docs/cd/B14100_14/install.1012/install/ha_dr.htm
12
As mentioned in the beginning of this document, AIA is collection or pre-orchestrated SOA artifacts like
BPEL/ESB processes, queues, J2EE applications, relevant configurations etc.
Clustering each of these components is well defined in SOA Clustering documentation. However there are some
special considerations that need to be taken when attempting to install these components to form a complete AIA
installation.
This section provides information on the consideration for each AIA artifact type. These are the principles that are
used to derive the manual installation steps in the rest of this document. We would continue to refer points A to E
listed below in later sections of the guide. Understanding this well, will allow you to extrapolate the steps of any
SOA topology that you could employ.
At a high-level installation of AIA can be split into the following categories. The requirement of AIA installation and
the consideration that must be made for cluster installation is also mentioned for each of these categories.
A. Creating the AIA Home AIA Home holds all the content that Oracle ships for a specific AIA product. It
is primarily a design time store but has minor runtime dependencies. Users choose this directory during
AIA installation using the UI.
AIA Requirement Content from this folder is deployed to SOA Home as a part of a typical AIA
installation.
Cluster Considerations Because of run-time dependencies (and other considerations), it is
currently required that all nodes of the cluster must have an AIA Home. This folder also holds the
installation scripts that we will manually edit in the later steps of this document.
B. EOL (Enterprise Object Library) content This is the set of schema and wsdl files that forms the core
of AIA. All BPEL/ESB processes access these objects
AIA Requirement The objects have to be installed in the webserver of each node. They will be
accessed using the URL as http://host:port/AIAComponents/
Cluster Consideration The EOL content should be physically copied to each HTTP server
(http://webhostn.mycompany.com)
The URL used by AIA processes to access the EOL content must be the internal virtual host of
the load balancer (http://soainternal.mycompany.com) and not the URL of the individual HTTP
servers
C. Database operations This includes creation of the AIA Schema and relevant tables like XREF,
CAVS/BSR tables etc.
AIA Requirement Each node will access the same database (or RAC) and the same set of
tables
Cluster Consideration When installing AIA on each node, we must attempt this set of actions
only once. If this is done again, errors will occur since the schema and its user and roles have
already been created.
D. BPEL/ESB process These services together form an end-to-end integration, In addition to that we
have BPEL/ESB processes as a part of AIA Foundation Pack that are related to Error Handling etc.
13
14
The following is the high level steps that we will be performing to complete installation and is applicable to
both Topology A and B
Perform Pre-install steps
On APPHOST2, we would execute the installation scripts manually. The scripts we execute would
correspond to steps A, B and E of section 4.
On APPHOST1, we would use the AIA Installer to cover all steps (A, B, C, D and E) mentioned in
section 4.
On WEBHOST2 and WEBHOST1 we would copy the required HTTP content into these hosts,
covering step B of section 4 in each node.
Important: In the case of Topology A it is required that HTTP Server actually be present in
APPHOST1. We will use it only during installation.
Later when we move to WEBHOST1, we would disable this HTTP Server so that the HTTP
Server in WEBHOST is used at runtime
1. AIA Installer tries to configure its ErrorHandlingMDB to listen to AS JMS (in-memory). When performing a
cluster-install of SOA Suite as per 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 AIA Installer looks only for the in-memory OracleASjms
To work around this known issue, a dummy error topic is created so that the AIA Installation goes through
and once the installation is complete, the MDB will be configured to use the AQ based JMS instead of this
dummy topic.
Follow the following steps to create the dummyerror topic.
In the Enterprise manager, click on the oc4j_soa >administration>JMS Destinations.
In the JMS Destinations screen, click the create button.
Choose Type as Topic
For Destination Name, enter ESB_ERROR_DUMMY
For JNDI entry, enter jms/topic/ESB_ERROR
Click on OK
2. Perform the above step on both nodes.
15
1. Keep both the nodes up and running. Make sure that the ESBDT container is down on APPHOST2 and
alive in APPHOST1. All other containers have to be alive (including http server on each node). For this
execute the following command from the folder <soahome>/opmn/bin (assuming linux server)
./opmnctl @cluster status
2. Create a directory for AIA_HOME and navigate into the directory. Execute the following command. This
should provide you the raw AIA_HOME containing scripts we would modify.
For linux: jar xvf
<AIA_INSTALL_IMAGE>/Disk1/stage/Components/oracle.aia.fp/2.1.0.0.0/1/DataFiles/filegroup1.jar
16
The port information should be available from the runtime port information on em console
Use oc4j_soa for the instance name. (Note: This must be the instance running BPEL)
For the service registry details, provide the information of the container where service registry
is installed.
5. In the ant-orabpel.properties file (found in the directory <SOA_HOME>/bpel/utilities) ensure that:
hostname=soainternal.mycompany.com
cluster= false
oc4jinstancename = the OC4J instance where BPEL is installed. Example oc4j_soa for this
topology. This should NOT be the soa_group OC4J container of the cluster
17
8. Execute the following scripts one after the other, while being in the
AIA_Home/Insfrastructure/install/scripts directory.
ant --noconfig -buildfile FPCommonConfig.xml replaceFPInstallProperties
ant --noconfig -buildfile FPConfiguration.xml CommonConfigurations
9. This will complete the file copy into Oracle Home as well as to the webserver Apache/htdocs. This
completes step A and B of section 4.
10. Set the httphost name/port in the ant-orabpel.properties file to apphost2.mycompany.com/port. Retain
other values as is.
11. Set the httphost name/port in the file deploy.properties (under AIA_Home/Config folder) to
apphost2.mycompany.com/port. Retain other values as is.
12. Now we need to create/deploy Datasources, Connection pools, AIA j2ee application/servlet and
Errorhandling MDB.
13. Execute the following scripts one after the other, while being in the
AIA_Home/Insfrastructure/install/scripts directory
ant --noconfig -buildfile FPCommonConfig.xml replaceFPInstallProperties
ant --noconfig -buildfile FPCommonConfig.xml CreateCommonDatasources
18
14. You should see connection Pools, data sources, MDB etc
5.3 On APPHOST1
http.port=port of APPHOST1
cluster= false
oc4jinstancename = the OC4J instance where BPEL is installed. Example oc4j_soa for this
topology. This should NOT be the soa_group OC4J container of the cluster
19
5. Now, use the AIA Installer and install Foundation Pack in an AIA_HOME of your choice. We would
recommend you to have a symmetric folder structure across the nodes.
Important: Please refer the AIA Installation Guide for information on the pre-requisites steps and
instructions to complete the installation
6. Launch the OUI installer. On the installer use APPHOST1 details for the host name and port. Use
oc4j_soa for the instance name. (or the name of your instance running BPEL)
7. For the database information provide the information of DBHOST
8. In the service registry screen provide the information of the Service registry. We would be performing
publish only from this node.
9. Once the installation is complete, verify if all AIA processes were deployed as per installation guide
verification chapters. Verify if AIA Connection pools and AIA data sources are created.
10. You need to redeploy using the following MDB. The MDB patch is available on metalink (Patch number
8331119)
11. Once you apply the patch, From AIA_HOME/bin directory run the following command.
source aiaenv.sh
12. Execute the following command, being in the AIA_Home/Insfrastructure/install/scripts directory
ant --noconfig -buildfile FPErrorHandlingInstall.xml DeployESBErrorListenerMDB
13. Undeploy the BPEL processes (we need to redeploy them with LBR details)
ant --noconfig -buildfile FPDiagnosticsUninstall.xml undeployDiagnosticsServices
ant --noconfig -buildfile FPCAVSInstall.xml undeployCAVSServices
ant --noconfig -buildfile FPErrorHandlingUninstall.xml undeployEH
14. Now, copy the contents of <SOA_HOME>/Apache/Apache/htdocs/AIAComponents recursively (include
all subfolders and their contents) from APPHOST2 (=WEBHOST2) to APPHOST1(=WEBHOST1). If
asked to overwrite any files on APPHOST1 choose the option to overwrite them all. This is done to
ensure that the EOL content reflects the load balancer URL and not the APPHOSTn URL.
15. Similarly, copy the contents of <SOA_HOME>/Apache/Apache/htdocs/AIAComponents recursively from
APPHOST2(=WEBHOST2) to the AIA_HOME/AIAComponents folder of APPHOST1
16. Now that the installation is complete, access the BPEL Admin Console, change back the SoapURI and
SoapCallBackURI to http://soainternal.mycompany.com and set the property:
enableCluster = true
20
Open the file build.xml and search for the string Process deployment targets. Remove ,
bsrpublish and save the file
We will copy the HTTP content created in the Apache folder on APPHOST2 , to the real Apache folders on
WEBHOST1 and WEBHOST2.
21
2. Similarly, from APPHOST2, copy the contents from the directory <SOA_HOME>/Apache/Apache/htdocs
recursively (include all subfolders and their contents) to the same directory structure under WEBHOST2.
If asked to overwrite any files choose the option to overwrite.
3. Restart the HTTP server of both WEBHOST1 and WEBHOST2
1. In APPHOST2s EM console, if you drill down into the oc4j_soa container, you would NOT find the
Taskforms deployed.
Topic Location and Connection Factory Location: The value for JMS Topic should be the
same as the one that is set as DEFERRED_TOPIC in ESB_PARAMETER table
DT_OC4J_HOST.
Normally, these values would be ESBTopics/Topics/ESB_JAVA_DEFERRED and the factory is
OracleOJMS/XATCF
Number of Listeners: The value would be 1
18. On both APPHOST1 and APPHOST2, change the MDB to point to the AQ based ERROR TOPIC
rather than the dummy TOPIC.
In the enterprise manager click oc4j_soa container.
Click on Applications > Middleware Services>BPEL>orabpel>ESBErrorListenerMDB
In the Modules section, click on the EJB module ESBErrorListenerMDB
Under Message Driven Beans, click on thestop button.
Click on the configure message listener properties button.
Enter ConnectionFactoryJndiName = OracleOJMS/TCF
Enter DestinationName = java:comp/resource/esbRP/Topics/ESB_ERROR
If the MDB is not already started click on Start
19. If you were using RAC database, then you need to ensure that AIA related datasources and
connection pools point to the RAC URL
On the EM console, navigate to the JDBC resources of the oc4j_soa container and modify
AIAConnection pool information as follows.
Change the JDBC URL to RAC format. Typically this would be of the format
jdbc:oracle:thin:@(DESCRIPTION=
(LOAD_BALANCE=on) (ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))
Ensure that these are the values in both APPHOSTs
Additionally, in the AIAConfigurationProperties.xml file) found in AIA_HOME/config) make sure that
the EH.AQ.DB.XX details are set as the individual nodes of the RAC.
So in APPHOST1 set it to one node of the RAC. In the same file in APPHOST2 set the properties to
the other node of the RAC.
24
21. Ensure that the soapServerURL is set to internal virtual host http://soainternal.mycompany.com and
the soapCallbackUrl to external virtual host http://soa.mycompany.com in both APPHOST1 and
APPHOST2
If you are not using SSL for external access, both these properties should point to
http://soainternal.mycompany.com
Ensure that the cluster flag is set to true
22. On APPHOST2, Open the EM Console, click on the oc4j instance where the AIA installation was
performed (oc4j_soa), click on the Administration tab and then click on the server properties button.
On the screen, under Command Line Options add a new row, with the following value
-Daia.home=<Complete path to your AIA_HOME>
25
26