First node
=============
We will isntall the cluster in the latest release that is 10.1.3.5
Start with SOA Suite 10.1.3.1 installation
step1-start the installation wizard
======================================
step2
=========
step3
==========
step4
==============
step5
=========
step6
==========
Ok so now you have installed your j2ee and web server.Now the next stpe is to create group and instances in your em console.
We will be creating two groupg SOA_GROUP and ESBDT_GROUP
We will again create two instance OC4J_SOA and OC4J_ESBDT.
We will be creating two instances because as we have discussed in our previous post esbdt and esb rt shoule not be on the same container.So we will install our runtime component in OC4J_SOA and design time in OC4J_ESBDT.
Now log in to the em console by following url http://host:port/em
create a grop and give it the name SOA_GROUP
Now create a new oc4j instance and name it oc4j_soa and add it to the soa_grpup as shown below
Change the jvm parametes of this instance by going to application and server setting tab.AS per sun's recommendataion the maximum and minimum heap size be same.Depending upon you RAM size make both of them 256,512or 1024 as per your RAM.
do the same configuration for ESBDT_GROUP abd OC4J_ESBDT
=====================================================
Run irca to create the schemas
Provide database details and then password for orabpel,oraesb and orawsm schema
Finally it should show the status as success
================================================
Install bpel 10131 on oc4j_soa container
step1
=========
step2
=========
This step you have take care of.Here you have to choose the same path as you have provided in the installation of the j2ee server.It is by default available in the drop down box.Choose the same path and the name will automatically appear.Please do not provide a new path or name otherwise it will give you an issue.
step3
=========
step4
============
step5
=========
step6
===========
correclty choose the oc4j instance name
step7
========
step8
=========
step9
=========
step10
==========
Install ESB 10131 runtime environment to the same oc4j_soa container.
step1
======
step2
=======
step3
=========
step4
==========
step5
==========
step6
=========
step7
=========
step8
=======
step9
=========
step10
=========
step11
==========
so after installing the bpel and esb rt your em console should loook like this
Upgrading to 10.1.3.5
step1
=======
step2
==========
step3
=======
step4
==========
step5
=========
step6
==========
step7
=========
Ok once the upgradation to 10.1.3.5 is over you need to upgrade the orabpel and oraesb schema also.Run the upgrade10131_10135 for both orabpel and oraesb
Now we will install our ESB-DT on the OC4J_ESBDT container.
Install ESB-DT using ant
Go to following directory
SOA_HOME\integration\esb\install\ant-tasks
Edit esb_oc4j_install_props.xml
And provide the values as below
In my case it looks like
<?xml version="1.0"?>
<!-- $Header: esb_oc4j_install_props.xml 28-apr-2007.02:07:30 apatel Exp $ -->
<!--
Copyright (c) 2007, Oracle. All rights reserved.
NAME
esb_oc4j_install_props.xml - Values to be used for deploying ESB on
OC4J container
DESCRIPTION
esb_oc4j_install_props.xml is imported in esboc4j.xml build file
to deploy ESB (either repository or runtime) on OC4J container.
Change the values of the properties in this file per your environment
and then run ant -f $OH/integration/esb/install/ant-tasks/esboc4j.xml.
The values of the properties you enter here are the ones you enter
on Oracle Universal Installer (OUI) while installing Enterprise
Service Bus (ESB) on OracleAS midtier using Advanced option.
NOTES
<other useful comments, qualifications, etc.>
MODIFIED (MM/DD/YY)
apatel 03/05/07 - Creation
-->
<project name="ESB Installation Properties" default="">
<!--
OC4J container in which you want to deploy ESB
-->
<property name="home_container_v" value="OC4J_ESBDT"/>
<!--
ESB component (runtime or repository) that you want to deploy on OC4J.
Possible values: 'design' (for repository)
'runtime' (for runtime)
-->
<property name="esb_type_v" value="design"/>
<!--
OC4J host hosting the repository
-->
<property name="ohs.host" value="arahi-pc2.idc.abc.com"/>
<!--
Port of OC4J host hosting the repository
-->
<property name="ohs.port" value="7777"/>
<!--
Username for connecting to oraesb schema
-->
<property name="db.user" value="oraesb"/>
<!--
Password for connecting to oraesb schema
-->
<property name="db.password" value="welcome1"/>
<!--
Database host where oraesb schema is installed
-->
<property name="db_host_v" value="arahi-pc2.idc.abc.com"/>
<!--
Port of database host where oraesb schema is installed
-->
<property name="db_port_v" value="1521"/>
<!--
Service name for database where oraesb schema is installed
-->
<property name="db_sid_v" value="oracle"/>
<!--
Value of AS Instance Name to which the OC4J instance
belongs. The OC4J instance is the one specified in
property 'home_container_v' in this file.
-->
<property name="ias_name_v" value="SOACluster1.arahi-pc2.idc.abc.com"/>
<!--
Value for 'AS Administrator Password'
-->
<property name="admin.server.password" value="welcome1"/>
<!--
Database url for connecting to oraesb schema
Sample value: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=tcp)(HOST=mypc.acme.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
-->
<property name="db.url" value="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=tcp)(HOST=arahi-pc2.idc.idc.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=oracle)))"/>
<!--
If your computer is located behind a firewall
you may need to route outgoing HTTP connections
through a proxy server.
Sample value: www-proxy.acme.com
-->
<property name="http.proxy.host" value="proxy.acme.com"/>
<!--
HTTP proxy port
-->
<property name="http.proxy.port" value="80"/>
<!--
Addresses for which proxy should be bypassed
Sample value: "*acmecorp.com|localhost|mypc.us.oracle.com|*acme.com"
-->
<property name="http.non.proxy.hosts" value="*acmecorp.com|localhost|mypc.acme.com|*acme.com"/>
<!--
Value of AS Instance Name.
You can also get this value from $ORACLE_HOME/config/ias.properties property 'IASname'
Sample value: soahome.mypc.acme.com
-->
<property name="ias.name" value="SOACluster1.arahi-pc2.idc.abc.com"/>
<!--
Value for OPMN request port.
You can get this value from the following snippet in
$ORACLE_HOME/opmn/conf/opmn.xml
<notification-server>
<port local="6101" remote="6201" request="6004"/>
<ssl enabled="true" wallet-file="$ORACLE_HOME\opmn\conf\ssl.wlt\default"/>
</notification-server>
-->
<property name="opmn.requestport" value="6003"/>
<!--
Sample value: mypc.acme.com
-->
<property name="ias.virtual_host" value="SOACluster1.arahi-pc2.idc.abc.com"/>
</project>
once changes done go to
SOA_HOME\integration\esb\bin
and do a esbsetenv.bat
Now run the following command
ant -f D:\product\10.1.3.1\OracleAS_1\integration\esb\install\ant-tasks\esboc4j.xml
this will start the deployment of ESB_DT
Verify in the last if the deployment was successful or not.
Once done configure a load-balancer to configure a common URL
Please refer to my post "Using web Cache as a load-Balancer" for setting a load balancer.
Configure the BPEL Cluster
=============================
On both the nodes
GO to SOA_HOME/bpel/system/config/collaxa-config.xml
and set enableCluster to true
enter a unique name for the clusterName parameter's value: e.g. arpit. This value must be the same on both nodes.
change the
soapServerURL and
soapCallbackURL to the loadbalancer host and url
Go to SOA_HOME/bpel/system/config/jgroups-protocol.xml
and check mcast_port and mcast_addr
Both the values should be same on both the nodes.
Now
GO to SOA_HOME/bpel/utilities/ant-orabpel.properties
and set cluster = true
Restart the application servers on both nodes, using
opmnctl stopall and then opmnctl startall.
====================================================
Tune your jvm parameters
No need to set threads as after 10.1.3.4 the concepts of thread has been removed.
configure the failover for ESB_DT
===================================
Go to SOA_HOME/opmn/conf/opmn.xml
set service-failover=1 for the OC4J_ESBDT container
Change the following
<process-type id="OC4J_ESBDT" module-id="OC4J" status="enabled" >
to
<process-type id="OC4J_ESBDT" module-id="OC4J" status="enabled" service-failover="1">
and remove the numprocs change the
<process-set id="ESBDT_GROUP" numprocs="1"/> to
<process-set id="ESBDT_GROUP" />
Once done restart your server
Configuring ESB_RT(runtime)
===========================
Go to SOA_HOME/j2ee/OC4J_SOA/applications/esb-rt/META-INF/orion-application.xml
and uncomment the following lines
<!-- <property name="cluster_name" value="ESB" />
<property name="primary_oc4j" value="false" />
<property name="xa_timeout" value="60" />
<property name="jms_receive_timeout" value="30" />
<property name="esbSystemForBPEL" value="BPELSystem" />
<property name="InboundRetryCount" value="3" />
<property name="InboundRetryInterval" value="5" />
<property name="InboundRetryEnabled" value="true" />
<property name="OutboundRetryCount" value="3" />
<property name="OutboundRetryInterval" value="5" />
<property name="OutboundRetryEnabled" value="true" /> -->
Now change the cluster_name to some othername like arpitrahi and make these changes in both the nodes.
Ensure that the primary_oc4j is set to false.
From 10.1.3.4 onwards we have some extra properties added to it they are
<property name="bpelSvcAutoDeletion" value="true" />
<property name="oracle.tip.esb.server.common.interceptor.IEsbMessageInterceptor" value="true" />
<property name="inboundMessageInterceptor" value="oracle.tip.esb.server.common.interceptor.test.TestInterceptor" />
<property name="outboundMessageInterceptor" value="oracle.tip.esb.server.common.interceptor.test.TestInterceptor" />
<property name="enqueuer_number" value="10" />
<property name="isConcreteSuffixRequired" value="false" />
they should be also uncommented.
Sometimes when you redeploy a BPEL process, because of failed deployment or may be some other issues BPEL process is not deployed correctly. SO any ESB services pointing to this BPEL process will delete this entry of BPEL process.
If you do not want to delete the process from ESB on undeployment from BPEL, we need to update esb_config.ini file located in
bpelSvcAutoDeletion=false
Default value of this property is true (and is not included in esb_config.ini). We are using this to override default behavior.
Once you make this change restart the server and you should be now good to go.
The orion-application.xml override the value in esb_config.ini so even if you make the changes in orion-application.xml it will work.
By default ESB_DT uses a file-based slide repository. to change it to database-based slide repository
GO to SOA_HOME\integration\esb\config
Copy Domain_DB.xml and rename it as Domain.xml
Once these changes are done .Restart your SOA Server.
==========================================================
Now Set the cluster name in the ESB console
log in to the ESB consolehttp://host:port/esb
select DefaultSystem
give Cluster Name: arpitrahi
i have giventhe cluster name as arpitrahi you can put any name.
Virtual Host -provide the loadbalancer URL
Port -provide the loadbalancer port
now check this by logging in to both the esb console if the changes are reflceted in both the nodes or not.
====================================================
Now the most important configuration part is Configuring JNDI for the Topic and Topic Connection Factory.You should take care in these steps as any mistake in these changes will cause lot of issues in clustering of ESB.This step needs to be done for both the nodes and for both the container oc4j_soa and oc4j_ESBDT so in all you have to do these steps 4 times.
Now go to each node individually
Log in to the EM Control http://host:port/em and select the OC4J_SOA container
Then choose Administration tab
Go to task icon for Database Persistence
click on Deploy and enter the following:
Resource Adapter Module Name -OracleOJMS
In the bottom select Add a new resource provider to be used by this connector
provide Resource Provider Name as esbRP and Datasource JNDI Location as jdbc/esbaqdatasource
say ok and then restart the server.
Now again
log in to the em console
http://jost:port/em
select the OC4J_SOA->Administration->Database Persistence
Now select here the OJMS_RA
and then select Connection Factories
say create and Select javax.jms.XATopicConnectionFactory from the Connection Factory Interface
say continue
In the JNDI Location field, enter OracleOJMS/XATCF and click Finish
Again create one more connection factory by selecting javax.jms.TopicConnectionFactory from the Connection Factory Interface drop-down list and in JNDI Location field, enter OracleOJMS/TCF and click Finish.
Once done go to Administered Objects tab and say Create
There slect oracle.j2ee.ra.jms.generic.AdminObjectTopicImpl from the drop-down list and click Continue.
Provide the JNDI Location as ESBTopics and resourceProviderName as esbRP that we have created earlier.
then finish.
===============================================================
Updating the ESB Metadata
Go to the following location
SOA_HOME/integration/esb/bin and create a file named esbparam.properties
open the file and enter the following details their
DT_OC4J_HTTP_PORT=7777
DT_OC4J_HOST=arahi-pc1.idc.abc.com
PROP_NAME_DEFERRED_TOPIC_JNDI=ESBTopics/Topics/ESB_JAVA_DEFERRED
PROP_NAME_DEFERRED_TCF_JNDI=OracleOJMS/TCF
PROP_NAME_DEFERRED_XATCF_JNDI=OracleOJMS/XATCF
PROP_NAME_CONTROL_TOPIC_JNDI=ESBTopics/Topics/ESB_CONTROL
PROP_NAME_CONTROL_TCF_JNDI=OracleOJMS/XATCF
PROP_NAME_ERROR_TOPIC_JNDI=ESBTopics/Topics/ESB_ERROR
PROP_NAME_ERROR_TCF_JNDI=OracleOJMS/TCF
PROP_NAME_ERROR_XATCF_JNDI=OracleOJMS/XATCF
PROP_NAME_ERROR_RETRY_JNDI=ESBTopics/Topics/ESB_ERROR_RETRY
PROP_NAME_ERROR_RETRY_TCF_JNDI=OracleOJMS/XATCF
PROP_NAME_MONITOR_TOPIC_JNDI=ESBTopics/Topics/ESB_MONITOR
PROP_NAME_MONITOR_TCF_JNDI=OracleOJMS/TCF
PROP_NAME_INITIAL_CONTEXT_FACTORY=com.evermind.server.rmi.RMIInitialContextFactory
ACT_ID_RANGE=400
the only thing you need to change is DT_OC4J_HTTP_PORT and DT_OC4J_HOST It should be same as your loadbalancer url and port number.
Now again go to following location in command prompt
SOA_HOME/integration/esb/bin and run esbsetenv.bat
set ORACLE_HOME,JAVA_HOME and ANT_HOME
also ensure that the CLASSPATH contain SOA_HOME/integration/esb/lib/oraesb.jar
Now do the follwing
ant import-params -Dparamfile=esbparam.properties -DDB_URL=jdbc:oracle:thin:@//localhost:1521/ORCL -DDB_USER=oraesb -DDB_PASSWORD=welcome
Here in DDB_URL you have to provide your jdbc details.
Verify if it is completed successfully.
Finally after this update the esb topics from console
Log in to the ESB console http://host:port/esb
select Default System and Update the following properties
Topic Location as ESBTopics/Topics/ESB_JAVA_DEFERRED
and
Connection Factory Location as OracleOJMS/XATCF
Now restart your server.
Now your cluster is ready.Now deploy a process from jdeveloper in any of the node and you will be able to find it in both the nodes when accessed individually.
No comments:
Post a Comment