Previous topic |
Next topic |
Contents |
Contact z/OS |
Library |
PDF
Processing z/OS DFSMS Managing Catalogs SC23-6853-00 |
|
The program opens input and output data sets, then processes user-specified parameters. If a clock difference value was supplied, it then calculates effective start/stop times by subtracting the clock difference from the start time and by adding it to the stop time. GETMAINs are issued and addressability established for four buffers of 32K each:
The SMF 'I' and 'S' buffers are primed. Then the EXPORT control
records are read. The following errors are checked for during this
processing:
During control record processing the user-specified stop date and time are used to replace the EXPORT date and time in one of the EXPORT control records, so that the subsequent IMPORT will reflect catalog currency correctly. All control records are written to EXPOUT. The main processing loop is then entered. 'Promotion' of records
between buffers takes place based on the relative positions of the
entryname + pad byte values of the records (the 45-byte BCS record
keys). The purpose of this is to move the most current record one
step up the buffer hierarchy (from 'X' or 'S' to 'C', and from 'X'
or 'I' to 'S'). In the buffer hierarchy, 'C' is the most current,
then 'S', then 'X' or 'I'. Movement takes place as follows:
When a record is 'promoted' from the 'I' buffer, the GETSMF subroutine is called to read another SMF record into 'I'. When a record is 'promoted' from 'X', the GETEXP subroutine is called to read another EXPORT record into 'X'. This process continues until EOF is reached on both SMFIN and EXPIN. When the most current record for an entry is in the 'C' buffer, it is assigned a set of values that represent its status relative to other records for the same entry. This setting also involves the subtype field (SMFxxSUB), which indicates whether the catalog activity represented by the SMF record was an insert, a delete, or an update. The assigned values are used later for logging purposes. If the records in 'C' and 'S' have the same key and are from different systems, a synchronization check is done. This is where the user-specified clock difference is used. A synchronization error is defined as a situation where more than one system changed the catalog within the user-specified clock difference value. For example, if one system changed the catalog at 14:33:57 and another system changed it at 14:33:58 and the clock difference specified was 2 seconds, then it is not possible to be certain in which order these changes occurred, since the clock difference of 2 seconds means that in fact the 14:33:58 change might have actually happened first if the clocks were not synchronized. Now we are ready to decide whether or not to carry forward the
record in 'C' to the new EXPORT (EXPOUT). If the record is not a delete
(according to SMFxxSUB) then it is carried forward. If the source
of a record to be carried forward is SMF, it is checked for security
fields. VSAM password and related fields are set to blanks when SMF
records are written by catalog management, since writing them to the
SMF data set would constitute a security exposure. Leaving these fields
as blanks would make resetting these difficult (or perhaps even impossible,
since some of the fields should be numeric). The program resets these
fields as the records are written to EXPORT, as indicated below. The
resetting simplifies re-establishing of VSAM passwords and related
fields after recovery.
A table of counters (the record processing table) is updated based on the set of values previously assigned. Logging and dumping of records follows, also based on the set of values, for cases where something suspicious was found. Control then goes back to the top of the main loop. When both input data sets have been processed, reporting is done by calling CSECT CRURREPO. The record processing table and other counters are used to produce reports on errors, anomalies, and records processed without error or anomaly. The final report page summarizes processing by data set. Data sets are then closed, the program establishes a return code, and terminates. |
Copyright IBM Corporation 1990, 2014
|