Duplicate message elimination during recovery when multiple threads are delivering messages from a message store to a destination queue
First Claim
1. A method, comprising:
- processing, by a plurality of message threads, operations to deliver messages from a message store to a destination queue, wherein one message thread processes one message;
generating an in-doubt list identifying messages that are in-progress of being delivered form the message store to the destination queue by the message threads;
adding, by one message thread processing one message, an entry including the message identifier and the thread identifier to a monitor queue;
adding, by the message thread, the message to the destination queue;
generating a recovery thread in response to detecting a failure in the processing by the message threads to deliver the messages from the message store to the destination queue; and
processing, by the recovery thread, the messages indicated in the in-doubt list and comparing with message identifiers in the monitor queue to prevent duplicate delivery of messages to the destination queue.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are a method, system, and program for duplicate message elimination during recovery when multiple threads are delivering messages from a message store to a destination queue. A plurality of message threads process operations to deliver messages from a message store to a destination queue, wherein one message thread processes one message. An in-doubt list is generated identifying messages that are in-progress of being delivered form the message store to the destination queue by the message threads. One message thread processing one message adds an entry including the message identifier and the thread identifier to a monitor queue. The message thread further adds the message to the destination queue. A recovery thread is generated in response to detecting a failure in the processing by the threads to deliver the messages from the message store to the destination queue. The recovery thread processes the messages indicated in the in-doubt list and compares with message identifiers in the monitor queue to prevent duplicate delivery of messages to the destination queue.
-
Citations
30 Claims
-
1. A method, comprising:
-
processing, by a plurality of message threads, operations to deliver messages from a message store to a destination queue, wherein one message thread processes one message;
generating an in-doubt list identifying messages that are in-progress of being delivered form the message store to the destination queue by the message threads;
adding, by one message thread processing one message, an entry including the message identifier and the thread identifier to a monitor queue;
adding, by the message thread, the message to the destination queue;
generating a recovery thread in response to detecting a failure in the processing by the message threads to deliver the messages from the message store to the destination queue; and
processing, by the recovery thread, the messages indicated in the in-doubt list and comparing with message identifiers in the monitor queue to prevent duplicate delivery of messages to the destination queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system, comprising:
-
a message store;
a destination broker;
a monitor queue;
a destination queue;
an in-doubt list identifying messages that are in-progress of being delivered form the message store to the destination queue;
a processor;
a plurality of message threads executed by the processor processing operations to deliver messages from the message store to the destination queue, by performing;
(i) adding, by one message thread processing one message, an entry including the message identifier and the thread identifier to a monitor queue;
(ii) adding the message to the destination queue;
a recovery thread generated by the processor in response to detecting a failure in the processing by the message threads to deliver the messages from the message store to the destination queue, wherein the recovery thread executed by the processor processes the messages indicated in the in-doubt list and compares with message identifiers in the monitor queue to prevent duplicate delivery of messages to the destination queue. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An article of manufacture comprising code executed to generate message threads and a recovery thread to perform operations with respect to a message store, a monitor queue, and a destination queue, wherein the operations comprise:
-
processing, by the message threads, operations to deliver messages from the message store to the destination queue, wherein one message thread processes one message;
generating an in-doubt list identifying messages that are in-progress of being delivered form the message store to the destination queue by the message threads;
adding, by one message thread processing one message, an entry including the message identifier and the thread identifier to a monitor queue;
adding, by the message thread, the message to the destination queue;
generating a recovery thread in response to detecting a failure in the processing by the message threads to deliver the messages from the message store to the destination queue; and
processing, by the recovery thread, the messages indicated in the in-doubt list and comparing with message identifiers in the monitor queue to prevent duplicate delivery of messages to the destination queue. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification