Implementing MQI indexed queue support using coupling facility list structures
First Claim
1. A method of managing retrieval of messages from a queue, each message on the queue having been sent by a sender application program, the method comprising:
- assigning an index key to a message in response to commit of the operation of putting the message on the queue, wherein the assigned index key comprises an attribute value of the message which was specified by the sending application when the message was sent; and
in response to a receiver application program requesting retrieval of messages from the queue and specifying the attribute value, monitoring the availability of messages in the queue with reference to said assigned index key, whereby the index key assigned to the message in response to said commit provides an index which is usable for identifying committed messages having the particular application-specified attribute value.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are a method, computer program product and system for providing indexed queue support for efficient retrieval of messages from a queue. An index key for expediting message retrieval is assigned to a message when the operation of placing the message on a queue is committed. The index assigned at commit time comprises an attribute (such as a message ID or correlation ID) specified by the sending application program which placed the message on the queue. This deferred assignment of an index key until commit time means that the index key can be used to search for messages having the particular attribute without any possibility of identifying messages for retrieval before the messages have been committed. This maintains transactional requirements of a transaction-oriented messaging system which requires a message to only be made available for retrieval by receiver application programs after the sender application'"'"'s put operation has committed, and is more efficient than a solution in which a message is made visible on a queue using a searchable index assigned at Put time but is locked until commit time. The invention also provides for efficient monitoring of message availability in response to retrieval requests which specify a wait option.
-
Citations
17 Claims
-
1. A method of managing retrieval of messages from a queue, each message on the queue having been sent by a sender application program, the method comprising:
-
assigning an index key to a message in response to commit of the operation of putting the message on the queue, wherein the assigned index key comprises an attribute value of the message which was specified by the sending application when the message was sent; and
in response to a receiver application program requesting retrieval of messages from the queue and specifying the attribute value, monitoring the availability of messages in the queue with reference to said assigned index key, whereby the index key assigned to the message in response to said commit provides an index which is usable for identifying committed messages having the particular application-specified attribute value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 17)
-
-
13. A program product comprising program code including executable program instructions recorded on a machine-readable recording medium, for controlling the performance of operations of a data processing apparatus on which it executes, the program code including:
-
program code for assigning an index key to a message in response to commit of the operation of putting the message on the queue, wherein the assigned index key comprises an attribute value of the message which was specified by the sending application when the message was sent; and
program code, responsive to a receiver application program requesting retrieval of messages from the queue and specifying the attribute value, for monitoring the availability of messages in the queue with reference to said assigned index key, whereby the index key assigned to the message in response to said commit provides an index which is usable for identifying committed messages having the particular application-specified attribute value.
-
-
15. A resource manager component for a data processing apparatus, for storing messages within a queue and storing index keys in association with the enqueued messages for use in retrieval of the messages from the queue, the resource manager component including:
-
means for assigning an index key to a message in response to commit of the operation of putting the message on the queue, wherein the assigned index key comprises an attribute value of the message which was specified by the sending application when the message was sent; and
means, responsive to a receiver application program requesting retrieval of messages from the queue and specifying the attribute value, for monitoring the availability of messages in the queue with reference to said assigned index key, whereby the index key assigned to the message in response to said commit provides an index which is usable for identifying committed messages having the particular application-specified attribute value.
-
-
16. A data processing apparatus including:
-
storage means;
a data processor;
a resource manager component for storing messages within a queue and storing index keys in association with the enqueued messages for use in retrieval of the messages from the queue, the resource manager component including;
means for assigning an index key to a message in response to commit of the operation of putting the message on the queue, wherein the assigned index key comprises an attribute value of the message which was specified by the sending application when the message was sent; and
means, responsive to a receiver application program requesting retrieval of messages from the queue and specifying the attribute value, for monitoring the availability of messages in the queue with reference to said assigned index key, whereby the index key assigned to the message in response to said commit provides an index which is usable for identifying committed messages having the particular application-specified attribute value.
-
Specification