Using Transparent mode
Transparent Mode provides full application restart capabilities for many COBOL II programs without source code changes. The implementation only requires some minor JCL changes and a recompile if the application contains DB2 SQL. The procedures for restart and JCL modifications for Transparent Mode are the same as for API Mode.
Transparent Mode currently supports COBOL II as the programming language and DB2 as the DBMS, although DB2 is not required. Applications that do not perform database functions can also take advantage of QUICKSTART Transparent mode.
QUICKSTART Transparent Mode takes a COBOL application that was developed without QUICKSTART, but is based on the concept of processing Logical Units of Work (LUW), and transforms it into a fully restartable application at run time. In Transparent mode, QUICKSTART automatically takes checkpoints at logical-unit of-work (LUW) boundaries. The LUW can be defined as the number of sequential file input records processed, the presence of a DB2 COMMIT, or any input file condition that you specify. A QUICKSTART restart automatically restores working storage and repositions sequential files on the LUW boundary. A checkpoint captures all Working Storage in the Checkpoint Area. If a special eye-catcher is added to Working Storage, QUICKSTART will capture all Working Storage fields up to, but not including the eye-catcher. For more information on the LUW concept, see Application-requirements-for-restartability.
QUICKSTART will keep track of its sequential files and Working Storage, synchronizing them with DB2 activity (if present). This newly restartable application can be modified between restarts just like other QUICKSTART-ready API Mode applications. Most features of QUICKSTART are fully supported in this environment, including subprogram support.
When used with ReAttach feature, QUICKSTART has the ability to automatically restart applications that have failed due to DB2 -911 SQLCODEs, and IMS U0777 ABENDs (deadlock timeout) or S0C7/S0C9 ABENDs caused by bad input data. Deadlock/Timeout conditions are a major cause of failed jobs in a DB2 environment. Incoming bad data also contributes to failed jobs in the form of S0C7/S0C9 ABENDs. QUICKSTART has incorporated the ability to detect such failures and to automatically perform an in-flight restart of the application which incurred the error. This feature further decreases the likelihood of operator intervention during a production run.
Transparent Mode is not for all applications. To implement it properly, knowledge of the application is essential. Transparent Mode assumes that the application contains some sort of Logical Unit of Work. To respect the no-source-code-changes philosophy, the program should contain only type of LUW in the program (i.e. PERFORM LUW UNTIL DONE). If more than one type of LUW is present in the program, a few lines of navigational code will be required. The end of one LUW and the beginning of another LUW must be separated by either a COBOL READ of a sequential driver file and/or a DB2 COMMIT. Typically, any program which uses a sequential driver file to dictate work to be performed will operate successfully under Transparent Mode. Programs which already issue DB2 COMMITs should operate successfully given that any CURSORs which drive the LUW specify predicates which will cause proper repositioning upon a restart condition.
In addition, Transparent Mode allows the user to specify when QUICKSTART should restore the contents of Working Storage during a restart. This feature allows applications which begin by initializing Working Storage (PERFORM INITIALIZATION) to remain candidates for Transparent Mode restarts.
See Application-requirements-for-restartability for specific information regarding designing restartable programs and the Logical Unit of Work (LUW), which discusses different types of application LUWs, and techniques to make these applications restartable.
Also see Testing-restartable-code, for detailed information regarding testing the application program's restartability.
Transparent Mode has the following restrictions:
- Supports the following data set formats for sequential input only:
- QSAM (RECFM=FB and VB)
- VSAM ESDS
- The COBOL SORT verb is not supported (API Mode must be used for programs containing internal SORTs)
- The following uses of COBOL are not supported (API mode must be used for applications using these COBOL features):
- external files
- external working storage
- internal sorts
- The IS INITIAL clause is not supported
Software requirements for this version of QUICKSTART Transparent Mode are:
- COBOL II. The NORENT and RES compile options must be used. The NORENT compile option forces the application to have an RMODE(24). This should not be an issue unless a program absolutely must run above the 16MB line (i.e. due to its size). If an application cannot run below the line, it must implement QUICKSTART using API mode, which is discussed in Using-API-mode.
- DB2, for DB2 applications, or a VSAM KSDS logging product for VSAM applications. Applications which do not access a DBMS are also supported. DB2 is the only DBMS currently supported.
- COBOL II Transparent Mode subprograms to be under QUICKSTART control must be dynamically CALLed and must be linked using the linkage editor option REUS. Other subprograms can be CALLed either statically or dynamically. A Transparent Mode main program can have restartable subprograms in any language under QUICKSTART’s control if the subprograms use API Mode.
Features of Transparent Mode are:
- Ability to exclude named files from being intercepted by QUICKSTART (for example, parameter files)
- Ability to specify the point of execution that will cause Working Storage to be restored during a restart. Choices are Immediately, Upon First (or nth) READ of the Driver file, and Upon First COMMIT. This flexibility enables many types of applications to become restartable without any source code changes.
- Ability to override QUICKSTART’s intention to restart an application and instead RERUN from the beginning simply altering a parm card.
- Ability to alter the application program between restarts. This includes the ability to alter the SQL executed by the application.
- Ability to suppress the error message text display when designated negative DB2 SQLCODEs are received by the application. This is customizable via a parm card in the JCL. This is useful when an application expects certain negative SQLCODEs (e.g. 803) and handles it normally.
Transparent Mode has the following restrictions:
- Supports the following data set formats for sequential input only:
- QSAM (RECFM=FB and VB)
- VSAM ESDS
- The COBOL SORT verb is not supported (API Mode must be used for programs containing internal SORTs)
- The following uses of COBOL are not supported (API mode must be used for applications using these COBOL features):
- EXTERNAL files
- EXTERNAL Working Storage fields
- internal sorts
- The IS INITIAL clause is not supported
This section contains the following topics: