Workload sharing with queue destinations

If you add a server cluster to a service integration bus and deploy one or more messaging engines to the cluster, you can configure the cluster bus member for scalability. The messaging engines in the cluster bus member share the messaging workload associated with queue destinations deployed to the cluster.

See Service integration high availability and workload sharing configurations for more information about configuring messaging engines to share workload.

When you deploy a queue destination to a cluster, the queue is automatically partitioned across the set of messaging engines that is associated with the cluster. The availability characteristics of a partition are the same as those of the messaging engine it is localized by.

Sending messages to a partitioned queue destination

Typically, you create scalable cluster bus member and partition a queue destination if a single server cannot support the message processing load for the queue. To be used effectively, a partitioned queue requires multiple consumers with at least one consumer consuming from each partition.

If the producer of a message addressed to a destination is connected to a messaging engine that has a local partition of the destination, the message is handled by the local messaging engine, in other words, the message is sent to the local partition.

If the producer of a message addressed to a destination is connected to a messaging engine that does not have a local partition of the destination, the message is forwarded to a messaging engine that does have a partition. Messages are workload balanced across the available partitions, where the available partitions are partitions in messaging engines that are currently active.

Receiving messages from a partitioned queue destination

When a consumer session is created, the consumer is bound to one partition of the destination. If the consumer is connected to a messaging engine that has a local partition of the destination, the consumer is bound to that partition. If the consumer is connected to a messaging engine that does not have a partition of the destination, the consumer is bound to a partition in another messaging engine selected dynamically by the workload manager. Once bound, a consumer receives messages from the bound partition only. If the partition to which a consumer is bound does not have any messages, the consumer does not receive messages from alternative partitions, even if such partitions contain messages.

Typically, you create a partitioned destination when a single server cannot support the message processing load for a destination and there are multiple consumers. A typical use is a cluster of message-driven beans (MDBs). Each partition of the destination feeds messages to the MDBs in the local cluster server, so to ensure that all MDBs are supplied with messages, add messaging engines to the cluster and configure them so that there is a messaging engine running in each server. If you configure a partitioned destination in a cluster that does not have local consumers, it is important to have at least one consumer for each partition of the destination, to ensure that all messages are consumed. You can achieve this by configuring a sufficient number of consuming applications and configuring their ConnectionFactories to spread their connections across the messaging engines in the cluster.

If there is a high number of small messages and the MDBs do only a small amount of processing, you can use workload balanced messaging engines with partitioned queues, as described in this topic. If, however, the MDBs do a greater amount of processing of a lower number of messages, you might need only one messaging engine, but you need to deploy the MDBs to as many servers as possible, whether or not those servers have messaging engines, and even if those servers are not members of the same cell. A typical situation is when MDBs update a user database. For details about configuring MDB deployment across multiple servers, see Configuring MDB throttling on the default messaging provider.




Related concepts
Bus member types and their effect on high availability and workload sharing configuration
Queue destinations
Configuration for workload sharing or scalability
Workload sharing
Related tasks
Creating a queue for point-to-point messaging
Configuring high availability and workload sharing of service integration
Configuring MDB throttling on the default messaging provider
Concept topic Concept topic    

Terms and conditions for information centers | Feedback

Last updatedLast updated: Aug 31, 2013 4:28:44 AM CDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=pix&product=was-nd-mp&topic=cjt0014_
File name: cjt0014_.html