Method and apparatus for executing transaction programs in parallel
First Claim
1. A method for executing a plurality of transaction programs in parallel in a computer, comprising the steps of:
- provisionally updating a resource through a first transaction program and locking said resource;
determining if a second transaction program generates a request to update said resource which has been locked because of the provisional update through said first transaction program;
making said second transaction program exclusively wait and reproducing a third transaction program having an internal status identical to that of said second transaction program when said second transaction program generates said update request;
providing a virtual resource having an original status before the provisional update through said first transaction program;
provisionally updating said virtual resource through said third transaction program without exclusive wait; and
rolling back and closing said exclusively waiting second transaction program and executing commit in said reproduced third transaction program when rollback of said first transaction program is executed due to an abnormal situation detected in said first transaction program.
5 Assignments
0 Petitions
Accused Products
Abstract
The method of the present invention comprises the steps of: provisionally updating a resource through a first transaction program and locking the resource; determining if a second transaction program generates a request to update the resource which has been locked because of the provisional update through the first transaction program; making the second transaction program exclusively wait and reproducing a third transaction program having an internal status identical to that of the second transaction program when the second transaction program generates the update request; providing a virtual resource having an original status before the provisional update through the first transaction program; provisionally updating the virtual resource through the third transaction program without exclusive wait; and rolling back and closing the exclusively waiting second transaction program and executing commit in the reproduced third transaction program when rollback of the first transaction program is executed due to an abnormal situation detected in the first transaction program.
21 Citations
15 Claims
-
1. A method for executing a plurality of transaction programs in parallel in a computer, comprising the steps of:
-
provisionally updating a resource through a first transaction program and locking said resource;
determining if a second transaction program generates a request to update said resource which has been locked because of the provisional update through said first transaction program;
making said second transaction program exclusively wait and reproducing a third transaction program having an internal status identical to that of said second transaction program when said second transaction program generates said update request;
providing a virtual resource having an original status before the provisional update through said first transaction program;
provisionally updating said virtual resource through said third transaction program without exclusive wait; and
rolling back and closing said exclusively waiting second transaction program and executing commit in said reproduced third transaction program when rollback of said first transaction program is executed due to an abnormal situation detected in said first transaction program. - View Dependent Claims (2, 3)
resuming said exclusively waiting second transaction program and rolling back and closing said reproduced third transaction program when commit is normally executed in said first transaction program.
-
-
3. A method according to claim 1, wherein executable units of said first transaction program and said second transaction program are jobs, processes, tasks, or threads.
-
4. An apparatus for executing transaction programs in parallel in a computer, comprising:
-
a means for provisionally updating a resource through a first transaction program and locking said resource;
a means for determining if a second transaction program generates a request to update said resource which has been locked because of the provisional update through said first transaction program;
a means for making said second transaction program exclusively wait;
a means for reproducing a third transaction program having an internal status identical to that of said second transaction program when said second transaction program generates said update request;
a means for providing a virtual resource having an original status before the provisional update through said first transaction program;
a means for provisionally updating said virtual resource through said third transaction program without exclusive wait; and
a means for rolling back and closing said exclusively waiting second transaction program and executing commit in said reproduced third transaction program when rollback of said first transaction program is executed due to an abnormal situation detected in said first transaction program. - View Dependent Claims (5, 6)
a means for resuming said exclusively waiting second transaction program and rolling back and closing said reproduced third transaction program when commit is normally executed in said first transaction program.
-
-
6. An apparatus according to claim 4, wherein executable units of said first transaction program and said second transaction program are jobs, processes, tasks, or threads.
-
7. A computer-readable medium containing program instructions for executing a plurality of transaction programs in parallel in a computer, said program instructions including instructions for performing the steps of:
-
provisionally updating a resource through a first transaction program and locking said resource;
determining if a second transaction program generates a request to update said resource which has been locked because of the provisional update through said first transaction program;
making said second transaction program exclusively wait and reproducing a third transaction program having an internal status identical to that of said second transaction program when said second transaction program generates said update request;
providing a virtual resource having an original status before the provisional update through said first transaction program;
provisionally updating said virtual resource through said third transaction program without exclusive wait; and
rolling back and closing said exclusively waiting second transaction program and executing commit in said reproduced third transaction program when rollback of said first transaction program is executed due to an abnormal situation detected in said first transaction program. - View Dependent Claims (8, 9)
-
-
10. An apparatus for executing a plurality of transaction programs in a data processor, comprising:
-
(a) a program reproduction module connected to reproduce a requesting transaction program that has generated a request to access a blocked shared resource, and to generate a reproduced transaction program having an internal state substantially identical to that of said requesting transaction program;
(b) a virtual resource module adapted to provide to said reproduced transaction program a virtual shared resource updated by said reproduced transaction program without exclusive wait, said virtual shared resource having an internal state substantially identical to an original state of said shared resource, the original state being the state immediately before update by a first transaction program that has caused the shared resource to be blocked to said requesting transaction program;
(c) a resource access module adapted to transmit to a shared resource data from a transaction program, and adapted to rollback and close said requesting transaction program and executing commit in said reproduced transaction program, when rollback of the first transaction program is executed due to detection of an abnormal condition, wherein said apparatus for executing a plurality of transaction programs is adapted to execute transaction programs in parallel. - View Dependent Claims (11, 12)
-
-
13. A method for executing a plurality of transaction programs in a data processor, comprising:
-
(a) reproducing a requesting transaction program that has generated a request to access a blocked shared resource, and generating a reproduced transaction program having an internal state substantially identical to that of said requesting transaction program;
(b) updating by said reproduced transaction program without exclusive wait a virtual shared resource having an internal state substantially identical to an original state of said shared resource, the original state being the state immediately before update by a first transaction program that has caused the shared resource to be blocked to said requesting transaction program;
(c) accessing a resource to transmit to a shared resource data from a transaction program, and rolling back and closing said requesting transaction program and executing commit in said reproduced transaction program, when rollback of the first transaction program is executed due to detection of an abnormal condition, wherein said method for executing a plurality of transaction programs is adapted to execute transaction programs in parallel. - View Dependent Claims (14, 15)
-
Specification