MESSAGE STATE MAINTENANCE AT A MESSAGE LOG
First Claim
1. In a componentized messaging system including a sending computer system with a message log, a second different receiving computer system with a cursor, and a computer network, wherein the sending computer system and the receiving computer system are connected to the network, the componentized message system for delivering messages from a message producer to a message consumer, the message log for capturing messages for delivery to the message consumer, the cursor maintaining message state for the message consumer such that message consumer state is maintained separate from the sending computer system, a method for maintaining message log state, the method comprising:
- an act of receiving a first message from the message producer that is to be stored in the message log;
an act of assigning a sequence number for the first message;
an act of indicating in the message log that the status of the first message is in doubt without making the portion of the message log corresponding to assigned sequence number visible to the cursor;
an act of attempting to write the first message to the message log;
an act of indicating the success or failure of writing the first message to the message log, success resulting in the assigned sequence number corresponding to the first message within the message log, failure resulting in the assigned sequence number not corresponding to any message within the message log;
an act of updating the status of the message to successful or failed based on the indicated success or failure of writing the message to the message log respectively; and
an act making the portion of message log corresponding to the assigned sequence number visible to the cursor subsequent to updating the status of the message.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for maintaining message state at a message log. Messages are accumulated at a message log in accordance with a message retention policy. Any of a variety of message capture assurances can be used when capturing a message from a message producer within a message log. A message becomes visible to message consumers after the outcome of writing the message is known (either failure or success). Messages are requested using (e.g., monotonically increasing) sequence numbers. Messages are also dropped from the message log in accordance with the message retention policy.
51 Citations
20 Claims
-
1. In a componentized messaging system including a sending computer system with a message log, a second different receiving computer system with a cursor, and a computer network, wherein the sending computer system and the receiving computer system are connected to the network, the componentized message system for delivering messages from a message producer to a message consumer, the message log for capturing messages for delivery to the message consumer, the cursor maintaining message state for the message consumer such that message consumer state is maintained separate from the sending computer system, a method for maintaining message log state, the method comprising:
-
an act of receiving a first message from the message producer that is to be stored in the message log; an act of assigning a sequence number for the first message; an act of indicating in the message log that the status of the first message is in doubt without making the portion of the message log corresponding to assigned sequence number visible to the cursor; an act of attempting to write the first message to the message log; an act of indicating the success or failure of writing the first message to the message log, success resulting in the assigned sequence number corresponding to the first message within the message log, failure resulting in the assigned sequence number not corresponding to any message within the message log; an act of updating the status of the message to successful or failed based on the indicated success or failure of writing the message to the message log respectively; and an act making the portion of message log corresponding to the assigned sequence number visible to the cursor subsequent to updating the status of the message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. In a componentized messaging system including a sending computer system with a message log, a second different receiving computer system with a cursor, and a computer network, wherein the sending computer system and the receiving computer system are connected to the network, the componentized message system for delivering messages from a message producer to a message consumer, the message log for capturing messages for delivery to the message consumer, the cursor maintaining message state for the message consumer such that message consumer state is maintained separate from the sending computer system, a method for maintaining message log state, the method comprising:
-
an act of accumulating a plurality of messages from the message producer in the message log in accordance with a message retention policy; an act of receiving a read request for a message from the cursor, the read request including a specified sequence number within the message log, the read request being for the next message subsequent to a specified sequence number within the message log; an act of identifying the next sequence number after the specified sequence number that corresponds to a message; and an act of returning the next sequence number and the corresponding message to the cursor. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A componentized messaging system for delivering messages from a message producer to a message consumer, the componentized message system comprising:
-
a sending computer system, the sending computer system comprising; one or more processors; system memory; and a message log a receiving computer system, the receiving computer system comprising; one or more processors; system memory; and a cursor, the cursor configured to maintain message state for the message consumer such that message consumer state is maintained separate from the sending computer system; a computer network, wherein the sending computer system and receiving computer are connected to the network; and wherein the sending computer system further comprises one or more computer storage media having stored thereon computer-executable instructions for implementing a method for maintaining message log state, the computer-executed instructions, that when executed at one of the processors of the sending computer system, cause the sending computer system to perform the method, including performing the following; accumulate a plurality of messages from the message producer in the message log in accordance with a message retention policy, including; receiving a first message from the message producer that is to be stored in the message log; assigning a sequence number for the first message; indicating in the message log that the status of the first message is in doubt without making the portion of the message log corresponding to assigned sequence number visible to the cursor; attempting to write the first message to the message log; and indicating the success or failure of writing the first message to the message log, success resulting in the assigned sequence number corresponding to the first message within the message log, failure resulting in the assigned sequence number not corresponding to any message within the message log; update the status of the message to successful or failed based on the indicated success or failure of writing the message to the message log respectively; and make the portion of message log corresponding to the assigned sequence number visible to the cursor subsequent to updating the status of the message; and provide messages to the cursor in response to message requests, including; receiving a request for a message from the cursor, the request including a specified sequence number within the message log, the request being for the next message subsequent to a specified sequence number within the message log; identifying the next sequence number after the specified sequence number that corresponds to a message; and returning the next sequence number and the corresponding message to the cursor. - View Dependent Claims (17, 18, 19, 20)
-
Specification