z/OS DFSMS Managing Catalogs
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:

  1. SMF 'I' buffer (input buffer for SMF records)
  2. SMF 'S' buffer (secondary SMF buffer)
  3. SMF 'C' buffer (buffer for most current SMF record encountered so far for a particular data set)
  4. EXPORT 'X' buffer (input buffer for EXPORT records)
The SMF 'I' and 'S' buffers are primed. Then the EXPORT control records are read. The following errors are checked for during this processing:
  • No data supplied (immediate EOF on either SMFIN or EXPIN)
  • Data in EXPIN is not in EXPORT format
  • Data is in EXPORT format but is not an integrated catalog facility EXPORT
  • Specified start time does not match time of EXPORT
  • First non-control record in EXPORT is not a basic catalog structure (BCS) cluster record
  • EXPORT is not for the catalog specified with input parameters

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:
  • From 'X' to 'C' if key in 'S' > key in 'X'
  • From 'S' to 'C' if key in 'S' >= key in 'X'
  • From 'X' to 'S' if key in 'I' > key in 'X'
  • From 'I' to 'S' if key in 'I' >= key in 'X'

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.
  • Passwords - Set to 'Z's (all four passwords)
  • Password Prompting Code - Set to 'Z's
  • Attempts - Set to '2' (the IDCAMS default)
  • USVR module name - Set to 'Z's
  • USVR string length - Calculated and corrected
  • USVR string - Left as blanks

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.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014