Method, system, and program for facilitating flow control
First Claim
Patent Images
1. A method for flow control between publishers and subscribers, comprising:
- associating, using a server computer including a processor, a first maximum limit a with first business process;
associating a blocking type that has a value of blocking with a first in-memory structure associated with the first business process, wherein the value of blocking indicates that a client application is to be notified to stop sending additional work requests when a maximum limit is reached for the first in-memory structure;
associating a second maximum limit with a second business process;
associating a blocking type that has a value of non-blocking with a second in-memory structure associated with the second business process, and wherein the value of non-blocking indicates that the client application is not blocked from sending additional work requests when the maximum limit is reached for the second in-memory structure;
issuing, at each of multiple client computers that each include a processor and at least one client application comprising a publisher, a work request produced by a client application for the first business process or the second business process; and
at the server computer including the processor, determining whether to throttle each client application by;
in response to determining that the work request is received for the second in-memory structure,comparing the second maximum limit with a number of work requests stored in the second in-memory structure;
in response to determining that the number of work requests stored in the second in-memory structure equals the second maximum limit, determining that the blocking type of the second in-memory structure is set to the value of non-blocking; and
in response to determining that the blocking type is set to the value of non-blocking, storing the work request in a structure other than the second in-memory structure; and
in response to determining that the work request is received for the first in-memory structure,comparing the first maximum limit with a number of work requests stored in the first in-memory structure;
in response to determining that the number of work requests stored in the first in-memory structure equals the first maximum limit, determining that the blocking type of the first in-memory structure is set to the value of blocking; and
in response to determining that the blocking type is set to the value of blocking, throttling a rate of work requests issued by the client application to match a retrieval rate of the business process by sending a notification to the client application that issued the received work request that additional work requests are not to be sent.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a technique for flow control. It is detected that a work request is being transferred to an in-memory structure. A maximum limit is compared with a number of work requests stored in the in-memory structure. If the number of work requests stored in the in-memory structure equals the maximum limit, a notification is sent that indicates that additional work requests are not to be sent.
33 Citations
24 Claims
-
1. A method for flow control between publishers and subscribers, comprising:
-
associating, using a server computer including a processor, a first maximum limit a with first business process; associating a blocking type that has a value of blocking with a first in-memory structure associated with the first business process, wherein the value of blocking indicates that a client application is to be notified to stop sending additional work requests when a maximum limit is reached for the first in-memory structure; associating a second maximum limit with a second business process; associating a blocking type that has a value of non-blocking with a second in-memory structure associated with the second business process, and wherein the value of non-blocking indicates that the client application is not blocked from sending additional work requests when the maximum limit is reached for the second in-memory structure; issuing, at each of multiple client computers that each include a processor and at least one client application comprising a publisher, a work request produced by a client application for the first business process or the second business process; and at the server computer including the processor, determining whether to throttle each client application by; in response to determining that the work request is received for the second in-memory structure, comparing the second maximum limit with a number of work requests stored in the second in-memory structure; in response to determining that the number of work requests stored in the second in-memory structure equals the second maximum limit, determining that the blocking type of the second in-memory structure is set to the value of non-blocking; and in response to determining that the blocking type is set to the value of non-blocking, storing the work request in a structure other than the second in-memory structure; and in response to determining that the work request is received for the first in-memory structure, comparing the first maximum limit with a number of work requests stored in the first in-memory structure; in response to determining that the number of work requests stored in the first in-memory structure equals the first maximum limit, determining that the blocking type of the first in-memory structure is set to the value of blocking; and in response to determining that the blocking type is set to the value of blocking, throttling a rate of work requests issued by the client application to match a retrieval rate of the business process by sending a notification to the client application that issued the received work request that additional work requests are not to be sent. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An article of manufacture comprising a computer readable medium storing code for flow control between publishers and subscribers, wherein the code when executed by a processor of a computer causes operations to be performed, the operations comprising:
-
associating, using a server computer including a processor, a first maximum limit with a first business process; associating a blocking type that has a value of blocking with a first in-memory structure associated with the first business process, wherein the value of blocking indicates that a client application is to be notified to stop sending additional work requests when a maximum limit is reached for the first in-memory structure; associating a second maximum limit with a second business process; associating a blocking type that has a value of non-blocking with a second in-memory structure associated with the second business process, and wherein the value of non-blocking indicates that the client application is not blocked from sending additional work requests when the maximum limit is reached for the second in-memory structure; issuing, at each of multiple client computers that each include a processor and at least one client application comprising a publisher, a work request produced by a client application for the first business process or the second business process; and at the server computer including the processor, determining whether to throttle each client application by; in response to determining that the work request is received for the second in-memory structure, comparing the second maximum limit with a number of work requests stored in the second in-memory structure; in response to determining that the number of work requests stored in the second in-memory structure equals the second maximum limit, determining that the blocking type of the second in-memory structure is set to the value of non-blocking; and in response to determining that the blocking type is set to the value of non-blocking, storing the work request in a structure other than the in-memory structure; and in response to determining that the work request is received for the first in-memory structure, comparing the first maximum limit with a number of work requests stored in the first in-memory structure; in response to determining that the number of work requests stored in the first in-memory structure equals the first maximum limit, determining that the blocking type of the first in-memory structure is set to the value of blocking; and in response to determining that the blocking type is set to the value of blocking, throttling a rate of work requests issued by the client application to match a retrieval rate of the business process by sending a notification to the client application that issued the received work request that additional work requests are not to be sent. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer system for flow control between publishers and subscribers, comprising:
-
a processor; and storage coupled to the processor, wherein the storage has stored thereon a program, and wherein the processor is configured to execute the program to perform operations, wherein the operations comprise; associating, using a server computer including a processor, a first maximum limit with a first business process; associating a blocking type that has a value of blocking with a first in-memory structure associated with the first business process, with a first in-memory structure associated with the first business process, wherein the value of blocking indicates that a client application is to be notified to stop sending additional work requests when a maximum limit is reached for the first in-memory structure; associating a second maximum limit with a second business process; associating a blocking type that has a value of non-blocking with a second in-memory structure associated with the second business process, and wherein the value of non-blocking indicates that the client application is not blocked from sending additional work requests when the maximum limit is reached for the second in-memory structure; issuing, at each of multiple client computers that each include a processor and at least one client application comprising a publisher, a work request produced by a client application for the first business process or the second business process; and at the server computer including the processor, determining whether to throttle each client application by; in response to determining that the work request is received for the second in-memory structure, comparing the second maximum limit with a number of work requests stored in the second in-memory structure; in response to determining that the number of work requests stored in the second in-memory structure equals the second maximum limit, determining that the blocking type of the second in-memory structure is set to the value of non-blocking; and in response to determining that the blocking type is set to the value of non-blocking, storing the work request in a structure other than the second in-memory structure; and in response to determining that the work request is received for the first in-memory structure, comparing the first maximum limit with a number of work requests stored in the first in-memory structure; in response to determining that the number of work requests stored in the first in-memory structure equals the first maximum limit, determining that the blocking type of the first in-memory structure is set to the value of blocking; and in response to determining that the blocking type is set to the value of blocking, throttling a rate of work requests issued by the client application to match a retrieval rate of the business process by sending a notification to the client application that issued the received work request that additional work requests are not to be sent. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification