DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
| Table of Contents |
|---|
General Information
The Qpid 0.6 release introduces a simplistic producer-side flow control mechanism into the Java Messaging Broker, causing producers to be flow-controlled when they attempt to send messages to an overfull queue.
Server configuration
Configuring a Queue to use flow control
Flow control is enabled on a producer when it sends a message to a Queue which is "overfull". The producer flow control will be rescinded when all Queues on which a producer is blocking become "underfull". A Queue is defined as overfull when the size (in bytes) of the messages on the queue exceeds the "capacity" of the Queue. A Queue becomes "underfull" when its size becomes less than the "flowResumeCapacity".
...
Where no flowResumeCapacity is set, the flowResumeCapacity is set to be equal to the capacity. Where no capacity is set, capacity is defaulted to 0 meaning there is no capacity limit.
Disk quotas
Broker Log Messages
There are four new Broker log messages that may occur if flow control through queue capacity limits is enabled.
Firstly, when a capacity limited queue becomes overfull, a log message similar to the following is produced
| Code Block |
|---|
MESSAGE [vh(/test)/qu(MyQueue)] [vh(/test)/qu(MyQueue)] QUE-1003 : Overfull : Size : 1,200 bytes, Capacity : 1,000
|
Then for each channel which becomes blocked upon the overful queue a log message similar to the following is produced:
| Code Block |
|---|
MESSAGE [con:2(guest@anonymous(713889609)/test)/ch:1] [con:2(guest@anonymous(713889609)/test)/ch:1] CHN-1005 : Flow Control Enforced (Queue MyQueue)
|
When enough messages have been consumed from the queue that it becomes underfull, then the following log is generated:
| Code Block |
|---|
MESSAGE [vh(/test)/qu(MyQueue)] [vh(/test)/qu(MyQueue)] QUE-1004 : Underfull : Size : 600 bytes, Resume Capacity : 800
|
And for every channel which becomes unblocked you will see a message similar to:
| Code Block |
|---|
MESSAGE [con:2(guest@anonymous(713889609)/test)/ch:1] [con:2(guest@anonymous(713889609)/test)/ch:1] CHN-1006 : Flow Control Removed
|
Obviously the details of connection, virtual host, queue, size, capacity, etc would depend on the configuration in use.
Client impact and configuration
...
| Code Block |
|---|
-Dqpid.flow_control_wait_failure=60000 -Dqpid.flow_control_wait_notify_period=10000 |
Failover issues
Older Clients
This feature was added for the 0.6 releaase of the Java Broker. If an older client connects to the broker then the flow control commands will be ignored and they will not be blocked. So to fully benefit from this new feature both Client and Broker need to be at least version 0.6.
Broker Log Messages
There are four new Broker log messages that may occur if flow control through queue capacity limits is enabled.
Firstly, when a capacity limited queue becomes overfull, a log message similar to the following is produced
| Code Block |
|---|
MESSAGE [vh(/test)/qu(MyQueue)] [vh(/test)/qu(MyQueue)] QUE-1003 : Overfull : Size : 1,200 bytes, Capacity : 1,000
|
Then for each channel which becomes blocked upon the overful queue a log message similar to the following is produced:
| Code Block |
|---|
MESSAGE [con:2(guest@anonymous(713889609)/test)/ch:1] [con:2(guest@anonymous(713889609)/test)/ch:1] CHN-1005 : Flow Control Enforced (Queue MyQueue)
|
When enough messages have been consumed from the queue that it becomes underfull, then the following log is generated:
| Code Block |
|---|
MESSAGE [vh(/test)/qu(MyQueue)] [vh(/test)/qu(MyQueue)] QUE-1004 : Underfull : Size : 600 bytes, Resume Capacity : 800
|
And for every channel which becomes unblocked you will see a message similar to:
| Code Block |
|---|
MESSAGE [con:2(guest@anonymous(713889609)/test)/ch:1] [con:2(guest@anonymous(713889609)/test)/ch:1] CHN-1006 : Flow Control Removed
|
Obviously the details of connection, virtual host, queue, size, capacity, etc would depend on the configuration in use.