IP Library Patent Application 12030681
Patent Application
App. No. 12/030,681

COMPUTER READABLE STORAGE MEDIUM FOR PROTECTION AGAINST INTERLEAVING TRANSACTIONS USING A TRANSACTION MANAGER

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 None
App. No.
12/030,681
Abstract

A transaction manager maintains an enlistment data structure used for managing resource object enlistment. A transaction manager may receive an enlistment request initiated from a resource object. Upon receiving the request, the transaction manager will determine if the resource object is already enlisted. If the resource object is already enlisted, the transaction manager will block the enlistment request. If the resource object is not enlisted, the transaction manger will enlist the resource. Upon enlistment, the resource object will perform a requested task or service. After the requested task or service is complete, the resource initiates a delistment request to the transaction manager. After receiving the delistment request from the resource, object, the transaction manager is delisted from the enlistment data structure.

Claims (30)

1 . A method for protection against interleaving transactions, comprising:

communicating with a resource manager from an application, wherein multiple threads of the application utilize a shared logical connection to the resource manager;

communicating with the resource manager from a first thread of a transaction manager during two phase commit processing, wherein the first thread of the transaction manager associates a unique transaction identifier with work that is performed on the resource and subsequent application updates to the resource are associated with the unique transaction identifier;

enlisting a resource, wherein the resource is wrapped in an object that the transaction manager uses to synchronize concurrent enlistment requests; and

delisting a resource, wherein future application updates on the resource over the shared logical connection are disassociated from the unique transaction identifier;

wherein a second thread of the transaction manager is blocked from enlisting the resource until the first thread of the transaction manager has delisted the resource.

2 . The method of claim 1 , wherein the application communicates to the resource manager using a database connection or messaging service.

3 . The method of claim 1 , wherein each request to enlist the resource will first check to see if there is a lock being held on the resource by another thread of control.

4 . The method of claim 3 , wherein if a resource is not yet locked, a lock is granted to an accessor and held until the owner of the transaction ID delists the resource.

5 . The method of claim 4 , wherein waiting threads are signaled when a lock is freed and one of the waiting threads will be granted the lock and allowed to proceed with its enlistment.

6 . The method of claim 1 , wherein the transaction manager maintains a collection of wrapped objects which is consulted on each resource enlistment.

7 . The method of claim 6 , wherein the transaction manager maintains an enlistment data structure to manage the collection of wrapped objects.

8 . The method of claim 7 , wherein the transaction manager contains identification information regarding the resource within the enlistment data structure at least until the transaction manager receives a signal indicating the resource has generated a result or completed a service invoked by the application.

9 . The method of claim 8 , wherein at a predetermined time interval, each enlistment of a resource that has not been accessed for a certain period of time is delisted from the enlistment data structure.

10 . The method of claim 8 , wherein a resource is delisted from the enlistment data structure when it has not been accessed for a certain period of time.

11 . A computer-readable storage medium, storing instructions for protection against interleaving transactions, the instructions comprising:

communicating with a resource manager from an application, wherein multiple threads of the application utilize a shared logical connection to the resource manager;

communicating with the resource manager from a first thread of a transaction manager during two phase commit processing, wherein the first thread of the transaction manager associates a unique transaction identifier with work that is performed on the resource and subsequent application updates to the resource are associated with the unique transaction identifier;

enlisting a resource, wherein the resource is wrapped in an object that the transaction manager uses to synchronize concurrent enlistment requests; and

delisting a resource, wherein future application updates on the resource over the shared logical connection are disassociated from the unique transaction identifier;

wherein a second thread of the transaction manager is blocked from enlisting the resource until the first thread of the transaction manager has delisted the resource.

12 . The computer-readable storage medium of claim 11 , wherein the application communicates to the resource manager using a database connection or messaging service.

13 . The computer-readable storage medium of claim 11 , wherein each request to enlist the resource will first check to see if there is a lock being held on the resource by another thread of control.

14 . The computer-readable storage medium of claim 13 , wherein if a resource is not yet locked, a lock is granted to an accessor and held until the owner of the transaction ID delists the resource.

15 . The computer-readable storage medium of claim 14 , wherein waiting threads are signaled when a lock is freed and one of the waiting threads will be granted the lock and allowed to proceed with its enlistment.

16 . The computer-readable storage medium of claim 11 , wherein the transaction manager maintains a collection of wrapped objects which is consulted on each resource enlistment.

17 . The computer-readable storage medium of claim 16 , wherein the transaction manager maintains an enlistment data structure to manage the collection of wrapped objects.

18 . The computer-readable storage medium of claim 17 , wherein the transaction manager contains identification information regarding the resource within the enlistment data structure at least until the transaction manager receives a signal indicating the resource has generated a result or completed a service invoked by the application.

19 . The computer-readable storage medium of claim 18 , wherein at a predetermined time interval, each enlistment of a resource that has not been accessed for a certain period of time is delisted from the enlistment data structure.

20 . The computer-readable storage medium of claim 18 , wherein a resource is delisted from the enlistment data structure when it has not been accessed for a certain period of time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2010
From: BEA SYSTEMS, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025192/0244 →