COMPAKTOR Special Features
VSAM support
COMPAKTOR treats VSAM clusters much like any other data set. Components are relocated on the volume, and multi-extent components are usually combined into a single extent. CPK can release space from over-allocated VSAM components, based on the HI-USED-RBA in the VVDS. A percentage of the over-allocated space may be left as unused control areas for expansion.
CPK cannot release space from multi-volume VSAM components, and only merges extents residing on the first volume of a multi-volume component. In addition, CPK does not release space from any cluster where the “open for output” flag is on in the VVDS, even if the cluster is not currently allocated to another job, since the HI-USED-RBA may be inaccurate (IDCAMS VERIFY can reset that flag and correct the RBA).
By default, CPK does not relocate nor release space from components of catalogs. To do so, you must specify OVERRIDE=YES on the CPK statement and provide a SELECT DSN= with the fully-qualified name of each catalog component (the catalog name for the data component, and the “catindex” name for the index component); space is not released unless VSRLSE=ALL is specified on the SELECT statement.
CPK never releases space from a VVDS, and a VVDS cannot be moved by FASTCPK. CPK can merge extents and relocate the VVDS during a COMPAKT-from-backup if OVERRIDE=YES is specified and a SELECT selects it (the SELECT does not necessarily have to specify the fully-qualified VVDS name, a filter can select it).
It is the user’s responsibility to ensure that the catalogs and VVDS are not in use when they are moved (the F CATALOG console command can be used to close them, see the appropriate IBM System Commands manual).
Compacting active volumes
The data set enqueue option (DSNENQ=), coupled with the COMPAKTOR Unmovable Table (see Define-the-COMPAKTOR-Unmovable-Table), gives you the capability to compact active volumes.
The DSNENQ= option requests that COMPAKTOR use a SYSDSN enqueue to determine which data sets on the volume being COMPAKTed are currently active (allocated) and optionally enqueues inactive data sets to COMPAKTOR so that no other task can use them until COMPAKTOR is done with the volume. The COMPAKTOR Unmovable Table can be used to identify data sets that are not normally enqueued by the system but should be considered unmovable anyway.
Space release (TYPE=RLSE) and Fast COMPAKTion (TYPE=FASTCPK) default to DSNENQ=USE and automatically identify active data sets and bypass moving and releasing them.
COMPAKT-from-backup (TYPE=COMPAKT specified or defaulted) supports compacting active volumes only when the DUMP=YES option is specified (to invoke FDR for a backup). The DSNENQ= option must be specified on the FDR DUMP statement, not on the COMPAKT statement. Because of the elapsed time required, COMPAKT-from-backup is no longer recommended for active volumes; use FASTCPK.
Please read Compacting Active Volumes for details before attempting to compact any active volumes.
Used vs allocated tracks
FASTCPK by default moves only used tracks within PS and PO data sets (based on the “Last Block Pointer” (LBP)), and VSAM components (based on HI-USED-RBA) to reduce elapsed time, but you may specify DATA=ALL on the COMPAKT statement if you prefer to move all allocated tracks within all data sets.
CPK has special processing for PS and PO data sets that have an LBP of zeros. An LBP of zero may indicate an empty data set or one that the LBP is not maintained. FASTCPK moves all allocated tracks of such data sets, and TYPE=RLSE does not release space from them.
Unmovable data sets
COMPAKTOR supports an internal table of unmovable data sets. You may specify data set names or groups that are always considered unmovable. It is important that each installation update this table with the names of data sets that are active without being enqueued; see Section Compacting Active Volumes for a list of potential data sets for inclusion. This list of names is stored in a load module in the CPK program library, and can be built using either the FDR ISPF panels (option A.I.5) or program FDRZAPOP. Entries in the COMPAKTOR Unmovable Table and data sets identified as active can be moved by CPK SELECT statements if OVERRIDE=YES is specified on the CPK control statement. Use this option with care. If OVERRIDE=NO is specified or defaulted, CPK ignores any request to move or release space for any data set found in these tables.
Indexed VTOC
COMPAKTOR can be used to reorganize a volume containing an active indexed VTOC.
Fast COMPAKTion and space release update the space maps in the VTOCIX directly, without disabling it. For COMPAKT-from-backup, COMPAKTOR converts the volume with the indexed VTOC to an OS VTOC prior to COMPAKTion. After a successful COMPAKTion, CPK then executes ICKDSF to rebuild the indexed VTOC. CPK suppresses the normal ICKDSF messages and operator replies.
CPK does not move the SYS1.VTOCIX data set unless you specify this data set name in the control statements and OVERRIDE=YES is indicated; you may wish to do this in order to move the VTOCIX next to the VTOC. Be sure that the volume is not online to any other CPU if the VTOCIX is moved.
Volume exclusion
You may exclude (protect) certain volumes from COMPAKTOR processing by making special entries in the COMPAKTOR Unmovable Table. If COMPAKTOR finds a name in the COMPAKTOR Unmovable Table in the format, FDRCPK.EXCLUDE.COMPAKT.Vvvvvvv
Any attempt to do any COMPAKTion on volume “vvvvvv” results in an error.
If the name is FDRCPK.EXCLUDE.RELEASE.Vvvvvvv, then space release (TYPE=RLSE) is inhibited. If the name in the table is a DSN entry, then only the named volume is excluded. If the entry is a DSG, then “vvvvvv” must be five or fewer characters and all volumes starting with that prefix are excluded.
For example, entries of:
DSN FDRCPK.EXCLUDE.COMPAKT.VTS0123 DSG FDRCPK.EXCLUDE.RELEASE.VTSO
excludes volume TS0123 from COMPAKTion functions, and excludes all TSO volumes from release processing.
You can use this volume exclusion to protect certain volumes or groups of volumes that should not normally be COMPAKTed against accidental COMPAKTion or Release.
Model type conversions
COMPAKTOR may be used to convert a volume to a different capacity volume of the same device type. For example, COMPAKTOR may be used to convert 3390 volumes to another 3390 model. COMPAKTOR automatically recognizes the number of cylinders on the output device and updates the VTOC and free space with the proper device size. This conversion can also be done with FDR, but COMPAKTOR offers several advantages:
- During the conversion, COMPAKTOR can expand and reposition the VTOC, providing more room for data sets on a larger device. COMPAKTOR can also move the indexed VTOC and VVDS next to the new VTOC, plus any other data sets that should be close to the VTOC.
- Unlike FDR, COMPAKTOR can convert a volume to a model with fewer cylinders than the original. In order for this to work, all allocated data sets on the original volume must fit in the space available on the output volume, and any unmovable data sets must be at addresses within the limits of the new device.
COMPAKTOR simulation supports model conversions, even if the new devices are not yet installed on your system, so that you can prepare for the actual conversion.
When several smaller DASD volumes are to be combined into one larger DASD volume, COMPAKTOR may be used to convert one of the source volumes, under its original volume serial, and FDRCOPY (see FDRCOPY-Data-Set-MOVE-Examples) may be used to add data sets from the other volumes.
COMPAKT-from-backup must be used for model conversions since Fast COMPAKTion (TYPE=FASTCPK) is always a “COMPAKT-in-place”, back to the original DASD volume.