Integration Server Clustering

Hi All,

First of all let me describe the current architecture:

wM version 9.6

There are two different data Center:

First Data Center:

4 Intergration Servers in Clustered Environment.

Second Data center(trying to setup):

4 IS- Not Clustered yet

Each data Center has its own local load balancer. There is also a Geo Load Balancer which routes the requests across to the local load balancer.

Both first and the Second data Center is connected to the same database.

My questions are as follows:

Since client application is connecting to our integration server via the geo load balancer, do we need to have the Integration servers in cluster? I have tested that the schedule services works similar to a clustered setup while its connected to the same Database ie only one runs at a time.

I do not have much concepts in Clustering of Integration server. can someone please assist on the benefits of clustering given the load balancer setup specified above.

Please note we only use local publish.

There’s little today which the IS still relies on clustering for. If your IS’s are mainly used for serving HTTP requests from clients, for example, the “stateless cluster” (i.e. no Terracotta behind the scenes) will be sufficient. If your scheduled tasks are configured to run on any node, you should also be perfectly fine.

Out of curiosity, what has led you down this path? Have you had issues with the clustered configuration?


Thanks Percio,

We are working on Active/Active/Passive status across data centers so that there is no down time even if the one of the data center boxes (hosting the Integration servers) goes for patching/outage.

One quick question: when do you think Clustering is needed if we do not have any GUI directly associated with the Integration servers?

If your processes depends on caching, you need to make sure all instances are in the same cluster, so the shared cache are available to all instances. Some example of caches:
RosettaNet, Business Process Management, Chem eStandards Module, ebXML or Trading Networks Caches.

The dependency on clustering seems to be decreasing slowly from version to version. I must admit I haven’t tested it recently to see exactly what still depends on it. However, as of v9.0, these are the things I understand still had dependencies on clustering:

  • Stateful services (i.e. if you want sessions to be maintained and shared across the servers)
  • Scheduled jobs with target node set to all or set to a specific node
  • JDBC Adapter notifications configured NOT to use a scheduled job
  • A handful of eStandards like Tong mentioned
  • Load balancing via the IS client library

By the way, I happen to have a clustered set of 9.6 IS’s. If it helps, these are the cache managers (with respective caches) I see:

  • SoftwareAG.IS.ART.IS_Cluster (ListenerDataStore, ListenerStateStore)
  • SoftwareAG.IS.Core.IS_Cluster (ClusterMembers, several OAuth* caches, SessionStore)
  • SoftwareAG.IS.PE.IS_Cluster (StepLatch)
  • SoftwareAG.IS.Services (ServiceResults)
  • SoftwareAG.IS.TN.IS_Cluster (TNDocAttribute, TNDocType, TNProfile, TNProfileId, etc.)

By the way, Tong, clustering is not a requirement for distributed caching. You could have a distributed Terracotta cache without clustering your IS’s.