Recovery File (RXX) Report

This section contains information about:
datacom151
This section contains information about:
  • Recovery File (RXX) Analysis Report (see following section)
  • Split File Analysis Report (see Split File Analysis Report)
The following topics are discussed on this page:
Recovery File (RXX) Analysis Report
A Recovery File (RXX) Analysis Report reads a RXX and produces a summary report of the contents.
This report provides many options that allow you to use information about the contents of a Recovery File to analyze logging and recovery operations and correct any problems that could occur.
This utility always reads one input file of one or more volumes. In z/OS, this can be multiple concatenated files which appear to
Datacom/DB
as one file. In all environments, if the input is not log data, unexpected results occur. z/OS users can run the report against the Log Area (LXX) directly. This is not recommended, but can be requested by Support. If this is done, one or more of the following various warnings is to be expected.
  • Log Area is being actively changed
  • Log Area is pipelined in MUF memory
  • Log Area is not treated as a perfectly ordered sequential file
The REPORT function, like all DBUTLTY functions, is designed and expected to run authorized in z/OS. If the RXX was built from an LXX that was ever used with the MUF option LOG_RECORD_ENCRYPT set to YES since the LXX was last initialized or reset, the REPORT function is required to run authorized. It does not matter if the RXX being read has encrypted data. Potentially authorized data is not intended to be in an unauthorized address space.
Note:
The Recovery File Analysis Report program can detect the type of input file. If the input is a
Datacom
Fast Recovery file (split), the Report control statements are as shown in the Split File Analysis Report syntax on page Split File Analysis Report.
Following is the syntax for the RXX Analysis Report:
┌─ , ─────────────┐ ►►─ REPORT AREA=RXX, ─┬─────────────────────┬─▼─┬─────────────┬─┴──────────────► └─ BLOCK=
blocknumber
─┘ └─ DBID=
nnnn
─┘ ►─┬───────────────────┬─┬───────────────────────────┬────────────────────────► └─ JOBNAME=
jobname
─┘ └─ LOGPRINT=
log-print-type
─┘ ►─┬────────────────┬─┬──────────────────────────┬───────────────────────────► └─ OPTION2=
name
─┘ └─ OPTION4=
exclude-option
─┘ ►─┬───────────────────────────┬─┬─────────────────────────────┬────────────────► ─ RANGEDT=
date/time-range
─┘ └─ RANGESC=store-clock
-range
─┘ ►─┬────────────────────────┬──┬─────────────────────────────┬───────────────► └─ RANGETSN=
tsn-numbers
─┘ └─ RECORDS=
log-recs-accepted
─┘ ►─┬────────────────────────────┬─┬──────────────────────────────┬───────────► └─ RUNUNIT=
run-unit-numbers
─┘ └─ STARTAFT=
log-recs-to-count
─┘ ►─┬────────────────────┬─┬───────────────────────────┬──────────────────────► └─ TABLE=
table-name
─┘ └─ TSNPRINT=
tsn-print-type
─┘ ►─┬─────────────────────┬───────────────────────────────────────────────────►◄ └─ URINUM=
uri-number
─┘
The syntax just shown defines the provided and optional reports. Each was described as though the entire input was considered selected data (the default). Be aware that numerous data selection options are available. Additionally, a log record, to be selected, must pass all of the specified options. You can specify a single option or any combination, including all of them.
You can only specify each of the following options once. However, you can repeat the DBID= option.
Command
  • REPORT
    Invokes the function to produce a report.
Required Keyword
  • AREA=RXX
    Requests the Recovery File Analysis Report.
Optional Keywords
  • BLOCK=
    This is specified as an eight-character hexadecimal number representing a data block within a data area. This option is normally included when requested by Support.
  • DBID=
    Use to specify a database ID. You can repeat this option. Each occurrence may specify one or more valid database IDs or a range of DBIDs nnnn-mmmm (a range, for example, such as 100-250).
  • JOBNAME=
    Specify a job name.
    Blanks are used for bytes not provided.
    A question mark can be in any or all of the 8 bytes to indicate that this byte is to be considered a match without compare. Examples are:
    • JOBNAME=???????? indicates that every byte can be any value and would be the same as not specifying JOBNAME= at all.
    • JOBNAME=? indicates that every log record matches if the job name is any first byte followed by seven blanks. Even though a question mark is not a z/OS allowed value within a job name, it should not change any working user JCL streams for current reports to the RXX.
    • JOBNAME=CICS???? indicates that the job name starts with CICS and you want to get data for all CICS Services executions where many are executing. This example selects all log rows for any of the executions.
  • LOGPRINT=
    Choose either DETAIL or DETAILX for
    log-print-type.
    • The DETAIL option prints an INPUT RECORD that can be useful if one execution selects all records for a transaction. You can use this information to dump the records around the selected records in another execution. If the same input files are provided, this input record number is the same for each execution.
    • The DETAILX option prints an INPUT RECORD and formats a hex dump of the log record. As either of these options may produce large quantities, the standard DBUTLTY report headings are reduced to an abbreviated one line.
  Or, instead choose either DATACHR or DATAHEX to print the type of value format that you want.
    • The DATACHR option prints the value in character format
    • The DATAHEX option prints the value in hexadecimal format
  • OPTION2= area-name/full-parent-table-name;suffix-summary-break-report-control
    Specify 1) a data area name or 2) the Full Parent name of a partitioned table or 3) three blanks followed for the following without items 1 or 2. In addition following 3 bytes for the optional data area name or full parent name may follow a control string to request a break report of summarized information.
    If you want a summary break, the break value follows the area name. For more information, see Option for report breaks with summarized information. If you do not want the area name with the summary break report, set the name with blanks in front of the break value. Examples are:
         OPTION2=PAY, OPTION2=PAY**CDC*15, or OPTION2=’   **CDC*15’
    The option without an area name must be enclosed in quotes with 3 blanks for the not wanted area name. However, any three values less than the letter ‘A’ are accepted and ignored.
    REPORT AREA=RXX also supports the value "*DAC*" to provide just the DAC flagged log records.
  • OPTION4=
    You can set the keyword OPTION4 during the report with one of two values:
    • EXCLUDE-DAC causes reporting to exclude every log record flagged as part of Data Access Capture.
    • EXCLUDE-NOT-DAC causes reporting to exclude every log record not flagged as part of Data Access Capture.
  • RANGEDT=
  • Specify two date/times to provide a range (low to high). The date/times are specified as a 28 character number with the lower date/time immediately followed by the higher date/time. Each date/time is 14 characters in the format 'ccyymmddhhmmss'. For example: '2002121400000020020228235959'. Note that the input is not read beyond one record higher than this ending value.
  • RANGESC=
    Allows two Store Clock values and will report for all log records between the two times. Normally, you can use RANGEDT. This field can be useful around Daylight Saving Time changes.
  • RANGETSN=
    Specify two TSN numbers to provide a range (low to high). The TSN numbers are specified as a 16-character hexadecimal number comprising 8 characters for the low TSN followed by the high TSN.
  • RECORDS=
    Provides a count of log records that are
    acceptable
    after processing the number of log records specified in the STARTAFT= parameter. If STARTAFT= is not specified, the count is presumed to be zero. The combination of RECORDS= and STARTAFT= provides the ability to print/dump portions of a Recovery File (RXX). Valid entries for RECORDS= is a number from 0 through 99999999. The default is
    all remaining records.
    Or, if LOGPRINT is set as DATACHR or DATAHEX, the RECORDS= value is instead the number of bytes to print from the first byte or the STARTAFT value. Default 0 causes the maximum number of bytes to print (bytes that will fit on one line with the other control information).
    Note:
    The input is not read beyond the number of records that are to be selected.
  • RUNUNIT=
    Specify a run unit number to restrict record selection. Valid entries for RUNUNIT= is a number from 0 through 99999. The default is
    all run units.
  • STARTAFT=
    Specify a count of log records before which all are rejected. Valid entries for STARTAFT= is a number from 0 through 99999999. The default is 0. Or, if LOGPRINT is set as DATACHR or DATAHEX, the STARTFT= value is instead the number of bytes to start after from the start of the data row before printing bytes. Default 0 cause first byte of row to be printed.
  • TABLE=
    Specify a table name. This is the table name in the Request Area when the log record was built.
  • TSNPRINT=
    Specify a transaction report that prints one line of output for every transaction selected in the input.
    Choose either SUMMARY, DETAIL, or DETAILX for
    tsn-print-type.
    DETAIL and DETAILX are described in the LOGPRINT= section on Recovery File (RXX) Analysis Report. Specifying SUMMARY produces the basic transaction report. For more information and examples see TSNPRINT=DETAIL Sample.
  • URINUM=
    Provides an eight-character URI number.
Example JCL
The following JCL shows the command to generate a Recovery File Analysis Report. Use this example 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 // EXEC PGM=DBUTLTY,REGION=4M //STEPLIB See the previous note and
JCL Requirements
.
//RXX DD DSN=rxx.data.set,DISP=SHR RXX data set //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SNAPER DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //* //SYSIN DD * Command Input REPORT AREA=RXX,LOGPRINT=DETAIL,TSNPRINT=DETAIL,DBID=015,TABLE=MSG /*
Report Breaks Option
The RXX report has an option to provide summary reporting by time periods using a ‘report break’ ability. This summary reporting is a choice of output that is different from the normal RXX reporting. The break duration is provided as the number of minutes in each break but only the following break values are supported: 01, 05, 10, 15, 30, or 60 minutes. Each break starts at the ‘top’ of an hour and includes the selected log records within the break time.
Selection of all log records is done when using none of the selection keywords and this is likely the normal case. The following selection keywords are available with the report break including: DBID, JOBNAME, OPTION2, RANGEDT, RANGETSN, RECORDS, RUNUNIT, STARTAFT, and TABLE. The following keywords are not compatible with the break selection and are accepted and edited but then ignored: BLOCK, CMPRS, LOGPRINT, TSNPRINT, and URINUM.
Each report break time with at least 1 log records read and not excluded will participate in the summary for the break period. Said another way, any break period with no log records meeting selection will not be reported.
The report break is requested using an extension of keyword OPTION2 that is optionally used to provide an area name for inclusion in the report. Following the value is the break minutes of 01 through 60 but if the values are not 01, 05, 10, 15, 30, or 60 then the default 15 is substituted (and not considered an error). Three specific types of summary break reports are available:
  • ‘**CMT*’ - Commit type records.
  • ‘**CDC*'  - Change Data Capture flagged records.
  • ‘**DAC*'  - Data Access Capture Capture flagged records.
  • ‘**ALL*' - All records not excluded.
The values are entered after the optional area name in keyword OPTION2 where if the area name is used it is the first 3 bytes followed by the break value.
Sample Report
Following are sample report pages. For an example report header, see Sample Report Headers.
Sample Report REPORT AREA=RXX,OPTION2='    **CMT*15'
In the following report, the summary break times are reported with the start and end. Each log record that is a functional commit is reported with the number of occurrences.
Note:
A ROLBK does backout log records but then commits the transaction as done. Not all commands that are considered a commit are provided in this example.
LOG CMT SPECIAL REPORT COUNTS BY TIME PERIODS START DATE TIME END DATE TIME COMMANDS WITH COUNTS DURING TIME PERIOD 2018/12/19 10.30.00 2018/12/19 10.44.59 COMIT---------698 ROLBK-----------2 2018/12/20 14.15.00 2018/12/20 14.29.59 CLOSE-----------4 2018/12/20 14.30.00 2018/12/20 14.44.59 CLOSE-----------3 COMIT----------25 ROLBK-----------3 2018/12/20 14.45.00 2018/12/20 14.59.59 CLOSE-----------3 COMIT----------33 ROLBK-----------6 2018/12/20 15.45.00 2018/12/20 15.59.59 CLOSE-----------4 COMIT----------20 ROLBK-----------2 2018/12/20 18.00.00 2018/12/20 18.14.59 CLOSE-----------2 2018/12/23 07.15.00 2018/12/23 07.29.59 CLOSE-----------1 2018/12/23 07.45.00 2018/12/23 07.59.59 CLOSE-----------1 2018/12/23 08.30.00 2018/12/23 08.44.59 CLOSE-----------1 2018/12/24 07.00.00 2018/12/24 07.14.59 COMIT-----------6
In the following report, the summary break times are reported with the start and end. Each log record that is subject to CDC interest is counted in bytes plus the log records that are not subject to CDC. A percent of the log bytes in the report break is provided.
REPORT AREA=RXX,OPTION2=*****CDC*15 LOG CDC SPECIAL REPORT PERCENTAGES OF BYTES REPEATING TIME PERIODS START DATE TIME END DATE TIME LOG BYTES CDC LOG BYTES NOT CDC % 2018/12/19 10.30.00 2018/12/19 10.44.59 241,142,813 0 100.0 2018/12/20 05.30.00 2018/12/20 05.44.59 0 256 0.0 2018/12/20 14.00.00 2018/12/20 14.14.59 0 256 0.0 2018/12/20 14.15.00 2018/12/20 14.29.59 0 4,176 0.0 2018/12/20 14.30.00 2018/12/20 14.44.59 0 3,272,514 0.0 2018/12/20 14.45.00 2018/12/20 14.59.59 0 3,603,183 0.0 2018/12/20 15.15.00 2018/12/20 15.29.59 0 256 0.0 2018/12/20 15.45.00 2018/12/20 15.59.59 0 28,904 0.0 2018/12/20 18.00.00 2018/12/20 18.14.59 0 432 0.0 2018/12/23 07.15.00 2018/12/23 07.29.59 0 789 0.0 2018/12/23 07.45.00 2018/12/23 07.59.59 0 533 0.0 2018/12/23 08.30.00 2018/12/23 08.44.59 0 533 0.0 2018/12/24 06.45.00 2018/12/24 06.59.59 0 256 0.0 2018/12/24 07.00.00 2018/12/24 07.14.59 0 3,911,150 0.0 2018/12/26 16.00.00 2018/12/26 16.14.59 0 162,758 0.0
In the following report, the summary break times are reported with the start and end. Each unique command, DBID, area name, and table name are provided with the count of records. leading dashes are provided to provide clarity.
REPORT AREA=RXX,OPTION2=...**ALL*15 ALL CMT SPECIAL REPORT COUNTS BY TIME PERIODS START DATE TIME END DATE TIME COMMANDS WITH COUNTS DURING TIME PERIOD 2018/12/19 10.30.00 2018/12/19 10.44.59 COMIT ---------698 ROLBK -----------2 ADDIT 997 C01 A01-----116,000 DELET 997 C01 A01-----116,500 MOVER 997 C01 A01-------7,638 UPDAT 997 C01 A01-----116,093 ADDIT 997 C02 A01-----116,002 DELET 997 C02 A01-----116,500 MOVER 997 C02 A01-------7,540 UPDAT 997 C02 A01-----116,000 2018/12/20 05.30.00 2018/12/20 05.44.59 LOGDW -----------1 2018/12/20 14.00.00 2018/12/20 14.14.59 LOGDW -----------1 2018/12/20 14.15.00 2018/12/20 14.29.59 CLOSE -----------4 UPDAT 2 AGR DD1-----------4 2018/12/20 14.30.00 2018/12/20 14.44.59 CLOSE -----------3 COMIT ----------25 LOGDW -----------6 ROLBK -----------3 MOVER 2 AGR DD1-----------1 UPDAT 2 AGR DD1----------30 UPDAT 2 ELM DD1-----------7 UPDAT 2 FLD DD1----------91 UPDAT 2 KEY DD1----------19 ADDIT 997 C01 A01---------999 ADDIT 997 C02 A01---------999 MOVER 997 C02 A01---------288 ADDIT 997 F01 A01---------999 MOVER 997 F01 A01---------288 ADDIT 997 F02 A01---------999 ADDIT 997 F03 A01---------999 ADDIT 997 K01 A01---------999 ADDIT 997 RNA A01---------999 ADDIT 997 RNB A01---------999 ADDIT 997 VRA A01---------999 ADDIT 997 VRB A01---------999 ADDIT 1007 ADS A01-----------5 UPDAT 1007 ADS A01-----------5 2018/12/20 14.45.00 2018/12/20 14.59.59 CLOSE -----------3 COMIT ----------33 LOGDW -----------5 ROLBK -----------6 UPDAT 2 AGR DD1----------35 ADDIT 997 C01 A01-------1,000 DELET 997 C01 A01-------1,999 MOVER 997 C01 A01---------399 UPDAT 997 C01 A01-------1,999 ADDIT 997 C02 A01-------1,001 DELET 997 C02 A01-------1,999 MOVER 997 C02 A01---------194 UPDAT 997 C02 A01-------1,999 2015/12/20 15.15.00 2015/12/20 15.29.59 LOGDW -----------1
Sample Report REPORT AREA=RXX
Note:
The following sample RXX Analysis Report is for a database with an ID of 15 and a table named MSG, using LOGPRINT=DETAIL and TSNPRINT=DETAIL.
CONTROL CARD(S) .........1.........2.........3.........4.........5.........6.........7.........8 REPORT AREA=RXX,LOGPRINT=DETAIL,TSNPRINT=DETAIL,TABLE=MSG,DBID=15 FUNCTION=REPORT AREA=RXX DBID=00015 LOGPRINT=DETAIL LOGPRINT=DATACHR LOGPRINT=DATAHEX TABLE=MSG TSNPRINT=DETAIL
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.
LOGPRINT=DETAIL Sample
Specifying LOGPRINT=DETAIL in an RXX Analysis Report generates the following information, which continues for as many pages as necessary (not all pages are shown in this sample).
(CONTINUED) Date: mm/dd/ccyy Time: hh.mm.ss Page: 2 LOGPRINT DETAIL REPORT CMD TBL DBID URI BLOCK L# TSN JOB NAME R-UNIT MP USER ID AREA MONITOR INFO INPUT RECORD FPR RXX DATE TIME CLOCK SEC.USER MOVE TO LRID PREV LRSN LBSN TASK STATUS RECL DATA ADDIT MSG 15 00000401 00000003 00 00001A18 DLV1C131 17,003 SQLDG001 MSG SCFDG001JVM00037 38 mm/dd/ccyy hh.mm.ss B6F7A1DA0D189903 username 00000000 00000608 00000607 00000008 00000006 1 B 0175 6C3B ADDIT MSG 15 00000402 00000003 00 00001A18 DLV1C131 17,003 SQLDG001 MSG SCFDG001JVM00037 39 mm/dd/ccyy hh.mm.ss B6F7A1DA0D1D7363 username 00000000 00000609 00000608 00000009 00000006 1 B 0175 6C3B ADDIT MSG 15 00000403 00000003 00 00001A18 DLV1C131 17,003 SQLDG001 MSG SCFDG001JVM00037 40 mm/dd/ccyy hh.mm.ss B6F7A1DA0D2152A3 username 00000000 0000060A 00000609 0000000A 00000006 1 B 0175 6C3B . . . DELET MSG 15 00000401 00000003 00 00001A18 DLV1C131 17,003 SQLDG001 MSG SCFDG001JVM00037 83 mm/dd/ccyy hh.mm.ss B6F7A1DB93E43B61 username 00000000 00000635 00000634 00000035 00000006 1 B 015E 6C3B DELET MSG 15 00000402 00000003 00 00001A18 DLV1C131 17,003 SQLDG001 MSG SCFDG001JVM00037 84 mm/dd/ccyy hh.mm.ss B6F7A1DB93E7C541 username 00000000 00000636 00000635 00000036 00000006 1 B 015E 6C3B . . .
This portion of the report displays the following information:
  • CMD
    Displays the
    Datacom/DB
    record-at-a-time command. In addition to record-at-a-time commands such as ADDIT, UPDAT, DELET, and COMIT, commands used internally can also appear in the report. Internal commands that support restart and recovery requirements are not typically documented, but because they might be seen in this report, a summary description follows.
    • Commands that start with the letter Y, for example YYCTC, and DELAL are used to support
      Datacom Datadictionary
      or SQL.
    • Commands that start with LOGP relate to two-phase commit.
    • Commands that start with LOG (not LOGP) exist when needed for request or transaction control.
    • The CYCLE command is used to note the start and end of a spill.
    • The MOVER command relates to the movement of records, both during compressed record maintenance and execution of the DBUTLTY OLREORG function. For more information about the MOVER command, see Request Summary Report.
    • Other commands that exist and could also appear in the report are not under the control of users.
    • We reserve the right to add new internal commands and modify or delete existing commands as needed.
  • TBL
    Displays the
    Datacom/DB
    table name in the Request Area. Blank for records without table names. For 'CYCLE' (the internal command), the table name contains 'STA' (for start of a cycle) and 'END' (for end of a cycle). A cycle refers to a sequential group of log blocks copied from the LXX to the RXX during one spill.
  • DBID
    Displays the Database ID. Blank for records without database ID's. Printed as a decimal number.
  • URI
    Displays the Unique Row Identifier. Blank for records without a URI number. Printed in hexadecimal format. Contains the literal 'NON-URI ' for areas not loaded as URI.
  • BLOCK
    Displays the data area block number. Blank for records without a data block. Printed in hexadecimal format.
  • L#
    Displays the data area block record number. Blank for records without a data block number. Contains '00' for records with a data block, if the area is loaded with the URI option. Printed in hexadecimal format.
  • TSN
    Displays the Transaction Sequence Number. Blank for records not part of a transaction. Printed in hexadecimal format.
  • JOB NAME
    Displays the job name.
  • R-UNIT
    Displays the run unit number.
  • MP
    Blank if not running r10 or later as a MUFplex. Otherwise, contains a MUFplex number of which MUF logged this log record.
  • USER ID
    Displays the User ID. First 8 characters of the 32-byte user ID passed on the request.
  • AREA
    Displays the data area name containing row.
  • MONITOR INFO
    Displays the monitor information, if this request was made through the
    Datacom
    CICS Services or the
    Datacom
    Server.
  • INPUT RECORD
    Displays the number of this input log record.
  • FPR
    Displays the Full Parent name, if this table is partitioned, or a partition.
  • RXX
    To indicate this is a recovery file. In z/OS, can contain LXX.
  • DATE
    Displays the date the log record was added. Printed in the form mm/dd/ccyy.
  • TIME
    Displays the time the log record was added. Printed in the form HH.MM.SS.
  • CLOCK
    Displays the result of a hardware STCK (store clock) instruction at the time the log record was added.
  • SEC.USER
    Displays the security user requesting maintenance.
  • MOVE TO
    Displays the block number to where an update moved a record. Printed in hexadecimal format.
  • LRID
    Displays the log record ID. The physical block number within the LXX where the log record was added in the first three bytes. The last byte is a sequential number within this log block, such that the first record is 1, and so forth. This field is provided to assist Support, should the need arise. Printed in hexadecimal format.
  • PREV
    Displays the previous log record ID. Log records for a transaction are chained in reverse back to a previous one of low values.
  • LRSN
    Displays the log record sequence number. An internal number used by
    Datacom/DB
    in support of the logging features. Incremented by one as log records are added, can restart at 1, based upon internal DB requirements. This field is provided to assist Support, should the need arise. The number is printed in hexadecimal.
  • LBSN
    Displays the log block sequence number. An internal number used by Support of the logging features. Incremented by one as log blocks are used. Can start at many numbers and can restart as required internally by
    Datacom/DB
    . This field is provided to assist Support, should the need arise. The number is printed in hexadecimal.
  • TASK
    Displays the number of the task area which was used when this log record was generated.
  • STATUS
    Displays the status of log record. Can contain one or more letters. A blank ends the status. The possible letters are:
    • A
      - Specifies that the transaction was aborted and is to roll back.
    • B
      - Specifies that this record is subject to transaction backout.
    • C
      - Specifies a log record subject to Change Data Capture.
    • F
      - Specifies that the first log record after transaction was force spilled.
    • M
      - Specifies an update command caused the record to move.
    • R
      - Reflects that RESTART moved a row.
    • T
      - Specifies a log record that is part of a transaction that has at least one record subject to Change Data Capture.
    • U
      - Specifies that this request was rolled back.
    • V
      - Specifies a virtual table.
    • 1
      - Specifies the first logged record for this transaction.
    • X
      - Specifies this log record is part of an ADDIT/DELET set, done in support of a partitioned table update that changed the partition in which the row is stored.
    These letters may be in any order. They are present only when required/desired to support the
    Datacom/DB
    facilities. They are provided for Support and are not always present even though the description would indicate that it should be present.
  • RECL
    Displays the size of the log record. It is printed in hexadecimal. This field is provided to assist Support, should the need arise.
  • DATA
    Displays the size of the log data in this log block. It is printed in hexadecimal. This field is provided to assist Support, should the need arise.
LOGPRINT=DATACHR Sample
Specifying LOGPRINT=DATACHR in an RXX Analysis Report generates the following information using character values.
LOG DATA REPORT CMD TBL DBID URI BLOCK DATE TIME LOG DATA BYTES ADDIT C02 97 00000019 00001901 08/18/2018 08.58.01 C02 00000225L ?C% Vô 053770644577173899999774 ADDIT C02 97 0000001A 00001A01 08/18/2018 08.58.01 C02 00000226L ?C>*äL 772678979579605199999773 UPDAT FLD 2 00007808 00005D0B 08/21/2018 05.31.39 TEND
LOGPRINT=DATAHEX Sample
Specifying LOGPRINT=DATAHEX in an RXX Analysis Report generates the following information using hexadecimal style with:
  • One line for the character values that can print
  • One line for the high order nibble converted to 0-F
  • One line for the low order nibble converted to 0-F
To allow the starting offset in the row to be selected, the keyword STARTAFT is highjacked. If you are using DATACHR or DATAHEX,  STARTAFT provides the number of bytes in one log record data section but does not provide the number of log records to skip. If not provided, the value starts at the front of a data row. Similarly, if DATACHR or DATAHEX is used, the keyword RECORDS provides the number of bytes to print but does not to provide the number of log records to print.
By default, the number of bytes are those that fit on the print line as documented.
NOTES:
  • For an ADDIT command, the data row might be known when using LOG_RECORD_FORMAT 1. If not, then the work area contains the start of the element list. This is typically the start of the row but that is not a requirement. If a user program adds elements that are not in the row order, then this use of DATACHR and DATAHEX is less useful.
  • For an UPDAT command, the data available to print is the before data row, none of the work area changes.
  • For DATAHEX, if every byte appears to be common printable characters, then only the character line is printed.
LOG DATA REPORT CMD TBL DBID URI BLOCK DATE TIME LOG DATA BYTES ADDIT C02 97 00000019 00001901 08/18/2018 08.58.01 C02 00000225L ?C% Vô 053770644577173899999774 CFF4FFFFFFFFD0682CA800000000FFFFFFFFFFFFFFFFFFFFFFFF4444444444444 30200000022531F3CA5B000000000537706445771738999997740000000000000 ADDIT C02 97 0000001A 00001A01 08/18/2018 08.58.01 C02 00000226L ?C>*äL 772678979579605199999773 CFF4FFFFFFFFD068250900000000FFFFFFFFFFFFFFFFFFFFFFFF4444444444444 30200000022631F3EC33000000007726789795796051999997730000000000000
TSNPRINT=DETAIL Sample
Using the TSNPRINT=DETAIL option in an RXX Analysis Report generates the TSN DETAIL REPORT as shown in the following sample.
(CONTINUED) Date: mm/dd/ccyy Time: hh.mm.ss Page: 43 TSN DETAIL REPORT TSN JOB FIRST RECORD LAST RECORD REQUESTS STAT TBL DBID ADD DELETE UPDATE 00001A18 DLV1C131 mm/dd/ccyy hh.mm.ss mm/dd/ccyy hh.mm.ss 90 NN MSG 15 45 45 0 00001A19 DLV1C131 mm/dd/ccyy hh.mm.ss mm/dd/ccyy hh.mm.ss 90 NN MSG 15 45 45 0 00001A1A DLV1C131 mm/dd/ccyy hh.mm.ss mm/dd/ccyy hh.mm.ss 90 NN MSG 15 45 45 0 00002252 DLV1C131 mm/dd/ccyy hh.mm.ss mm/dd/ccyy hh.mm.ss 124 NN MSG 15 62 62 0 00002253 DLV1C131 mm/dd/ccyy hh.mm.ss mm/dd/ccyy hh.mm.ss 322 NN MSG 15 161 161 0 00002280 DLV1C131 mm/dd/ccyy hh.mm.ss mm/dd/ccyy hh.mm.ss 304 NN MSG 15 152 152 0
This portion of the report displays TSN Detail Report section.
  • TSN
    Displays the transaction sequence number.
  • JOB
    Displays the name of the job.
  • FIRST RECORD
    Displays the date and time the first record in a transaction was processed.
  • LAST RECORD
    Displays the date and time the last record in a transaction was processed.
  • REQUESTS
    Displays the total number of requests for the transaction, that is, the sum of the number of ADD, DELETE, and UPDATE requests.
  • STAT
    The first character under the STAT heading is a 1 (a numeral one) if the first record of the transaction was found among the selected input, or the first character is an N (NO) if the first record was not found. The second character in the STAT field is a Y (YES) if the transaction completion record was found among the selected input, else an N.
    An indication that a transaction completed does not necessarily mean that it completed
    successfully
    . Some or all of the counts of adds, deletes, and updates may have been reversed and thereby nullified. The reversal can be done
    inline
    to the original log record or it can be done with an additional reversal log record. For example, an add could be reversed with a delete. Deletes are usually reversed as an update, but an add is possible. If these are concerns, then the detail log records would have to be reviewed to see more detail about each specific log record.
  • TBL
    Displays the name of the table associated with the transaction.
  • DBID
    Displays the database ID associated with the transaction.
  • ADD
    Displays the total number of add requests for a transaction.
  • DELETE
    Displays the total number of delete requests for a transaction.
  • UPDATE
    Displays the total number of update requests for a transaction.
Request Summary Report
The REQUEST SUMMARY REPORT in an RXX Analysis Report provides counts of adds, deletes, and updates to every table and base for the transaction, as shown in the following.
REQUEST SUMMARY REPORT COMMAND TABLE DBID AREA OCCURRENCES PERCENT CLOSE 1 0.0 COMIT 48 0.0 ROLBK 6 0.0 ADDIT C01 997 A01 18,000 17.2 DELET C01 997 A01 8,000 7.6 REDNX C01 997 A01 8,000 10.0 ADDIT C02 997 A01 11,328 10.8 DELET C02 997 A01 11,355 10.9 MOVERU C02 997 A01 1,056 1.0 UPDAT C02 997 A01 11,355 14.2 ADDIT TOTAL 38,034 36.4 DELET TOTAL 28,115 27.0 UPDAT TOTAL 28,056 25.1
*DAC* TOTAL 8,000 10.0
  • PERCENT
    The percentage is the percent of the occurrence records for the entire RXX input. Restrictive options like DBID= do not change the percent.
  • MOVERU
    MOVERU is specified for MOVER log records that were done for a record moved in support of the UPDAT command for compressed tables.
  • MOVERO
    MOVERO is specified for MOVER log records that were done for a record moved in support of the DBUTLTY OLREORG function.
  • ADDIT DELET UPDAT
    The summary section displays one line for all ADDIT commands, one line for all UPDAT commands, and one line for all DELET commands. The information represents the occurrences of those commands for all selected records, and it is the percent of this summation.
    A summary line for each of ADDIT, UPDAT, and DELET shows the total records and their percent.
  • *DAC* 
    Records if the log record was added in support of the Data Access Capture feature.
Additional Summary Information
INPUT BLOCKS READ: --------269 TOTAL RECORDS SELECTED: ------1,020 DATE/TIME RANGE FROM mm/dd/ccyy hh.mm.ss TO mm/dd/ccyy hh.mm.ss TSN RANGE FROM 00001A0E TO 000022E4
This page of the report shows an RXX Analysis Report that provides more summary information as follows.
  • INPUT BLOCKS READ:
    Includes the full input unless selection criteria allows processing to stop without passing all of the data.
  • TOTAL RECORDS SELECTED:
    Counts the log records matching selection data (in this sample, all rows match and are selected).
  • DATE/TIME RANGE FROM
    Provides the lowest date/time and the highest date/time of the input. It is not provided if the full input is not read because of selection options.
  • TSN RANGE FROM
    Provides the lowest and highest transaction sequence numbers found on the input. This information is not provided if the full input is not read.
Some of the commands printed in the summary report are strictly internal to
Datacom/DB
and so their exact purpose is not described here. They are included for completeness and in case they are required for use by Support.
Warning Messages
Warning messages are built into the RXX Analysis Report to alert you to unexpected data. The warnings do not necessarily represent a problem but could. The input is expected to be a series of log records in the order they were created. If this is found to not be true, a warning message is produced. For example:
WARNING: TIMESTAMP STEP DOWN: FROM B229FA165F111C00 TO B229EC970BCCFB04 LXX BLOCK xxxxxxxx VS yyyyyyyy WARNING: DATE/TIME STEP DOWN: FROM mm/dd/ccyy hh.mm.ss TO mm/dd/ccyy hh.mm.ss LXX BLOCK xxxxxxxx VS yyyyyyyy WARNING: TSN STEP DOWN: FROM DBDB2706 TO DBDB2701 LXX BLOCK xxxxxxxx VS yyyyyyyy WARNING: LOG RECORD SEQUENCE NUMBER NOT +1: FROM 0000000F TO 0000005F LXX BLOCK xxxxxxxx VS yyyyyyyy
For the LXX BLOCK info in the previously shown example:
  • xxxxxxxx
    Shows (for debugging purposes) the hex value for the log block prior to the current one.
  • yyyyyyyy
    Shows (for debugging purposes) the hex value for the current log block.
Each of the four kinds of warning messages shown previously is independent of the others and occurs as often as its condition applies. For example, if the volumes of a multivolume file are provided in an order other than that in which they were built, one of each message would be expected.
Because an RXX Analysis Report can be lengthy and the warning message(s) can be embedded with the output (making it easy for them to be overlooked), at the bottom of the report (if any of the warning messages were generated) is a warning that alerts you to the embedded warning(s). The messages that warn you about the warnings are:
WARNING: TIMESTAMP STEP DOWN(S) ENCOUNTERED. WARNING: DATE/TIME STEP DOWN(S) ENCOUNTERED. WARNING: TSN STEP DOWN(S) ENCOUNTERED. WARNING: LOG RECORD SEQ. NUMBER NOT +1(S) ENCOUNTERED.
Split File Analysis Report
The Recovery File Analysis Report program can detect the type of input file. If the input is a
Datacom
Fast Recovery file (split), the report control statements are as shown in the following syntax diagram.
The four kinds of example split file reports discussed in this section are:
  • LOGPRINT=DETAIL Example Split File Report (see LOGPRINT=DETAIL Example Split File Report)
  • LOGPRINT=DETAILX Example Split File Report (see LOGPRINT=DETAILX Example Split File Report)
  • LOGPRINT=DATACHR Example
  • LOGPRINT=DATAHEX
How to Use
Following is the syntax for the RXX Split File Analysis Report.
►►─ REPORT AREA=RXX, ─┬───────────────────────────┬───────────────────────────► └─ LOGPRINT= ─┬─ DETAIL ──┬─┘ ├─ DETAILX ─┤ ├─ DATACHR ─┤ └─ DATAHEX ─┘ ┌─ , ─────────────┐ ►─┬─────────────────────┬─▼─┬─────────────┬─┴─┬─────────────┬────────────────► └─ BLOCK=
blocknumber
─┘ └─ DBID=
nnnn
─┘ └─ TABLE=
ttt
─┘ ►─┬──────────────────┬─┬─────────────────┬─┬───────────────────┬─────────────►◄ └─ STARTAFT=
nnnnn
─┘ └─ RECORDS=
nnnnn
─┘ └─ URINUM=
nnnnnnnn
─┘
Each of the following options can only be specified once, except for the DBID= option, that you can repeat.
Command
  • REPORT
    Invokes the function to produce a report.
Required Keywords
  • AREA=RXX
    Requests the Recovery File Analysis Report.
Optional Keywords
  • BLOCK=
    Specify an eight-character hexadecimal number representing a data block within a data area. This option would normally be done as a request of Support.
  • DBID=
    Use to specify a database ID. Use to specify a database ID. You can repeat this option. Each occurrence may specify one or more valid database IDs or a range of DBIDs nnnn-mmmm (a (a range, for example, such as 100-250).
  • LOGPRINT=
    Choose either DETAIL or DETAILX.
    LOGPRINT=DETAIL
    is optional, that is, specifying DETAIL gives the same results as leaving a LOGPRINT= specification off and using only REPORT AREA=RXX (the basic syntax without options). For an example report generated by the basic syntax, see LOGPRINT=DETAIL Example Split File Report.
    LOGPRINT=DETAILX
    prints the entire record in hexadecimal. For an example report generated with LOGPRINT=DETAILX, see LOGPRINT=DETAILX Example Split File Report.
    LOGPRINT=DATACHR
    prints the value in character format
    LOGPRINT=DATAHEX
    prints the value in hexadecimal style with:
    • One line for the
      character values that can print
    • One line for the high order nibble converted to 0-F
    • One line for the low order nibble converted to 0-F
  • RECORDS=
    Provides a count of log records that are acceptable after processing the number of log records specified in the STARTAFT= option. If the STARTAFT= option is not provided, STARTAFT=0 is assumed. Specifying both RECORDS= and STARTAFT= gives you the ability to print/dump portions of a Recovery File (RXX).
    The input is not read beyond the number of records to be selected.
  • STARTAFT=
    Specify a count of log records before which all are rejected.
  • TABLE=
    Specify a table name.
  • URINUM=
    Provides an eight-character URI number.
This utility always reads one input file of one or more volumes. In z/OS, this can be multiple concatenated files that appear to
Datacom/DB
as one file. In z/VSE, the file must be on tape/cart and not DASD. If the input is not log data, unexpected results occur.
LOGPRINT=DETAIL Example Split File Report
Following is an example report generated by specifying LOGPRINT=DETAIL (same as the basic syntax without options, that is, REPORT AREA=RXX).
CONTROL CARD(S) .........1.........2.........3.........4.........5.........6.........7.........8 REPORT AREA=RXX FUNCTION=REPORT AREA=RXX
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.
SPLIT FILE GROUP GROUP START GROUP END GROUP9 1/05/00,10.40.44 1/05/00,10.41.45 DBID TABLE URI BLOCK ACTIVITY 789 C01 00000001 00000002 A U D 789 C01 00000002 00000002 A U D 789 C01 00000003 00000002 A U D 789 C01 00000004 00000002 A U D 789 C01 00000005 00000002 A U D 789 C01 00000006 00000002 A U D 789 C01 00000007 00000002 A U D 789 C01 00000008 00000002 A U D 789 C01 00000009 00000002 A U D . . .
This page of the report shows the following:
  • GROUP
    Identifies the split file group.
  • GROUP START
    Displays the date and time the group started.
  • GROUP END
    Displays the date and time the group ended.
  • DBID
    Displays a database ID. This is left blank for records without database IDs. It is printed as a decimal number.
  • TABLE
    Displays a database 3-character table name.
  • URI
    Displays a Unique Row Identifier. This is left blank for records without a URI number. It is printed in hexadecimal format.
  • BLOCK
    Displays a data area block number. This is left blank for records without a data block. It is printed in hexadecimal format.
  • ACTIVITY
    Lists the action taken on this record. These letters (action codes) can occur in any order. They are shown only when required/desired to support the
    Datacom/DB
    facilities (that is, they are provided for Support and are not always shown, even though the description would indicate that it should be shown). The possible letters that can be shown on the report are the following:
    • A
      Add
    • D
      Delete
    • M
      Moved
    • U
      Update
    • R
      Rollback
    • I
      Incomplete task
The previous example defines the provided and optional reports. Each was described as though the entire input was considered selected data (the default), but be aware that numerous data selection options are available. Remember, too, that a log record, to be selected, must pass all of the specified options (a single option can be specified or any combination, including all of them).
LOGPRINT=DETAILX Example Split File Report
CONTROL CARD(S) .........1.........2.........3.........4.........5.........6.........7.........8 REPORT AREA=RXX,LOGPRINT=DETAILX FUNCTION=REPORT AREA=RXX LOGPRINT=DETAILX
The following example report generated by specifying LOGPRINT=DETAILX (to give a hexadecimal dump of the entire record) 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.
SPLIT FILE GROUP GROUP START GROUP END GROUP9 1/05/00,10.40.44 1/05/00,10.41.45 0000 00678001 C3C161C4 C1E3C1C3 D6D461C4 C261C6C1 E2E340D9 C5E2E3D6 D9C540C6 * CA/DATACOM/DB/FAST RESTORE F* 0020 C9D3C540 C7D9D6E4 D7F900B3 763E857B 4AE10000 01051040 44000105 10414500 *ILE GROUP9 * 0040 00000000 00000000 00000000 000000B3 66F16C90 344840B3 66F247CB 33518000 * 1 2 * 0060 00000000 000000 * * DBID TABLE URI BLOCK ACTIVITY 789 C01 00000001 00000002 A U D 0000 00200700 0315C1F0 F1000000 02000000 0001C3F0 F1000000 02000000 00000000 * A01 C01 * 789 C01 00000002 00000002 A U D 0000 00200700 0315C1F0 F1000000 02000000 0002C3F0 F1000000 02000000 00000000 * A01 C01 * 789 C01 00000003 00000002 A U D 0000 00200700 0315C1F0 F1000000 02000000 0003C3F0 F1000000 02000000 00000000 * A01 C01 * . . .
This page of the report shows the following:
  • GROUP
    Identifies the split file group.
  • GROUP START
    Displays the date and time the group started.
  • GROUP END
    Displays the date and time the group ended.
  • DBID
    Displays a database ID. This is left blank for records without database IDs. It is printed as a decimal number.
  • TABLE
    Displays a database 3-character table name.
  • URI
    Displays a Unique Row Identifier. This is left blank for records without a URI number. It is printed in hexadecimal format.
  • BLOCK
    Displays a data area block number. This is left blank for records without a data block. It is printed in hexadecimal format.
  • ACTIVITY
    Lists the action taken on this record. These letters (action codes) can occur in any order. They are shown only when required/desired to support the
    Datacom/DB
    facilities (that is, they are provided for Support and are not always shown, even though the description would indicate that it should be shown). The possible letters that can be shown on the report are the following:
    • A
      Add
    • D
      Delete
    • M
      Moved
    • U
      Update
    • R
      Rollback
    • I
      Incomplete task