Electrical computers and digital processing systems: multicomput – Multicomputer synchronizing
Reexamination Certificate
1998-11-30
2003-03-25
Courtenay, III, St. John (Department: 2126)
Electrical computers and digital processing systems: multicomput
Multicomputer synchronizing
C707S793000, C707S793000
Reexamination Certificate
active
06539434
ABSTRACT:
I. DESCRIPTION OF THE INVENTION
IA. Field of the Invention
This invention relates to computer operating systems. More specifically, this invention relates to techniques for handling IMS messages in the same execution environment or different execution environments. The invention provides a method for retrying a CQS PUT command, which puts messages into the coupling facility, for messages for which the PUT command failed.
The invention is embodied in a method for retrying the PUT command for a failed message using retry logic that operates on the unit of work element containing information about the failed message.
IB. Background of the Invention
This patent application is related to the following U.S. patent documents:
U.S. Pat. No. 5,410,684, entitled “LOG NAME EXCHANGE FOR RECOVERY OF PROTECTED RESOURCES” filed Sep. 20, 1993 by M. K. Ainsworth et al, continuation of Ser. No. 525,430 filed May 16, 1990;
U.S. Pat. No. 5,363,505, entitled “LOCAL AND GLOBAL COMMIT SCOPES TAILORED TO WORK UNITS” filed Jun. 9, 1993 by B. A. M. Maslak et al, continuation of Ser. No. 525,426 filed May 16, 1990;
U.S. Pat. No. 5,319,774, entitled “RECOVERY FACILITY FOR INCOMPLETE SYNC POINTS FOR DISTRIBUTED APPLICATION” filed May 16, 1990 by M. K. Ainsworth et al;
U.S. Pat. No. 5,436,736, entitled “COUPLING FACILITY FOR RECEIVING, COMMANDS FROM PLURALITY OF HOSTS FOR ACTIVATING SELECTED CONNECTION PATHS TO I/O DEVICES AND MAINTAINING STATUS THEREOF” filed Oct. 18, 1994 by D. A. Elko et al;
U.S. Pat. No. 5,706,432, entitled “MECHANISM FOR RECEIVING MESSAGES AT A COUPLING FACILITY” filed Jun. 7, 1995 by D. A. Elko et al;
U.S. Pat. No. 5,561,809, entitled “IN A MULTIPROCESSING SYSTEM HAVING A COUPLING FACILITY, COMMUNICATING MESSAGES BETWEEN THE PROCESSORS AND THE COUPLING FACILITY IN EITHER A SYNCHRONOUS OPERATION OR AN ASYNCHRONOUS OPERATION” filed Apr. 11, 1995 by D. A. Elko et al.
The above listed patents and the present application are owned by one and the same assignee, International Business Machines Corporation of Armonk, N.Y. and are incorporated herein by reference.
The present invention can be used in a network of computers that form part of a distributed computer system. Such a distributed computer system typically includes a central host computer and a plurality of virtual machines or other types of execution environments. A real machine includes a central processor and associated virtual machines. Within each such real machine a central computer, that includes the central processor, manages central resources of the real machine including a large memory and communication facilities. The central processor controls the access between the virtual machines and the resources so that each virtual machine appears to be a separate computer. The real machines may in turn be interconnected through a network into a global network to enable communications between applications running in execution environments belonging to different real machines. Each virtual machine is provided with its own conversation monitor system (CMS) to interact with (i.e., receive instructions from and provide prompts for) users of the virtual machine. CMS is a portion of the system control program. Certain resources such as shared file system (SFS) and shared structured query language (SQL) relational databases may be accessed by any user of the virtual machine and the host.
Each such system is a real machine. Two or more real machines can be connected to form a network, and data can be transferred using communications between virtual machines belonging to different real machines. Such a transfer is made via communication facilities such as AVS Gateway and VTAM facilities (“AVS Gateway and VTAM” are trademarks of IBM Corp. of Armonk, N.Y.).
Application running on any of the virtual machines may communicate with the coupling facility as well as with other applications running on the same or different virtual machines. Applications communicate by sending a message to the coupling facility. Like files and databases, communications are also protected resources.
An application can make changes to a database, file resource, or state of communication by first making a work request defining the changes. In response to a request for a change, provisional changes are made in shadow files while the original database or file is unchanged. When changes are made to shadow files, they are not committed. The application have the option of requesting that the changes be committed to validate the shadow file changes. Thereby, the changes made to the shadow file is transferred to the original file.
A one-phase commit procedure is often utilized to commit changes to the original file. The one-phase commit procedure consists of a command to commit changes to the resource as contained in the shadow file. When resources such as SFS or SQL resources are changed, the commits to the resources can be completed in separate one-phase commit procedures. In the vast majority of cases, all resources will be committed using separate procedures without error or interruption. However, if a problem arises during a one-phase commit procedure, some of the separate commits may have already been completed while others may not, causing inconsistencies. Such a problem can be solved only by rebuilding resources. However, the cost of rebuilding non-critical resources is more than compensated by the improved efficiency of the one-phase commit procedure.
A two-phase commit procedure is required to protect critical resources and critical communications. For example, assume that a first person's checking account is represented in a first database and a second person's savings account is represented in a second database. If the first person writes a check to the second person and the second person deposits the check in his/her savings account, the two-phase commit procedure ensures that if the first person's checking account is debited then the second person's savings account is credited or else neither account is changed. The checking and savings accounts are considered protected, critical resources because it is very important that data transfers involving the checking and savings accounts be handled reliably.
An application program can perform the two-phase commit procedure using a single command. Such a procedure consists of the following steps, or phases:
(1) During a prepare phase, each participant (debit and credit) resource is polled by the sync point manager to determine if the resource is ready to commit all changes. Each resource promises to complete the resource update if all resources successfully complete the prepare phase i.e. are ready to be updated.
(2) During a commit phase, the sync point manager directs all resources to finalize the updates or back them out if any resource could not complete the prepare phase successfully.
The above described two-phase commit procedure ensures consistency of modification of critical resources in most cases. It is possible, however, that a message sent by the application to the coupling facility (by executing the common queues system (CQS) PUT command) fails during the last stage of the commit procedure, when all the other participants of the protected conversation already committed changes. In such a case, the changes that have already been made can not be backed out because the protected resources are polled for readiness during the first phase of the commit procedure. This problem can be solved by retrying CQS PUT command for the failed message. If this retry succeeds, the consistency of the protected resources will be restored.
However, the conventional techniques fail to provide a method for retrying CQS PUT procedure to restore consistency in the state of protected system resources.
II. SUMMARY OF THE INVENTION
It is therefore an object of this invention to provide a method for retrying CQS PUT command for messages for which a prior CQS PUT command failed during the last phase of the commit procedure.
Specifically, it is an objective of the present invention to provide a method for handling faile
Denny George Steven
Hughes Gerald Dean
Kennedy Michael Bruce
Nguyen Khiet Quang
Courtenay III St. John
IBM Corporation
LandOfFree
UOWE's retry process in shared queues environment does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with UOWE's retry process in shared queues environment, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and UOWE's retry process in shared queues environment will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3076773