System and method for supporting transaction affinity based on resource manager (RM) instance awareness in a transactional environment
First Claim
1. A method for supporting transaction processing in a transactional system comprising a plurality of transactional servers, and a clustered database comprising a plurality of resource manager (RM) instances, the method comprising:
- receiving a plurality of requests to the transactional system;
routing each of the plurality of requests to a transactional server of the plurality of transactional servers, wherein the transactional server is connected to an RM instance of the plurality of RM instances;
establishing for each of the plurality of requests an affinity context identifying a transactional server of the plurality of transactional servers, a database name, a database service name, an RM instance name associated with transactions responsive to said each of the plurality of requests;
storing in a shared memory the affinity contexts for said each of the plurality of requests;
receiving a subsequent request to the transactional system;
routing the subsequent request to a particular transactional server of the plurality of transactional servers using transaction affinity routing policy which identifies a relationship between the subsequent transaction and the stored affinity contexts established for the plurality of requests; and
wherein said transaction routing policy;
(a) routes the subsequent request to the particular transactional server associated with an affinity context which includes a same RM instance name, same database name, and same database service name as the subsequent request,(b) if no particular server is identified in step (a) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name and same database service name as the subsequent request,(c) if no particular server is identified in steps (a) and (b) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name and same RM instance name as the subsequent request,(d) if no particular server is identified in steps (a), (b) and (c) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name as the subsequent request, and(e) if no particular server is identified in steps (a), (b), (c) and (d) routes the subsequent request to the particular transaction server using a load balancing function.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method can support transaction processing in a transactional environment. A transactional system operates to route a request to a transactional server, wherein the transactional server is connected to a resource manager (RM) instance. Furthermore, the transactional system can assign an affinity context to the transactional server, wherein the affinity context indicates the RM instance that the transactional server is associated with, and the transactional system can route one or more subsequent requests that are related to the request to the transactional server based on the affinity context.
55 Citations
13 Claims
-
1. A method for supporting transaction processing in a transactional system comprising a plurality of transactional servers, and a clustered database comprising a plurality of resource manager (RM) instances, the method comprising:
-
receiving a plurality of requests to the transactional system; routing each of the plurality of requests to a transactional server of the plurality of transactional servers, wherein the transactional server is connected to an RM instance of the plurality of RM instances; establishing for each of the plurality of requests an affinity context identifying a transactional server of the plurality of transactional servers, a database name, a database service name, an RM instance name associated with transactions responsive to said each of the plurality of requests; storing in a shared memory the affinity contexts for said each of the plurality of requests;
receiving a subsequent request to the transactional system;routing the subsequent request to a particular transactional server of the plurality of transactional servers using transaction affinity routing policy which identifies a relationship between the subsequent transaction and the stored affinity contexts established for the plurality of requests; and wherein said transaction routing policy; (a) routes the subsequent request to the particular transactional server associated with an affinity context which includes a same RM instance name, same database name, and same database service name as the subsequent request, (b) if no particular server is identified in step (a) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name and same database service name as the subsequent request, (c) if no particular server is identified in steps (a) and (b) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name and same RM instance name as the subsequent request, (d) if no particular server is identified in steps (a), (b) and (c) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name as the subsequent request, and (e) if no particular server is identified in steps (a), (b), (c) and (d) routes the subsequent request to the particular transaction server using a load balancing function. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for supporting processing a global transaction in a transactional middleware environment, comprising:
-
one or more microprocessors; a transactional system comprising a plurality of transactional servers running on the one or more microprocessors, and a clustered database comprising a plurality of resource manager (RM) instances, wherein the transactional system operates to perform steps comprising receiving a plurality of requests to the transactional system; routing each of the plurality of requests to a transactional server of the plurality of transactional servers, wherein the transactional server is connected to an RM instance of the plurality of RM instances; establishing for each of the plurality of requests an affinity context identifying a transactional server of the plurality of transactional servers, a database name, a database service name, an RM instance name associated with transactions responsive to said each of the plurality of requests; storing in a shared memory the affinity contexts for said each of the plurality of requests; receiving a subsequent request to the transactional system; routing the subsequent request to a particular transactional server of the plurality of transactional servers using transaction affinity routing policy which identifies a relationship between the subsequent transaction and the stored affinity contexts established for the plurality of requests; and wherein said transaction routing policy; (a) routes the subsequent request to the particular transactional server associated with an affinity context which includes a same RM instance name, same database name, and same database service name as the subsequent request, (b) if no particular server is identified in step (a) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name and same database service name as the subsequent request, (c) if no particular server is identified in steps (a) and (b) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name and same RM instance name as the subsequent request, (d) if no particular server is identified in steps (a), (b) and (c) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name as the subsequent request, and (e) if no particular server is identified in steps (a), (b), (c) and (d) routes the subsequent request to the particular transaction server using a load balancing function. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory machine readable storage medium having instructions stored thereon for supporting transaction processing in a transactional system comprising a plurality of transactional servers, and a clustered database comprising a plurality of resource manager (RM) instances, which instructions, when executed, cause the transactional servers in the transactional system to perform steps comprising:
-
receiving a plurality of requests to the transactional system; routing each of the plurality of requests to a transactional server of the plurality of transaction servers, wherein the transactional server is connected to an RM instance of the plurality of RM instances establishing for each of the plurality of requests an affinity context identifying a transactional server of the plurality of transactional servers, a database name, a database service name, an RM instance name associated with transactions responsive to said each of the plurality of requests; storing in a shared memory the affinity contexts for said each of the plurality of requests; receiving a subsequent request to the transactional system; routing the subsequent request to a particular transactional server of the plurality of transactional servers using transaction affinity routing policy which identifies a relationship between the subsequent transaction and the stored affinity contexts established for the plurality of requests; and wherein said transaction routing policy; (a) routes the subsequent request to the particular transactional server associated with an affinity context which includes a same RM instance name, same database name, and same database service name as the subsequent request, (b) if no particular server is identified in step (a) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name and same database service name as the subsequent request, (c) if no particular server is identified in steps (a) and (b) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name and same RM instance name as the subsequent request, (d) if no particular server is identified in steps (a), (b) and (c) routes the subsequent request to the particular transaction server associated with an affinity context including a same database name as the subsequent request, and (e) if no particular server is identified in steps (a), (b), (c) and (d) routes the subsequent request to the particular transaction server using a load balancing function.
-
Specification