Queueing messages related by affinity set

Bibliographic Details
Title: Queueing messages related by affinity set
Patent Number: 10013,293
Publication Date: July 03, 2018
Appl. No: 13/453513
Application Filed: April 23, 2012
Abstract: In a messaging and queuing system that supports a cluster of logically associated messaging servers for controlling queues of messages, messages are processed. In response to an application program command to a first messaging server, a queue is opened, the queue having multiple instances on further messaging servers of the cluster. Responding to first messaging server putting messages on the queue, messages are distributed among the multiple instances of the queue on their respective messaging servers so as to balance. For the first message of an affinity set, access information for the particular queue instance to which it is put is obtained and stored. The access information may be used in order to send the further message to the particular queue instance and, if said further message is not part of the affinity set, it is put to an instance of the queue as determined by said predetermined rules.
Inventors: Schofield, Andrew J. (Eastleigh, GB); Willoughby, Philip G. (Eastleigh, GB)
Assignees: International Business Machines Corporation (Armonk, NY, US)
Claim: 1. A method of processing messages, including affinity sets of related messages, for use with a messaging and queuing system of the type capable of supporting a cluster, the method comprising: in response to an application program command to a messaging server, the messaging server opening a queue having multiple instances of the queue on respective messaging servers of the cluster, wherein the messaging server is among a plurality of logically associated messaging servers for controlling and hosting queues of messages, wherein the messaging server and respective messaging servers are logically associated, and in response, generating an object handle pointer to distribution information and saving the object handle pointer to distribution information, wherein the distribution information selects a particular queue instance for at least one message; in response to application program commands to the messaging server to put a plurality of messages on the queue, distributing messages among the multiple instances of the queue so as to balance a workload between at least two messaging servers according to predetermined rules, wherein the at least two messaging servers are among the plurality of logically associated messaging servers wherein distributing messages among the multiple instances of the queue on the respective messaging servers of the cluster is specified by an option in an application program command which causes selection of a queue instance to be deferred until a command to put messages on the queue is received, wherein distributing messages further comprises: using the object handle pointer to distribution information that identifies the particular queue instance for a first message of a plurality of messages; in response to selecting the particular queue instance for the first message, deriving distribution information from a message attribute of the first message and the first message is a first message of an affinity set; obtaining and storing distribution information for a particular queue instance to which the first message is put; in response to an application program command to the messaging server to put a first further message to the queue, wherein the first further message is part of the affinity set, sending the first further message to the particular queue instance using the distribution information, and further in response to the first further message being a first or intermediate member of the affinity set, the messaging server saving the object handle pointer to distribution information, otherwise not saving the object handle pointer to distribution information; and in response to an application program command to the messaging server to put a final message to the queue and further in response to determining that the final message is a final member of the affinity set, the messaging server not saving the object handle pointer to distribution information.
Claim: 2. The method as claimed in claim 1 , further comprising: referencing an distribution information associated with a predecessor message of the first message; and wherein putting the first further message of the affinity set to the queue comprises putting the first further message to a queue of the predecessor message.
Claim: 3. The method as claimed in claim 1 further comprising: in response to an application program command to the messaging server to put a second further message to the queue, wherein the second further message is not part of the affinity set, putting the second further message to an instance of the queue as determined by the predetermined rules.
Patent References Cited: 6226641 May 2001 Hickson et al.
2008/0019351 January 2008 Piper et al.

Other References: “Queue Manager Clusters” IBM Nov. 2000, 163 pages. cited by examiner
IBM, “MQSeries Application Programming Reference,” 1999, 18 pages. cited by examiner
Assistant Examiner: Yun, Carina
Primary Examiner: Sough, H.
Attorney, Agent or Firm: Kalaitzis, Parashos T.
Rolnik, Robert C.
Accession Number: edspgr.10013293
Database: USPTO Patent Grants
More Details
Language:English