×

Duplicate message elimination during recovery when multiple threads are delivering messages from a message store to a destination queue

  • US 7,480,918 B2
  • Filed: 02/18/2005
  • Issued: 01/20/2009
  • Est. Priority Date: 02/18/2005
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method, comprising:

  • processing, by 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 by message identifiers that are in-progress of being delivered from the message store to the destination queue by the message threads;

    adding, by each of the message threads processing messages, an entry including the message identifier to a monitor queue, wherein the monitor queue indicates messages delivered to the destination queue;

    sending, by the message threads, the messages 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 message identifiers indicated in the in-doubt list and comparing with the message identifiers in the monitor queue to prevent duplicate delivery of messages already delivered to the destination queue by performing for each message in the in doubt list;

    receiving the message identifier of a message in the in-doubt list;

    determining whether the received message identifier is included in one entry in the monitor queue; and

    adding one entry to the monitor queue including the recovery thread identifier and the received message identifier in response to determining that the received message identifier is not included in one entry in the monitor queue; and

    reinitiating, by the recovery thread, the processing of the messages in the in-doubt list and comparing with message identifiers in the monitor queue to prevent duplicate delivery of messages to the destination queue in response to recovering from a failure that occurred while the recovery thread was processing messages indicated in the in-doubt list.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×