Migrating data sets
For migration purposes, data sets fall into three categories:
- VSAM data sets that are copied and converted by the EQQICTOP migration program
- Non-VSAM data set that you can copy, or use unchanged, in the new version
- VSAM and non-VSAM data sets that must be empty when you migrate to Tivoli Workload Scheduler for z/OS
Each of these categories is described in the following sections.
EQQICTOP VSAM data set conversion program
Purpose
With the EQQICTOP conversion program, you can migrate VSAM data sets from earlier releases of Tivoli Workload Scheduler for z/OS. You can also use the program to reverse the procedure in case you need to fall back to your old system.
The EQQJOBS program creates JCL tailored to your installation specifications in the EQQICNVS and EQQICNVH members.
EQQICTOP is controlled by CONVERT statements in the SYSIN file. You can supply any number of these statements to EQQICTOP.
Syntax
>>-CONVERT--FILE(-+-AD---+-)--FROMREL(-+-|TWSV8R2M0-+-)----------> | +-CP---+ +-TWSV8R3M0-+ | +-CX---+ +-TWSV8R5M0-+ | +-HIST-+ +-TWSV8R5M1-+ | +-JS---+ '-|TWSV8R6M0-' | +-LT---+ | +-OI---+ | +-RD---+ | +-SI---+ | '-WS---' | |>--TOREL(-+-|TWSV8R2M0-+-)-------------------------------------->< | +-TWSV8R3M0-+ | +-TWSV8R5M0-+ | +-TWSV8R5M1-+ | '-|TWSV8R6M0-' | ||||
Parameters
- FILE(file identifier)
- Defines the data set to be converted. You can specify one of
the following file identifiers on each CONVERT statement:
- AD
- Application descriptions and JCL variable tables
- CP
- The current plans, EQQCPnDS and EQQNCPDS
- CX
- The current plan extension, EQQCXDS and EQQNCXDS
- HIST
- DB2® operation history data from one release to another
- JS
- JCL repository and retrieved job logs
- LT
- Long-term plan
- OI
- Operator instructions
- RD
- Special resource definitions
- SI
- Side information file, ETT criteria and configuration information
- WS
- Workstation descriptions, calendars, and periods
Your conversion JCL should contain DD names EQQxxIN and EQQxxOUT for each data set that you want to convert, where xx is the file identifier.
- FROMREL(product identifier)
- Defines the product and release level of the input data set.
You can specify one of the following:
- |TWSV8R2M0
- |Tivoli Workload Scheduler for z/OS Version 8 Release 2
- TWSV8R3M0
- Tivoli Workload Scheduler for z/OS Version 8 Release 3
- TWSV8R5M0
- Tivoli Workload Scheduler for z/OS Version 8 Release 5
- TWSV8R5M1
- Tivoli Workload Scheduler for z/OS Version 8 Release 5 Modification Level 1
- |TWSV8R6M0
- |Tivoli Workload Scheduler for z/OS Version 8 Release 6
- TOREL(product identifier)
- Defines the product and release level of the output data set.
You can specify one of the following:
- |TWSV8R2M0
- |Tivoli Workload Scheduler for z/OS for z/OS® version |8 Release 2
- TWSV8R3M0
- Tivoli Workload Scheduler for z/OS Version 8 Release 3
- TWSV8R5M0
- Tivoli Workload Scheduler for z/OS Version 8 Release 5
- TWSV8R5M1
- Tivoli Workload Scheduler for z/OS Version 8 Release 5 Modification Level 1
- |TWSV8R6M0
- |Tivoli Workload Scheduler for z/OS Version 8 Release 6
Notes:- Conversion stops if there is a VSAM I/O error on one of the files. One such error is a duplicate key on the output file. This can occur if the output data set is not empty.
- Migrate the currently active JCL-repository data set. You can check whether the primary or alternate data set is in use by selecting option 6 in the Query Current Plan dialog. Do this when no work is running and before you stop the controller.
- You can use one of two methods to convert the current plan:
- If no error occurred when you stopped your production system, both primary and alternate current plans are the same. Use EQQCP1DS as input to the conversion program.
- If the last action performed on your production system was to extend or replan the current plan, use the new-current-plan data set that was created on this system as input to the conversion program. This is the preferred method as it ensures you will not lose any job-tracking records, this is relevant if you use the track log (EQQTROUT) as an audit trail.
You can convert the current plan extension data set using the same methods.
- In addition to input and output DD names for each VSAM file, the migration JCL should also contain the EQQMLOG and EQQMLIB DD names. EQQMLOG is an output file for messages. EQQMLIB is an input file that contains the product message library.
Example
|//OPCMIG JOB (777777,777),'Migrate to Tivoli Workload Scheduler for z/OS V8R6M0, MSGLEVEL=(1,1), |// NOTIFY=&SYSUID,MSGCLASS=H,CLASS=A |//* |//CONVERT EXEC PGM=EQQICTOP,REGION=2048K |//STEPLIB DD DISP=SHR,DSN=OPC.INST.LOADLIB |//EQQMLIB DD DISP=SHR,DSN=OPC.INST.SEQQMSG0 |//EQQMLOG DD SYSOUT=* |//EQQADIN DD DISP=SHR,DSN=CCOPC.OPCC.OLD.AD |//EQQADOUT DD DISP=OLD,DSN=CCOPC.OPCC.AD |//EQQWSIN DD DISP=SHR,DSN=CCOPC.OPCC.OLD.WS |//EQQWSOUT DD DISP=OLD,DSN=CCOPC.OPCC.WS |//EQQCPIN DD DISP=SHR,DSN=CCOPC.OPCC.OLD.NCP |//EQQCPOUT DD DISP=OLD,DSN=CCOPC.OPCC.NCP |//EQQCXIN DD DISP=SHR,DSN=CCOPC.OPCC.OLD.NCX |//EQQCXOUT DD DISP=OLD,DSN=CCOPC.OPCC.NCX |//EQQLTIN DD DISP=SHR,DSN=CCOPC.OPCC.OLD.LT |//EQQLTOUT DD DISP=OLD,DSN=CCOPC.OPCC.LT |//EQQJSIN DD DISP=SHR,DSN=CCOPC.OPCC.OLD.JS1 |//EQQJSOUT DD DISP=OLD,DSN=CCOPC.OPCC.JS1 |//EQQOIIN DD DISP=SHR,DSN=CCOPC.OPCC.OLD.OI |//EQQOIOUT DD DISP=OLD,DSN=CCOPC.OPCC.OI |//EQQSIIN DD DISP=SHR,DSN=CCOPC.OPCC.OLD.SI |//EQQSIOUT DD DISP=OLD,DSN=CCOPC.OPCC.SI |//EQQRDIN DD DISP=SHR,DSN=CCOPC.OPCC.OLD.RD |//EQQRDOUT DD DISP=OLD,DSN=CCOPC.OPCC.RD |//SYSIN DD *
| /* MIGRATION FROM Tivoli Workload Scheduler for z/OS V8.5.1 to */ | /* Tivoli Workload Scheduler for z/OS V8.6.0 IS ASSUMED */ | CONVERT FILE(AD) FROMREL(TWSV8R5M1) TOREL(TWSV8R6M0) | CONVERT FILE(CP) FROMREL(TWSV8R5M1) TOREL(TWSV8R6M0) | CONVERT FILE(CX) FROMREL(TWSV8R5M1) TOREL(TWSV8R6M0) | CONVERT FILE(WS) FROMREL(TWSV8R5M1) TOREL(TWSV8R6M0) | CONVERT FILE(LT) FROMREL(TWSV8R5M1) TOREL(TWSV8R6M0) | CONVERT FILE(JS) FROMREL(TWSV8R5M1) TOREL(TWSV8R6M0) | CONVERT FILE(OI) FROMREL(TWSV8R5M1) TOREL(TWSV8R6M0) | CONVERT FILE(RD) FROMREL(TWSV8R5M1) TOREL(TWSV8R6M0) | CONVERT FILE(SI) FROMREL(TWSV8R5M1) TOREL(TWSV8R6M0)
In this example, all VSAM files are converted from a previous release to Tivoli Workload Scheduler for z/OS format. The tasks performed immediately before this job was submitted are listed here in order:
- Verified JS1 as the active JCL repository in option 6.6 on the previous controller. If JS2 is the active JCL repository, use that as input but be sure to use JS1 as output because Tivoli Workload Scheduler for z/OS by default uses JS1 as the active JCL repository when you start a subsystem with an empty checkpoint data set.
- The previous controller was shut down normally, as verified in the message log. Check that a current plan backup process was completed after the stop command was received by the subsystem.
- A batch job was submitted to allocate and back up the previous data sets to new DSNs.
- EQQPCS01 from Tivoli Workload Scheduler for z/OS EQQJOBS was submitted to allocate the VSAM clusters required for Tivoli Workload Scheduler for z/OS.
- The old NCP is used as input if a daily plan batch process was submitted on the previous system prior to shutdown. Output is the Tivoli Workload Scheduler for z/OS NCP.
Data sets that you need to convert
Allocate new VSAM data sets for Tivoli Workload Scheduler for z/OS. Existing data can then be migrated using EQQICTOP. Keep a copy of the old data sets for backup and fallback purposes. The following data sets must be migrated to Tivoli Workload Scheduler for z/OS format:
DD Name | Description |
---|---|
EQQADDS | Application descriptions and JCL variable tables |
EQQJSnDS | JCL repository (currently active) |
EQQLTDS | Long-term plan |
EQQNCPDS, or EQQCPnDS | The current plan, but use the NCP as input if a daily plan process created an NCP after the old system was shut down. |
EQQNCXDS, or EQQCXnDS | The current plan extension, but use the NCX as input if a daily plan process created an NCX after the old system was shut down. |
EQQOIDS | Operator instructions |
EQQRDDS | Special resource definitions |
EQQSIDS | Side information, ETT criteria and configuration information |
EQQWSDS | Workstation descriptions, calendars, and periods |
Data sets that can be used
Tivoli Workload Scheduler for z/OS can use unchanged data from the following data sets:
DD Name | Description |
---|---|
EQQEVLIB | Configuration file repository for event-triggered resource handling |
EQQINCWK | JCC incident work file |
EQQJBLIB1 | JCL library |
EQQJCLIB | Job-completion-checker (JCC) message-table library |
EQQJTABL | Job table log file |
EQQPRLIB | Automatic-recovery-procedure library |
EQQSCLIB | Script library for end-to-end scheduling with fault tolerance capabilities |
— | JCC incident log |
1 If this library contains jobs for the scheduler planning, the JCL must be modified to reflect the new installation. |
Empty data sets
When you have completed your testing of Tivoli Workload Scheduler for z/OS and have performed data set migration, ensure that the following data sets are empty before you start the product for the first time in production:
- EQQCKPT
- Checkpoint
- EQQCXDS
- Current plan extension
- EQQDLnn
- Dual job-tracking logs
- EQQEVDS
- Event data sets
- EQQHTTP0
- Event data set for end-to-end scheduling with z-centric capabilities
- EQQJTARC
- Job-tracking archive
- EQQJTnn
- Job-tracking logs
- EQQMLOG
- Message log
- EQQMONDS
- Monitoring Task Data Set
- EQQSCPDS
- Secondary Current Plan Data Set
- EQQSTC
- Started-task submit
- EQQSUDS
- Submit release
- EQQTROUT
- Job-tracking log copy created by the daily planning jobs. Input to the EQQAUDIT program, that is not downward compatible
- EQQTWSIN
- Input event data set for end-to-end scheduling with fault tolerance capabilities
- EQQTWSOU
- Output event data set for end-to-end scheduling with fault tolerance capabilities
- EQQTWSCS
- Centralized script work repository
EQQCPnDS , EQQCXDS, and EQQSCPDS do not have to be empty, but they can be. When the product is started for the first time, you must specify CURRPLAN(NEW) on the JTOPTS statement. Therefore, any data in the EQQCPnDS and EQQCXDS data sets will immediately be replaced by the contents of EQQNCPDS and EQQNCXDS. Similarly, the inactive EQQJSnDS data set (EQQJS2DS in this example) does not have to be empty, although it can be.
Tracker and Data Store considerations
When you migrate a tracker, it is not necessary for EQQEVDS and EQQSUDS to be empty. The migration enables you to use the subsystem with the new release and modifies the JCL trackers to point to the libraries used, for example EQQMLIB or STEPLIB.
When you migrate a Data Store, consider that:
- In the Data Store, it is not necessary for EQQPKI01, EQQSKI01, EQQSDFnn, EQQUDFnn to be empty.
- In the controller mini Data Store:
- If the CP files are kept, it is not necessary for EQQPKI01, EQQSKI01, EQQSDFnn to be empty.
- If the CP files are deleted, EQQPKI01, EQQSKI01, EQQSDFnn must be empty.
The data store and controller tasks might be migrated at different times, provided that the maintenance level of the old and new release of Tivoli Workload Scheduler for z/OS is the same. This means that you should apply any PTF which affects both controller and data store code to both releases of the product. If this level of concurrent PTF maintenance cannot be maintained, it is best to keep the data store and controller on the same release of Tivoli Workload Scheduler for z/OS. If the migration is successfully performed, you should be able to use the Restart and Cleanup function on the new release for any operation which was on the error list on the old release of Tivoli Workload Scheduler for z/OS
If you change a datastore connection type and you want to reflect the naming convention in the FLOPTS destination name, keep the former destination name in the FLOPTS parameter that corresponds to the connection type to be used (SNADEST, XCFDEST, or TCPDEST ). For example, suppose that you change the datastore connection from SNA to XCF and the former FLOPTS is SNADEST(OPCTRK1.DST). If you want to use XCFTRK1.DST as new destination name, specify the following FLOPTS parameter: XCFDEST(OPCTRK1.DST, XCFTRK1.DST). Omitting the former destination produces the messages EQQFL18E and EQQM643W in the controller message log, when retrieving any joblog stored with the former destination name.