Method and apparatus for processing multiple service requests within a global transaction by a single server application program instance
First Claim
1. A computer implemented method for processing multiple service requests of a global transaction by a single server application program instance comprising the steps of:
- issuing a plurality of service requests to the server application program instance, wherein each of said plurality of service requests contains a global transaction identifier that identifies the global transaction of which said plurality of service requests are a part;
associating the server application program instance with said global transaction identifier;
establishing a list of transaction control endpoints for the server application program instance for receiving transaction control messages and sending responses to said transaction control messages;
before a commitment or a failure to commit, sequentially processing said plurality of service requests by the server application program instance;
monitoring transaction control endpoints specified in said list of transaction control endpoints for transaction control messages by the server application program instance, wherein each of said transaction control messages contains a function and is respectively associated with one of said plurality of service requests; and
processing said transaction control messages to ensure that the results of said sequentially processing said plurality of service requests by the server application program instance are either retained as a said commitment for all of said plurality of service requests or discarded as a said failure to commit for all of said plurality of service requests.
8 Assignments
0 Petitions
Accused Products
Abstract
A system is disclosed in which multiple service requests of a global transaction are processed by a single server application program instance without the use of multiple intermediate communication server instances. A client application program instance initiates a global transaction that results in multiple service requests to be processed according to the logic of a server application program. A single server application program instance is started to process the multiple service requests. For each of the multiple service requests, an associated transaction message control endpoint is provided to the single server application program instance. The single server application program instance monitors the associated endpoints for transaction control messages.
-
Citations
25 Claims
-
1. A computer implemented method for processing multiple service requests of a global transaction by a single server application program instance comprising the steps of:
-
issuing a plurality of service requests to the server application program instance, wherein each of said plurality of service requests contains a global transaction identifier that identifies the global transaction of which said plurality of service requests are a part;
associating the server application program instance with said global transaction identifier;
establishing a list of transaction control endpoints for the server application program instance for receiving transaction control messages and sending responses to said transaction control messages;
before a commitment or a failure to commit, sequentially processing said plurality of service requests by the server application program instance;
monitoring transaction control endpoints specified in said list of transaction control endpoints for transaction control messages by the server application program instance, wherein each of said transaction control messages contains a function and is respectively associated with one of said plurality of service requests; and
processing said transaction control messages to ensure that the results of said sequentially processing said plurality of service requests by the server application program instance are either retained as a said commitment for all of said plurality of service requests or discarded as a said failure to commit for all of said plurality of service requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
performing a function specified in a first received transaction control message for each of said plurality of service requests processed by the server application program instance;
responding immediately to transaction control messages having said function and received after said first received transaction control message; and
responding to said first received transaction control message after responding to transaction control messages having said function and received after said first received transaction control message.
-
-
5. The method of claim 2, wherein said establishing step includes the step of establishing a list OSI-TP transaction control endpoints.
-
6. The method of claim 4, wherein said establishing step includes the step of establishing a list of OSI-TP transaction control endpoints.
-
7. The method of claim 5, further including the step of starting a new server application program instance to process a service request when the server application program instance has not completed processing a previously issued service request.
-
8. The method of claim 7, wherein said establishing step includes the step of establishing a list of OSI-TP transaction control endpoints.
-
9. A computer implemented method for processing multiple service requests of a global transaction by a single server application program instance, comprising the steps of:
-
issuing a first service request that is part of a global transaction directly to the server application program instance;
associating said first service request with the server application program instance through an identifier which identifies said global transaction;
processing said first service request by the server application program instance;
providing access to a first transaction control endpoint to the server application program instance;
monitoring said first transaction control endpoint by the server application program instance for transaction control messages associated with said first service request, wherein said transaction control messages contain transaction control functions;
issuing a second service request that is part of the global transaction directly to the server application program instance;
associating said second service request with the server application program instance through said identifier which identifies said global transaction;
providing access to a second transaction control endpoint to the server application program instance;
restarting the server application program instance to process said second service request;
monitoring said second transaction control endpoint by the server application program instance for transaction control messages associated with said second service request;
processing said transaction control functions included in said transaction control messages, said transaction control functions to ensure that when a transaction manager sends a commit message to said server application program instance, either both of said first and second service requests are processed successfully to completion for commitment or the processing results from both of said first and second service requests are not retained; and
issuing responses to said transaction control messages. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
receiving a first transaction control message over said first transaction control endpoint by the server application program instance;
performing said function specified in said first transaction control message for said first service request and for said second service request upon receipt of said first transaction control message; and
issuing response messages to the transaction control message.
-
-
13. The method of claim 10, wherein said step of providing said first transaction control endpoint further includes the step of providing an OSI-TP control endpoint, and said step of providing said second transaction control endpoint includes the step of providing an OSI-TP control endpoint.
-
14. The method of claim 12, wherein said step of providing said first transaction control endpoint further includes the step of providing an OSI-TP control endpoint, and said step of providing said second transaction control endpoint includes the step of providing an OSI-TP control endpoint.
-
15. The method of claim 12, wherein said restarting step includes the step of starting a server application program second instance to process said second service request if the server application program instance has not completed processing said first service request.
-
16. The method of claim 12,
wherein said first transaction control message includes a prepare function; -
said performing step includes the step of performing a prepare function for said first service request and for said second service request;
and further including the steps of receiving a second transaction control message over the second transaction control endpoint, wherein said second transaction control message contains a prepare function for said second service request;
immediately issuing a response message to said second transaction control message to indicate that said prepare function was performed for said second service request;
after said step of issuing a response message to said second transaction control message, issuing a response message to said first transaction control message to indicate that said prepare function was performed for said first service request;
receiving a third transaction control message over said first transaction control endpoint, wherein said third transaction control message contains a commit function for said first service request;
performing said commit function for said first service request and for said second service request upon receipt of said third transaction control message;
receiving a fourth transaction control message over said second transaction control endpoint, wherein said fourth transaction control message contains a commit function for said second service request;
immediately issuing a response message to said fourth transaction control message to indicate that said commit function was performed for said second service request; and
after said step of issuing a response message to said fourth transaction control message, issuing a response message to said third transaction control message to indicate that said commit function was performed for said first service request.
-
-
17. The method of claim 15, wherein said of providing said first transaction control endpoint further includes the step of providing an OSI-TP control endpoint, and said step of providing said second transaction control endpoint includes the step of providing an OSI-TP control endpoint.
-
18. The method of claim 16, wherein said step of providing said first transaction control endpoint further includes the step of providing an OSI-TP control endpoint, and said step of providing said second transaction control endpoint includes the step of providing an OSI-TP control endpoint.
-
19. The method of claim 17, wherein said restarting step includes the step of starting a server application program second instance to process said second service request if the server application program instance has not completed processing said first service request.
-
20. The method of claim 19, wherein said step of providing said first transaction control endpoint further includes the step of providing an OSI-TP control endpoint, and said step of providing said second transaction control endpoint includes the step of providing an OSI-TP control endpoint.
-
21. A computer implemented method for processing multiple service requests of a global transaction, comprising the steps of:
-
establishing a global transaction identifier;
generating a first service request by a client application program instance, wherein said first service request includes said global transaction identifier;
obtaining a first transaction thread identifier for said client application program instance;
obtaining a first transaction control endpoint for said first service request;
associating said first transaction thread identifier with said global transaction identifier;
associating said first transaction control endpoint with said first transaction thread identifier;
issuing said first service request to a server application program instance using said first transaction control endpoint;
receiving said first service request on a server system;
obtaining a second transaction thread identifier on said server system for said server application program instance;
associating said second transaction thread identifier with said global transaction identifier from said first service request;
initiating said server application program instance to process said first service request; and
providing said server application program instance with a second transaction control endpoint for sending and receiving transaction control messages for said first service request, said transaction control messages to ensure that said first service request and any subsequent ones of the multiple service requests of the global transaction which are received by said server application program instance are either all processed or none are processed. - View Dependent Claims (22, 23, 24)
generating a second service request by a client application program instance, wherein said second service request includes said global transaction identifier;
issuing said second service request to the server application program instance;
receiving said second service request on said server system;
obtaining said second transaction thread identifier on said server system; and
starting a new server application program instance to process said second service request when the server application program instance identified by said second transaction thread identifier has not completed processing said first service request.
-
-
23. The method of claim 21, further including the steps of:
-
generating a second service request by a client application program instance, wherein said second service request includes said global transaction identifier;
issuing said second service request to the server application program instance;
receiving said second service request on said server system;
obtaining said second transaction thread identifier on said server system;
initiating on said server system said server application program instance to process said second service request;
providing said server application program instance with a third transaction control endpoint for sending and receiving transaction control messages for said second service request;
performing a function specified in a first received transaction control message for said first service request;
responding by said server application program instance immediately to transaction control messages having said function and received after said first received transaction control message; and
responding by said server application program instance to said first received transaction control message after responding to transaction control messages having said function and received after said first received transaction control message.
-
-
24. The method of claim 23, wherein said step of initiating the server application program instance includes the step of starting a new server application program instance to process said second service request when the server application program instance identified by said second transaction thread identifier has not completed processing said first service request.
-
25. A global transaction processing system, comprising:
-
a client data processing system;
a server data processing system coupled to said client data processing system;
issue means operable on said client data processing system for issuing a plurality of service requests belonging to a global transaction, wherein each of said plurality of service requests contains a global transaction identifier that identifies the global transaction of which said plurality of service requests are a part;
establishment means operable on said server data processing system for establishing a list of transaction control endpoints for receiving transaction control messages and sending responses to said transaction control messages;
server application program instance means operable on said server data processing system for sequentially processing said plurality of service requests and for monitoring transaction control endpoints specified in said list of transaction control endpoints for transaction control messages, wherein each of said transaction control messages contains a function and is respectively associated with one of said plurality of service requests;
association means coupled to said server application program instance means for associating the server application program instance means with said global transaction identifier; and
process means coupled to said server application program instance means for processing said transaction control messages.
-
Specification