Patent ID: 7954112

Claim:
A processor implemented method of processing multiple independent messages in a recoverable data interchange, comprising: (a) for each message in said data interchange, checking if the message may be validly processed by writing each message to a corresponding virtual stream to check if the message contains a processing error that would prevent valid processing of the virtual stream; (b) if a message in said data interchange may not be validly processed, placing said message in a suspend queue, determining if a catastrophic failure has occurred, and suspending processing of all messages of said data interchange if a catastrophic failure has occurred; (c) if said message in said data interchange may be validly processed, rewinding the corresponding virtual stream, setting the rewound virtual stream as a message stream, and determining if a routing is available for said message; (d) if routing is available for said message, placing said message in a message queue, otherwise placing said message in said suspend queue; (e) said processor getting a next message in said data interchange; and (f) repeating steps (a)-(e) for at least said next message.