
CICS/Batch File Control System
If you have any questions about the content of this page, please contact CICS Requests for clarification
The CICS/Batch File Control System is a facility through which batch jobs can open and close CICS files. This system is intended to aid in the synchronization of batch and online processing. VSAM as well as sequential (extrapartition and journal) data sets are supported. Three procedures are provided:
PROC | Action Performed |
NWBCLOSE | (CLOSE) Closes a CICS file and prevents automatic (next use) opens. May be reversed by batch or online open. |
NWBOPEN | (OPEN) Makes a file "OPENABLE". This function doesn't actually open a data set, but allows it to be opened on the next access. This function reverses a batch or online close. |
NWBRESET | (RESET) Makes a file "OPENABLE". This function does not actually open a data set, but allows it to be opened on the next access. This function does not reverse a batch or online close. This function is not supported for sequential data sets. |
The only PARM supported by these procs is used to direct the activity to the appropriate TEST REGION. This is accomplished by adding "TEST=TEST" to the execution of the above procs. For example: //CLOSE EXEC NWBCLOSE,TEST=TEST
It is expected NWBCLOSE and NWBOPEN will bracket jobs that re quire exclusive use of particular CICS data sets. Such things as BATCH updates to ON-LINE updateable files and VSAM rreorganizationsfall into this category. NWBRESET is intended to follow jobs that update ON-LINE read-only files. The RESET will ensure the data in CICS VSAM buffers is as current as possible.
Automatic Reversal of Batch and Online Closes
All close commands take a file offline until 5:00 A.M. the next morning. At that time, all VSAM and sequential data sets are be brought back online.
Security
The ACF2 Logon ID of the batch job must have authority to signon on to CICS. In ACF2 terms, the ID must have the CICS bit. It need not be authorized for any CICS transactions. The ACF2 Logon ID of the batch job invoking this facility is used for two things:
- Which CICS contains the files to be acted upon. ACF2 contains an institution code which will be used to identify which production CICS should be used. May be overridden to identify the TEST region: //S1 EXEC NWBOPEN,TEST=TEST
- Whether or not the batch job should be considered authorized to access the indicated data sets. The logon ID of the batch job must be ACF2 update-authorized for the data sets being affected in CICS.
Control
Which CICS files are to be affected (opened, closed or reset) is controlled by a simple list of CICS FILE-ID's. For example:
//STEP EXEC NWBCLOSE
//SYSIN DD *
NWFILE01
NWFILE02
And for one of the CICS test regions:
//STEP EXEC NWBCLOSE,TEST=TEST
//SYSIN DD *
NWFILE01
NWFILE02
The above job streams would close CICS files NWFILE01 and NWFILE02. Any card with a space or special character (* # $ etc.) in column 1 is considered a comment and ignored. In all cases, characters beyond column 9 are ignored.
Error Detection and Notification
- If, while processing a NWBCLOSE command where at least one data set cannot be closed, a condition
code of 8 will be returned. - If the logon ID is denied access to CICS, a condition code of 999 will be returned.
- An input list of FILE-IDs is required. An ABEND 2008 will result if omitted.
- All other ABENDS or nasty messages should be reported to the NWRDC.
Batch Opens and Closes in a Many Step Job
Care must be taken when in the placement of the NWBOPEN steps.
This situation came to light when a batch job inadvertently interfered with CICS's reallocation of a VSAM file. The job was reloading a file, and when the reload was finished, it executed a NWBOPEN step to place the file back online. The job was not through with the data set at that time, but after the reload step it was willing to SHARE the file with the online system. A report step ran for another 5 minutes or so. As it turns out, the file was not actually available to CICS until the end of the report step.
If more than one step in a job refers to the same data set, the disposition of the data set is held between steps until the end of the last step that refers to the data set in question.
In our case above, the disposition of NEW was held until the end of the step that produced the report. This was true even with the DISP=SHR in that step.
Bottom line:
- Don't execute NWBOPEN until there are no more JCL references to the dataset(s) in question.
- Breaking the job in two would yield the most benefit, then the report step's DISP=SHR would then be
honored.