Integration Server Clustering in Containers
This document describes how to install Integration Server into container environment and setup a cluster environment with Terracotta. As we know clustering is an advanced feature of the webMethods product suites that enables/extends the reliability, availability and scalability of the webMethods Integration Server.This below diagram shows clustering in a simplest form.
- One should know how to create install script of SoftwareAG products
- Minimum knowledge of Docker and Dockerfile
- Familiar with Linux commands
- A Linux server machine with Docker daemon running
Building a docker image for Integration Server
For building this image we need the below contents-
- Install script of Integration Server
- Integration Server license file
- A Dockerfile
At first we will create a install script by invoking SoftwareAG Installer. Please make sure you have uncheck the checkbox “Install products locally after script has been created” and also provide the server details in the Server tab.
Provide Installation directory
Select Integration Server and Database Configuration from the Installer tree
Provide Integration Server license key
Provide External DB details (In my case I am using DB2 database)
Click Next> and Generate the Script file.
Before creating the Dockerfile we need to replace some values from the install script so that it will work in the container environment.
Now we are good to go with the Dockerfile creation
We are taking centos as a base image. Our Dockerfile will look like this
Tasks that we are doing inside the dockerfile
- Installing JAVA and setting the PATH variable
- Copying install script file, Integration server license file, SoftwareAG installer to the image
- Running the SoftwareAG installer using the install script
- Displaying the content of the installLog file for Error checking.
- Creating DB storage
- Creating DB tables
- Starting Integration Server
Now keep your contents inside a folder like this-
Now build the image using the below command-
$docker build –-tag isimage:v.10.5 .
After a successful execution of this command a new image will be created.
Create Containers using the image
We are creating two containers having IS instances which will be further used to show the clustering.
$docker run –d –name isfirstcontainer –p 6767:5555 isimage:v.10.5
$docker run –d –name issecondcontainer –p 6969:5555 isimage:v.10.5
Check whether it is running or not by accessing the exposed ports. http://<dockerhost>:6969/, http://<dockerhost>:6767/
You can issue below command to check from the host
Install and start Terracotta Big Memory 4.3
Now we will install Terracotta Big Memory, but before installing please go through requirement page once. https://iwiki.eur.ad.sag/pages/viewpage.action?pageId=530152937&src=contextnavpagetreemode
Check for the supported platforms and pick one and go ahead. In my case I am installing it in an AIX platform.
Please make sure you select Terracotta Big Memory from Installer tree
Provide the correct license key while installing.
We are explicitly setting different configurations using a tc-config.xml file for terracotta server. Below is my tc-config.xml file
Mainly in this file you can define the data directory path for the terracotta server, terracotta server logs directory, terracotta server offHeap size and different ports that used by the terracotta server. This tc-config.xml file should be present <INSTALLDIR>/Terracotta/tc-config.xml
Now you can start the server using this tc-config.xml file using the below command
Navigate to <INSTALLDIR>/Terracotta/server/bin
$./start-tc-server.sh -f <INSTALLDIR>/Terracotta/tc-config.xml
You will get this if it started successfully.
Before enabling the cluster in IS, please copy terracotta license file into the below directory of each IS instance - <INSTALLDIR>/common/conf/
And please check JDBC pools page of each IS whether the pool is created or not. Cluster won’t work without the pool.
Configure the cluster
Enabling the cluster in the first IS-
Navigate to Settings-> Clustering- > Edit Cluster Settings
Enable the cluster and provide the required cluster information.
In my case my terracotta server array url is - <machinename>:7510, Save the settings and do the same for the other IS instance also.
And restart both the IS instances.
Verify the cluster
You will be able to see the both IS in cluster after restart.
This information can be verified from both of the IS Clustering page.