Patent ID: 7818447

Claim:
A method for controlling message flow between endpoints in a system comprising: storing, for each endpoint, flow control state information indicating whether each endpoint is in a receiving incoming message state; determining, by a first endpoint using a processor when a received data message is processed from a receive message queue, whether a first threshold is maintained in a buffer pool by determining whether the buffer pool has at least an amount of available buffer space as indicated by a first threshold and whether a second threshold is maintained in the receive message queue by determining whether there is at least an amount of the receive message queue available as indicated by a second threshold, wherein processing data messages of the receive message queue includes extracting portions of the data messages of the receive message queue and placing extracted portions in buffers obtained from the buffer pool; and sending, by a first endpoint, a control message to other endpoints indicating that said first endpoint is currently not accepting data messages from said other endpoints when said first endpoint determines that at least one of said first threshold and said second threshold is not maintained, wherein, said flow control state information for said first endpoint includes a first expiration time used in connection with determining when to resume sending data messages to said first endpoint, said control message including a time value that is used by an endpoint receiving said control message to determine said first expiration time for said first endpoint, wherein an endpoint receiving said control message resumes sending data messages to said first endpoint upon an earlier occurrence of reaching said first expiration time, or receiving another control message from said first endpoint indicating said first endpoint is accepting data messages, said another control message being sent when said buffer pool of said first endpoint has at least an amount of available buffer space as indicated by a third threshold and when said first endpoint has at least an amount of said receive message queue available as indicated by a fourth threshold.