The delivery order options above are configured for the JMS IQ Manager. The Sun Enterprise Service Bus JMS implementation enables you to configure topic subscribers as connection consumers to improve message throughput through concurrent processing. You can set the JMS client configuration with the Concurrency property as described in Concurrency.
The use of connection consumers increases message processing performance by enabling concurrent processing using multiple threads. You can specify the number of message driven beans (MDBs) or the server session pool to assign to a JMS Collaboration to process messages concurrently. When you use connection consumer with fully concurrent or protected concurrent FIFO processing, this default setting allows the integration server to assign multiple threads to execute the Collaboration on a particular message destination.
For queues, you can also process messages concurrently using multiple integration servers; these integration servers may run on different systems.
Using a JMS client connection consumer affects the message processing order. For example, consider the scenario shown in the following figure. The JMS IQ Manager is set to fully concurrent FIFO processing. However, each Collaboration on each integration server retrieves messages as they come in, and is able to commit them unrestricted to the queue. Therefore, although the JMS IQ Manager is configured for fully concurrent FIFO processing, message order cannot be guaranteed.
The concurrency mode affects FIFO processing in several ways. The following table lists how the JMS client concurrency mode settings affect the JMS IQ Manager FIFO mode selections for topics. For topics, only one integration server per subscriber can be used.
Table 1–4 Concurrency/FIFO Mode Interaction: Topics
Concurrency Mode |
Fully Concurrent FIFO Mode |
---|---|
Serial mode |
Fully serialized |
Connection consumer |
No strict order maintained |
The following table lists how the JMS client concurrency mode settings affect the JMS IQ Manager FIFO mode selections for queues.
Table 1–5 Concurrency/FIFO Mode Interaction: Queues
Application Servers |
Concurrency Mode |
FIFO Mode |
||
---|---|---|---|---|
Fully Serialized |
Protected Concurrent |
Fully Concurrent |
||
Single |
Serial |
Fully serialized |
Protected concurrent |
Fully serialized |
No concurrency |
No concurrency |
No concurrency |
||
Connection consumer |
Fully serialized |
Protected concurrent |
No strict order |
|
No concurrency |
Concurrent |
Concurrent |
||
Multiple |
Serial |
Fully serialized |
Protected concurrent |
No strict order |
No concurrency |
Concurrent |
Concurrent |
||
Connection consumer |
Fully serialized |
Protected concurrent |
No strict order |
|
No concurrency |
Concurrent |
Concurrent |