FDRCOPY Processing Options and Requirements
FDRCOPY operations
A COPY operation makes copies of the selected input data sets. In most cases, the output data sets are given new names, to avoid creating duplicate data sets names (since only one copy of a data set name can be cataloged). You can use COPY to create duplicate names for non-VSAM data sets, such as when cloning a z/OS residence volume, but the output data sets are not cataloged unless you force them to catalog (making the original data sets uncataloged). For VSAM, the output data set must have a name different from the input unless you catalog it in a different catalog.
A MOVE operation is similar to a COPY, except that the input data sets are deleted when successfully copied. MOVE allows you to move selected data sets to new volumes. In most cases, the output data sets retain their original names and the catalog is updated to point to the new location (if the catalog pointed to the input data set). For VSAM, a temporary name is used for the cluster and its components; it is renamed after the input data set is deleted.
A REORG operation reorganizes a PDS (Partitioned Data Set) in place. This is similar to an IEBCOPY COMPRESS but is much faster. REORG is functional only if you are licensed for FDRREORG, a separately-priced component of FDR (see Working-with-FDRREORG).
Memory requirements
Most FDRCOPY jobs run in a region of 2000K of below-the-16MB-line storage, although this requirement increases if the MAXTASKS= operand is specified. If a large number of data sets or VSAM clusters are to be processed, more storage may be required. Some logical copy operations may also require additional memory. FDRCOPY memory requirements are fixed for a given function; if too large of a region is provided, FDRCOPY does not use the excess memory, but it fails if too small a region is given. Therefore, we recommend that you specify as large a region as possible (REGION=0M allocates the largest possible region).
Some FDRCOPY functions use memory above the 16MB line. The normal default region of 32M above the line is usually adequate, but if your default is smaller or more is required, specify a larger value (for example REGION=64M allocates 64MB above the line and the largest possible region below).
Error detection
If any of the selected data sets are not found on any input DASD volume or have errors (such as I/O errors), FDRCOPY continues the copy/move operation for the remainder of the data sets. An error message identifies the failing data set and a U0888 abend is issued for the step at completion to call attention to the error.
E-mail notification
FDR has the ability to send e-mail messages indicating the failure (or optionally the success) of FDR operations. This is invoked by the presence of the FDREMAIL DD statement in the FDR step, pointing to e-mail specification statements. E-mails may also be sent to text-enabled pagers and cell phones. E-mail statements and the instructions for enabling FDR e-mail are in FDR-E-mail-notification-facility.
Security
Complete details on the security options of the FDR system are found in Security.
For FDRCOPY, ALLCALL results in these security checks:
- For input data sets for COPY and MOVE, FDRCOPY always checks to see if your user ID has at least READ authority to the entire input volume; under IBM RACF this means that you are authorized to the input volume serial under the DASDVOL security class (other security systems have similar ways of defining volume authority). If you do have this volume authority, no additional checks are done on that input volume. If you do not have volume authority, then FDRCOPY checks if you have at least READ authority under the DATASET security class to every data set being copied. Any data sets to which you are not authorized is bypassed with an error message. However, on a MOVE, the delete of the input data set fails if you do not have ALTER authority to the data set.
- For output data sets for COPY or MOVE, when data sets must be allocated on the output volume, the system services called by FDRCOPY to allocate the data set do their own checks to be sure you are authorized to do so; this is always done regardless of FDR security options. For preexisting output data sets, FDRCOPY checks to see if your user id has UPDATE authority to the entire output volume. If you do have this volume authority, no additional checks are done on that output volume. If you do not have volume authority, then FDRCOPY checks if you have UPDATE authority under the DATASET security class to every preallocated output data set. Any data sets that you are not authorized to access are bypassed with an error message.
- If the COPY or MOVE includes absolute track address selections (FROM/TO), only the DASDVOL checks described above are done for those absolute track ranges. If volume security rules are not defined, any user can do absolute track operations on the unprotected volumes, so we recommend always defining such rules. You can disable absolute track operations by the NOABSTRK option in the FDR Global Options (Security-Options).
Data set enqueue option
You can request, via the DSNENQ= operand, that each data set being copied or moved be tested to see if it is in use. A data set is considered in use if any job or TSO user has a DD statement or dynamic allocation for that data set name.
In-use data sets are tested by doing an exclusive enqueue with a major name of SYSDSN and a minor name of the data set name itself; this resource is enqueued by any other task allocating the data set so our enqueue fails if it is in use. This test is done for selected input data sets selected by FDRCOPY and also for output data sets if you are assigning them a new name.
If you have requested or defaulted to data set enqueues, any data set that is in use causes an FDR158 warning message to be printed; this sets the job error flag and causes a U0888 abend when the step is complete (see Step Termination). If you do not want in-use data sets to be considered an error, specify the ENQERR=NO operand; this prints the FDR158 message without setting the error flag.
You can request that inactive data sets be enqueued to FDRCOPY during the copy/move, to insure that no other job or TSO user can access the data set until the copy is done. This is the default.
In-use input data sets are not copied by default. If you wish to copy active data sets, specify the ENQERR=PROCESS operand, but you must be aware that the copies of data sets that are being updated during the copy may be unusable, depending on the nature and format of the data.
Output data sets are enqueued only if they are a new name, different from the input. FDRCOPY attempts to enqueue any new name data sets that it allocates on the output DASD volumes, to insure that no other task tries to use them until the copy is complete, but if the enqueue fails, the data set is still copied. However, for existing preallocated new name data sets, if the enqueue fails, the copy is bypassed.
The DSNENQ= operand has four possible values:
- USE – Data sets are enqueued for the duration of the copy from an input DASD volume. For data sets that are active, an FDR158 warning message is issued and the data set is not enqueued. This is the most frequently used option and it is the default for FDRCOPY.
- TEST – Data sets are only tested to see if they are enqueued to another task at the time that the copy from this volume starts. For data sets that are active, an FDR158 warning message is issued. The data set is not enqueued and other tasks may enqueue it and possibly update it while the copy is proceeding.
- HAVE – The data sets are enqueued for the duration of the copy. If a data set is in use, the z/OS operator must interact with FDRto decide how to proceed; a message (FDRW27) is issued to the z/OS console, and the operator can respond:
- wWAIT – Wait for the data set to become available; if it is not eventually dequeued, the FDR job may time out, and so the operator must not reply WAIT for data sets in use by long-running jobs or tasks such as transaction processing systems like CICS.
- wNOWAIT – Do not enqueue the data set. The FDR158 warning message is issued.
- wRETRY – Try the enqueue again. If it fails again, the FDRW27 message is reissued.
- NONE – No data set enqueue is issued. This can be used for data sets that you know will appear to be active, such as data sets on a z/OS residence volume.
The default of DSNENQ=USE prevents other tasks from updating (or reading) data sets being copied or moved, while bypassing data sets that are in use. Member ENQ in the FDR Installation FDRSAMP has more information on data set enqueues.
If HFS=QUIESCE or ZFS=QUIESCE is specified, special copy processing is done for Hierarchical File System (HFS) and zSeries File System (zFS) data sets, used by UNIX System Services (USS). If the SYSDSN enqueue cannot be acquired, this may mean that the file system is mounted to UNIX, so FDRCOPY attempts to quiesce the file system during the backup. Details on the quiesce function are found in Hierarchical File System (HFS) and zSeries File System (zFS) in zSeries File System (zFS).
If you use CA MII (Multi-Image Integrity component of CA MIM) for enqueue processing, prior to release 11.6, see member FDRCONXT in the FDR Installation FDRSAMP for instructions on suppressing unnecessary MIM conflict messages due to FDR SYSDSN enqueues.
Step termination
If no errors occur during the execution of FDRCOPY, the FDRCOPY job step ends with condition code 0 (zero).
If errors do occur, they are generally indicated by an error message; occasionally they are indicated only by a user abend (Uxxxx). Depending on the nature of the error, the step may end one of several ways:
- Some errors are critical. The job step ends immediately with a user abend.
- Some errors are critical only to a particular operation. For example, during a copy, some errors cause the copy from a particular DASD volume to terminate immediately, but FDRCOPY may continue and attempt to copy other DASD volumes requested in the same step.
- Some errors are non-critical and the messages are warnings only. FDRCOPY completes the current operation.
For the last two conditions above, a flag is set indicating that a non-terminating error occurred. At step termination, it tests the flag; if it is on, the step terminates with a U0888 abend to call your attention to the errors. Remember that a U0888 indicates that some or all of the functions you requested did complete but you must examine the error messages to determine the impact of the errors.
If you prefer not to get a U0888 abend on a non-terminating error, the FDRCC option in the FDR Global Options can change it to a non-zero return code of your choice (see General-Options).