Message state maintenance at a cursor
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 consumer state at the cursor, the method comprising:
- receiving a request for a message from the message consumer;
in response to receiving the request for a message from the message consumer;
referring to a current read sequence number, the current read sequence number corresponding to the last message that was delivered;
sending a request for a next message to the message log, the request including the current read sequence number to indicate to the message log that the cursor last received the message corresponding to the current sequence number from the message log;
receiving a new message and a next sequence number from the message log, the next sequence number corresponding to the new message within the message log, the next sequence number being a sequence number after the current read sequence number;
delivering the new message to the message consumer;
receiving a deletion request from the message consumer, the deletion request requesting deletion of the new message; and
storing a record in the cursor state, the record indicating that the cursor considers the new message to be deleted.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for maintaining message state at a cursor. A message consumer requests messages from a cursor. The cursor can maintain state information for the message consumers separately from a message log that stores messages. Any of a variety of message delivery assurances can be used when delivering a message to a message consumer.
-
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 consumer state at the cursor, the method comprising:
-
receiving a request for a message from the message consumer; in response to receiving the request for a message from the message consumer; referring to a current read sequence number, the current read sequence number corresponding to the last message that was delivered; sending a request for a next message to the message log, the request including the current read sequence number to indicate to the message log that the cursor last received the message corresponding to the current sequence number from the message log; receiving a new message and a next sequence number from the message log, the next sequence number corresponding to the new message within the message log, the next sequence number being a sequence number after the current read sequence number; delivering the new message to the message consumer; receiving a deletion request from the message consumer, the deletion request requesting deletion of the new message; and storing a record in the cursor state, the record indicating that the cursor considers the new message to be deleted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. 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 consumer state at the cursor, the method comprising:
-
receiving a request for a message from the message consumer; in response to receiving the request for a message from the message consumer; referring to a current read sequence number, the current sequence read number corresponding to the last message that the message consumer delivered to the message consumer; sending a request for a next message to the message log, the request including the current read sequence number to indicate to the message log that the cursor last received the message corresponding to the current read sequence number from the message log; receiving a new message and a next sequence number from the message log, the next sequence number corresponding to the new message within the message log, the next sequence number being a sequence number after the current read sequence number; sending the new message to the message consumer; messaging operations failing at a component selected from among the cursor and the message consumer prior to updating the current read sequence number to the value of the next sequence number; messaging operations returning at the failed component subsequent to the messaging operations failing; receiving an additional request for a message from the message consumer subsequent to messaging operations returning; again sending the new message to the message consumer in response to the additional request; receiving a deletion request from the message consumer, the deletion request requesting deletion of the new message; and updating the current read sequence number to the value of the next sequence number in response to the deletion request. - View Dependent Claims (15, 16, 17, 18)
-
-
19. 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, the message log configured to accumulate messages from the message producer, in accordance with a message retention policy, from delivery to the message consumer; a receiving computer system, the receiving computer system comprising; one or more processors; system memory; and a cursor; a computer network, wherein the sending computer system and receiving computer are connected to the network; and wherein the receiving computer system further comprises one or more computer storage media having stored thereon computer-executable instructions for implementing a method for maintaining message consumer state at the cursor, the computer-executed instructions, when executed at one or more of the processors of the sending computer system, causing the receiving computer system to perform the method, the method comprising; receiving a request for a message from the message consumer; in response to receiving the request for a message from the message consumer; referring to a current read sequence number, the current read sequence number corresponding to the last message that the message consumer instructed the cursor to delete; sending a request for a next message to the message log, the request including the current read sequence number to indicate to the message log that the cursor last received the message corresponding to the current read sequence number from the message log; receiving a new message and a next sequence number from the message log, the next sequence number corresponding to the new message within the message log, the next sequence number being a sequence number after the current read sequence number; delivering the new message to the message consumer; receiving a deletion request from the message consumer, the deletion request requesting deletion of the new message; and updating the current read sequence number to the value of the next sequence number. - View Dependent Claims (20)
-
Specification