JMS clustering

JMS clustering provides high availability and load balancing capabilities that can be configured for your JMS queues.

High availability is critical for JMS systems that demand near-zero downtime. High availability ensures that, even if a JMS server in the cluster goes down, another JMS server in the cluster will remain up and running to process the messages. This automatic, seamless failover between servers will continue as long as at least one server in the cluster is running.

Load balancing enables you to distribute incoming load or concurrent JMS requests across multiple application server instances. The more nodes in the cluster, the more application traffic can be handled. If an instance were to fail, the application traffic would still be handled but by fewer nodes. More servers running in parallel can improve throughput and latency as client applications can spread the load across the servers.

IBM® supports different JMS cluster implementations, depending on the application server and whether the JMS cluster is used for integration services or agents. IBM supports both high availability and load balancing for integration services, but supports only high availability for agents, with the following exception. IBM does not support high availability for agents for JBoss Messaging JMS. Refer to the following subtopics for specifics about the supported configurations for each JMS server:
Note:

Oracle webLogic JMS

For Oracle WebLogic JMS, IBM supports both high availability and load balancing for integration services. You can set up customized configurations to use either high availability or load balancing, or a combination of both high availability and load balancing.

Note: IBM supports only high availability for agents.

When setting up JMS clustering on Oracle WebLogic JMS, ensure that:

IBM WebSphere MQ

For IBM WebSphere® MQ, IBM supports both high availability and load balancing for integration services. You can set up customized configurations to use either high availability or load balancing, or a combination of both high availability and load balancing.

Note: IBM supports only high availability for agents.

IBM WebSphere MQ provides different options for load balancing and high availability. The options that IBM support include:

When these two options are implemented together, they provide virtually complete high availability and load balancing capabilities. Note, however, that the URL for these may differ depending on what JNDI is used to host the Queues and Queue Connection Factories (QCFs). Also, load balancing and high availability for the JNDI needs to be considered separately from the queueing system.

Note: IBM has not tested and does not currently support WebSphere high availability clusters.

IBM WebSphere default messaging

For IBM WebSphere Default Messaging, IBM supports both high availability and load balancing for integration services. You can set up customized configurations to use either high availability or load balancing, or a combination of both high availability and load balancing.

Note: IBM supports only high availability for agents.

When setting up JMS clustering on IBM WebSphere Default Messaging, ensure that:

JBoss messaging JMS

For JBoss Messaging JMS, IBM supports both high availability and load balancing for integration services. You can set up customized configurations to use either high availability or load balancing, or a combination of both high availability and load balancing.

Notes:

JBoss provides an out-of-the-box clustered connection factory (ClusteredConectionFactory, located in connection-factories-service.xml) that can be used for your clustered environment. To enable load balancing, set the “supportsLoadBalancing” attribute to true so that consecutive attempts to create connections will round-robin between available servers; the first node is chosen randomly. To enable failover of connections, set the “supportsFailover” attribute to true so that failover will occur transparently and automatically whenever any connection error is detected.

When setting up JMS clustering on JBoss Messaging JMS, ensure that:

TIBCO EMS

For TIBCO EMS, IBM supports only high availability for both integration services and agents.

TIBCO has an active/passive model for high availability, and provides robust failover capabilities. When the primary server (the active server) in a cluster of two servers fails, the load automatically shifts to the secondary server (the passive server) in the cluster. When the primary server comes back online again, it comes up in passive mode, because the secondary server has now become the active server. If the secondary server fails, the load automatically shifts back to the original primary server, which becomes the active server again. This automatic failover between the two servers will continue as long as at least one server in the cluster is running.

When setting up JMS clustering on TIBCO EMS, the Provider ULR field in the JMS consumer SDF component must be set up as a comma-separated value comprising the host/IP and port. For example: tcp://devdell91001:7222,devdell04:72222