I discussed about Oracle Identity Analytics (OIA) installation here. In this post I am going to cover key points when deploying OIA in cluster for High Availability (Active-Active).
Note: This post assumes that you are familiar with deploying OIA in single node and steps here are only specific to cluster configuration.
1. OIA is a J2EE application deployed on WebLogic Server. For High Availability on application tier, configure two or more managed server in WebLogic Cluster and deploy OIA application on this WebLogic Cluster (Follow point 3-6 to create war file and deploy it to WebLogic Cluster ).
2. For database tier configure Oracle Real Application Cluster (RAC) . In $RBACX_HOME/conf/jdbc.properties use SCAN listener and service name for OIA database.
jdbc.url=jdbc:oracle:thin:@OIADB_SCAN_ADDRESS:DB_PORT/RAC_SERVICE_NAME
jdbc.quartz.isClustered=true
3. In file $RBACX_STAGE/WEB-INF/application-context.xml look for bean id=”commManager” then
a) Set Unique cluster name – for constructor-arg change value to a unique name like ‘cluster_oia’ (You can pick any name of your choice)
<constructor-arg index=”0″ value=”cluster_oia”/>
b) Add cluster members – Uncomment constructor-arg index=”1″ and set *hostnames* of OIA cluster members
<constructor-arg index=”1″ value=”OIA_HOST1;OIA_HOST2″/>
c) Set property name “enabled” to “true”
<property name=”enabled” value=”true”/>
Note: Documentation says use IP address for OIA_HOST1 & OIA_HOST2 but you must consider using hostname (or virtual name) so that you can fail transparently to Disaster Recovery site
.
4. Configure searchConfiguration in $RBACX_STAGE/WEB-INF/search-context.xml – In file search-context.xml look for bean id “searchConfiguration” and set contructor-arg value to 2
<!– Could be one of the following values
0: SINGLE_INSTANCE
1: RUNNING_IN_CLUSTER_NON_SHARED_INDEXES
2: RUNNING_IN_CLUSTER_SHARED_INDEXES –>
<constructor-arg index=”0″ type=”int” value=”2″/>
b) In same file (search-context.xml) change indexLocation value to shared files system so that both nodes can see .indexes
<property name=”indexLocation” value=”/full_path_of_shared_location/.indexes”/>
Note: You must copy content of .indexes from $RBACX_HOME/.indexes to .indexes folder mentioned above in search-context.xml file
.
5. Configure oscache for clustering – Update $RBACX_STAGE/WEB-INF/classes/oscache.properties and
a) uncomment cache.event.listeners cache.event.listeners=com.opensymphony.oscache. plugins.clustersupport. JavaGroupsBroadcastingListener, com.opensymphony.oscache.extra. CacheMapAccessEventListenerImpl
b) Uncomment cache.cluster.multicast.ip
cache.cluster.multicast.ip=231.12.21.100
6. If you are configuring logging which is defined using $RBACX_STAGE/WEB-INF/log4j.properties then ensure that value of log4j.appender.file= is not shared across two servers (OIA server on different machine should be able to write to this log location)
7. Time on servers where OIA is deployed in cluster must be in SYNC (Time on servers should be more than couple of seconds apart, use NTP Server)
Related/References