Data Set Name user exit
If input image copy and input change accumulation data set names are present, the Change Accumulation utility will pass the names to the Data Set Name user exit. This action provides an opportunity to create a second image copy data set and let you assign the name to the second data set.
A sample user exit is supplied in the product sample library. It uses an assembly macro ($RCUDSN) that assists you in writing the user exit routine. The $RCUDSN macro is explained beginning on RCUDSN-macro.
The CAP$DSN Data Set Name user exit is unique to the Change Accumulation utility. You can also use the RCU$DSN Data Set Name user exit. The BMC Image Copy utility and Recovery utility can also use RCU$DSN. This capability allows you to have unique data set name user exits for each product or one common Data Set Name user exit for all three products.
Keywords
There are no keywords associated with the Data Set Name user exit.
Considerations
Provide a load module named CAP$DSN or RCU$DSN.
The Change Accumulation utility first searches for the CAP$DSN load module in the STEPLIB library concatenation. If this search fails, the utility then searches for RCU$DSN. If a CAP$DSN or RCU$DSN load module is found, the utility calls it prior to the dynamic allocation of the output data set. When the user exit receives control, register 1 points to parameter areas containing information about the data set being allocated. The user exit routine may examine the information supplied to help it determine the data set name to use.
If you specify the SCAN(Y) keyword, the utility validates the generated data set name and displays the name in the processing log. You can use this keyword to test changes to the exit routine without building the output data set.
The following restrictions apply:
- CAP$DSN or RCU$DSN must be reentrant. It may be called by multiple change accumulation tasks.
- CAP$DSN or RCU$DSN must save all registers upon entry and restore them prior to returning. On return, register 15 must contain a return code. A return code of zero indicates normal completion of the user exit. A nonzero return code indicates an error; the Change Accumulation utility abends the associated change accumulation or incremental image copy task.
- CAP$DSN or RCU$DSN must make no assumptions about the addressing mode used at run time. It may be called in either 24- or 31-bit mode and must return in the same mode. The parameter area passed to the exit routine resides in 24-bit storage.
- The register save area provided in register 13 at entry is prechained. The word at offset 8 from register 13 already contains the address of the next save area available and may be loaded by the user exit routine. In any case, CAP$DSN or RCU$DSN must not modify the word at offset 8 from register 13 at entry.
Assemble and link Data Set Name user exit
The following figure shows an example of how to assemble and link the Data Set Name user exit (RCU$DSN or CAP$DSN).
//*| ASSEMBLE |
//*+---------------------------------------------------+
//ASM EXEC PGM=IEV90,PARM='LOAD,NODECK,BUFSIZE(MAX)'
//SYSLIB DD DSN=SYS1.MODGEN,DISP=SHR,DCB=BLKSIZE=19040
// DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=SYS1.AMODGEN,DISP=SHR
//SYSLIN DD DSN=&&LOADDK,UNIT=SYSDA,SPACE=(CYL,1),DISP=(,PASS)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE),SPACE=(CYL,(20,10))
//SYSIN DD DSN=your.ASM(mbr),DISP=SHR
//*+---------------------------------------------------------+
//*| LINK |
//*+---------------------------------------------------------+
//LINK EXEC PGM=IEWL,REGION=512K,COND=(4,LT,ASM),
// PARM='SIZE=(384K,96K),XREF,LIST,REFR,LET,NCAL,RENT'
//SYSPRINT DD SYSOUT=*,DCB=(RECFM=FBA,LRECL=121,BLKSIZE=605)
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(5,1))
//SYSLMOD DD DSN=your.LOAD,DISP=SHR
//SYSLIB DD DSN=your.LOAD,DISP=SHR
//SYSLIN DD DSN=&&LOADDK,DISP=(SHR,DELETE)
// DD DDNAME=SYSIN
//SYSIN DD *
MODE AMODE(31),RMODE(ANY)