Computer readable storage medium for protection against interleaving transactions using a transaction manager
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
exact text as granted — not AI-modified1 . 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.Join the waitlist — get patent alerts
Track US2008134182A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.