2.10. Clustering the Business Central Console

The Business Central Console can be clustered so that multiple instances of the console and the process engine attached to the console can share the same data in a persisted database. Clustering the console makes it possible to spread the available processes across the cluster, and it also ensures failover if a node in the cluster fails.
The JBoss BRMS rule engine, repository, user interface, and process designer are installed on one host, and instances of the business central console and the process engine are installed on one or more other hosts.

Procedure 2.6.  Installing the Business Central Console as a Cluster

  1. Download the JBoss BRMS standalone package file from the Red Hat Customer Support Portal at https://access.redhat.com. Select DownloadsDownload your softwareBRMS Platform and then select the version.
  2. Copy the downloaded archive onto the host where the JBoss BRMS engine, user interface, repository, and process designer will be installed. Extract the contents of the standalone zip archive to install the server. This creates the brms-standalone-5.3.1 directory which includes an installation of JBoss Enterprise Application Platform with JBoss Enterprise BRMS Platform deployed.
  3. Remove the following directories: jbpm-console.war, business-central-server.war, and jbpm-human-task.war from jboss-as/server/default/deploy/ as they will be deployed on other hosts. If the production profile is being used, remove the directories from jboss-as/server/production/deploy/.
  4. Edit the preferences.properties file located in jboss-brms.war/WEB-INF/classes/ by replacing the word localhost with the host's IP address for both the designer.url and guvnor.url properties.
  5. Edit the jbpm.xml file located in designer.war/profiles by replacing the word localhost with the host's IP address for the externalloadurl property.
  6. Copy the downloaded JBoss BRMS standalone archive onto the hosts where the Business Central Console and engine will be installed. Extract the contents of the standalone zip archive.
  7. Remove the following directories jboss-brms.war and designer.war from jboss-as/server/default/deploy/ as they have already been installed on the first host and are not required. If the production profile is being used, remove the directories from jboss-as/server/production/deploy/.
  8. Edit the jbpm.console.properties file, located in business-central-server.war/WEB-INF/classes/, by replacing the word localhost from the guvnor.host property with the IP address of the first host created in this procedure. This tells the current host where to locate the BRMS repository which is shared across the cluster.
  9. Add the current host's IP address to the jbpm.console.server.host property. This should be done for each node in the cluster where the Business Central Console will be installed.
  10. Update the persistence.xml file located in both business-central-server/WEB-INF/classes/META-INF/ and jbpm-human-task.war/WEB-INF/classes/META-INF/ to include the data source.
    <jta-data-source>java:/myDataSource</jta-data-source>
    Remove the following line from persistence.xml in both directories:
    <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
    Edit the following line to include the value update:
    <property name="hibernate.hbm2ddl.auto" value="update" />
  11. Start each of the nodes in the cluster with the following command, remembering to provide the partition name, UDP multicast address address, and host IP address:
    ./run.sh -c node1 -g partitionName -Djboss.messaging.ServerPeerID=1 -u UDPMulticastAddress -b hostIPAddress