The following table illustrates a scenario where a JMS IQ Manager exceeds its specified threshold and begins to throttle selected producers. In this example, the JMS IQ Manager uses the following (default) values for throttling properties:
Server Throttling Threshold = 100,000
Per-Destination Throttling Threshold = 1,000
Throttling lag = 100
Two minutes after the server exceeds its limit, Topic_A, which has two subscribers and one publisher, is affected. Its publisher is throttled until the number of undelivered messages can drop below 900. Later, because the JMS IQ Manager is no longer loaded, the same topic builds up an even greater backlog without having its publisher throttled.
Table 1–6 Publisher Throttling Example
Time |
Total Messages on All Topics (Server) |
The Highest Sequence Number (Messages in Topic_A only) |
Comment |
||
---|---|---|---|---|---|
Read from Pub1: |
Sent to Sub1: |
Sent to Sub2: |
|||
11:37 |
98604 |
500 |
200 |
75 |
Server is not yet over limit. |
11:38 |
100307 |
800 |
500 |
150 |
Server is now over limit, but Topic_A is unaffected because its subscribers are keeping up well enough. |
11:39 |
101283 |
1100 |
800 |
225 |
Server is still over limit, Topic_A is still unaffected because only 875 messages are undelivered. |
11:40 |
103429 |
1350 |
1050 |
300 |
Now that it has 1050 undelivered messages, Topic_A has crossed the per-destination limit. While the server remains over limit, Pub1 will remain throttled until the number of undelivered messages falls below 900, which is the difference between the value specified by the Per-Destination Throttling Threshold and the value specified by the Throttling Lag). |
11:41 |
104031 |
1350 |
1300 |
375 |
Pub1 is throttled, Sub1 is nearly caught up, Sub2 is catching up but still has 975 undelivered messages. |
11:42 |
103204 |
1350 |
1350 |
449 |
Pub1 is throttled, Sub1 has caught up, Sub2 has 901 undelivered messages, which is still too many. |
11:43 |
102762 |
1350 |
1350 |
451 |
Although the server is still over limit, it unthrottles Pub1 because the undelivered message count for Topic_A has fallen below 900. |
11:44 |
101095 |
1375 |
1370 |
525 |
Server is over limit, but Topic_A is unaffected because it has only 850 undelivered messages. |
11:45 |
100028 |
1575 |
1500 |
600 |
Server is over limit, but Topic_A is unaffected because it has only 975 undelivered messages. |
11:46 |
99248 |
1900 |
1700 |
675 |
Server is no longer over limit. No publishers are throttled even though Sub2 has more than 1000 undelivered messages. |