How do I use the IBM LISTDEF and TEMPLATE functions in an RC/Migrator Utility Model Services COPY model?
Release: R20
Component: RCC
The COPY Member in the RCM Utility Model Services Library
This COPY Model processes just one tablespace. It is only a simple example to show how the variable substitution happens in the analysis and then a second substitution happens at execution time.
UTILITY OBJ DESCRIPTION SIZE COPY TS IMAGE COPY RPI CMD SYMBOL ERR REPLACEMENT VALUE _ COPYDUNT %DISK___________________________________________________ _ COPYSP1 %CALC(%REORGP*050/100+1)________________________________ _ COPYSP2 %CALC(%REORGP*030/100+1)________________________________ _ COPYSP3 TRK_____________________________________________________ _ DISK SYSDA___________________________________________________ _ DSN &USERID..&DB..&SN..&ICTYPE..P&PART..T&TIME._____________ --- THIS MODEL COPIES ONE TABLESPACE USING A TEMPLATE AND A LISTDEF .CALL UTIL COPY PARM(%TOSSID) .DATA LISTDEF TXLIST INCLUDE TABLESPACE %DBNAME..%TSNAME OPTIONS EVENT TEMPLATE COPYDSN DSN '%DSN' SPACE(%COPYSP1,%COPYSP2) %COPYSP3 DISP(NEW,CATLG,CATLG) UNIT %COPYDUNT COPY LIST TXLIST CHANGELIMIT(5) COPYDDN COPYDSN PARALLEL(10) SHRLEVEL(REFERENCE) .ENDDATA
The LISTDEF statement is using the %DBNAME and %TSNAME automatic symbolic variables during the analysis time. The "%DSN" user defined model variable contains the dataset name map which will be used by the IBM TEMPLATE command at execution time. This dataset name will be associated with the COPYDSN DD.
Important Note
In the TEMPLATE command, DSN section, do not use brackets() around the dataset name. Use only quotes. When using brackets RC/Migrator tries to make the dataset name valid at analysis time. When the "&" variables are found these are rejected as invalid unless RC/Migrator is working on a string between quotes.
The Analysis Output
When analyzed this is the analysis output produced.
.SYNC 10 'COPY TABLESPACE DBCORP.TSTASK'
--- THIS MODEL COPIES ONE TABLESPACE USING A TEMPLATE AND A LISTDEF
.CALL UTIL COPY PARM(ssid)
.DATA
LISTDEF TXLIST INCLUDE TABLESPACE DBCORP.TSTASK
OPTIONS EVENT
TEMPLATE COPYDSN
DSN '&USERID..&DB..&SN..&ICTYPE..P&PART..T&TIME.'
SPACE(1,1) TRK
DISP(NEW,CATLG,CATLG)
UNIT SYSDA
COPY LIST TXLIST CHANGELIMIT(5)
COPYDDN COPYDSN
PARALLEL(10)
SHRLEVEL(REFERENCE)
.ENDDATA
Notice above that the LISTDEF statement has a database and tablespace name substituted at analysis time which came from your selected tablespaces in the strategy. In the TEMPLATE statement the %DSN user defined variable has been replaced by the dataset name map text which incorporates the IBM TEMPLATE variables. You can see the ones like &ICTYPE that start with a "&". These will be substituted by TEMPLATE at execution time.
The Execution with Batch Processor
When Executed the output below is produced.
.CALL UTIL COPY PARM(ssid)
.ALLOC UNIT(SYSDA) FI(SYSIN) NEW SPACE(1,4) CYL +
RECFM(F,B) LRECL(80) BLKSIZE(0)
.ALLOC UNIT(SYSDA) FI(SYSPRINT) NEW SPACE(4,100) CYL +
RECFM(V,B,A) LRECL(125) BLKSIZE(6254)
.DATA
LISTDEF TXLIST INCLUDE TABLESPACE DBCORP.TSTASK
OPTIONS EVENT
TEMPLATE COPYDSN
DSN '&USERID..&DB..&SN..&ICTYPE..P&PART..T&TIME.'
SPACE(1,1) TRK
DISP(NEW,CATLG,CATLG)
UNIT SYSDA
COPY LIST TXLIST CHANGELIMIT(0)
COPYDDN COPYDSN
PARALLEL(10)
SHRLEVEL(REFERENCE)
.ENDDATA DSNU000I 154 02:54:35.51 DSNUGUTC - OUTPUT START FOR UTILITY, UTILID = authid.authidB
DSNU1044I 154 02:54:35.52 DSNUGTIS - PROCESSING SYSIN AS EBCDIC
DSNU050I 154 02:54:35.52 DSNUGUTC - LISTDEF TXLIST INCLUDE TABLESPACE DBCORP.TSEMP
DSNU1035I 154 02:54:35.52 DSNUILDR - LISTDEF STATEMENT PROCESSED SUCCESSFULLY
DSNU050I 154 02:54:35.52 DSNUGUTC - OPTIONS EVENT
DSNU1035I 154 02:54:35.53 DSNUZODR - OPTIONS STATEMENT PROCESSED SUCCESSFULLY
DSNU050I 154 02:54:35.53 DSNUGUTC - TEMPLATE COPYDSN DSN
'&USERID..&DB..&SN..&ICTYPE..P&PART..T&TIME.' SPACE(1, 1) TRK DISP(NEW, CATLG, CATLG) UNIT SYSDA
DSNU1035I 154 02:54:35.53 DSNUJTDR - TEMPLATE STATEMENT PROCESSED
SUCCESSFULLY
DSNU050I 154 02:54:35.53 DSNUGUTC - COPY LIST TXLIST CHANGELIMIT(0) COPYDDN
COPYDSN PARALLEL(10) SHRLEVEL(REFERENCE)
DSNU1033I 154 02:54:35.54 DSNUGULM - PROCESSING LIST ITEM: TABLESPACE
DBCORP.TSEMP
DSNU3345I 154 02:54:35.54 DSNUBBID - MAXIMUM UTILITY PARALLELISM IS 1 BASED
ON NUMBER OF OBJECTS
DSNU427I 154 02:54:35.54 DSNUBBID - OBJECTS WILL BE PROCESSED IN PARALLEL,
NUMBER OF OBJECTS = 1
DSNU440I !ssid 154 02:54:35.56 DSNUBAII - IMAGE COPY INFORMATION
4KB CHANGED PERCENT OF
DBNAME TSNAME DSNUM PAGES PAGES CHANGED PAGES ICTYPE
-------- -------- ----- ------------- ------------- ------------- ------
DBCORP TSEMP 1 3 0 0.00
DBCORP TSEMP 2 3 0 0.00
DBCORP TSEMP 3 3 0 0.00
DBCORP TSEMP 4 3 0 0.00
DBCORP TSEMP ALL 12 0 0.00 F
DSNU443I !ssid 154 02:54:35.56 DSNUBAII - FULL CHANGE LIMIT MET FOR TABLESPACE
DBCORP.TSEMP
DSNU445I !ssid 154 02:54:35.56 DSNUBAII - FULL IMAGE COPY WILL BE TAKEN FOR
TABLESPACE DBCORP.TSEMP
DSNU1038I 154 02:54:35.65 DSNUGDYN - DATASET ALLOCATED. TEMPLATE=COPYDSN
DDNAME=SYS00004
DSN=authid.DBCORP.TSEMP.F.P00000.T065502
DSNU400I 154 02:54:35.70 DSNUBBID - COPY PROCESSED FOR TABLESPACE
DBCORP.TSEMP
NUMBER OF PAGES=9
AVERAGE PERCENT FREE SPACE PER PAGE = 10.00
PERCENT OF CHANGED PAGES = 33.33
ELAPSED TIME=00:00:00
DSNU428I !ssid 154 02:54:35.73 DSNUBAFI - DB2 IMAGE COPY SUCCESSFUL FOR
TABLESPACE DBCORP.TSEMP
DSNU010I 154 02:54:35.74 DSNUGBAC - UTILITY EXECUTION COMPLETE, HIGHEST
RETURN CODE=3
BPA0045I: UTILITY WARNING MESSAGE(S) ISSUED. BATCH PROCESSOR WILL CONTINUE.
.FREE FI(SYSIN)
.FREE FI(SYSPRINT)
RETCODE = 0
Notice above that the dataset name allocated to DD COPYDSN has been built by the TEMPLATE command. DSN=authid.DBCORP.TSEMP.F.P00000.T065502
The DB2V12, Utility Guide and Reference, LISTDEF and TEMPLATE command sections.
Utility Model Services