IP Library › Granted Patent US 11,188,427
Granted Patent B2
US 11,188,427 · App. 14/865,371 · Granted Nov 30, 2021

System and method for transaction recovery in a multitenant application server environment

Inventors: Paul Parkinson (Orlando, FL); Hiromu Kato (San Francisco, CA); Arjav Desai (Mount Laurel, NJ)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F11/1474G06F9/466G06F16/2365G06F2201/87
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 11,188,427
App. No.
14/865,371
Granted
Nov 30, 2021
Kind
B2
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.

Claims (84)

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.

2. The system of claim 1 , wherein recovering all in-doubt transactions without using a transaction log comprises:

comparing the list of in-doubt transactions retrieved from each of the plurality resource managers with the list of in-doubt transactions retrieved from the determiner resource manager; and

rolling back one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality resource managers but do not appear in the list of in-doubt transactions retrieved from the determiner resource manager.

3. The system of claim 1 , wherein recovering all in-doubt transactions without using a transaction log comprises:

comparing the list of in-doubt transactions retrieved from each of the plurality resource managers with the list of in-doubt transactions retrieved from the determiner resource manager; and

committing one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality of resource managers and which also appear in the list of in-doubt transactions retrieved from the determiner resource manager.

4. The system of claim 1 , wherein the determiner resource manager is designated as the determiner resource manager by the first partition of the plurality of partitions.

5. The system of claim 4 , wherein the first instance of the transaction manager persists the designation of the determiner resource manager in a configuration file.

6. The system of claim 1 , wherein recovering all in-doubt transactions without using a transaction log comprises:

comparing the list of in-doubt transactions retrieved from each of the plurality of resource managers with the list of in-doubt transactions retrieved from the determiner resource manager;

committing one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality of resource managers and which also appear in the list of in-doubt transactions retrieved from the determiner resource manager; and

rolling back one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality resource managers but do not appear in the list of in-doubt transactions retrieved from the determiner resource manager.

7. The system of claim 1 , wherein, upon the failure, the system is configured to commit transactions which appear in the list of in-doubt transactions retrieved from the determiner resource manager after recovering all other resource managers in the plurality of resource managers.

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.

9. The method of claim 8 , wherein recovering all in-doubt transactions without using a transaction log comprises:

comparing the list of in-doubt transactions retrieved from each of the plurality resource managers with the list of in-doubt transactions retrieved from the determiner resource manager; and

rolling back one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality resource managers but do not appear in the list of in-doubt transactions retrieved from the determiner resource manager.

10. The method of claim 8 , wherein recovering all in-doubt transactions without using a transaction log comprises:

comparing the list of in-doubt transactions retrieved from each of the plurality resource managers with the list of in-doubt transactions retrieved from the determiner resource manager; and

committing one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality of resource managers and which also appear in the list of in-doubt transactions retrieved from the determiner resource manager.

11. The method of claim 8 , wherein the determiner resource manager is designated as the determiner resource manager by the first partition of the plurality of partitions.

12. The method of claim 11 , wherein the first instance of the transaction manager persists the designation of the determiner resource manager in a configuration file.

13. The method of claim 8 , wherein recovering all in-doubt transactions without using a transaction log comprises:

comparing the list of in-doubt transactions retrieved from each of the plurality of resource managers with the list of in-doubt transactions retrieved from the determiner resource manager;

committing one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality of resource managers and which also appear in the list of in-doubt transactions retrieved from the determiner resource manager; and

rolling back one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality resource managers but do not appear in the list of in-doubt transactions retrieved from the determiner resource manager.

14. The method of claim 13 , further comprising,

upon the failure, committing transactions which appear in the list of in-doubt transactions retrieved from the determiner resource manager after recovering all other resource managers in the plurality of resource managers.

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.

16. The non-transitory computer readable storage medium of claim 15 , wherein recovering all in-doubt transactions without using a transaction log comprises:

comparing the list of in-doubt transactions retrieved from each of the plurality resource managers with the list of in-doubt transactions retrieved from the determiner resource manager; and

rolling back one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality resource managers but do not appear in the list of in-doubt transactions retrieved from the determiner resource manager.

17. The non-transitory computer readable storage medium of claim 15 , wherein recovering all in-doubt transactions without using a transaction log comprises:

comparing the list of in-doubt transactions retrieved from each of the plurality resource managers with the list of in-doubt transactions retrieved from the determiner resource manager; and

committing one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality of resource managers and which also appear in the list of in-doubt transactions retrieved from the determiner resource manager.

18. The non-transitory computer readable storage medium of claim 15 , wherein the determiner resource manager is designated as the determiner resource manager by the first partition of the plurality of partitions.

19. The non-transitory computer readable storage medium of claim 18 , wherein the first instance of the transaction manager persists the designation of the determiner resource manager in a configuration file.

20. The non-transitory computer readable storage medium of claim 15 , wherein recovering all in-doubt transactions without using a transaction log comprises:

comparing the list of in-doubt transactions retrieved from each of the plurality of resource managers with the list of in-doubt transactions retrieved from the determiner resource manager;

committing one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality of resource managers and which also appear in the list of in-doubt transactions retrieved from the determiner resource manager; and

rolling back one or more in-doubt transactions which appear in the list of in-doubt transactions retrieved from each of the plurality resource managers but do not appear in the list of in-doubt transactions retrieved from the determiner resource manager.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2015
From: PARKINSON, PAUL; KATO, HIROMU; DESAI, ARJAV
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 036677/0568 →
Continuity (2)
Provisional Application 62055858 · Sep 26, 2014
Related Publication 20160092319A1 · Mar 31, 2016
Cited By (1)
US 12,250,267