Integration Server Clustering in Containers

Overview

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.

Prerequisites

  1. One should know how to create install script of SoftwareAG products
  2. Minimum knowledge of Docker and Dockerfile
  3. Familiar with Linux commands
  4. A Linux server machine with Docker daemon running

Building a docker image for Integration Server

For building this image we need the below contents-

  1. Install script of Integration Server
  2. Integration Server license file
  3. 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

  1. Installing JAVA and setting the PATH variable
  2. Copying install script file, Integration server license file, SoftwareAG installer to the image
  3. Running the SoftwareAG installer using the install script
  4. Displaying the content of the installLog file for Error checking.
  5. Creating DB storage
  6. Creating DB tables
  7. 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.