IP Library Granted Patent US 12,432,168
Granted Patent B1
US 12,432,168 · App. 18/613,555 · Granted Sep 30, 2025

Timeout processing for aggregation messaging in an integration environment

Inventors: Benjamin Graham Thompson (Eastleigh, GB); John Anthony Reeve (Winchester, GB)
Assignee: International Business Machines Corporation
H04L51/21H04L47/50
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,432,168
App. No.
18/613,555
Granted
Sep 30, 2025
Kind
B1
Abstract

A method includes: receiving an initial request message in a request queue of the messaging system; receiving an aggregation reply message in a reply queue of the messaging system, wherein the aggregation reply message is received from an integration system that processes the initial request message, and wherein the aggregation reply message includes an aggregation identifier associated with the initial request message; in response to receiving the aggregation reply message, starting a timeout process; monitoring the timeout process; holding one or more messages that are in the reply queue and that include the aggregation identifier until the timeout process expires or an expected number of responses has been received; and making available the one or more messages that are in the reply queue and that include the aggregation identifier based on the timeout process expiring or the expected number of responses having been received.

Claims (49)

1. A computer-implemented method comprising:

receiving, by a messaging system, an initial request message in a request queue of the messaging system, the initial request message being received from a requesting application;

receiving, by the messaging system, an aggregation reply message in a reply queue of the messaging system, wherein the aggregation reply message is received from an integration system that processes the initial request message for the requesting application, and wherein the aggregation reply message includes an aggregation identifier associated with the initial request message;

in response to receiving the aggregation reply message, starting, by the messaging system, a timeout process;

monitoring, by the messaging system, the timeout process;

holding, by the messaging system, one or more messages that are in the reply queue and that include the aggregation identifier until the timeout process expires or an expected number of responses has been received; and

making available, by the messaging system, the one or more messages that are in the reply queue and that include the aggregation identifier based on the timeout process expiring or the expected number of responses having been received.

2. The computer-implemented method of claim 1 , wherein the initial request message comprises an aggregation request message for aggregating responses from plural end applications.

3. The computer-implemented method of claim 2 , wherein the one or more messages that are in the reply queue and that include the aggregation identifier comprise one or more response messages received by the integration system from one or more of the plural end applications and written by the integration system directly to the reply queue.

4. The computer-implemented method of claim 1 , wherein the requesting application is prevented from reading the one or more messages that are in the reply queue and that include the aggregation identifier during the holding.

5. The computer-implemented method of claim 1 , wherein the requesting application is permitted to read the one or more messages that are in the reply queue and that include the aggregation identifier in response to the making available.

6. The computer-implemented method of claim 1 , wherein:

the one or more messages that are in the reply queue and that include the aggregation identifier comprise the aggregation reply message; and

based on the timeout process expiring and the reply queue including zero response messages that include the aggregation identifier, the making available comprises releasing the aggregation reply message to the requesting application.

7. The computer-implemented method of claim 6 , wherein the aggregation reply message comprises a zero-response timeout message.

8. The computer-implemented method of claim 1 , wherein:

the one or more messages that are in the reply queue and that include the aggregation identifier comprise one or more response messages that are in the reply queue and that include the aggregation identifier; and

based on the timeout process expiring and the one or more response messages being less than the expected number of responses, the making available comprises releasing the one or more response messages to the requesting application.

9. The computer-implemented method of claim 8 , wherein the one or more response messages are released to the requesting application as a single data set.

10. The computer-implemented method of claim 1 , wherein:

the one or more messages that are in the reply queue and that include the aggregation identifier comprise plural response messages that are in the reply queue and that include the aggregation identifier; and

based on the plural response messages being equal to the expected number of responses prior to the timeout process expiring, the making available comprises releasing the plural response messages to the requesting application prior to the timeout process expiring.

11. The computer-implemented method of claim 10 , wherein the plural response messages are released to the requesting application as a single data set.

12. The computer-implemented method of claim 1 , wherein the messaging system comprises message-oriented middleware between the requesting application and the integration system.

13. A computer program product comprising one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:

receive, by a messaging system, an initial request message in a request queue of the messaging system, the initial request message being received from a requesting application, and the messaging system comprising message-oriented middleware between the requesting application and an integration system;

receive, by the messaging system, an aggregation reply message in a reply queue of the messaging system, wherein the aggregation reply message is received from the integration system that processes the initial request message for the requesting application, and wherein the aggregation reply message includes an aggregation identifier associated with the initial request message;

in response to receiving the aggregation reply message, start, by the messaging system, a timeout process;

monitor, by the messaging system, the timeout process;

hold, by the messaging system, one or more messages that are in the reply queue and that include the aggregation identifier until the timeout process expires or an expected number of responses has been received; and

make available, by the messaging system, the one or more messages that are in the reply queue and that include the aggregation identifier based on the timeout process expiring or the expected number of responses having been received.

14. The computer program product of claim 13 , wherein:

the initial request message comprises an aggregation request message for aggregating responses from plural end applications; and

the one or more messages that are in the reply queue and that include the aggregation identifier comprise one or more response messages received by the integration system from one or more of the plural end applications and written by the integration system directly to the reply queue.

15. The computer program product of claim 13 , wherein the requesting application is prevented from reading the one or more messages that are in the reply queue and that include the aggregation identifier during the holding.

16. The computer program product of claim 13 , wherein the requesting application is permitted to read the one or more messages that are in the reply queue and that include the aggregation identifier in response to the making available.

17. A system comprising:

a processor set, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:

receive, by a messaging system, an initial request message in a request queue of the messaging system, the initial request message being received from a requesting application, and the messaging system comprising message-oriented middleware between the requesting application and an integration system;

receive, by the messaging system, an aggregation reply message in a reply queue of the messaging system, wherein the aggregation reply message is received from the integration system that processes the initial request message for the requesting application, and wherein the aggregation reply message includes an aggregation identifier associated with the initial request message;

in response to receiving the aggregation reply message, start, by the messaging system, a timeout process;

monitor, by the messaging system, the timeout process;

hold, by the messaging system, one or more messages that are in the reply queue and that include the aggregation identifier until the timeout process expires or an expected number of responses has been received; and

make available, by the messaging system, the one or more messages that are in the reply queue and that include the aggregation identifier based on the timeout process expiring or the expected number of responses having been received.

18. The system of claim 17 , wherein:

the initial request message comprises an aggregation request message for aggregating responses from plural end applications; and

the one or more messages that are in the reply queue and that include the aggregation identifier comprise one or more response messages received by the integration system from one or more of the plural end applications and written by the integration system directly to the reply queue.

19. The system of claim 17 , wherein the requesting application is prevented from reading the one or more messages that are in the reply queue and that include the aggregation identifier during the holding.

20. The system of claim 17 , wherein the requesting application is permitted to read the one or more messages that are in the reply queue and that include the aggregation identifier in response to the making available.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2024
From: THOMPSON, BENJAMIN GRAHAM; REEVE, JOHN ANTHONY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 066872/0584 →
References Cited (20)
US 5953316A · Lazar · 1999 [cited by examiner]
US 6615042B1 · Britt · 2003 [cited by examiner]
US 7783758B1 · Jeyaraman · 2010 [cited by examiner]
US 7996513B2 · Gorman · 2011 [cited by examiner]
US 8380820B1 · Kumarjiguda · 2013 [cited by examiner]
US 8738770B2 · Kumarjiguda · 2014 [cited by examiner]
US 8812694B2 · Kramarenko · 2014 [cited by examiner]
US 9942339B1 · Milyakov · 2018 [cited by examiner]
US 10447607B2 · Varadarajan · 2019 [cited by examiner]
US 10884832B2 · Dolby · 2021 [cited by examiner]
US 11734691B2 · Muthuswamy · 2023 [cited by examiner]
US 11818036B2 · Yang et al. · 2023 [cited by applicant]
US 20200310895A1 · Dolby et al. · 2020 [cited by applicant]
US 20210240711A1 · Coleman et al. · 2021 [cited by applicant]
US 20220150204A1 · Madhavan et al. · 2022 [cited by applicant]
US 20230327996A1 · Klenk et al. · 2023 [cited by applicant]
Anonymously, “Message flow aggregation”, https://www.ibm.com/docs/en/integration-bus/9.0.0?topic=aggregation-message-flow, IBM Documentation, Publication date Mar. 1, 2021, 4 pages. [cited by applicant]
Anonymously, “Time-Based Aggregator Example—Mule 4”, https://docs.mulesoft.com/aggregators-module/1.0/aggregators-time-example, MuleSoft Documentation, Accessed Jan. 3, 2024, 6 pages. [cited by applicant]
Anonymously, “A messaging based implementation for Aggregation”, https://priorart.ip.com/IPCOM/000135827, The IP.com Journal, IBM, Publication date Apr. 25, 2006, 9 pages. [cited by applicant]
Anonymously, “Aggregator”, https://docs.spring.io/spring-integration/reference/aggregator.html, Spring Integration, Accessed Jan. 3, 2024, 35 pages. [cited by applicant]