Java CAPS JMS Reference

Messaging Behavior Page

Throttling Properties

Figure 1–19 Throttling Properties Panel

Screen capture showing Throttling properties
options.

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:

Per-Destination Throttling Threshold

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.

Allowed Values

An integer from 0 through 999,999,999 indicating the number of messages. If you specify 0, the publishers are never throttled.

Default Value

The default is 1000 messages.

Server Throttling Threshold

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.

Allowed Values

An integer from 0 through 999,999,999 indicating the number of messages. If you specify 0, no producers are ever throttled.

Default Value

The default is 100,000 messages.

Throttling Lag

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.

Allowed Values

An integer from 0 through 99,999,999. The value must be less than that of the Per-Destination Throttling Threshold property.

Default Value

The default is 100 messages.

Special FIFO Mode Properties

Figure 1–20 Special FIFO Modes Properties Panel

Screen capture showing Special FIFO Modes properties
options.

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:

Fully Serialized Queues

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.

Allowed Values

A list of existing queue names.

Protected Concurrent Queues

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.

Allowed Values

A list of existing queue names.

FIFO Expiration Time

The FIFO Expiration Time property specifies the maximum amount of time to delay a commit request in special FIFO mode.

Default Value

The default FIFO mode expiration time is 604800 seconds (168 hours).

Time Dependency Properties

Figure 1–21 Time Dependency Properties Panel

Screen capture showing Time Dependency properties
options.

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.


Note –

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.

Allowed Values

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.


Note –

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.