CPC G06F 11/1474 (2013.01) [G06F 9/466 (2013.01); G06F 16/2365 (2019.01); G06F 2201/87 (2013.01)] | 20 Claims |
1. A system for transaction recovery in a multitenant application server environment, comprising:
a computer that includes one or more processors and an application server executing thereon, and having a domain for execution of software applications, and one or more resources that are deployable to the domain for use by the software applications;
wherein the application server comprises a domain configuration that is used at runtime to define the domain for execution of the software applications, a plurality of partitions, and one or more resource groups,
wherein each partition, of the plurality of partitions, is associated with a partition identifier and a partition configuration, and provides an administrative and runtime subdivision of the domain, wherein each partition comprises one or more software applications, one or more resource groups of the partition and one or more resource group template references;
a transaction manager operating within the application server, wherein a plurality of instances of the transaction manager are instantiated, respectively, in each partition of the plurality of partitions;
wherein a transaction begins executing in the context of a partition of the plurality of partitions, the transaction utilizing resources of the partition, resource managers of the partition, an instance of the transaction manager that is instantiated in the partition, and a determiner resource manager of a plurality of determiner resource managers provided within the application server, the determiner resource manager being exclusively scoped to the partition;
wherein upon a failure of the transaction executing in the context of the partition based upon an indication from the determiner resource manager that is exclusive scoped to the partition, the instance of the transaction manager that is instantiated in the partition recovers in-doubt transactions associated with the transaction executing in the context of the first partition without affecting transactions executing in the context of any other partition.
|