The new feature, "Support for Message Priority" requires updates to the programming documentation to describe how to configure queues for priority queueing and how to set the priority in messages.
Hi Ted, Can you provide the content describing the new feature's? Method inputs, code examples, expected outputs (if any) and error information in addition to anything else you'd like documented. Thanks, Alison
To enable the feature a value for qpid.priorities needs to be specified in the arguments to the declare that creates the queue (e.g. with an address such as 'my-queue; {create: always, node:{x-declare:{arguments:{qpid.priorities:10}}}}'). The value determines the number of distinct priority levels recognised by the queue (up to a maximum of 10). The default is 1 level (i.e. no prioritised delivery). If the number of levels is greater than 1 but less than 10, specific priorities are mapped to levels as defined in the AMQP 0-10 specification (see rule 'priority-level-implementation'). For 10 levels the priorities map directly to levels. Ring queues with more than one priority level will remove messages by priority and then age (i.e. lowest priority messages will be removed first, and within a given priority level the oldest message will be removed first). The delivery order for browsing subscribers should be considered undefined on a queue with multiple priority levels. (At present they are browsed in FIFO order, but this should not be relied on).
If the documentation will document fairshare sub-feature, then it is necessary to describe both: - x-qpid-fairshare:<N> (common fairshare setting for all internal priority levels) - x-qpid-fairshare-<i>:<N> (custom fairshare setting for internal priority level <i>) - <i> goest from 0 to <M-1> where M is defined by x-qpid-priorities:<M>
(In reply to comment #3) > To enable the feature a value for qpid.priorities needs to be specified in the > arguments to the declare that creates the queue (e.g. with an address such as > 'my-queue; {create: always, > node:{x-declare:{arguments:{qpid.priorities:10}}}}'). The value determines the > number of distinct priority levels recognised by the queue (up to a maximum of > 10). The default is 1 level (i.e. no prioritised delivery). > > If the number of levels is greater than 1 but less than 10, specific > priorities are mapped to levels as defined in the AMQP 0-10 specification (see > rule 'priority-level-implementation'). For 10 levels the priorities map > directly to levels. > > Ring queues with more than one priority level will remove messages by priority > and then age (i.e. lowest priority messages will be removed first, and within > a given priority level the oldest message will be removed first). > > The delivery order for browsing subscribers should be considered undefined on a > queue with multiple priority levels. (At present they are browsed in FIFO > order, but this should not be relied on). I'm puzzling over where this new section on Priority should go. As it appears to describe queues moreso than messages I'm thinking it may be better suited to Chapter 3 in the Messaging User Guide. This also ties to Comment #4 as the only mention of x-qpid is in the User Guide under Queue Threshold Configuration (also in Chapter 3). Any thoughts?
Yes Chapter 3 is the right place. Could be just after 'last value queues' for example (i.e. its another type of semantic behaviour that can be configured for a queue).
(In reply to comment #4) > If the documentation will document fairshare sub-feature, then it is necessary > to describe both: > - x-qpid-fairshare:<N> (common fairshare setting for all internal priority > levels) > - x-qpid-fairshare-<i>:<N> (custom fairshare setting for internal priority > level <i>) > - <i> goest from 0 to <M-1> where M is defined by x-qpid-priorities:<M> Presently there's no mention of x-qpid-fairshare in the User Guide. Perhaps this should be a separate RFE bug for 2.1. AJY
The feature has been documented (except fairshare sub-feature, which is now tracked separately as bug 707913). -> VERIFIED