Patent ID: 8078911
Filing Date: 2011-12-13
Classification: G06F,H04L,Y02D

Abstract:
1. A method for a computer-implemented intermediary service to distribute incoming messages from an incoming pool of application-level messages to a plurality of message consumers while incorporating error handling in case of a delivery failure on a message by message basis, the method comprising: an act of performing a non-destructive exclusive read of a message from an incoming pool of application-level messages; an act of identifying one or more message consumers to be sent the read message; an act of creating a first transaction; an act of executing a first attempt to send the message to a first message consumer using a first transmission channel under the first transaction; an act of detecting that the first attempt failed to send the message to the first message consumer using the first transmission channel under the first transaction; an act of creating a first record recording that the first attempt failed; an act of rolling back the first transaction while retaining the first record; an act of creating a second transaction to send the message to the one or more message consumers; subsequent to the first transaction being rolled back, an act of creating a second transaction for sending the message to the one or more message consumers; prior to attempting to send the message to the one or more message consumers using the second transaction, an act of accessing the first record as part of the second transaction to determine whether there have been any previous failed attempts to send the message to any of the one or more message consumers during one or more previous transactions; and thereafter, if it is determined that the first record fails to indicate that there has been at least one previous failed attempt to send the message to any particular consumer during a previous transaction, an act of executing a second attempt to send the message to the particular consumer using a same channel under the second transaction that was previously used to send the message to the particular consumer, and when it is determined that the first record indicates that there has been at least one previous failed attempt to send the message to the first message consumer during a previous transaction, an act of executing a second attempt to send the message to the first consumer using a second transmission channel under the second transaction.