Patent ID: 8375095

Claim:
A method for dispatching messages from an incoming message pool to a plurality of service instances such that the messages are processed in a proper order, the method comprising: an act of non-destructively and exclusively receiving a first message from the incoming message pool such that a copy of the first message remains within the message pool and the copy of the first message that remains in the incoming message pool is locked for exclusive use by the service instance that is to process the message; an act of determining that none of the plurality of service instances is capable of processing the first message at least in the order provided; in response to the act of determining, buffering the unprocessed first message in a buffer separate from the message pool and deferring processing of the first message until it can be processed in the proper order; while the unprocessed first message is buffered, an act of non-destructively and exclusively receiving a second message from the incoming message pool such that there are two copies of the second message, one locked copy remaining in the incoming message pool and one copy being handled by a communication stack; an act of identifying a particular service instance that is capable of processing the second message in the order provided; and subsequent to the particular service instance processing the second message, determining that the particular service instance is ready to process the buffered first message; and an act of providing the buffered first message from the message buffer to the particular service instance for processing in the proper order.