Testing the FDR z/OS Exits
Here are some suggestions for tests that you may run to verify that the FDR Operating System exits are installed and operating correctly.
Testing ABR catalog locate exit
Run batch jobs and execute TSO commands and ISPF functions that reference data sets that have been archived for automatic recall. Make sure not to specify volume serial information, which causes the catalog to be bypassed. Verify that the referenced data sets are automatically restored.
Testing ABR data set not found exit
Run batch jobs that OPEN data sets that have been archived, making sure to specify unit and volume serial information (UNIT= and VOL=SER=) in the DD statement, so that the ABR Catalog Locate exit will not recall the data sets, and the ABR Data Set Not Found (DSNF) exit is invoked. Verify that the opened data sets are automatically restored.
For non-VSAM data sets, IEBGENER can be used to read the data. For VSAM, IDCAMS can be used to PRINT or REPRO a cluster.
Testing ABR DADSM pre-processing exit
SCRATCH data sets with current ABR backups (you may need to run ABR full-volume or incremental backups first). Verify that the scratched data sets are recorded in the ABR SCRATCH catalog: either by using the ISPF dialog for the ABR SCRATCH Catalog Report (ISPF option A.1.3), or by using program FDRABRP with the PRINT SCRATCH command.
RENAME data sets that have been backed up by ABR. Verify that the old data set names are recorded in the SCRATCH catalog, as above. Also verify that the renamed data sets do not appear to have a current ABR backup: either by using the ISPF dialog for the ABR BACKUP Report (ISPF option A.1.2), or by using program FDRABRP with the PRINT BACKUP command.
Testing FDRREORG IEBCOPY intercept
Run an IEBCOPY compress of a PDS and verify that the SYSPRINT output contains FDR messages, instead of IEBCOPY messages. Include a STEPLIB DD statement pointing to the FDR load library unless it is in the link list (LNKLST). Next, include a //NFDRCOPY DD DUMMY statement in the JCL stream and rerun the job to verify that IEBCOPY is successfully invoked.
Testing a new release
If the Operating System exits from a prior release of FDR are dynamically installed in your system in production, it is possible to test a new version of the exits, or a change in options, for a specified set of jobs while continuing to use the production version of the exits for other jobs.
The procedure to do this is as follows:
Test library
Create an APF-authorized test FDR program library, if you do not already have one. This library may be any of the following:
- A complete library for a new release of ABR.
- A complete copy of the library for the current release of ABR.
- A partial library for either a new release or the current release. This library must contain at least the following modules: FDRSTART, FDROPT, FDRVECTB, and whichever exit modules (FDR026DU, FDREXDSN, FDRPRE00, FDRBCOPY, FDRDAS02, and/or FDR00024) are dynamically installed for this test.
Cataloged procedures
When testing the ABR Catalog Locate exit, copy the FDREXRCL and SYNRECAL procedures from the FDR Installation Control Library (ICL) for the release being tested to a cataloged procedure library that is available to JES for START commands. Since you may already have a FDREXRCL and/or SYNRECAL procedures in place, you should rename these members while copying them. Edit these members and specify the DSNAME of the test library on the STEPLIB DD statement so that recalls done by the procedure will use the proper release of ABR. You need to use Panel A.I.4.11.2 – Set ABR Auto-Recall Options to change the LXSYNPROC and LXXRPROC options to the new procedure names, in the copy of FDROPT in the test library.
When testing only new or modified exits, using the production release of ABR, and no option changes are required, the above is probably not necessary; the production versions of the FDREXRCL and SYNRECAL procedures can be used and the LXSYNPROC and LXXRPROC name changes are not required.
Setting test options
Set the desired options in the test library. Be sure to specify the name of the test library on panel A.I.4. If testing an option change, some options in the test library may be different from the production version. If testing a new version of the exits, then all of the options may be the same as the production version, and this step may not be necessary.
When testing a new version of a particular exit, or a change in an option that affects only one exit, then it is appropriate to set the options in the test library to dynamically install only that exit. For example, you could set ABRLOC to YES and set the other dynamic installation options to NO in the test library, even though all options are set to YES in the production Option Table. On the other hand, if testing an exit that has never used before, set the option to install that exit to YES in the test library even though it is NO in the production library in link list (LNKLST).
Install for test
Dynamically install a test version of the exits by executing a batch job using the following:
//FDRSTRTT JOB 'DYNAMICALLY INSTALL TEST VERSION OF EXITS',FDR //FDRSTRTT EXEC PGM=FDRSTART,REGION=0M, // PARM='TEST,JOBNAME=job' See Note
Unknown macro: confluence_id. Click on this message for details.
1 //STEPLIB DD DSN=fdrabr.test.library,DISP=SHR See Note
Unknown macro: confluence_id. Click on this message for details.
2 //SYSLIB DD DSN=fdrabr.test.library,DISP=SHR See Note
Unknown macro: confluence_id. Click on this message for details.
3 //SYSUDUMP DD SYSOUT=*
This JCL is supplied in member FDRSTRTT in the Installation Control Library (ICL). This job can also be generated with the REFRESH command on panel A.I.4 (the TEST parm can be specified on the FDRSTART panel).
ABRLIB / STEPLIB for testing
If you are testing a new version of the ABR Catalog Locate exit and/or the Data Set Not Found (DSNF) exit, any auto-recalls must use the programs in the test FDR program library. Since auto-recalls may occur in the address space of the caller:
- The JCL for batch jobs and started tasks using the test exits (specified by JOBNAME= described above) must be modified to include this DD statement in any step that may do an auto-recall:
//ABRLIB DD DSN=SHR,DSN=test.library.name
- The log in procedure for TSO users that use the test exits may need to be updated to include the same ABRLIB DD statement, or a TSO ALLOC command must be issued for the same ddname and library before any recalls are done.
The test program library should contain a copy of FDR from the same release as the exits being tested.
Updating test options
Once test exits are installed, you must specify PARM=TEST or PARM=PROD for every execution of FDRSTART until the test exits are removed by the next IPL, to clearly indicate which exits you are modifying.
To change the options used by the test exits
Change the desired options in the test library, using the ISPF panels and execute a batch job, using the following JCL:
//FDRCHOPT JOB 'CHANGE OPTIONS FOR TEST ABR EXITS',FDR //FDRSTART EXEC PGM=FDRSTART,REGION=0M,PARM=TEST //STEPLIB DD DSN=fdrabr.test.library,DISP=SHR //SYSLIB DD DSN=fdrabr.test.library,DISP=SHR //SYSUDUMP DD SYSOUT=*
FDRSTART replaces the copy of FDROPT used by the test version of the exits with the copy that it reads from the test library (pointed to by the SYSLIB DD statement). If that option table enables dynamic installation of any exits that were not previously installed for test, they are installed.
Since the JOBNAME parameter was not specified, the test continues for the same job names as were specified on the previous FDRSTART. If necessary, repeat this on every system where the test exits are active.
To change the job names used by the test exits execute a batch job, using the following JCL:
//FDRCHOPT JOB 'CHANGE JOBNAMES FOR TEST ABR EXITS',FDR //FDRSTART EXEC PGM=FDRSTART,REGION=0M, // PARM='TEST,JOBNAME=job' //STEPLIB DD DSN=fdrabr.test.library,DISP=SHR //SYSLIB DD DSN=fdrabr.test.library,DISP=SHR //SYSUDUMP DD SYSOUT=*
The test version of the exits now process the jobs specified by the new FDRSTART PARM value. The jobs that were previously being processed by the test version of the exits are now processed by the production version of the exits. FDRSTART also replaces the copy of FDROPT used by the test version of the exits as described above; any changes in the options become effective.
You can effectively deactivate the test exits by specifying a job name that is meaningless (will never match any real job name, TSO user id or started task name).
Update the options in use by the production exits while a test exit is active
Execute FDRSTART as shown in Dynamic-Exit-Installation-Procedure Step 7, except that the EXEC statement must specify:
Testing only option changes
You can use the test exit procedure to test changes in the FDR Global Options with the production version of the exits, to test the effect of option changes that affect the operation of the exits. To do so easily:
1.Update the required options, using the ISPF panels. You can do this in the production FDR program library since it will not affect the copy of FDROPT in use by the production exits. No test program library is required.
2.Active the “test” exits, which will really be the production exits with the updated copy of FDROPT. You can omit the STEPLIB DD statement from the FDRSTART jobs, and you will not need an updated copy of the SYNRECAL procedure, nor will you need to use ABRLIB or STEPLIB. Only the jobs and users specified by the JOBNAME= parameter will use the new options.
3.When testing is complete, you can activate the new options in production with the FDRSTART PARM=PROD as shown above. On the other hand, if you decide not to put the new options in production, return the options in the FDR program library to their original values (so that the next IPL does not pick up the modified FDROPT).