In the previous Blog Post, I’ve installed the the first of two nodes of Sterling B2B Integrator. In this Post I will install the second Sterling B2B Integrator Node, and try to set those up as a Cluster.
Sterling B2B Integrator – Node 2
I will start by installing the second Sterling B2B Integrator Node. Set up a new VMWare server like below. And then follow the steps in the blog post STERLING B2B INTEGRATOR INSTALLATION: PART 2 – SB2BI NODE 1. The only difference is answering “Yes” on the Question “Is this node 2 or higher” in the Text based Installation Manager.
I will start by setting up a new server on my VMWare Workstation. This server is installed with the following setup:
|OS:||RedHat Enterprise Linux 7 64-bit – Minimal Install|
|Hard Disk:||50 GB|
|Network:||Static: 192.168.192.12 (Hostname: sinode2.demos.ibm.int)|
POST-Installation to enable clustering
I now have two Sterling B2B Integrator Nodes. But they just shares the database, and nothing else. To enable a cluster some configurations needs to be made.
In the file jgroups_cluster.properties.in file under <install dir>/install/properties/ I add/edit the initial_hosts variable the following line for each node:
For node 1: initial_hosts=192.168.192.11,192.168.192.12
For node 2: initial_hosts=192.168.192.12,192.168.192.11
setupFiles.sh needs to be run to apply the changes.
NB: I had one issue making the clustering work. The HOST_ADDR parameter in sandbox.cfg was missing, and thus the configuration in jgroups_cluster.properties was not working as desired since it is referring to HOST_ADDR. So I added the HOST_ADDR in sandbox.cfg on both the servers to make it work properly.
Shared Document Storage
Documents handled by Sterling B2B Integrator can be stored either in Database, or on File System. The database is already shared, so that is fixed, but the default document storage on file system for Sterling B2B Integrator is <install_dir>/install/documents. So that means that documents then will be stored on the node where they was processed. To avoid that, it is needed to create a shared Document Storage. For simplicity, I create a NFS Share on the Database Server that will be mounted on both the SB2BI Nodes. And then change the default Document Directory to that NFS Share.
On the Database server created earlier (sidb.demos.ibm.int), I install NFS Server.
Create a directory for the Shared Files. I created the directory /SI_Cluster_Share with the subfolder /documents.
Edit the file /etc/idmapd.conf and set the domain for the servers.
Then I edit the file /etc/exports and set the Shared folder and I share it for the whole network (can also be shared for specific IP’s etc.).
I run the following commands to start the NFS Services:
[root@sidb ~]# systemctl restart rpcbind
[root@sidb ~]# systemctl start nfs-server
[root@sidb ~]# systemctl start nfs-lock
[root@sidb ~]# systemctl start nfs-idmap
That’s it for the Server Side.
On the two Sterling B2B Integrator Servers, this shared folder needs to be mounted.
I start by creating a local Directory where the Shared Directory will be mounted. I created /SI_Cluster_Share.
Then I install the NFS Client software.
Then edit the file /etc/idmapd.conf and set the domain for the servers.
Run the following commands to start the NFS Services:
[root@sinode1 ~]# systemctl restart rpcbind
[root@sinode1 ~]# systemctl start nfs-lock
[root@sinode1 ~]# systemctl start nfs-idmap
[root@sinode1 ~]# systemctl start nfs-mountd
At the end I edit the file /etc/fstab to mount the folder on boot.
Run mount /SI_Cluster_Share to activate the mount.
Repeat the same procedure on the second Sterling B2B Integrator Node. Then the Shared folder on the database server is accessible for the two SB2BI Nodes.
Configure Sterling B2B Integrator
The last thing is to change the document_dir in the Sterling B2B Integrator Properties. If the Sterling B2B Integrator node is running, stop it first.
Under <install dir>/install/properties/ open the sandbox.cfg file for editing. Change the DOC_PAYLOAD_DIR to the Shared Folder.
To make the changes apply, run setupFiles.sh in <install dir>/install/bin/. Then start Sterling B2B Integrator. Do this on both nodes.
Add the following to the customer_overrides.properties.in file on each of the servers (change the ip on the second node) to enable sharing of configuration properties between the nodes.
Configure the Nodes
To configure the nodes, go to the properties directory on the servers. Start with Node 1, and run ./startCluster.sh 1 true. Afterwards, do the same on the second node, but change from 1 to 2 (./startCluster.sh 2 true).
The two nodes should now work as a cluster like the diagram below.