ADAPLP (Protection Log Printout)

#### Search Results

Search

# ADAPLP (Protection Log Printout)

This document describes the utility "ADAPLP".

The following topics are covered:

- Functional Overview

- Procedure Flow

- Checkpoints

- Control Parameters

- ADAPLP Output

## Functional Overview

The ADAPLP utility prints the Protection Log or WORK.

This utility is a multi-function utility. For more information about single- and multi-function utilities, see Adabas Basics, Using Utilities.

Note
LOB values are split into several records in a LOB file; when LOB values are stored in the database, the Protection Log contains the log records for the modifications of the LOB file. This means that ADAPLP does not display the LOB values as one value, but rather it displays the modifications of the corresponding records in the LOB file instead. It is not possible to decompress the LOB file records because the LOB records are too large to fit into one block, and the continued Protection Log records cannot be decompressed.

## Procedure Flow

Data Set | Environment Variable/ Logical Name | Storage Medium | Additional Information
--- | --- | --- | ---
Associator | ASSOx | Disk |
Protection log | PLPPLG | Disk | Utilities Manual
Protection log (last extent) | PLPLEX | Disk | Only required if you process a PLOG with an extension count > 1 and if you use the DECOMPRESS or DELTA option: you must provide the last PLOG extent before the PLOG extent to be processed.
Control statements | stdin |  | Utilities Manual
ADAPLP report | stdout |  | Messages and Codes
Work storage | WORK1 | Disk |

The sequential file PLPPLG can have multiple extents. For information about sequential files with multiple extents, see Adabas Basics, Using Utilities.

## Checkpoints

The utility writes no checkpoints.

## Control Parameters

The following control parameters are available:

    M    DATASET = keyword

         DBID = number

    D    [NO]DECOMPRESSED

         DELTA

    D    [NO]DUMP

         FILES = (number [-number][,number [-number]]...)

    D    [NO]HEADER

         INTERNAL_ID = number

         ISN = (number [,number] ... )

         MODIFIED_RABN = number

         NOFILETYPE

         NONULL

         PLOG = (number [,number])

    M    RABN = {*|number[-number]}

         RECORD ={*| (number [- number]  [, number  [- number]]...) }

         SEQ = number

    D    [NO]SHORT

         THREAD = number

         TSN = number

    D    TYPE = (keyword [,keyword]...)

         USER_ID = string

### DATASET

    DATASET = keyword

This parameter selects the file containing the Protection Log information to be processed. The keyword can take the values PLOG or WORK.

### DBID

    DBID = number

This parameter selects the database to be used.

This parameter must be used when DATASET=WORK is requested. This parameter must be the first parameter to be specified. Otherwise, if this parameter is not specified, the DBID stored in the PLOG is used.

### [NO]DECOMPRESSED

    [NO]DECOMPRESSED

This option indicates whether for each selected DATA record from a protection log, one line per field is printed with the field name and its decompressed value in hex (DECOMPRESSED) or not (NODECOMPRESSED).

For an inserted record, an after image containing the field values of the record after the insert is displayed.

For an updated record, a before image containing the field values before the update, and an after image containing the field values of the record after the update are displayed.

For a deleted record, a before image containing the field values before the delete operation is displayed.

If you specify DECOMPRESSED and NONULL, no output is produced for the following:

- Fields with NU or NC option with null-value;

- MU fields with NU or NC option without a value that is not the null-value;

- PE groups containing only fields with NU or NC option without a value that is not the null-value;

- Group names if the group is not PE.

The default is NODECOMPRESSED.

Note
Decompression (DECOMPRESSED output) is not possible for CONTINUED records. CONTINUED records are created if a PLOG record plus the block header is larger than 32 KB in the PLOG or larger than the block size used for WORK.

#### Example output for DECOMPRESSED (without NONULL option)

    >>> After Image <<<

    Length = 20, ISN = 2

    Field    : AA: ^30372E31322E3034
    Group    : AB
    Field    : AC: ^2020202020202020202020202020202020202020
    Field    : AE: ^2020202020202020202020202020202020202020
    Field    : AD: ^2020202020202020202020202020202020202020
    Field    : AF: ^20
    Field    : AG: ^20
    Field    : AH: ^0000000C
    Group    : A1
    MU-field : AI, count = ^01
               AI(  1): ^2020202020202020202020202020202020202020
    Field    : AJ: ^2020202020202020202020202020202020202020
    Field    : AK: ^20202020202020202020
    Field    : AL: ^202020
    Group    : A2
    Field    : AN: ^202020202020
    Field    : AM: ^202020202020202020202020202020
    Field    : AO: ^202020202020
    Field    : AP: ^20202020202020202020202020202020202020202020202020
    PE-group : AQ, count = ^01
      PE index (1)
    Field    : AR: ^202020
    Field    : AS: ^000000000C
    MU-field : AT, count = ^01
               AT(  1): ^000000000C
    End of PE-group : AQ
    Group    : A3
    Field    : AU: ^3030
    Field    : AV: ^3030
    PE-group : AW, count = ^01
      PE index (1)
    Field    : AX: ^3030303030303030
    Field    : AY: ^3030303030303030
    End of PE-group : AW
    MU-field : AZ, count = ^01
               AZ(  1): ^202020

#### Example output for DECOMPRESSED (with NONULL option)

    >>> After Image <<<

    Length = 15, ISN = 2

    Field    : AA: ^30372E31322E3034
    Field    : AF: ^20
    Field    : AG: ^20

### DELTA

    DELTA

This parameter indicates that only changed fields after an update are displayed.

For an inserted record, the same output is produced as with the options DECOMPRESSED, NONULL.

For an updated record, a Delta containing the modified field values is displayed. Note that for MU/PE fields, the value count displayed can be smaller than the displayed MU/PE indices if the MU/PE count has been decreased - this is because all field values have been set to the null value.

If a record is deleted, no output is produced, however, you can see the deletion if you display protection log entries of the type CE.

Note
Decompression (DELTA output) is not possible for CONTINUED records. CONTINUED records are created if a PLOG record plus the block header is larger than 32 KB in the PLOG or larger than the block size used for WORK.

### [NO]DUMP

    [NO]DUMP

This option indicates whether the variable part of a Protection Log record is included in the printout (DUMP) or not (NODUMP).

If DUMP is specified, the variable part of each Protection Log record is displayed in both hexadecimal and uninterpreted ASCII format.

DUMP implicitly resets SHORT.

The default is NODUMP.

### FILES

    FILES = (number [-number][,number [-number]]...)

The Protection Log records are only displayed if they belong to the file(s) specified by this parameter.

Only records of the types DA, DV, EXT, INDEX and FCB are displayed.

Please refer to the tables at the end of this section for a description of the various types of Protection Log records.

### [NO]HEADER

    [NO]HEADER

This option indicates whether for each block of the Protection Log a header is displayed (HEADER) or not (NOHEADER).

The default is HEADER.

### INTERNAL_ID

    INTERNAL_ID = number

This option displays only the records with the specified internal ID.

### ISN

    ISN = (number [,number] ... )

The Protection Log records are only displayed if they belong to the ISNs specified by this parameter. Only records of the types DA and DV are displayed. Please refer to the tables at the end of this section for a description of the various types of Protection Log records. This parameter can only be used in conjunction with the FILE parameter.

### MODIFIED_RABN

    MODIFIED_RABN = number

This option displays only the records in which modifications for the specified RABN are logged.

Please refer to the tables at the end of this section for a description of the various types of Protection Log records.

### NOFILETYPE

    NOFILETYPE

This keyword specifies that record types that are independent of file numbers (for example ET and BT records) will be displayed in addition to the record types that are bound to file numbers.

#### Example

    adaplp dbid=6 file=25 type=(da,dv,et,bt) nofiletype

The DA and DVT records of file 25 together with all ET and BT records will be displayed.

### NONULL

    NONULL

The NONULL parameter is only relevant if the DECOMPRESSED parameter is also specified. Please refer to the DECOMPRESSED parameter for further information.

### PLOG

    PLOG = (number[,number])

This parameter is optional. The PLOG number and the extension count can be specified. If an extension count is specified, then only the specified extent will be processed. If no extension count is specified, Adabas will open subsequent extents when necessary. The parameter PLOG must be specified before DATASET=PLOG is specified.

#### Example:

    Section layout

             .
             .
             .
    250000 260000  10001  30  PLG.36 created

    377000 378000   1001  30  PLG.36(3) created

    adaplp: plog=36
    adaplp: dataset=plog

PLG.36 will be opened

    adaplp: plog=(36,3)
    adaplp: dataset=plog

PLG.36(3) will be opened.

### RABN

    RABN ={*| number [- number] }

This parameter selects one block or a range of consecutive blocks on the WORK or Protection Log file. The information contained in the specified blocks is displayed.

If you specify "*", all blocks are displayed.

Notes:

1. If you start ADAPLP without specifying RABN, the utility will run, but will not produce any output.
2. After specifying the RABN parameter, the requested output is generated immediately. Therefore, you must specify all other parameters required for the output generation, for example the DATASET parameter, before the RABN parameter.

#### Example

    adaplp: rabn = 123

    adaplp: rabn = 123 - 1246

### RECORD

    RECORD ={*| (number [- number]  [, number  [- number]]...) }

This parameter selects the records or ranges of records to be printed. All of the records are printed if `*' or nothing is specified.

#### Example:

    adaplp: record = (2-5,9,11)

The records 2, 3, 4, 5, 9 and 11 are written while printing one or more PLOG blocks.

### SEQUENCE

    SEQUENCE = number

This option displays only the records written by the specified sequence number.

### [NO]SHORT

    [NO]SHORT

This option indicates whether only Protection Log block headers are printed out (SHORT), or whether all the records in each block are included in the display (NOSHORT).

SHORT implicitly resets DUMP.

By default, the Protection Log block header is displayed followed by all of the records contained in the block.

The default is NOSHORT.

### THREAD

    THREAD = number

This option displays only the records with the specified thread.

### TSN

    TSN = number

This option displays only the records with the specified transaction sequence number (TSN).

Only records of the type BT, C5, CL, DA, DV and ET are displayed.

Please refer to the tables at the end of this section for a description of the various types of Protection Log records.

### TYPE

    TYPE = (keyword [,keyword]...)

This option displays only the protection log records specified by the given keyword(s). Each keyword corresponds to one or more protection log record types, as shown in the following table.

Keyword | Protection Log record type
--- | ---
AB | AB
ASSO | the record type AC and all record types that are selected by the keywords EXT, FCB and INDEX
AT | AT
BF | BS, BE, BF
BT | BT
C1 | C1
C5 | C5
CE | CE
CF | CF
CT | CT
DA | DA
DATA | all record types that are selected by the keywords BT, CE, DA, DV, ET and OP.
DC | DC
DT | DT
ET | ET, CL
EXT | ACEXT, UIEXT, NIEXT, DSEXT
FCB | FCBDS, FCBIX, SPISN
INDEX | FE, INDEX, IB, INSRU, REMRU
OP | OP

Please refer to the tables at the end of this section for a description of the various types of Protection Log records.

The default is to display all protection log record types.

### USER_ID

    USER_ID = string

This option displays only the records which start with the specified user ID.

Only records of the type BT, C1, C5, CL, DA, DV, ET, FCBDS, FCBIX and INDEX are displayed.

Please refer to the tables at the end of this section for a description of the various types of Protection Log records.

## ADAPLP Output

Each block of the Protection Log or WORK is preceded by a header, which consists of the following:

- the block sequence number;

- the size of the block;

- the number of the session that the block belongs to (identical to the PLOG number);

- the time stamp showing when the block was created (internal time stamp for WORK).

The output for a record consists of the following entries:

- a record sequence number (starting at 1 for each block);

- the internal length of the record;

- the command sequence number (uniquely identifies a command);

- the type of PLOG record (see the following table for more information);

- the number of the thread that executed the command.

In addition, most records also have the following entries:

"the internal user identification (in hexadecimal notation) that is uniquely assigned for each command that opens a transaction."

The table below shows the types of PLOG records:

Type | Description
--- | ---
AB | logs WORK wrap around (WORK only).
AC | logs the relocation of a record during backout transaction (WORK only).
ACEXT | logs the extension of the address converter (WORK only).
AT | logs the adding of a field (ADADBM).
BE | logs the end of a buffer flush (WORK only).
BF | logs the start and end of a buffer flush (WORK only).
BS | logs the start of a buffer flush (WORK only).
BT | logs the start of BT processing.
C1 | log record from a C1 command. Contains the checkpoint name (PLOG only).
C5 | log record from a C5 command (PLOG only).
CE | indicates the last entry of a command (last entry with this sequence number). If the command was a delete operation, the file number and the ISN of the deleted record is displayed. Example
    >>> DELETE FILE 10 ISN 2 <<<
CF | logs the creation of an FDT (ADAFDU).
CL | logs the CLOSE of a user.
CT | logs the creation of a file (ADAFDU).
DA | logs a data record change. The file, RABN, and ISN of the data record are displayed. The record is either an after image (AI), a before image (BI), or a delta image (DI) and is displayed when DUMP is enabled. `TSN' is an internal transaction sequence number. All entries that originate from one transaction have the same TSN (see also the description of the ET command in the Command Reference Manual). The output of `WB' is only displayed if DATASET=WORK has been specified. It shows the WORK block where the previous PLOG record of the same TSN can be found. A `clu' value that is not zero indicates an exclusive or privileged user.
DC | logs the dropping of a field (ADADBM).
DSEXT | logs the extension of data storage (WORK only).
DT | logs the deletion of a file (ADADBM).
DV | logs a descriptor update (should always be preceded by a DA record). The entries for the file, ISN, TSN, clu, and WB are the same as for the DA record type.
ET | log entry from an ET command. The ET TSN gives the TSN of the last user data written by an ET command.
FCBDS | logs an FCB change for data storage (WORK only).
FCBIX | logs an FCB change for the normal index (WORK only).
FE | logs a change of an index block's first entry (WORK only).
IB | logs an index block that is modified (WORK only).
INDEX | logs an index block that is split (WORK only).
INSRU | logs the insertion of an index block into a reusage chain (WORK only).
NIEXT | logs the extension of the normal index (WORK only).
OP | logs the OPEN of a user.
REMRU | logs the deletion of an index block from a reusage chain (WORK only).
SPISN | logs changes in ISN reusage or space reusage.
UIEXT | logs the extension of the upper index (WORK only).

There are also several flags that may be displayed with DA or DV records:

Flag | Description
--- | ---
AI | the data of this PLOG record contain an after image of the data record (record type DA).
BACKOUT | indicates that the record was written during a backout within a single command.
BI | the data of this PLOG record contain a before image of the data record (record type DA).
BT | indicates that the record was written during the backout of a transaction.
DI | the data of this PLOG record contain a delta image of the data record (record type DA).
FDATA | indicates that this is the first DA record of this command.
FIRST_ENTRY | indicates that this is the first record with a given sequence number.
HIMERGE | merge of the highest index level.
HISPLIT | split of the highest index level.
USERD | transaction carries user data.

### On this page

- Functional Overview
- Procedure Flow
- Checkpoints
- Control Parameters
- ADAPLP Output