System and method for transaction recovery in a multitenant application server environment
First Claim
1. A system for transaction recovery in a multitenant application server environment, comprising:
- one or more computers, including an application server that enables deployment and execution of software applications, wherein the application server is associated with a domain configuration that is used at runtime to define;
a domain for execution of the software applications within the application server,a plurality of deployable resources which can be used within the application server,one or more resource groups, which include groupings of deployable resources for use by a partition within the domain, anda plurality of partitions within the domain for execution of the software applications within the application server, wherein each partition is associated with a partition configuration, and wherein each partition provides a subdivision of the domain that can be associated with a tenant and includes one or more resource groups;
a transaction manager operating in the application server, wherein a first instance of the transaction manager is instantiated in a first partition of the plurality of partitions within the domain for execution of the software applications within the first partition of the application server domain, and wherein a second instance of the transaction manager is instantiated in a second partition of the plurality of partitions within the domain for execution of the software applications within the second partition of the application server domain;
a determiner resource manager, the determiner resource manager being associated with the first partition of the plurality of partitions, the determiner resource manager being used in a transaction associated with the first partition; and
a plurality of resource managers, the plurality of resource managers adapted for use in the transaction associated with the first partition and transactions associated with the second partition;
wherein the first instance of the transaction manager is configured to process the transaction associated with the first partition by,sending a prepare message to the determiner resource manager only after receiving acknowledgement of successful prepare actions on the plurality of resource managers,sending a commit message to the determiner resource manager only after receiving acknowledgement of successful commit actions on the plurality of resource managers; and
upon a failure of the transaction associated with the first partition,retrieving a list of in-doubt transactions from each of the plurality of resource managers and the determiner resource manager, andrecovering in-doubt transactions associated with the first partition without using a transaction log and without affecting the transactions associated with the second partition.
1 Assignment
0 Petitions
Accused Products
Abstract
In accordance with an embodiment, described herein is a system and method for transaction recovery in a multitenant application server environment. At least one resource manager associated with a partition can be designated as a determiner resource for that partition only, in order to support eliminating transaction logs (TLOG) in processing a two-phase commit transaction. A transaction manager can prepare all other resource managers in the mid-tier transactional system before the determiner resource. Furthermore, the transaction manager can rely on the list of outstanding transactions to be committed that is provided by the determiner resource for recovering the transaction. The transaction manager can commit an in-doubt transaction returned from a resource manager that matches the list of in-doubt transactions returned from the determiner resource. Otherwise, the transaction manager can roll back the in-doubt transaction.
-
Citations
20 Claims
-
1. A system for transaction recovery in a multitenant application server environment, comprising:
-
one or more computers, including an application server that enables deployment and execution of software applications, wherein the application server is associated with a domain configuration that is used at runtime to define; a domain for execution of the software applications within the application server, a plurality of deployable resources which can be used within the application server, one or more resource groups, which include groupings of deployable resources for use by a partition within the domain, and a plurality of partitions within the domain for execution of the software applications within the application server, wherein each partition is associated with a partition configuration, and wherein each partition provides a subdivision of the domain that can be associated with a tenant and includes one or more resource groups; a transaction manager operating in the application server, wherein a first instance of the transaction manager is instantiated in a first partition of the plurality of partitions within the domain for execution of the software applications within the first partition of the application server domain, and wherein a second instance of the transaction manager is instantiated in a second partition of the plurality of partitions within the domain for execution of the software applications within the second partition of the application server domain; a determiner resource manager, the determiner resource manager being associated with the first partition of the plurality of partitions, the determiner resource manager being used in a transaction associated with the first partition; and a plurality of resource managers, the plurality of resource managers adapted for use in the transaction associated with the first partition and transactions associated with the second partition; wherein the first instance of the transaction manager is configured to process the transaction associated with the first partition by, sending a prepare message to the determiner resource manager only after receiving acknowledgement of successful prepare actions on the plurality of resource managers, sending a commit message to the determiner resource manager only after receiving acknowledgement of successful commit actions on the plurality of resource managers; and upon a failure of the transaction associated with the first partition, retrieving a list of in-doubt transactions from each of the plurality of resource managers and the determiner resource manager, and recovering in-doubt transactions associated with the first partition without using a transaction log and without affecting the transactions associated with the second partition. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for transaction recovery in a multitenant application server environment, comprising:
-
providing, at one or more computers, including an application server that enables deployment and execution of software applications, wherein the application server is associated with a domain configuration that is used at runtime to define; a domain for execution of the software applications within the application server, a plurality of deployable resources which can be used within the application server, one or more resource group, which include groupings of deployable resources for use by a partition within the domain, and a plurality of partitions within the domain for execution of the software applications within the application server, wherein each partition is associated with a partition configuration, and wherein each partition provides a subdivision of the domain that can be associated with a tenant and includes one or more resource groups; operating a transaction manager within the application server, wherein a first instance of the transaction manager is instantiated in a first partition of the plurality of partitions within the domain for execution of the software applications within the first partition of the application server domain, and wherein a second instance of the transaction manager is instantiated in a second partition of the plurality of partitions within the domain for execution of the software applications within the second partition of the application server domain; and associating a determiner resource manager with the first partition of the plurality of partitions, the determiner resource manager being used in a transaction associated with the first partition; and providing a plurality of resource managers, the plurality of resource managers adapted for use in the transaction associated with the first partition and transactions associated with the second partition; wherein the first instance of the transaction manager is configured to process the transaction associated with the first partition by, sending a prepare message to the determiner resource manager only after receiving acknowledgement of successful prepare actions on the plurality of resource managers, and sending a commit message to the determiner resource manager only after receiving acknowledgement of successful commit actions on the plurality of resource managers; and upon a failure of the transaction associated with the first partition, retrieving a list of in-doubt transactions from each of the plurality of resource managers and the determiner resource manager, and recovering in-doubt transactions associated with the first partition without using a transaction log and without affecting the transactions associated with the second partition. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable storage medium, including instructions stored thereon for transaction recovery in a multitenant application server environment which when read and executed by one or more computers cause the one or more computers to perform steps comprising:
-
providing, at one or more computers, including an application server that enables deployment and execution of software applications, wherein the application server is associated with a domain configuration that is used at runtime to define; a domain for execution of the software applications within the application server, a plurality of deployable resources which can be used within the application server, one or more resource group, which include groupings of deployable resources for use by a partition within the domain, and a plurality of partitions within the domain for execution of the software applications within the application server, wherein each partition is associated with a partition configuration, and wherein each partition provides a subdivision of the domain that can be associated with a tenant and includes one or more resource groups; operating a transaction manager within the application server, wherein a first instance of the transaction manager is instantiated in a first partition of the plurality of partitions within the domain for execution of the software applications within the first partition of the application server domain, and wherein a second instance of the transaction manager is instantiated in a second partition of the plurality of partitions within the domain for execution of the software applications within the second partition of the application server domain; and associating a determiner resource manager with the first partition of the plurality of partitions, the determiner resource manager being used in a transaction associated with the first partition; and providing a plurality of resource managers, the plurality of resource managers adapted for use in the transaction associated with the first partition and transactions associated with the second partition; wherein the first instance of the transaction manager is configured to process the transaction associated with the first partition by, sending a prepare message to the determiner resource manager only after receiving acknowledgement of successful prepare actions on the plurality of resource managers, and sending a commit message to the determiner resource manager only after receiving acknowledgement of successful commit actions on the plurality of resource managers; and upon a failure of the transaction associated with the first partition, retrieving a list of in-doubt transactions from each of the plurality of resource managers and the determiner resource manager, and recovering in-doubt transactions associated with the first partition without using a transaction log and without affecting the transactions associated with the second partition. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification