Using JMS Trigger Groups with Round Robin in Universal Messaging
Note:Universal Messaging 10.2 and higher include the Horizontal Scaling feature which provides a connection factory that can be used to send and receive JMS messages from multiple realms. The Horizontal Scaling feature removes the need for the work around described below. Software AG recommends that you use the APIs offered by the Horizontal Scaling feature instead of the APIs provided for JMS Round Robin publishing. For more information about Horizontal Scaling, see the Universal Messaging documentation.
Universal Messaging provides a JMS connection factory that can be used to send messages to multiple Universal Messaging servers in a round-robin fashion. Using round-robin to distribute the messages across Universal Messaging servers helps to balance the messaging load and can improve message throughput. However, the connection factory for Universal Messaging JMS Round Robin Publishing works with message producers only. Message consumers, such as JMS triggers, cannot consume messages in a round-robin fashion using the round-robin connection factory. On Integration Server, you can work around this limitation by creating:
A JMS connection alias for each server in the
Universal Messaging cluster.
A JMS trigger for each destination (queue or topic) on a server in the
Universal Messaging cluster using one of the JMS connection aliases. Repeat this for each JMS connection alias. That is, create JMS trigger for each
Universal Messaging server and destination combination.
For example, consider a Universal Messaging cluster that consists of 3 servers with 50 queues on each server. On Integration Server, you would create 3 JMS connection aliases (one for each server in the Universal Messaging cluster) and 150 JMS triggers (50 destinations multiplied by 3 servers in the Universal Messaging cluster). This can be time consuming and error prone. Additionally it does not scale. Supposed you add another server to the Universal Messaging cluster. On Integration Server you need to add one more JMS connection alias and 50 more JMS triggers. To facilitate the quick addition of new JMS triggers, use the methods in the com.wm.app.b2b.server.jms.consumer.JMSTriggerGroupFacade class to create a new JMS trigger by copying an existing JMS trigger. You can specify a different JMS connection alias for use with the new trigger. You can copy a specific trigger, all the JMS triggers in a particular package, all the JMS triggers that use a particular JMS connection alias.
Note:
The round-robin aspect of the publishing is handled by Universal Messaging. The Universal Messaging client that publishes the messages, i.e., Integration Server, is unaware of the round-robin messaging distribution. For information about configuring Universal Messaging JMS Round Robin Publishing, see the Universal Messaging documentation.