As described in Performance Issues, you can use the JMS IQ Manager as a semi-permanent storage medium only if you have sufficient memory and disk resources. To manage the memory and disk resources needed by the JMS IQ Manager, you use the publisher throttling feature. You can specify several properties for throttling, as described in the following sections:
The Per-Destination Throttling Threshold property specifies the maximum number of messages per topic or queue after which all producers of the message destination are throttled, assuming the Server Throttling Threshold has been exceeded. Once a producer is throttled, the JMS IQ Manager stops reading messages from it until the number of undelivered messages in the affected destination has dropped to less than the difference between the value specified by the Per-Destination Throttling Threshold and the value specified by the Throttling Lag. See also Throttling Lag.
An integer from 0 through 999,999,999 indicating the number of messages. If you specify 0, the publishers are never throttled.
The default is 1000 messages.
The Server Throttling Threshold property specifies the total number of messages for all message destinations combined before the JMS IQ Manager starts throttling any producers. For a detailed explanation and an example, see Throttling Producers.
An integer from 0 through 999,999,999 indicating the number of messages. If you specify 0, no producers are ever throttled.
The default is 100,000 messages.
Use the Throttling Lag property in combination with the Per-Destination Throttling Threshold property. Once a producer is throttled, the JMS IQ Manager stops reading messages from it until the number of undelivered messages in the affected destination has dropped to less than the difference between the value specified by the Per-Destination Throttling Threshold and the value specified by the Throttling Lag. See also Per-Destination Throttling Threshold.
An integer from 0 through 99,999,999. The value must be less than that of the Per-Destination Throttling Threshold property.
The default is 100 messages.
As described in Message Delivery Order, the JMS IQ Manager allows three different FIFO delivery modes: fully concurrent, protected concurrent, or fully serialized. By default, all message destinations use the fully concurrent delivery mode. For more information, see Figure 1–5.
In fully concurrent mode, receivers can retrieve messages from a destination only when all other messages have been received or are in the process of being received. Receivers can then commit messages without restrictions. As a result, messages can be committed out of sequence, which is not always desirable.
In the Special FIFO Modes panel, you can specify alternate properties for delivery order, as described in the following sections:
The Fully Serialized Queues property specifies which queues are fully serialized. In fully serialized mode, receivers can only retrieve messages after all previous messages for the message destination have been received and committed.
To implement serialized mode across multiple application servers, you must set the JMS clients for the consumers involved to serial mode. For more information, refer to Concurrency.
A list of existing queue names.
The Fully Concurrent Queues property specifies which queues use protected concurrent FIFO delivery mode. In protected concurrent mode, a receiver can retrieve messages just as in fully concurrent mode (only after all messages have been received or are being received), but messages can only be committed if all previous messages have been committed.
A list of existing queue names.
The FIFO Expiration Time property specifies the maximum amount of time to delay a commit request in special FIFO mode.
The default FIFO mode expiration time is 604800 seconds (168 hours).
By default, messages are processed by and delivered to Collaborations in the order in which they were committed to their destination, independent of messages associated with any other destination. Setting a specific time dependency causes the message processing order to be dependent on messages associated with other destinations. These destinations are specified using the Time Dependency Topics and Time Dependency Queues properties.
Messages associated with any of the destinations in the time dependency group are ordered in fully serialized mode. In other words, a message associated with a destination in this group is processed only after all older messages associated with any other destination in the time dependency group have been processed.
Message properties such as JMS priority have no effect when time dependency is used.
For a general overview of message processing order, refer to Message Delivery Order.
A list of queue or topic names.
If you specify a message destination that does not exist, Enterprise Manager enables time-based order for all other destinations and ignores the unknown name. This feature enables you to add topics and queues in your project at a later time.
When you specify time dependency, you cannot use a colon (:) or semicolon (;) in topic or queue names because they are already used for the time dependency value.