Java Message Service configuration for WebSphere® Application Server

If you are setting up an environment with an integration cluster that is connected to one or more external systems, you need to configure the Java™ Message Service (JMS) for queue-based integration. You need to create queues that are accessible by the user interface, cron, and integration clusters. The report cluster does not require JMS queues.

Integration with external systems using message queues is supported through two default message order processing mechanisms. The first is sequential message processing, where the message order is guaranteed. The second is continuous message processing, where the messages are processed in parallel for better performance. The order in which messages are processed by this mechanism is not guaranteed.

When you use the continuous message processing, some messages that depend on a certain order can fail. For example, a vendor purchase order is processed before the vendor record is added. This processing order can prevent the purchase order from being processed. However, if the purchase order is reprocessed after the vendor record is added, the purchase order message is processed successfully.

The continuous message processing uses message-driven beans (MDBs) to process messages in a multi-threaded mode. There can be cases when the number of messages in error might reach a limit such that all MDBs continuously process only messages in error. This results in the number of messages in the queue to grow as no messages are processed successfully and removed from the queue. The limit for the number of error messages is equal to or greater than the maximum batch size of the queue multiplied by the number of MDBs deployed. In order to avoid this condition, configure the continuous queue with a corresponding error queue (exception destination). This configuration moves the messages in error to a different queue and allow new messages received into the queue to be processed.

The following table outlines the default setup for integration queues:

Table 1. Queues for a WebSphere Application Server setup
Queue Description
Sequential inbound queue Data comes in from external systems and is processed in the order in which the data is received.
Sequential outbound queue Data goes out of the system to external systems in the order in which the data is processed by the system.
Continuous inbound queue Data comes into the system from external systems that does not need to be processed in the order that the data is received. Messages can be processed in parallel by multiple MDBs.
Continuous inbound error queue Error messages that result from the continuous inbound queue are placed in this queue for message reprocessing and error handling.