Optimistic processing of messages in a messaging system
First Claim
Patent Images
1. A method for a receiving queue manager to process messages optimistically, the method comprising:
- receiving, from a source queue manager, an indication that a message which forms part of a transaction is uncommitted;
determining from the message itself that the message is uncommitted;
storing, in response to the determination that the message is uncommitted, the message in memory, the memory having a table containing details of all uncommitted messages which form other parts of the transaction, the uncommitted messages having an assigned sending identification at the source queue manager that is correlated in the table with a receiving queue manager identification which is assigned when a new transaction is received at the receiving queue manager;
placing, in response to a determination that the transaction has been committed by an application which originated the message, the list of messages, including the uncommitted message, on a receive queue for processing therefrom;
removing, in response to placing the message of the transaction on a receive queue, reference to the transaction and an associated linked list of messages by updating the table; and
deleting, in response to receiving at the destination queue manager an indication that the transaction including the message is to be undone, the transaction from the memory;
wherein the table contains a plurality of entries, each of the plurality of entries contains a specific assigned sending identification and a specific receiving queue manager identification for a specific transaction, and each of the specific sending identification and the specific receiving queue manager identification point to a separate linked list of uncommitted messages owned by the specific transaction, andwherein each of the linked list of uncommitted messages represents a single transaction.
1 Assignment
0 Petitions
Accused Products
Abstract
For processing messages in a messaging system comprising a source and a destination queue manager, an uncommitted message is received from an application at the source queue manager. This is transmitted to the destination queue manager and received thereat. When it is determined that the message is uncommitted, it is stored in memory, rather than placing the message on a receive queue for processing by another application. If it is determined that the uncommitted message has been committed by the application which originated the uncommitted message, then it is placed on the receive queue.
-
Citations
19 Claims
-
1. A method for a receiving queue manager to process messages optimistically, the method comprising:
-
receiving, from a source queue manager, an indication that a message which forms part of a transaction is uncommitted; determining from the message itself that the message is uncommitted; storing, in response to the determination that the message is uncommitted, the message in memory, the memory having a table containing details of all uncommitted messages which form other parts of the transaction, the uncommitted messages having an assigned sending identification at the source queue manager that is correlated in the table with a receiving queue manager identification which is assigned when a new transaction is received at the receiving queue manager; placing, in response to a determination that the transaction has been committed by an application which originated the message, the list of messages, including the uncommitted message, on a receive queue for processing therefrom; removing, in response to placing the message of the transaction on a receive queue, reference to the transaction and an associated linked list of messages by updating the table; and deleting, in response to receiving at the destination queue manager an indication that the transaction including the message is to be undone, the transaction from the memory; wherein the table contains a plurality of entries, each of the plurality of entries contains a specific assigned sending identification and a specific receiving queue manager identification for a specific transaction, and each of the specific sending identification and the specific receiving queue manager identification point to a separate linked list of uncommitted messages owned by the specific transaction, and wherein each of the linked list of uncommitted messages represents a single transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus for a receiving queue manager to process messages optimistically, the apparatus comprising:
-
a processor; a memory, operatively coupled to the processor, and having stored thereon instructions executable by the processor to; receive an uncommitted message from a source queue manager, the uncommitted message forming part of a transaction; store, in response to a determination that the received message is uncommitted, the message in memory containing a list of uncommitted messages which form other parts of the transaction, the uncommitted messages having an assigned sending identification at the source queue manager that is correlated in a table with a receiving queue manager identification which is assigned when a new transaction is received at the receiving queue manager, remove, in response to a placement of the message of the transaction on a receive queue, reference to the transaction and an associated linked list of messages by updating the table, delete, in response to receipt at a destination queue manager, of an indication that the transaction including the received message is to be undone, the transaction from the memory; and in response to a determination that the transaction has been committed by an application which originated the message, place the list of messages, including the uncommitted message, on a receive queue for processing therefrom; wherein the table contains a plurality of entries, each of the plurality of entries contains a specific assigned sending identification and a specific receiving queue manager identification for a specific transaction, and each of the specific sending identification and the specific receiving queue manager identification point to a separate linked list of uncommitted messages owned by the specific transaction, and wherein each of the linked list of uncommitted messages represents a single transaction. - View Dependent Claims (9, 10)
-
-
11. A computer program product for a receiving queue manager to process messages optimistically, the computer program product comprising:
-
a non-transitory computer readable storage medium having computer readable program code tangibly embedded therein, the computer readable program code configured to; receive, from a source queue manager, an indication that a message which forms part of a transaction is uncommitted; in response to a determination that the message is uncommitted, store the message in memory, the memory having a table containing details of all uncommitted messages which form other parts of the transaction, the uncommitted messages having an assigned sending identification at the source queue manager that is correlated in the table with a receiving queue manager identification which is assigned when a new transaction is received at receiving queue manager; in response to a determination that the transaction has been committed by an application which originated the message, place the list of messages, including the uncommitted message, on a receive queue for processing therefrom; in response to placing the message on a receive queue, remove reference to the transaction and an associated linked list of messages by updating the table; and in response to receiving, at the destination queue manager, an indication that the transaction including the message is to be undone, delete the transaction from memory; wherein the table contains a plurality of entries, each of the plurality of entries contains a specific assigned sending identification and a specific receiving queue manager identification for a specific transaction, and each of the specific sending identification and the specific receiving queue manager identification point to a separate linked list of uncommitted messages owned by the specific transaction, and wherein each of the linked list of uncommitted messages represents a single transaction. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification