It is possible to make the required batch JCL changes in advance of migrating the VSAM data to DB2®, so that your application programs continue to access the VSAM data set. You direct CICS® VT to access the data either in VSAM or in DB2 through the user-controlled program VIDFMSPX.
When you implement the required changes, the final JCL to enable CICS VT looks like this:
//jobcard
//STEPLIB DD DSN=appl.prog.lib,DISP=SHR
// DD DSN=appl.DRIVERS.LOAD,DISP=SHR
// DD DSN=VID.SVIDLODE,DISP=SHR
//ITEMDT DD SUBSYS=(ssi,db2id,vtitem)
//ITEMDT@ DD DSN=ITEMDT.VID.DUMMY,DISP=SHR
//ORDERDT DD SUBSYS=(ssi,db2id,vtorder)
//ORDERDT@ DD DSN=ORDERDT.VID.DUMMY,DISP=SHR
//AUDIT DD SUBSYS=(ssi,db2id,vtaudit)
//AUDIT@ DD DSN=AUDIT.VID.DUMMY,DISP=SHR
//AUDAIX DD SUBSYS=(ssi,db2id,vtaudix)
//AUDAIX@ DD DSN=AUDIT.VID.DUMMY,DISP=SHR
VIDFMSPX is a user-controlled data-only module containing one or more DIM names. It operates like a switch. If you update your batch JCL before migrating the VSAM data set but want to continue to access the VSAM data, add the DIM name to the VIDFMSPX source and assemble and link it in any JOBLIB or STEPLIB data set. There is sample VIDFMSPX code and assemble/link JCL in my.SVIDCNFG.custom member VIDGFMX.
By making the required JCL changes in advance, you reduce the time and effort to switch to DB2 access after the data is migrated. Instead of having to make the JCL changes at the same time as you migrate the VSAM data, you can separate migration preparation activities, such as JCL modification, from data migration activities.
When you add the SUBSYS statement and CICS VT parameters to an existing VSAM DD statement, all application calls to that DD are processed by the CICS VT subsystem. The first VSAM call in a batch application program opens the data set. If there is no DSN parameter, the subsystem assumes that the data has been migrated to DB2. If the DSN parameter exists, the subsystem attempts to load VIDFMSPX from the STEPLIB or JOBLIB libraries. If the module doesn't exist, CICS VT processes the appropriate VSAM call in DB2. If VIDFMSPX is successfully loaded, VT scans the module for the DIM name specified 3rd SUBSYS parameter. If the DIM is defined in VIDFMSPX, all calls to this DD statement are processed by VSAM. If the DIM is not defined in VIDFMSPX, all calls to this DD statement are processed by CICS VT.
For example, assume that you are using CICS VT to migrate your Order Detail, Item Detail, and Audit files. Figure 1 shows the JCL changes that prepare for CICS VT migration but still allow the VSAM file to be accessed as normal:
//jobcard
//STEPLIB DD DSN=appl.prog.lib,DISP=SHR
// DD DSN=appl.DRIVERS.LOAD,DISP=SHR
// DD DSN=VID.SVIDLODE,DISP=SHR
//ITEMDT DD SUBSYS=(ssi,db2id,vtitem),
// DISP=SHR,DSN=ITEMDT.VSAM
//ITEMDT@ DD DSN=ITEMDT.VID.DUMMY,DISP=SHR
//ORDERDT DD SUBSYS=(ssi,db2id,vtorder),
// DISP=SHR,DSN=ORDERDT.VSAM
//ORDERDT@ DD DSN=ORDERDT.VID.DUMMY,DISP=SHR
//AUDIT DD SUBSYS=(ssi,db2id,vtaudit),
// DISP=SHR,DSN=AUDIT.VSAM
//AUDIT@ DD DSN=AUDIT.VID.DUMMY,DISP=SHR
//AUDAIX DD SUBSYS=(ssi,db2id,vtaudix),
// DISP=SHR,DSN=AUDIT.VSAM.PATH
//AUDAIX@ DD DSN=AUDIT.VID.DUMMY,DISP=SHR
Assuming that the DIM names ar VTITEM, VTORDER, VTAUDIT, and VTAUDIX, the VIDFMSPX source code that you have to assemble and link to continue to access the VSAM data is as follows:
VIDFMSPX CSECT
VIDFMSPX AMODE 31
VIDFMSPX RMODE ANY
VERIFY DC CL8'VIDFMSPX'
*
* SPECIFY DIM NAMES HERE
DC CL8'VTITEM'
DC CL8'VTORDER'
DC CL8'VTAUDIT'
DC CL8'VTAUDIX'
THEEND DC XL8'FFFFFFFFFFFFFFFF'
END
The CICS VT subsystem issues the following message when calls are redirected to VSAM:
+VIDSS250 SUBSYSTEM NAME=ssid VSAM ONLY FOR DDNAME=ddname
You should assemble and link VIDFMSPX into your CICS VT application drivers library. If you are deploying a single, system-wide application drivers library, you will have a single instance of VIDFMSPX and therefore you require a single p oint of control. If you have separate drivers libraries on an application by application basis, you can have multiple application level instances of VIDFMSPX.
When you remove a DIM from VIDFMSPX, you should also remove the JCL references to the original VSAM data set.