RXXFIX (Recover End-Of-File)

The RXXFIX function reads a Recovery File and copies blocks to a new Recovery File up to a known stable point in time.
The RXXFIX function reads a Recovery File and copies blocks to a new Recovery File up to a known stable point in time.
When to Use RXXFIX
Use the function to recover if the operating system or the MUF terminates abnormally while spilling to an active Recovery File, leaving the tape with no End-of-File or trailer records.
RESTART Processing of a Tape Without End-of-File
If the tape has no End-of-File or trailer records, the RESTART process detects the condition and reports the incomplete cycle number. The RESTART process then changes the cycle and the log blocks being spilled from the status of "being spilled" to a status of "needing to be spilled." A later spill can then copy these blocks in their entirety.
Two problem situations exist at this point:
  • Because no trailer records exist on the active recovery tape, recovery processing with this tape is a problem. Backward recovery cannot function at all because the trailer records cannot be found. Forward recovery can function, but the recovery receives an I/O error.
  • The second problem is that when executing forward recovery, the next Recovery File after the one with no End-of-File, detects errors because of the duplicated log records which require review.
The RXXFIX function eliminates these problems. By specifying a cycle number from the RESTART process, the utility copies all the good data to a new tape before any possible I/O error, stops reading the suspect tape, and closes the new complete, non-redundant tape, if a spill was ongoing at the time of the failure.
Update SPILL History Table
The RXXFIX function can be used to update the SPILL history table by specifying the keywords DBID= and HISTORY=.
How to Use RXXFIX
Use the following command format to execute the RXXFIX function:
 ─┬─────────────┬─┬──────────────────┬─────────────────►◄                           └─ DBID=
 ─┘ └─ HISTORY=
    Invokes the function to read a Recovery File and copy blocks to a new Recovery File up to a known stable point in time.
Required Keyword
  • CYCLE=
    Specifies the cycle number to be copied to. Provide the number supplied by the RESTART utility minus 1.
    • Valid Entries:
      1 to 999999
    • Default Value:
      (No default)
Optional Keywords
  • DBID=
    The DBID= keyword provides the database ID of the history database, where 
     is the history database DBID.
    • Valid Entries:
      the history database DBID, normally 1007
    • Default Value:
      (No default)
    HISTORY=NO indicates that you want RXXFIX to do the CYCLE processing that is used either to fix an RXX with active recovery or for inactive recovery with the use of DISP=MOD (DISP= is the JCL disposition parameter). Therefore, specifying HISTORY=NO (or allowing HISTORY= to default to NO) indicates that you do not want to use RXXFIX to select a SPILL history table or to update the history information in a SPILL history table.
    All allowed forms of YES (YES_RC0, YES-FAIL, and YES-RC4) are allowed and have the same meaning in RXXFIX.
    Do not ignore errors generated by using the SPILLOPT function, or correct the history record manually.
    If the DBUTLTY RXXFIX function runs without finding any end of spill records, it ends successfully with an EOJ message but gives no indication (prints no lines in the report) showing that any end of spill action was taken.
    • Valid Entries:
      NO, YES-FAIL, YES-RC0, or YES-RC4
    • Default Value:
Example JCL (RXXFIX)
The following shows the command to ensure that you have a correct and usable Recovery File.
Use the following as a guide to prepare your JCL. The JCL statements are for example only. Lowercase letters in a statement indicate a value you must supply. Code all statements to your site and installation standards.
 //jobname    See the previous note and 
JCL Requirements
See the previous note and 
JCL Requirements
 //RXXIN    DD DSN=rxxinp,DISP=SHR                 Recovery input file  //RXXOUT   DD DSN=rxxout,DISP=SHR                 Recovery output file  //*  //SYSIN    DD *                                   Command Input           RXXFIX    CYCLE=5  /*
Sample Report
Following is a sample report page. For an example report header, see Sample Report Headers.
                    CONTROL CARD(S)                     .........1.........2.........3.........4.........5.........6.........7.........8                     RXXFIX CYCLE=5                       FUNCTION=RXXFIX                        CYCLE=000005
This page of the report shows the following:
  • The command exactly as entered.
  • An analysis of keywords encountered and expected. Any errors found are flagged with a note in the left margin.
  • Any messages related to syntax processing.
                    0000001   CYCLE COPIED                     0000002   CYCLE COPIED                     0000003   CYCLE COPIED                     0000004   CYCLE COPIED                     0000005   CYCLE COPIED *** EOJ ***
This page of the report displays messages indicating the status of the Recovery File.