Maintenance of message serialization in multi-queue messaging environments
First Claim
1. A computer system for managing a plurality of related messages generated by an application in a serial order and a serialization context generated by the application for each of the plurality of related messages to ensure that the plurality of related messages are transmitted in the serial order, the computer system comprising:
- at least one processor;
instructions recorded on a non-transitory computer-readable medium and executable by the at least one processor; and
the computer system further includesa queue assignment handler configured to associate the serialization context of the plurality of related messages with a source queue used to transmit a sequence of the related messages in the serial order based on the serialization context and configured to receive a change in queue assignment of the serialization context from the source queue to a target queue;
a queue monitor configured to monitor the related messages associated with the source queue and the target queue to assist with maintaining the sequence of the related messages in the serial order;
a queue scheduler configured to execute the change in queue assignment, including being configured toschedule transmission of the related messages to and from the source queue and the target queue so as to maintain the sequence of the related messages in the serial order;
determine, from the queue assignment handler, the change in queue assignment of the serialization context from the source queue to the target queue;
suspend transmission of existing messages of the related messages from the source queue and the target queue, and disable a placement of subsequent messages of the related messages into the source queue;
schedule placement of the subsequent messages of the related messages within the target queue;
resume transmission of the existing messages of the related messages from the source queue;
receive, from the queue monitor, notification of completion of the transmission of the existing messages of the related messages from the source queue; and
after receiving the notification of completion of the transmission of the existing messages of the related messages from the source queue, transmit the subsequent messages of the related messages from the target queue to thereby maintain transmission of the sequence of the related messages in the serial order using the serialization context;
wherein the source queue is included within a plurality of source queues, each having at least one serialization context, and wherein the change in queue assignment includes a consolidation of the serialization contexts of all of the plurality of source queues into association with the target queue;
wherein the queue assignment handler is configured to select the plurality of source queues from among a larger pool of source queues;
wherein the serialization context includes an identifier received from the application that originates the related messages, and that is associated with each of the related messages; and
wherein the queue scheduler is configured to execute the change in queue assignment, including being configured toschedule an initial transmission of the related messages from the source queue using the serialization context, prior to the change in queue assignment, andbegin transmission of the subsequent messages from the target queue, using the serialization context, subsequent to the notification.
2 Assignments
0 Petitions
Accused Products
Abstract
Messages may be provided to a source queue in serialized order, each message associated with a serialization context. The messages may be buffered in the source queue until a transmission time is reached, in turn, for each buffered message. Transmission-ready messages may be sent from the source queue according to the serialized order, using the serialization context, while continuing to store existing messages that are not yet transmission-ready. A queue assignment of the serialization context may be changed to a target queue. Subsequent messages may be provided with the serialization context to the target queue for buffering therein, while remaining transmission-ready messages may be continued to be sent from the source queue. The existing messages from the source queue associated with the serialization context may be determined to have been sent, and the subsequent messages may be sent from the target queue in serialized order, using the serialization context.
-
Citations
16 Claims
-
1. A computer system for managing a plurality of related messages generated by an application in a serial order and a serialization context generated by the application for each of the plurality of related messages to ensure that the plurality of related messages are transmitted in the serial order, the computer system comprising:
-
at least one processor; instructions recorded on a non-transitory computer-readable medium and executable by the at least one processor; and the computer system further includes a queue assignment handler configured to associate the serialization context of the plurality of related messages with a source queue used to transmit a sequence of the related messages in the serial order based on the serialization context and configured to receive a change in queue assignment of the serialization context from the source queue to a target queue; a queue monitor configured to monitor the related messages associated with the source queue and the target queue to assist with maintaining the sequence of the related messages in the serial order; a queue scheduler configured to execute the change in queue assignment, including being configured to schedule transmission of the related messages to and from the source queue and the target queue so as to maintain the sequence of the related messages in the serial order; determine, from the queue assignment handler, the change in queue assignment of the serialization context from the source queue to the target queue; suspend transmission of existing messages of the related messages from the source queue and the target queue, and disable a placement of subsequent messages of the related messages into the source queue; schedule placement of the subsequent messages of the related messages within the target queue; resume transmission of the existing messages of the related messages from the source queue; receive, from the queue monitor, notification of completion of the transmission of the existing messages of the related messages from the source queue; and after receiving the notification of completion of the transmission of the existing messages of the related messages from the source queue, transmit the subsequent messages of the related messages from the target queue to thereby maintain transmission of the sequence of the related messages in the serial order using the serialization context; wherein the source queue is included within a plurality of source queues, each having at least one serialization context, and wherein the change in queue assignment includes a consolidation of the serialization contexts of all of the plurality of source queues into association with the target queue; wherein the queue assignment handler is configured to select the plurality of source queues from among a larger pool of source queues; wherein the serialization context includes an identifier received from the application that originates the related messages, and that is associated with each of the related messages; and wherein the queue scheduler is configured to execute the change in queue assignment, including being configured to schedule an initial transmission of the related messages from the source queue using the serialization context, prior to the change in queue assignment, and begin transmission of the subsequent messages from the target queue, using the serialization context, subsequent to the notification. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product tangibly embodied on a non-transitory computer-readable medium and including executable code that, when executed, is configured to cause a data processing apparatus to:
-
generate a plurality of related messages in a serial order and generate a serialization context for each of the plurality of related messages to ensure that the plurality of related messages are transmitted in the serial order; determine a change in assignment of the serialization context from a source queue to a target queue, the serialization context being associated with the plurality of related messages and being used to maintain a sequence of the related messages in the serial order during transmission thereof from the source queue and the target queue; initiate a transition period in which the serialization context is associated with both the source queue and the target queue, and in which a first subset of the related messages in the serial order are present in the source queue and a second subset of the related messages in the serial order are present in the target queue; transmit, during the transition period, all of the first subset of related messages until the source queue is empty of the first subset of related messages; terminate the transition period including associating the serialization context exclusively with the target queue; transmit the second subset of related messages in the serial order from the target queue to maintain transmission of the sequence of the related messages in the serial order using the serialization context; wherein the source queue is included within a plurality of source queues, each having at least one serialization context, and wherein the serialization contexts of all of the plurality of the plurality of source queues are associated with the target queue during the transition period and the change in assignment includes a consolidation of the serialization contexts of all of the plurality of source queues into association with the target queue; wherein the plurality of source queues is selected from among a larger pool of source queues; wherein the serialization context includes an identifier received from an application that originates the related messages, and that is associated with each of the related messages; and wherein the change in assignment includes scheduling an initial transmission of the related messages from the source queue using the serialization context, prior to the change in assignment, and beginning transmission of the second subset of the related messages from the target queue, using the serialization context, subsequent to a notification of completion of the transmission of the first subset of the related messages from the source queue. - View Dependent Claims (10, 11, 12)
-
-
13. A method comprising:
-
generating, by at least one processor, a plurality of first related messages in a serialized order and generating a first serialization context for each of the plurality of first related messages to ensure that the plurality of first related messages are transmitted in the serialized order; providing, by the at least one processor, the plurality of first related messages in a sequence to a first source queue in the serialized order, each first related message associated with the first serialization context; buffering, by the at least one processor, the first related messages in the first source queue until a transmission time is reached, in turn, for each buffered message of the first related messages; sending, by the at least one processor, transmission-ready messages of the first related messages from the first source queue in the sequence according to the serialized order, using the first serialization context, while continuing to store existing messages of the first related messages that are not yet transmission-ready; changing, by the at least one processor, a queue assignment of the first serialization context to a target queue; providing, by the at least one processor, subsequent messages of the first related messages with the serialization context to the target queue for buffering therein, while continuing to send remaining transmission-ready messages of the first related messages from the first source queue; determining, by the at least one processor, that all of the existing messages from the first source queue associated with the serialization context have been sent; after determining that all of the existing messages from the first source queue associated with the serialization context have been sent, sending, by the at least one processor, the subsequent messages from the target queue according to the sequence in serialized order, using the serialization context; wherein the first source queue is included within a plurality of source queues, each having at least one serialization context, and wherein changing the queue assignment includes a consolidation of the serialization contexts of all of the plurality of source queues into association with the target queue; wherein the plurality of source queues is selected from among a larger pool of source queues; wherein the first serialization context includes a first identifier received from an application that originates the first related messages, and that is associated with each of the first related messages; and changing the queue assignment includes scheduling, by the at least one processor, an initial transmission of the first related messages from the source queue using the serialization context, prior to changing the queue assignment, and beginning, by the at least one processor, transmission of the subsequent messages from the target queue, using the serialization context, subsequent to a notification of completion of the transmission of the first related messages from the source queue. - View Dependent Claims (14, 15, 16)
-
Specification