FDRMOVE JCL and statements
FDRMOVE JCL
The JCL to execute FDRMOVE is very simple. Here is a sample:
//MOVE EXEC PGM=FDRMOVE,REGION=0M,TIME=1440//STEPLIB DD DISP=SHR,DSN=fdrpas.loadlib//SYSPRINT DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//FDRSUMM DD SYSOUT=*//SYSIN DD * Control statements
/*//PASJOB DD DATA,DLM=$$ FDRPAS JCL and control statements for FASTMOVE
$$
The STEPLIB DD statement points to the authorized library containing FDRPAS and FDRMOVE.
Warning
For EMC SNAP, FDR invokes an EMC API to request the SNAPs. The current EMC TimeFinder software must be in the system linklist or you can concatenate the proper EMC library to the FDRMOVE STEPLIB. Additionally, EMCSCF must be active on this LPAR to process the API calls.
The FDRSUMM DD statement contains a summary of volumes processed, one line per volume. Note that some volumes appear more than once if active data sets cause the volume to be processed repeatedly.
The PASJOB DD statement points to a model job stream to execute the special FDRPAS transit station job that is required for FASTMOVE. This DD statement is optional but is highly recommended. It is used only for a FASTMOVE operation; it is ignored for a MOVE operation. Details of the job stream are discussed later in this section. The DD statement can point to a sequential data set on DASD or a member of a PDS or PDSE. If it is an in-stream input, you must code the DD statement exactly as shown above and follow the job stream with “$$” in columns 1 and 2 to indicate the end of the job.
FDRMOVE Control Statements
The control statements for FDRMOVE are also simple. The operand descriptions below include those operands that are unique to FDRMOVE or essential to the use of FDRMOVE. In addition, FDRMOVE accepts many operands that are documented for FDRCOPY in Chapter 21 of the regular FDR product manual, but these are rarely needed for FDRMOVE.
FDRMOVE is intended to move data sets without renaming them, so do not specify the NEWNAME=, NEWG=, or NEWI= operands on a SELECT statement.
MOVE, FASTMOVE, and SIMMOVE Statement Syntax
,DATA={ALL|USED} | |
,DISABLENEW={YES|NO} | |
,EATTR=OPT | |
,MAXCARDS={1024|nnnnn} | |
,MAXTASKS={8|n} | |
,REMOTEINSTANT={PREFERRED|REQUIRED} | |
,SCANDELAY=nnn | |
,SELTERR={YES|NO} | |
,STOPINACTIVE=nnnn | |
,STOPAFTER=nnnn | |
,VOLSORT={YES|NO} | |
,VTOCEMPTY={NOCHECK|CHECK} |
MOVE, FASTMOVE, and SIMMOVE Statements
The first statement input to FDRMOVE must always be a MOVE, FASTMOVE, or SIMMOVE statement.
MOVE
Invokes the MOVE function. See FDRMOVE MOVE Function with Examples.
FASTMOVE
Invokes the FASTMOVE function. See FDRMOVE FASTMOVE Function with Examples.
SIMMOVE
Performs a simulation of a FASTMOVE step. Control statements are validated and the data sets you specified are selected and displayed. The internal FDRPAS Transit JOB for FASTMOVE is submitted to be sure that it works (no JCL or control statement errors); as soon as it starts successfully it is stopped. No data is moved by the simulation.
The operands for MOVE, FASTMOVE, and SIMMOVE are:
MOVE, FASTMOVE, and SIMMOVE Statement Operands
TYPE=DSF
Specifies that a data set move is to be performed. This operand is required.
DATA=
ALL
All allocated tracks of all data sets are moved.
USED
Only the used portion of Physical Sequential (PS) and Partitioned Organization (PO, PDS) data sets are moved. Even though only used tracks are copied, the output data sets retain the size (allocation) of the input data sets. On volumes with many PS and PO data sets, DATA=USED makes the move run faster.
Default: USED.
DISABLENEW=
NO
A quiesce is not done on the source volumes and new allocations can continue to go to those volumes as well as the output volumes.
YES
SMS-managed source volumes are marked as DISNEW (disabled for new allocations). Non SMS-managed volumes are changed to mount status PRIVATE if they are currently PUBLIC or STORAGE. Changing the mount status to PRIVATE prevents new allocations to those volumes unless the specific volume serial number is provided in the user's JCL.
Default: NO.
The output volumes should be defined to the same SMS storage group (or esoteric unit name for non SMS-managed volumes) as the input volumes, so new allocations naturally go to the new volsers. DISABLENEW=YES is recommended if you want to discontinue use of the source volumes, such as when you are migrating all data off of a DASD subsystem.
Important
FDRMOVE does not re-enable the source volumes if you use DISABLENEW=YES, assuming that you want to stop using them. You must manually re-enable the volumes for new allocations if you want to continue using them.
Warning
If you activate a new SMS configuration, you must be sure that the volumes are marked as DISNEW in the SCDS before you activate it. Otherwise, the volumes may return to ENABLE status, allowing new allocations to the volumes. Also, if you have separate SMS configurations for each LPAR, DISABLENEW=YES only disables the volumes on the current LPAR, so you are responsible for manually disabling the volumes on the other LPARs before moving any data sets.
EATTR=OPT
Allows FDRMOVE to allocate non-VSAM data sets in cylinder-managed space on Extended Address Volumes (EAVs), unless the DSCB for the data set specifies EATTR=NO. (VSAM data sets are eligible by default to be allocated in cylinder-managed space, and are not affected by this operand.) See Extended Address Volumes (EAVs) for additional information on how data sets are allocated on Extended Address Volumes (EAVs).
MAXCARDS=
nnnnn
Accept additional SELECT and EXCLUDE statements (over 1024).
Default: 1024 statements.
Warning
If you use SELECT CATDSN=, VOL= ending with an asterisk, or STORGRP=, FDRMOVE generates internal SELECT statements, one for each source DASD volume selected. If more than 1024 volumes are selected, MAXCARDS= must be specified to increase the control statement table size. Very large values for MAXCARDS= may cause storage shortages; contact BMC Support if you need assistance.
MAXTASKS=
MT=
n
The maximum number of input DASD volumes that are processed concurrently. SYSPRINx DD statements are dynamically allocated to SYSOUT to receive messages from the FDRMOVE subtasks. Selected subtask messages are also repeated on SYSPRINT when each subtask ends.
Default: 8.
Warning
FDRMOVE automatically reduces the default value to 7 if the below-the-line private area is 9 MB, or to 6 if the below-the-line private area is 8 MB or smaller. Also, FDRMOVE reduces MAXTASKS= dynamically if S878 ABENDs occur during execution.
REMOTEINSTANT=
PREFERRED
An attempt is made to use FlashCopy with Preserve Mirror. If the attempt is not successful, the MOVE operation continues and REMOTEINSTANT= is ignored. If FlashCopy is available for the MOVE operation, it is used and the Metro Mirror relationship may enter a “pending” state.
REQUIRED
An attempt is made to use FlashCopy with Preserve Mirror. If the attempt is not successful, the MOVE operation is performed using normal I/O.
Important
If the target unit is not in a Metro Mirror relationship, the REMOTEINSTANT operand is ignored.
SCANDELAY=
SCD=
nnn
The number of seconds (1 to 255) between scans of the list of active data sets. When inactive data sets are found, the volumes they reside on are processed to move the data sets. When this is complete or if no inactive data sets were found, FDRMOVE waits for SCANDELAY= seconds before testing again.
Default: 15 seconds for MOVE, 2 seconds for FASTMOVE.
SELTERR=
Specifies what happens at step termination if FDRMOVE finds that a SELECT statement was never referenced (no data set on any input DASD volume was selected by the statement).
NO
A non-zero return code is not to be set at step termination. You might use SELTERR=NO when you expect some unmatched SELECT statements, perhaps because some data sets may not exist.
YES
A non-zero return code is set at step termination to call attention to a possible control statement error.
Default: YES.
STGADMIN
If specified, FDRMOVE checks to see if the user ID under which it is running is authorized to security class FACILITY profile name STGADMIN.ADR.STGADMIN.MOVE. If so, all security checks are bypassed for all FDRMOVE operations, including system allocation and catalog functions. Using STGADMIN allows FDRMOVE to move all selected data sets without needing any additional security.
Default: FDRMOVE does normal security checks including system allocation and catalog security. The user ID under which FDRMOVE is running must be authorized to create and update all selected data sets. The security system overhead may be significant if many data sets are involved.
Tip
We recommend the use of the STGADMIN.ADR.STGADMIN.MOVE profile for all FDRMOVE operations, especially if you have separate security configurations. STGADMIN reduces the CPU time used by FDRMOVE.
STOPINACTIVE=
nnnn
The number of idle-time minutes that FDRMOVE accumulates before terminating automatically. Idle time is not incremented when FDRMOVE is actively moving data sets, only when it is waiting for data sets to become unallocated.
Default: FDRMOVE executes indefinitely, until all selected data sets have been moved or a console STOP(P) or CANCEL(C) is issued for the FDRMOVE job.
STOPAFTER=
nnnn
A number of elapsed time minutes after which FDRMOVE terminates automatically, after finishing all currently active moves (active FDRMOVE subtasks).
Default: FDRMOVE executes indefinitely, until all selected data sets have been moved or a console STOP(P) or CANCEL(C) is issued for the FDRMOVE job.
STOPAFTER= can be used when you want FDRMOVE to execute only during certain times. For example, STOPAFTER=240 terminates FDRMOVE approximately four hours after the job is started.
VOLSORT=
NO
Output volumes are not rotated. The output volumes are used in the order the volumes are specified by NVOL= or selected from the storage group. You can use VOLSORT=NO when you want to control where data sets are placed.
YES
Output volumes (NVOL= or NEWSTORGRP= on the SELECT statements) are rotated as described under “Output Volume Selection for FDRMOVE” in Section325.2. When data sets are moved from multiple input volumes, FDRMOVE spreads the data sets by moving different input volumes to a different output volume (NVOL=).
Default: YES. We recommend that you do not change the default, especially if STORGRP= or NEWSTORGRP= is specified on a SELECT statement.
Warning
When you specify VOLSORT=NO many checks on the NVOL= list are bypassed; it is your responsibility to specify proper online target volsers.
VTOCEMPTY=
Is only accepted on a SIMMOVE statement.
CHECK
If used with SELECT ALLDSN,VOL=, It checks the VTOCs of all volumes specified on MOUNT statements, and show you the volumes that still have data sets on them (other than the VTOC, VTOCIX, and VVDS). VTOCEMPTY=CHECK can be used to check the input volumes after a MOVE or FASTMOVE to see if they have been emptied. Neither NVOL= nor NEWSTORGRP= is required.
If used with SELECT CATDSN=, you must provide NVOL= or NEWSTORGRP= for all potential target volumes for the selected data sets and it displays all those data sets that are not on volumes in the NVOL= list. In other words, it displays the data sets that still need to be moved.
NOCHECK
VTOCs are not checked.
Default: NOCHECK
EXCLUDE Statement
One or more EXCLUDE statements can optionally be input to exclude certain data sets from selection. EXCLUDE statements should precede SELECT statements. EXCLUDE statements are rarely needed unless you want to exclude by data set size (SIZE=). Only a few operands apply to EXCLUDE in FDRMOVE. Some EXCLUDE statements are automatically generated by FDRMOVE. See Section325.7 “FDRMOVE Consolidate Volumes with MOVE Function”.
EXCLUDE Statement Syntax
EXCLUDE | |
---|---|
,DSORG=([DA],[EF],[PO],[PS],[UM],[UN]) | |
,SIZE=nnnnn | |
,VOL=vol |
EXCLUDE Statement Operands
The operands are:
ALLDSN
Excludes all data sets, so it must be used with one or more of DSORG, SIZE, or VOL to limit the data sets to be excluded.
DSN=
filter
Specifies a fully-qualified data set name or a filter to be used for generic data set exclusion. See the explanation under SELECT below.
DSORG=
Specifies that the EXCLUDE statement is to apply only to data sets whose data set organization matches one of the DSORG values specified. If more than one DSORG is specified, they must be enclosed in parentheses.
Valid DSORG values are:
DA
BDAM
EF
VSAM (including DB2 and Linear)
PO
Partitioned
PS
Sequential
UM
Unmovable
UN
Undefined (NONE)
SIZE=
nnnnn
Specifies a data set size threshold, in tracks. Data sets above this size are excluded.
We have found that the elapsed time to invoke instant replication such as FlashCopy and EMCSNAP is often higher than the time to do normal read/write I/O for small data sets. EXCLUDE ALLDSN,SIZE=1500 might be used in a MOVE step to move data sets under 100 cylinders with normal I/O, while larger data sets can be moved with instant replication in a FASTMOVE step. Examples are shown later.
The maximum value that can be specified for SIZE= is 65535.
VOL=
vol
Specifies the input DASD volume serial(s) to which the EXCLUDE statement is to apply. VOL= may specify a single serial (for example, VOL=ABC123) or a group of volumes all starting with the same prefix (for example, VOL=ABC*). If VOL= is omitted, it applies to all input volumes.
SELECT Statement
One or more SELECT statements must be input to FDRMOVE. SELECT specifies the data sets and/or volumes to be moved, and additional operands can limit the data sets.
SELECT Statement Syntax
SELECT | |
---|---|
,DATA=ALL | |
,DSORG=([DA],[EF],[PO],[PS],[UM],[UN]) | |
,MGMTCLAS=mgmtclas | |
,NEWSGFREE%=nn | |
,NVOL=(vol[,vol[,…]])[,NEWCUID=sssss]| | |
,NEWSTORGRP=storgrp[,NEWCUID=sssss]| | |
,STORCLAS=storclas | |
,STORGRP=storgrp[,CUID=sssss] | |
,VOL=vol |
SELECT Statement Operands
The operands are:
ALLDSN
Selects all data sets on a volume, so it must be used with VOL=. The VTOCIX, VVDS, and ABR Model DSCB are automatically excluded.
CATDSN=
filter
Specifies a fully-qualified data set name or a filter to be used for generic data set selection from system catalogs. The filter syntax is the same as for DSN= below, but system catalogs are searched for the data sets. The volume serial of each data set is taken from the catalog, so VOL= is not required. However, VOL= can be specified to limit the cataloged data sets to only the volume(s) given.
FDRMOVE uses the information from the catalog to build internal SELECT DSN= statements, one for each input volume found.
DSN=
filter
Specifies a fully-qualified data set name or a filter to be used for generic data set selection from the VTOCs of the input volume(s). It must be used with VOL= to specify the input volume(s).
The filter is extremely flexible and is completely described in Section 80.14 of the FDR product manual. Here are the filter characters most likely to be used with FDRMOVE:
/ (slash)
Represents exactly one character, with any value.
* (asterisk)
Represents a variable number of characters in an index level of a data set name (from zero to eight characters).
** (double asterisk)
Represents a variable number of characters that may span more than one index level.
Examples:
DSN=ABC** selects all data sets beginning with ABC.
DSN=ABC.** selects all data sets with a 1st index level of ABC.
DSN=ABC.Z*.CNTL selects all data sets with a 1st index of ABC, a 3rd index of
CNTL and a 2nd index beginning with Z.
DSN=ABC///.** selects all data sets with a 6-character 1st index starting
with ABC.
DATA=
ALL
All allocated tracks of all data sets that are selected by this SELECT statement are copied.
Default: The value of DATA= on the MOVE or FASTMOVE statement (that defaults to moving only used tracks for PS and PO data sets).
DSORG=
Specifies that this SELECT statement is to apply only to data sets whose data set organization matches one of the DSORG= values specified. If more than one DSORG= is specified, they must be enclosed in parentheses.
Valid DSORG= values are:
DA
BDAM
EF
VSAM (including DB2 and Linear)
PS
Sequential
PO
Partitioned
UM
Unmovable
UN
Undefined (NONE)
MGMTCLAS=
mgmtclas
Specifies the SMS management class to be associated with the output data set, overriding the original management class (if any).
Default: The SMS management class of the input data set (if any) is used for the output.
Important
The management class Automatic Class Selection (ACS) routine is not called. The specified management class name is not checked for validity.
NEWSGFREE%=
nn
Specifies the percentage of free space to leave on the target volume when moving with the NEWSTORGRP= or ENEWSTORGRP= operands.
Default: The value is dynamic based on the entire storage group so that data is spread across all volumes in the storage group evenly.
NVOL=
vol
Specifies the volume serial(s) of output DASD volumes where data sets selected by this statement are to be moved. It is required. You may specify:
- A single specific volume serial, for example,
NVOL=ABC123 - A list of specific volume serials, enclosed in parentheses, for example,
NVOL=(TSO001,TSO002,TSO003) - A group of volumes by placing an asterisk at the end of the volume serial number prefix, for example,
NVOL=TSO* - A combination of specific and group, for example,
NVOL=(TSO*,PROD*,ABC001)
A group is resolved by scanning all online DASD volumes for the specified volume serial number prefix, but the order of the volumes is unpredictable. Only the first 255 volumes selected are used. Internally, specific volsers are moved to the front of the list, followed by any prefixes.
The output volumes are dynamically allocated when the volumes are selected as a target.
The NVOL= list may contain a mix of SMS-managed and non SMS-managed volumes. For each input volume, only those NVOLs matching the type of the input volume (SMS-managed or non SMS-managed) are chosen. If the NVOL= list includes both 3380s and 3390s, only those matching the type of the input volume are selected. Only online volumes are selected; if no specified volumes are online, you receive a diagnostic message.
NEWSTORGRP=, ENEWSTORGRP=, and NVOL= are mutually exclusive and only one of these operands can be specified on a SELECT statement.
For an explanation of how NVOL= is used, see Output Volume Selection for FDRMOVE.
NEWSTORGRP=
storgrp
Specifies an SMS storage group name for output data set allocation. All online volumes in the storage group become an implied NVOL= operand. The volumes are selected and sorted in descending order by free space reported by SMS. NEWSTORGRP=, ENEWSTORGRP=, and NVOL= are mutually exclusive and only one of these operands can be specified on a SELECT statement.
NEWSTORGRP= is used like NVOL= for output volume selection.
NEWCUID=sssss
(five digits) is an additional operand that can be specified to limit the output NEWSTORGRP= selection to a specified DASD control unit. NEWCUID= specifies the 5-digit serial number of the control unit. The NEWCUID= operand must precede the NEWSTORGRP= operand, for example, NEWCUID=12345,NEWSTORGRP=ABC. You must use NEWCUID= when you are moving data sets to the same storage group (the storage group has already been updated to include the target DASD volumes), so that only volumes in the target control unit are selected. You may need to use NEWCUID= when the new storage group contains volumes from multiple control units, to limit the selection to one control unit.
You must specify NEWCUID= if the source volumes are in the same storage group as the target volume.
Important
FDRMOVE allocates to volumes in the new storage group even if they are marked as DISNEW or QUINEW. Keeping volumes in DISNEW status allows FDRMOVE to allocate the data sets to the volumes in this status, and prevents users from using them. Use ENEWSTORGRP= to bypass volumes marked as DISNEW from the allocate volume list.
ENEWSTORGRP=
storgrp
Specifies an SMS storage group name for output data set allocation in the same manner as NEWSTORGRP=, but does not select volumes that are marked as DISNEW. All online volumes in the storage group become an implied NVOL= operand. The volumes are selected and, sorted in descending order by free space reported by SMS. NEWSTORGRP=, ENEWSTORGRP=, and NVOL= are mutually exclusive and only one of these operands can be specified on a SELECT statement.
ENEWSTORGRP= is used like NVOL= for output volume selection.
NEWCUID=sssss
(five digits) is an additional operand that can be specified to limit the output ENEWSTORGRP= selection to a specified DASD control unit. NEWCUID= specifies the 5-digit serial number of the control unit. The NEWCUID= operand must precede the ENEWSTORGRP= operand, for example, NEWCUID=12345,ENEWSTORGRP=ABC. You must use NEWCUID= when you are moving data sets to the same storage group (the storage group has already been updated to include the target DASD volumes), so that only volumes in the target control unit are selected. You may need to use NEWCUID= when the new storage group contains volumes from multiple control units, to limit the selection to one control unit.
You must specify NEWCUID= if the source volumes are in the same storage group as the target volume.
STORCLAS=
storclas
Specifies the SMS storage class to be associated with the output data set, overriding the original storage class.
Default: The SMS storage class of the input data set is used for the output.
Important
The storage class Automatic Class Selection (ACS) routine is not called. The specified storage class name is not checked for validity.
STORGRP=
storgrp
Specifies an SMS storage group name for input volume selection. All volumes in the storage group become implied VOL= operands. FDRMOVE internally generates multiple SELECT statements, one for each volume, so MAXCARDS= may need to be increased if you select many volumes. STORGRP= can only be used with SELECT ALLDSN or DSN=, not CATDSN=. You must not specify both STORGRP= and VOL= on the same SELECT statement. The volumes are sorted in descending order by allocated space to be matched with the sorted target volumes specified by NEWSTORGRP= or ENEWSTORGRP=.
CUID=sssss
(five digits) is an additional operand that can be specified to limit the input STORGRP= selection to a specified DASD control unit. CUID= specifies the 5-digit serial number of the control unit. The CUID= operand must precede the STORGRP= operand, for example, CUID=12345,STORGRP=ABC. You must use CUID= when the storage group has already been updated to include the target DASD volumes, so that only volumes in the source control unit are selected. You may need to use CUID= when the storage group contains volumes from multiple control units, to limit the selection to one control unit.
Important
The CUID= operand cannot be specified unless the STORGRP= operand is also specified.
You must specify CUID= if the source volumes are in the same storage group as the target volume.
You can display the serial number of a control unit with the console command “DS QD,unit” specifying a device in the control unit.
Display Serial Number of Control Unit (DS QD,01C0)
IEE459I DEVSERV QDASDUNIT VOLSER SCUTYPE DEVTYPE CYL SSID SCU-SERIAL DEV-SERIAL01C0 SYM000 2105F20 2105 10017 3000 XX07-00547 XX07-00547 |
To exclude one or more volumes from the STORGRP= selection, you can specify an EXCLUDE ALLDSN,VOL=vol statement before the SELECT.
VOL=
vol
Specifies the input DASD volume serial(s) to which this SELECT statement is to apply.
VOL= can be a single volume serial number (for example, VOL=ABC123) or a group of volsers, terminated with an asterisk (VOL=ABC*). VOL=* is not valid.
For CATDSN=, VOL= limits the volumes that are selected from the catalog; it is optional.
Care should be take when specifying VOL=ABC* since it may select many unintended volumes. Run with SIMMOVE to verify the volumes to be selected.
You must not specify both STORGRP= and VOL= on the same SELECT statement.
Only one VOL= operand can be specified on a SELECT statement.
Output Volume Selection for FDRMOVE
FDRMOVE does not use SMS (or other allocation control software) to determine data set placement, so you must specify NVOL=, NEWSTORGRP=, or ENEWSTORGRP= even if you are moving SMS-managed data sets. You may need to update allocation control software, other than SMS, to prevent allocation to the input volumes and to allow allocation to the new volumes.
- For non SMS-managed input volumes, FDRMOVE selects only non SMS-managed target volumes from the NVOL= list you provide.
- For SMS input volumes, FDRMOVE selects only SMS target volumes from the NVOL= list you provide. However, if all the input volumes are SMS, it is highly recommended that you use the NEWSTORGRP= or ENEWSTORGRP= operand to select the target volumes.
If the NVOL list contains both SMS-managed and non SMS-managed volumes or 3380s and 3390s, FDRMOVE selects only those output volumes that match the type of each input volume. The target volumes may be the same size as the input, or can be larger or smaller.
If you have several consecutive SELECT statements (specifying DSN= or ALLDSN) with the same NVOL= list, FDRMOVE round-robins (“rotate”) the list. On the second SELECT the first volume is moved to the last slot, and this is repeated for subsequent SELECT statements. This round-robin rotation spreads the data sets across the output volumes. Since each SELECT specifies one input volume, the data sets from one input volume are moved to the first NVOL=, data sets from the second input go to the second NVOL=, and so on. If the NVOL= lists are different on two consecutive SELECT statements, the rotation is restarted (by using the new NVOL=).
SELECT CATDSN=
Creates internal SELECT DSN= statements, one for each unique data set and per input volume found in the catalog, each with the same NVOL= list copied from the SELECT CATDSN=. So the output volume rotation is always done for each CATDSN= statement selecting multiple input volumes.
SELECT VOL=ABC*
(A volume serial group ended with an asterisk.) Creates internal SELECT DSN= statements for each input volume found, each with the same NVOL= list that is copied from the SELECT VOL=ABC*. So the output volume rotation is always done for each VOL=ABC* statement selecting multiple input volumes.
SELECT STORGRP=
Creates internal SELECT VOL= statements, one for each input volume found in the storage group, each with the same NVOL list copied from the SELECT. So the output volume rotation is always done for each STORGRP= statement selecting multiple input volumes.
The rotation described above is not done if VOLSORT=NO is specified on the main statement. VOLSORT=NO should not be specified with CATDSN= or STORGRP=. The purpose of VOLSORT=NO is to allow you to direct a specific SELECT VOL= statement to a specific NVOL= list.
SELECT NEWSTORGRP= or ENEWSTORGRP= initially sorts the volumes in the storage group by available free space, these target volumes are then matched with source volumes that are initially sorted by available free space.
Pieces of multi-volume data sets always go to the first volume in the rotated NVOL list, unless a piece of the data set already exists there, in that case other NVOLs in the same list are tried.
If CATDSN= selects only one input volume or an ALLDSN/DSN= is specified with a unique NVOL= list, the first volume in the NVOL= list (or the first found by the UCB scan if a volume serial number prefix was specified) is the primary output volume. All data sets go to that primary volume unless insufficient free space is available or the data set is multi-volume (see below). If the allocation fails, other volumes in the NVOL= list are tried. If you are moving a multi-volume data set (non-VSAM or SMS-managed VSAM), the volume sequence number of the piece of the data set being allocated is used to select a specification from your list. For example, if NVOL=(A,B,C), the second piece of the data set goes to volume “B”. If that specification is a group, the first volume in the UCB chain matching that group is tried.
The NVOL= list for FDRMOVE should specify more than one volume serial number for two reasons:
- Multi-volume data sets must be moved to the same number of volumes that they currently occupy. FDRMOVE can move each piece of a multi-volume data set independently but it cannot combine pieces; so if the selected data sets includes, for example, a three volume multi-volume data set you must have at least three volumes in the NVOL= list.
- Although you may be attempting to merge several smaller DASD volumes into one larger DASD volume, it is possible that because of volume fragmentation or the order of allocation, all data sets from the input volumes may not fit onto one output volume. The NVOL= list should contain extra volumes as spill volumes.
A SIMMOVE displays, for each input volume, the highest multi-volume sequence number found on that volume (all non-VSAM files and SMS VSAM only). Find the highest displayed value for any volume for data sets going to the same NVOL= list, and you know the minimum number of volumes that must be in the list.
If an allocation is attempted on several volumes from your NVOL= list but it fails on all of them, the message printed usually shows the allocation failure codes from the first volume only; failure codes from other volumes are not displayed and may be different.
Choosing the Number of Target Volumes
Here are some guidelines for specifying the NVOL= list:
- You wish to consolidate 60 full 3390-3s to empty 3390-9s. Because the capacity of the 3390-9 is three times that of the 3390-3, you need a minimum of (20) 3390-9 volumes in the NVOL= list. However, you usually want to specify a few extra NVOL= volumes. We recommend 10% extra, which would be two volumes in this example, for a total of 22. The first 22 input volumes go to the 22 output volumes, the next 22 go to the same 22 output volumes, and the last 16 would go to the first 16 output volumes. If the allocation of any data set fails on its target volume, FDRMOVE moves down the NVOL= list until it finds a successful volume for the data set. The extra output volumes help ensure that the allocations are successful.
- The same formula applies regardless of the size of the input and output DASD volumes. Use the ratio of the DASD sizes to determine the number of output volumes. For example, a 3390-3 to a 3390-27 would be a 9:1 ratio.
- If you determine that the average allocation on your input volumes is less than 80%, you may be able to reduce the number of NVOLs.
- If you first used FDRPAS to move volumes from the smaller DASD to the larger DASD, fewer of the smaller DASD would then remain to be moved by FDRMOVE, and the resulting ratio for 3390-3 to 3390-9 would be 2:1, and for a 3390-3 to 3390-27 would be 8:1.
- If the input DASD volumes contain multi-volume data sets, the NVOL= list must contain at least as many volumes as the maximum number of volumes occupied by any one data set. A SIMMOVE displays, for each input volume, the highest multi-volume sequence number found on that volume (non-VSAM and SMS VSAM only). Find the highest displayed volume for data set going to the same NVOL= list, and you know the minimum number of volumes that must be in the list.
- If you select data sets with CATDSN=, use the SIMMOVE function to determine the number of input volumes.
FDRPAS Transit JOB for FASTMOVE
FASTMOVE requires a special FDRPAS “TYPE=TRANSIT” job to be active on the same system as the FDRMOVE job. This job handles the task of moving input volumes to and from transit stations. Although you can submit this job manually, we recommend that you let FASTMOVE automatically submit the FDRPAS job when it is needed. FASTMOVE also automatically stops the FDRPAS job when it is done.
If FASTMOVE determines that some of the input volumes are not already in the target subsystem, then FASTMOVE submits the FDRPAS job with the identified volume serials. The FDRPAS job starts moving input volumes to the transit stations. It processes DASD volumes concurrently, up to the maximum number of tasks (MAXTASKS=). As each volume completes, another volume is chosen to move until all are moved or the number of transit station devices is exhausted. When FASTMOVE finishes moving all selected data sets from an input volume, FDRPAS automatically moves it back to its original device. Another volume can then be moved to that transit station.
In order for FASTMOVE to submit the FDRPAS job, you must include the optional PASJOB DD statement in the FASTMOVE step. This DD statement must point to a model FDRPAS transit station (SWAP TYPE=TRANSIT) job stream, including JOB statement, other JCL and control statements.
If FASTMOVE submits the FDRPAS job, it monitors it to be sure that it becomes active. If not, the FASTMOVE step is terminated. At first, FASTMOVE waits up to five minutes for the FDRPAS job to start, with a status message every 15 second warning that it has not started. If the FDRPAS job never starts, the FASTMOVE step is terminated. You should ensure that the FDRPAS job has a high priority so it starts promptly. A SIMMOVE only waits 15 seconds for the FDRPAS job to start.
The FDRPAS job stream must be a complete job, including a valid JOB statement. This is a “job within a job”, but the FDRPAS job stream is submitted (via the internal reader) for execution only if FASTMOVE needs to move a volume to a transit station. Although FDRMOVE does some validation on the JOB statement, it is not comprehensive. If the FDRPAS job does not start, check the JOB statement (SYSLOG may contain some JES messages that may give a clue as to the error).
Here is a sample FDRPAS job JCL:
//TRANSIT1 JOB (accounting info),FDRMOVE,CLASS=c,
// MSGCLASS=m <-- add any other required JOB parameters
//TRANSIT EXEC PGM=FDRPAS,REGION=0M
//STEPLIB DD DISP=SHR,DSN=fdrpas.loadlib
//SYSPRINT DD SYSOUT=*
//FDRSUMM DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
Control statements
/*
If you execute multiple concurrent FDRMOVE steps, then you need a unique job name for every transit job so that they can also run concurrently. The job must execute on the same LPAR as the FASTMOVE job.
Tip
REGION=0M is always recommended; in order to process multiple input volumes concurrently, a large below-the-line region is needed.
The STEPLIB points to the authorized library containing FDRPAS and FDRMOVE.
Transit Job SWAP Statement
The first control statement in SYSIN for the FDRPAS job (after the JCL) must be a SWAP TYPE=TRANSIT statement.
Transit Job SWAP Statement Syntax
SWAP | |
---|---|
,MAXACTIVESWAPS={NO|YES} | |
,MAXCARDS={250|nnnn} | |
,MAXTASKS={5|nn} | |
,PACEDELAY={0|nnnnn} | |
,PACING={STATIC|DYNAMIC} | |
,TRANSITRETURN=YES|NO |
Most of these operands are the same as the operands documented for the FDRPAS SWAP statement (see SWAP, SWAPDUMP, SIMSWAP, SIMSWAPMON Statements). Please see that section for the explanation of PACEDELAY= and PACING=.
Also note that NONRESPONDING=RETRY is forced, so any non-responding FDRPAS MONITOR tasks cause message FDRW68 to be issued, where you can retry the failing systems or cause the transit station swap to fail. Also, LARGERSIZE=OK is set so that transit station devices can be larger than the source volumes.
Transit Job SWAP Statement Operands
The other operands are:
TYPE=TRANSIT
Is required.
MAXACTIVESWAPS=
MAS=
NO
The total number of active transit SWAP tasks, in multiple FDRPAS jobs, is not limited or controlled. If you submit multiple FDRPAS jobs, each of them may be actively copying data for multiple DASD volumes (up to the MAXTASKS=nn limit in each job). Many such jobs may overload DASD channels and system common storage. In this case, we recommend that you submit a few such jobs at one time, and submit new jobs as each old job finishes.
YES
FDRPAS limits the number of transit SWAP tasks in multiple FDRPAS jobs that can be in the initial “pass 1" copy phase, where the tracks that are identified by FDRPAS as “in-use” are copied. The limit is equal to the value of MAXTASKS=nn which has a maximum of 32. If you submit multiple FDRPAS jobs, FDRPAS limits to “nn” the number of volumes that can be in “pass 1" across all of those jobs. This allows you to submit many FDRPAS jobs while limiting the number of volumes that are actively copying data. Beyond “pass 1", FDRPAS periodically copies updated tracks that are a much smaller load on the system.
Default: NO.
MAXCARDS=
nnnn
Specifies the maximum number of MOUNT statements that can be present in this FDRPAS step, from 1 to 9999. There is one MOUNT for each input volume that needs to be moved to transit stations, so set the value appropriately. Note that FDRPAS acquires a table with a size of 160*MAXCARDS bytes in below-the-line storage, so very large values may cause GETMAIN failures.
Default: 250.
MAXTASKS=
nn
Specifies the maximum number of volumes that can be moving to or from transit stations concurrently by this SWAP task, from 1 to 64. You must follow the SWAP statement with multiple MOUNT statements, specifying the volumes to be processed (the MOUNT statements may be generated by FASTMOVE, see MOUNT below). However, the TYPE=TRANSIT job waits until it is instructed by the FDRMOVE job to move a volume to an available transit station, or move it back to its original device.
In order to separate the messages from these swaps, messages are written to SYSPRINx DD statements (“x” is 1-9, 0, and A-V in that order, depending on MAXTASKS=nn). The SYSPRINx DD statements are dynamically allocated as “SYSOUT=*”. At the termination of each swap subtask, most of its messages are also written to SYSPRINT so that all FDRPAS messages are in one place.
Default: 5. Do not override the MAXTASKS= operand to a smaller value unless you are concerned about the impact of FDRPAS on your production response time (this is rarely a problem). You can override the MAXTASKS= operand to a larger value to move more volumes to the transit stations concurrently.
TRANSITRETURN=
NO
FDRPAS leaves the DASD volume on the transit station device, even after it is no longer needed by FASTMOVE. If data sets remain on this volume, they can benefit from the performance of the new subsystem. This option can be set dynamically with a MODIFY(F) command. See MODIFY Status Command.
YES
When the FDRMOVE “FASTMOVE” job indicates that it is finished with a given DASD volume, the FDRPAS job moves the volume back to its original device. Since FASTMOVE usually moves all or most of the data sets off the volume, this swap may be very quick.
If you intend to stop the FDRMOVE job before it finishes processing all data sets and restart it later; you may want to specify TRANSITRETURN=NO so the input volumes are already in the new subsystem
Default: YES.
Transit Job EXCLUDE Statement
The EXCLUDE statement (see SWAP Task EXCLUDE Statement) is accepted and may be required when the source DASD volumes are attached to non-z/OS systems (such as z/VM, VSE, or Linux on IBMZ) or inactive systems. Please read that section to understand when it must be used.
Transit Job EXCLUDE Statement Syntax
EXCLUDE | CPUID=cpuid | |
---|---|---|
Transit Job MOUNT Statement
The MOUNT statement defines the online source volumes that can be moved to a transit station, and the transit station device addresses to which they can be moved.
Transit Job MOUNT Statement Syntax
MOUNT | VOL=&&&&&&|vol |
---|---|
,SWAPUNIT=(uuu1[,uuu2,…]) | |
Transit Job MOUNT Statement Operands
VOL=
Specifies the volume serial of an online volume that may be swapped to a transit station device. You have two options:
– If you are going to let FASTMOVE automatically submit the FDRPAS job, you must specify a mask VOL=&&&&&&. In this case you must provide only a single MOUNT statement. FDRMOVE replicates this MOUNT statement and all of its associated transit stations (SWAPUNIT=) for each DASD volume FASTMOVE determines must be moved. Since there is one replicated MOUNT for each source volume, the MAXCARDS= operand must be set if more than 250 volumes are selected.
– If you submit the FDRPAS TYPE=TRANSIT job manually, you can specify a single volume serial, VOL=vol. You need to code multiple MOUNT statements, to specify the transit stations for use with each source volume. The transit station list (SWAPUNIT=) could be the same for each source volume, or you can provide varying lists of transit stations for each volume. It is your responsibility to include a MOUNT for every source volume that FASTMOVE needs.
SWAPUNIT=
SU=
uuuu
Specifies the z/OS device addresses of the offline transit station devices to be associated with a given source volume. The address can be specified as a 4-digit (hex) z/OS device address, or it can be specified as 1, 2, or 3 digits with a trailing asterisk(*); in this case all offline z/OS DASD addresses starting with the prefix specified are used as transit stations. To provide multiple devices or ranges of devices (by prefix), specify them in parentheses, separated by commas, but you cannot specify more than 255 subparameters (device addresses or address prefix ranges) within the parentheses. If you use address ranges, the total number of transit stations can be up to 8190. Only devices that are offline and accessible at the time the monitor starts are used as transit stations; if a device is placed offline or becomes accessible after the SWAP task starts, it is not used.
At least two offline units must be specified on the SWAPUNIT= operand unless TRANSITRETURN=NO is also specified.
The transit station devices must be as large as or larger than the input volumes specified by VOL=.
FASTMOVE works best when the number of offline transit station devices equals or exceeds the number of input volumes. FASTMOVE is able to move all the input volumes to a transit station. Then, when you “bounce” the application that is using the data sets, all of them can be moved at once.
However, it may not be possible for you to provide a sufficient number of transit stations. FASTMOVE still works, but in stages. FASTMOVE moves input volumes to the transit stations until it runs out of stations. The FDRMOVE ISPF panel or the console STATUS command shows you what volumes are in transit stations and what data sets FASTMOVE is waiting for. Now when you bounce the application, FASTMOVE moves a subset of the data sets specified.
Assuming that all selected data sets on that set of input volumes have been moved, they are swapped back to their original devices, and other volumes move to the transit stations. Now, you can bounce the application again to move the data sets from those volumes. This is repeated until all selected data sets have been moved.
For example,
MOUNT VOL=&&&&&&,SWAPUNIT=(17C0,17C1,17C2)
Three offline transit station devices.
MOUNT VOL=&&&&&&,SWAPUNIT=17C*
Transit station devices in the range 17C0-17CF
MOUNT VOL=&&&&&&,SWAPUNIT=(17*,18*,19A*)
Transit station devices in the ranges 1700-17FF, 1800-18FF, and 19A0-19AF.
MOUNT VOL=IN0001,SWAPUNIT=(17*,18*)
Transit station devices in the ranges 1700-17FF and 1800-18FF.
See the notes above under VOL= for information on how to specify the transit stations. The syntax for SWAPUNIT= in a SWAP TYPE=TRANSIT job is different from that in a normal FDRPAS SWAP TYPE=FULL job.
If you have a list of transit station devices, and you specified VOL=&&&&&&, then the MOUNT statement may be continued onto a maximum 15 lines (16 lines total). For example:
MOUNT VOL=&&&&&&,SWAPUNIT=(03A0,03A1,03A2,03A3,03A4,03A5,03A6,03A7)
The MOUNT statement with all its continuations is replicated for each selected source volume.
FDRPAS Monitor Tasks for FDRPAS Transit JOB
An FDRPAS MONITOR task must be executed on every z/OS LPAR that the source DASD is connected to except the LPAR where the SWAP TYPE=TRASNSIT job runs, even if the volume is offline on that LPAR; however, the MONITOR task does not actually participate on the LPAR where the SWAP task is running. For non-z/OS LPARs, such as z/VM and Linux on IBMZ, see the EXCLUDE statement above.
Each FDRPAS MONITOR task must specify the offline transit station DASD volumes and any source DASD volumes that are offline to any of the LPARs. The MONITOR task does not need to run on the LPAR where the SWAP TYPE=TRANSIT job runs. You may need a unique job name for each MONITOR. The JCL is the same as the FDRPAS job shown above. You must start these MONITOR tasks before submitting the FASTMOVE. Note that if an online source DASD volume is included in the SWAPUNIT list, it is simply ignored.
Note that the MONITOR tasks have minimal overhead and have no impact on any DASD volumes or jobs that are not involved in the SWAP. For DASD volumes being swapped to a transit station, the MONITOR installs a low-overhead I/O intercept on the online volume to monitor for updates, but does very little other I/O to those DASD volumes. The intercepts are removed when the volume has been swapped. Therefore, the MONITOR tasks have almost no impact on the LPARs where they run.
MONITOR tasks use little CPU time, but when they need it, to communicate with the SWAP task, they must be able to get it. Two causes for non-responding systems are:
- The MONITOR task does not have a sufficiently high priority, so that higher priority jobs can prevent it from getting dispatched.
- The LPAR is capped, allowing it little or no CPU time.
Transit Job MONITOR Statement Syntax
MONITOR | TYPE=SWAP | |
---|---|---|
,DURATION=nnnn |
Transit Job MONITOR Statement
This statement initiates an FDRPAS MONITOR task that monitors for FDRPAS SWAP tasks beginning a SWAP TYPE=TRANSIT operation. It must be the first statement in the input; only one MONITOR statement is allowed per execution. For more detail on the operation of the MONITOR and other operands that you may want to use. See MONITOR SWAP Statement.
A MONITOR TYPE=SWAP statement must be followed by exactly one MOUNT statement to identify the offline devices to be monitored. For FASTMOVE, this MONITOR task must monitor all transit station swap units specified in the SWAPUNIT= of the FDRPAS job. You may also include regular FDRPAS target devices for swaps in the same MONITOR task.
Transit Job MONITOR Statement Operands
TYPE=
Must be specified on the MONITOR statement.
SWAP
Initiates a MONITOR task that monitors offline volumes for a swap operation that is initiated by a SWAP task.
DURATION=
nnnn
Specifies the number of idle minutes that the MONITOR task executes; it does not include time that the MONITOR task is actively participating in a swap. The MONITOR task automatically terminates when it has been idle for a total of this many minutes.
Default: The MONITOR task executes until it is terminated by a console STOP(P) command, canceled, or until all devices that it is monitoring have been swapped or are online.
If the FASTMOVE job may execute for a long time, DURATION= should be omitted.
MOUNT Statement Syntax
MOUNT | SWAPUNIT=(uuu1[,uuu2,…]) | |
---|---|---|
MOUNT Statement
The monitor MOUNT SWAPUNIT= statement follows the MONITOR TYPE=SWAP statement and specifies an offline target device or set of devices to be monitored to see if one or more of them is selected as the target of a swap by an FDRPAS TYPE=TRANSIT or a regular FDRPAS SWAP task on another LPAR. Only one MOUNT statement can be specified, specifying the devices to be monitored by this MONITOR task.
After a TYPE=TRANSIT swap, the MONITOR task automatically switches to monitoring the original input DASD volume (now offline) so that the volume can be returned to the original DASD volume when requested by FASTMOVE. There is no need to specify the original DASD units. When the volume is swapped back to its original location the MONITOR task again switches to monitor the offline transit station. Therefore, the same MONITOR tasks are used for the swap to the transit station and then back to the original device; there is no need to stop and restart the MONITOR tasks in between.
If a MONITOR task is stopped (because of a console STOP(P) command or the DURATION= operand or an error), and there are volumes still in transit stations, you should restart the MONITOR tasks with SWAPUNIT= specifying the original DASD devices of those volumes, in addition to all the transit station devices, so that the MONITOR tasks can successfully swap a volume in and out of a transit station.
MOUNT Statement Operands
SWAPUNIT=
uuuu
Specifies the z/OS device addresses of the target devices to be monitored. The address can be specified as a 4-digit (hex) z/OS device address, or it can be specified as 1, 2, or 3 digits with a trailing asterisk(*); in this case all offline z/OS device addresses starting with the prefix specified are monitored. To monitor multiple devices or ranges of devices, specify them in parentheses, separated by commas, but you cannot specify more than 255 subparameters (device addresses or address ranges) within the parentheses. If you use address ranges, the total number of devices to monitor can be up to 8190. Only devices that are offline and accessible at the time the MONITOR task starts are monitored; if a device is placed offline or becomes accessible after the MONITOR task starts, it is not monitored.
For example,
MOUNT SWAPUNIT=17C0
Monitors one offline device 17C0.
MOUNT SWAPUNIT=17C*
Monitors offline devices in the range 17C0-17CF.
MOUNT SWAPUNIT=(17*,18*,19A*)
Monitors offline devices in the ranges 1700-17FF, 1800-18FF, and 19A0-19AF.