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.

Warning

Contrary to what many believe, IEFBR14 does not OPEN the data sets in its JCL, so IEFBR14 is not an appropriate utility to test the DSNF exit (with UNIT= and VOL= specified in the JCL). However, IEFBR14 can be used to test the ABR Catalog Locate exit (omitting UNIT= and VOL=).

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.

Important

The LXXRPROC option does not replace the LXSYNPROC option. The LXSYNPROC procedure (normally called SYNRECAL) is always used for auto recall for dynamic allocation and background recalls for TSO. The LXXRPROC procedure is only used for auto recall for batch jobs.

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.

Important

Although a copy of FDROPT is loaded from the test program library by FDRSTART when the test exits are installed, it is available only to the exits themselves. Any programs running under the test exits will get FDROPT from the test library directly via the ABRLIB or STEPLIB DD statements.

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:

//FDRSTART EXEC PGM=FDRSTART,REGION=0M,PARM=PROD

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).

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*