The CMPFILDTA command includes several parameters that are unique among MIMIX commands.
Repair on system: When you choose to repair files that do not match, CMPFILDTA allows you to select the system on which the repair should be made.
File repairs can be performed on system 1, system 2, local, target, source, or you can specify the system definition name.
Process while active: CMPFILDTA includes while-active support. This parameter allows you to indicate whether compares should be made while file activity is taking place. For efficiency’s sake, it is always best to perform active repairs during a period of low activity. CMPFILDTA, however, uses a mechanism that retries comparison activity until it detects no interference from active files.
Three values are allowed on the Process while active parameter—*DFT, *NO, and *YES. The *NO option should be used when the files being compared are not actively being updated by either application activity or MIMIX replication activity. All file repairs are handled directly by CMPFILDTA. *YES is only allowed when a data group is specified and should be used when the files being compared are actively being updated by application activity or MIMIX replication activity. In this case, all file repairs are routed through the data group and require that the data group is active. If a data group is specified, the default value of *DFT is equivalent to *YES. If a data group is not specified, *DFT is the same as *NO.
Specifying *NO for the Process while active parameter is the recommended option for running in a quiesced environment. When used in combination with an active data group, it assumes there is no application activity and MIMIX replication is current. If you specify *NO for the Process while active parameter in combination with repairing the file, the data group apply process must be configured not to lock the files on the apply system. This configuration can be accomplished by specifying *NO on the Lock on apply parameter of the data group definition.
File entry status: The File entry status parameter provides options for selecting members with specific statuses, including members held due to error (*HLDERR). When members in *HLDERR status are processed, the CMPFILDTA command works cooperatively with the database apply (DBAPY) process to compare and repair members held due to error—and when possible, restore them to an active state.
Valid values for the File entry status parameter are *ALL, *ACTIVE, and *HLDERR. A data group must also be specified on the command or the parameter is ignored. The default value, *ALL, indicates that all supported entry statuses (*ACTIVE and *HLDERR) are included in compare and repair processing. The value *ACTIVE processes only those members that are active. When *HLDERR is specified, only member-level entries being held due to error are selected for processing. To repair members held due to error using *ALL or *HLDERR, you must also specify that the repair be performed on the target system and request that active processing be used.
System 1 ASP group and System 2 ASP group: The System 1 ASP group and System 2 ASP group parameters identify the name of the auxiliary storage pool (ASP) group where objects configured for replication may reside. The ASP group name is the name of the primary ASP device within the ASP group. This parameter is ignored when a data group is specified. You must be running on OS V5R2 or greater to use these parameters.
Subsetting option: The Subsetting option parameter provides a robust means by which to compare a subset of the data within members. In some instances, the value you select will determine which additional elements are used when comparing data.
Several options are available on this parameter: *ALL, *ADVANCED, *ENDDTA, or *RANGE. If *ALL is specified, all data within all selected files is compared, and no additional subsetting is performed. The other options compare only a subset of the data.
The following are common scenarios in which comparing a subset of your data is preferable:
-
If you only need to check a specific range of records, use *RANGE.
-
When a member, such as a history file, is primarily modified with insert operations, only recently inserted data needs to be compared. In this situation, use *ENDDTA.
-
If time does not permit a full comparison, you can compare a random sample using *ADVANCED.
-
If you do not have time to perform a full comparison all at once but you want all data to be compared over a number of days, use *ADVANCED.
*RANGE indicates that the Subset range parameter will be used to specify the subset of records to be compared. For more information, see the “Subset range” section.
If you select *ENDDTA, the Records at end of file parameter specifies how many trailing records are compared. This value allows you to compare a selected number of records at the end of all selected members. For more information, see the section titled “Records at end of file.”
Advanced subsetting can be used to audit your entire database over a number of days or to request that a random subset of records be compared. To specify advanced subsetting select *ADVANCED. For more information see Advanced subset options for CMPFILDTA.
Subset range: Subset range is enabled when *RANGE is specified on the Subsetting option parameter, as described in the “Subsetting option” section.
Two elements are included, First record and Last record. These elements allow you to specify a range of records to compare. If more than one member is selected for processing, all members are compared using the same relative record number range. Thus, using the range specification is usually only useful for a single member or a set of members with related records.
The First record element can be specified as *FIRST or as a relative record number. In the case of *FIRST, records in the member are compared beginning with the first record.
The Last record element can be specified as *LAST or as a relative record number. In the case of *LAST, records in the member are compared up to, and including, the last record.
Advanced subset options: The Advanced subset options (ADVSUBSET) provides the ability to use sophisticated comparison techniques. For detailed information and examples, see Advanced subset options for CMPFILDTA.
Records at end of file: The Records at end of file (ENDDTA) parameter allows you to compare recently inserted data without affecting the other subsetting criteria. If you specified *ENDDTA in the Subsetting option parameter, as indicated in the “Subsetting option” section, only those records specified in the Records at end of file parameter will be processed.
This parameter is also valid if values other than *ENDDTA were specified in the Subsetting option. In this case, both records at the end of the file as well as any additional subsetting options factor into the compare. If some records are selected by both by the ENDDTA parameter and another subsetting option, those records are only processed once.
The Records at end of file parameter can be specified as *NONE or number-of-records. When *NONE is specified, records at the end of the members are not compared unless they are selected by other subset criteria. To compare particular records at the end of each member, you must specify the number of records.
The ENDDTA value is always applied to the smaller of the System 1 and System 2 members, and continues through until the end of the larger member. Let us assume that you specify 200 for the ENDDTA value. If one system has 1000 records while the other has 1100, relative records 801-1100 would be checked. The relative record numbers of the last 200 records of the smaller file are compared as well as the additional 100 relative record numbers due to the difference in member size.
Using the Records at end of file parameter in daily processing can keep you from missing records that were inserted recently.