ADAPLP(プロテクションログプリント出力)

このドキュメントでは ADAPLP ユーティリティについて説明します。

次のトピックについて説明します。


機能概要

ADAPLP ユーティリティは、プロテクションログまたは WORK のプリント出力を行います。

このユーティリティは多機能ユーティリティです。

注意:
LOB 値は LOB ファイルの複数のレコードに分割されます。LOB 値をデータベースに保存するとき、プロテクションログには LOB ファイルの変更を記録したレコードが格納されます。ADAPLP では LOB 値が 1 つの値として表示されず、その代わりに LOB ファイルで対応するレコードの変更が表示されます。LOB ファイルレコードを圧縮解除することはできません。LOB レコードは非常に大きいために 1 ブロックに収まらないからです。連続したプロテクションログのレコードも圧縮解除できません。

処理フロー

graphics/adaplp.png

データセット 環境
変数/
論理名
記憶
媒体
追加情報
アソシエータ ASSOx ディスク  
プロテクションログ PLPPLG ディスク、テープ ユーティリティマニュアル
プロテクションログ(最後のエクステント) PLPLEX ディスク エクステントの数が 1 より大きい PLOG を処理する場合と、DECOMPRESS または DELTA オプションを使用する場合にのみ必要となります。処理する PLOG エクステントの 1 つ前の PLOG エクステントを指定する必要があります。
コントロールステートメント stdin/
SYS$INPUT
  ユーティリティマニュアル
ADAPLP レポート stdout/
SYS$OUTPUT
  メッセージおよびコード
ワークストレージ WORK1 ディスク  

シーケンシャルファイル PLPPLG は複数のエクステントを持つことができます。複数のエクステントを持つシーケンシャルファイルの詳細については、『Adabas Basics』の「ユーティリティの使用」を参照してください。

チェックポイント

このユーティリティはチェックポイントを書き込みません。

制御パラメータ

次のコントロールパラメータを使用できます。

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

D    [NO]WXA

DATASET

DATASET = keyword

このパラメータは、処理対象のプロテクションログ情報を含むファイルを選択します。キーワードに使用できる値は PLOG または WORK です。DATASET=PLOG を指定してプロテクションログが RAW デバイスに配置されている場合は、パラメータ PLOG を先に指定する必要があります。

DBID

DBID = number

このパラメータは、使用対象となるデータベースを選択するためのものです。

このパラメータは、DATASET=WORK が要求されるとき、または DATASET=PLOG でプロテクションログが RAW セクション内に書き込まれる場合に使用する必要があります。このパラメータは、最初に指定する必要があります。それ以外の場合は、このパラメータを指定しないと、PLOG に格納された DBID が使用されます。

[NO]DECOMPRESSED

[NO]DECOMPRESSED

このオプションは、プロテクションログから選択された個々の DATA レコードに対して、フィールドごとにフィールド名と圧縮解除された値を 16 進数で 1 行出力する(DECOMPRESSED)か、または出力しない(NODECOMPRESSED)かを指定するものです。

挿入レコードの場合には、挿入後のレコードのフィールド値を含むアフターイメージが表示されます。

更新レコードの場合には、更新前のレコードのフィールド値を含むビフォーイメージと、更新後のレコードのフィールド値を含むアフターイメージが表示されます。

削除レコードの場合には、削除前のレコードのフィールド値を含むビフォーイメージが表示されます。

DECOMPRESSED および NONULL が指定されている場合、次の項目は出力されません。

  • NU または NC オプションが定義されているフィールドで、空値のもの

  • NU または NC オプションが定義されている MU フィールドで、値がすべて空値のもの

  • NU または NC オプションが定義されているフィールドのみで構成されている PE グループで、値がすべて空値のもの

  • PE グループ以外のグループの名前

デフォルトは NODECOMPRESSED です。

注意:
CONTINUED レコードの圧縮解除(DECOMPRESSED 出力)はできません。PLOG レコードにブロックヘッダーを加えた値が PLOG 内で 32 KB より大きい場合、または WORK に使用するブロックサイズより大きい場合、CONTINUED レコードが作成されます。

DECOMPRESSED の出力例(NONULL オプションなし)

>>> 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

DECOMPRESSED の出力例(NONULL オプションあり)

>>> After Image <<<


Length = 15, ISN = 2

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

DELTA

DELTA

このパラメータは、更新後に変更されたフィールドのみ表示します。

挿入レコードの場合には、DECOMPRESSED および NONULL オプションの出力と同じ出力になります。

更新レコードの場合には、変更されたフィールド値を含むデルタが表示されます。MU/PE フィールドの場合には、MU/PE のオカレンス数が減少した場合、表示された値の数は表示された MU/PE インデックスより少なくなることがあります。これは、すべてのフィールド値に空値が設定されたために起こります。

レコードが削除された場合、何も出力されません。しかし、CE タイプのエントリをプロテクションログに表示させる場合、削除情報を確認できます。

注意:
CONTINUED レコードの圧縮解除(DELTA 出力)はできません。PLOG レコードにブロックヘッダーを加えた値が PLOG 内で 32 KB より大きい場合、または WORK に使用するブロックサイズより大きい場合、CONTINUED レコードが作成されます。

[NO]DUMP

[NO]DUMP

このオプションは、プロテクションログレコードの可変部分がプリント出力内に含まれる(DUMP)か、含まれない(NODUMP)かを指定するものです。

DUMP を指定した場合には、プロテクションログレコードの可変部分は 16 進形式および解釈不能 ASCII 形式の両方で表示されます。

DUMP を指定すると、SHORT はリセットされます。

デフォルトは NODUMP です。

FILES

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

プロテクションログレコードは、このパラメータで指定されたファイルに属している場合にのみ表示されます。

タイプ DA、DV、EXT、INDEX および FCB のレコードだけが表示されます。

プロテクションログレコードのタイプについては、このセクションの最後にある表を参照してください。

[NO]HEADER

[NO]HEADER

このオプションは、プロテクションログのブロックごとにヘッダーを表示する(HEADER)か、表示しない(NOHEADER)を指定するものです。

デフォルトは HEADER です。

INTERNAL_ID

INTERNAL_ID = number

このオプションを使用すると、指定した内部 ID を持つレコードだけが表示されます。

ISN

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

プロテクションログレコードが、このパラメータで指定する ISN に属する場合だけ表示されます。タイプ DA と DV のレコードだけが表示されます。プロテクションログレコードのタイプについては、このセクションの最後にある表を参照してください。このパラメータは、FILE パラメータと組み合わせたときにだけ使用できます。

MODIFIED_RABN

MODIFIED_RABN = number

このオプションは、指定した RABN に対する修正が記録されたレコードだけを表示します。

プロテクションログレコードのタイプについては、このセクションの最後にある表を参照してください。

NOFILETYPE

NOFILETYPE

このキーワードは、ファイル番号と関連付けられているレコードタイプだけでなく、ファイル番号とは無関係なレコードタイプ(ET や BT など)を表示する場合に使用します。

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

ファイル 25 の DA および DVT レコードに加えて、ET および BT レコードも表示させます。

NONULL

NONULL

DECOMPRESSED パラメータと一緒に指定した場合にだけ、NONULL パラメータを指定する意味があります。詳細については、DECOMPRESSED パラメータを参照してください。

PLOG

PLOG = (number[,number])

DATASET=PLOG が指定され、プロテクションログが RAW セクション内に書き込まれる場合、このパラメータは必須です。プロテクションログがファイルシステム内に書き込まれる場合には、指定するかどうかは任意です。PLOG 番号とエクステンションカウントを指定することができます。エクステンションカウントを指定すると、指定エクステントだけが処理されます。エクステンションカウントを指定しない場合、Adabas は必要に応じて後続のエクステントをオープンします。パラメータ PLOG は DATASET=PLOG を指定する前に指定しなければなりません。

例:

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 がオープンされます。

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

PLG.36(3) がオープンされます。

RABN

RABN ={*| number [- number] }

このパラメータは、WORK またはプロテクションログファイルのブロックを 1 つずつ指定するか、または連続した範囲で指定します。指定したブロック内の内容が表示されます。

アスタリスク(*)を指定すると、全ブロックが表示されます。

注意:

  1. RABN を指定せずに ADAPLP を起動した場合、ユーティリティは実行しますが、何も出力されません。
  2. RABN パラメータを指定すると、要求された出力が直ちに生成されます。そのため、出力生成に必要な他のすべてのパラメータ(RABN パラメータの前の DATASET パラメータなど)を指定する必要があります。

adaplp: rabn = 123

adaplp: rabn = 123 - 1246

RECORD

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

このパラメータは、出力対象となるレコードまたはレコードの範囲を選択するものです。アスタリスク(*)が指定されるか、または何も指定されない場合には全レコードが出力の対象となります。

例:

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

レコード 2、3、4、5、9 および 11 が 1 つまたは複数 PLOG ブロックの出力時に書き出されます。

SEQUENCE

SEQUENCE = number

このパラメータは指定したシーケンス番号で書かれたレコードだけを表示します。

[NO]SHORT

[NO]SHORT

このオプションは、プロテクションログブロックのヘッダーだけを表示対象とする(SHORT)か、または全レコードを表示対象とする(NOSHORT)かを示すものです。

SHORT を指定すると、DUMP はリセットされます。

デフォルトでは、プロテクションログブロックのヘッダーの後に、そのブロック内のすべてのレコードが表示されます。

デフォルトは NOSHORT です。

THREAD

THREAD = number

このオプションは、指定スレッドのレコードだけを表示します。

TSN

TSN = number

このオプションは、指定したトランザクションシーケンス番号(TSN)を持つレコードだけを表示します。

タイプ BT、C5、CL、DA、DV、ET および XA(OpenVMS にはない)のレコードだけが表示されます。

プロテクションログレコードのタイプについては、このセクションの最後にある表を参照してください。

TYPE

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

このオプションは、所定のキーワード(複数可)で指定したプロテクションログレコードだけを表示します。各キーワードは次の表のように 1 つ以上のプロテクションログレコードのタイプに対応します。

キーワード プロテクションログレコードのタイプ
AB AB
ASSO レコードタイプ AC、およびキーワード EXT、FCB、INDEX で選択された全レコードタイプ
AT AT
BF BS、BE、BF
BT BT
C1 C1
C5 C5
CE CE
CF CF
CT CT
DA DA
DATA キーワード BT、CE、DA、DV、ET および 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
XA キーワード YB、YD、YF および YP で選択された全レコードタイプ
YB YB(OpenVMS にはない)
YD YD(OpenVMS にはない)
YF YF(OpenVMS にはない)
YP YP(OpenVMS にはない)

プロテクションログレコードのタイプについては、このセクションの最後にある表を参照してください。

デフォルトでは、すべてのプロテクションログレコードのタイプが表示されます。

USER_ID

USER_ID = string

このパラメータは、指定ユーザー ID で開始したレコードだけを表示します。

タイプ BT、C1、C5、CL、DA、DV、ET、FCBDS、FCBIX、INDEX および XA のレコードだけが表示されます。

プロテクションログレコードのタイプについては、このセクションの最後にある表を参照してください。

[NO]WXA

[NO]WXA

このオプションは、WORK パート 1 リングバッファ(NOWXA)および WORK パート 1 XA エリア(WXA)を切り替えます。

デフォルトは NOWXA です。

ADAPLP 出力

プロテクションログまたは WORK の各ブロックはヘッダーの後に続けて出力され、次の情報から構成されます。

  • ブロックのシーケンス番号

  • ブロックのサイズ

  • ブロックが属するセッションの番号(PLOG 番号と同じ)

  • ブロックの作成時刻を示すタイムスタンプ(WORK の内部タイムスタンプ)

1 レコードの出力は次のエントリから構成されます。

  • 1 レコードのシーケンス番号(ブロックごとに 1 から始まる)

  • レコードの内部長

  • コマンドのシーケンス番号(コマンドを一意に識別する)

  • PLOG レコードのタイプ(詳細については次の一覧を参照)

  • コマンドを実行したスレッドの番号

これ以外にも、ほとんどのレコードで次のエントリも出力されます。

  • 内部ユーザー ID(16 進表示)。1 トランザクションをオープンする各コマンドに対して一意に割り当てられます。

PLOG レコードのタイプの一覧を次に示します。

説明
AB WORK ラップラウンドを記録します(WORK のみ)。
AC バックアウトトランザクション中にレコードの再配置を記録します(WORK のみ)。
ACEXT アドレスコンバータの拡張を記録します(WORK のみ)。
AT フィールドの追加を記録します(ADADBM)。
BE バッファフラッシュの終了を記録します(WORK のみ)。
BF バッファフラッシュの開始および終了を記録します(WORK のみ)。
BS バッファフラッシュの開始を記録します(WORK のみ)。
BT BT 処理の開始を記録します。
C1 C1 コマンドからのレコードを記録します。チェックポイント名を含みます(PLOG のみ)。
C5 C5 コマンドからのレコードを記録します(PLOG のみ)。
CE コマンドの最終エントリ(シーケンス番号を持つ最終エントリ)を示します。コマンドが削除操作だった場合、削除レコードのファイル番号と ISN が表示されます。
>>> DELETE FILE 10 ISN 2 <<<
CF FDT の作成を記録します(ADAFDU)。
CL ユーザーの CLOSE を記録します。
CT ファイルの作成を記録します(ADAFDU)。
DA データレコードの変更を記録します。ファイル、RABN、データレコードの ISN が表示されます。レコードはアフターイメージ(AI)、ビフォーイメージ(BI)、デルタイメージ(DI)のいずれかであり、DUMP が有効であるときに表示されます。TSN は内部トランザクションシーケンス番号です。あるトランザクションから派生するエントリはどれも、TSN が同じです(『コマンドリファレンスマニュアル』の「ET コマンド」も参照)。WB の出力は、DATASET=WORK が指定されている場合にだけ表示され、同じ TSN を持つ以前の PLOG レコードを見つけることのできる WORK ブロックを示します。clu の値がゼロでない場合、その値は排他ユーザーまたは特権ユーザーを示します。
DC フィールドの削除を記録します(ADADBM)。
DSEXT データストレージの拡張を記録します(WORK のみ)。
DT ファイルの削除を記録します(ADADBM)。
DV ディスクリプタの更新を記録します(必ず DA レコードの後にあります)。ファイルのエントリ、ISN、TSN、clu、および WB は DA レコードタイプのものと同様です。
ET ET コマンドからのエントリを記録します。ET TSN と指定すると、ET コマンドで書かれた最終ユーザーデータに TSN が設定されます。
FCBDS データストレージに対する FCB 変更を記録します(WORK のみ)。
FCBIX ノーマルインデックスに対する FCB 変更を記録します(WORK のみ)。
FE インデックスブロックの最初のエントリ変更を記録します(WORK のみ)。
IB 修正されたインデックスブロックを記録します(WORK のみ)。
INDEX 分割されたインデックスブロックを記録します(WORK のみ)。
INSRU 再利用チェーンへのインデックスブロックの挿入を記録します(WORK のみ)。
NIEXT ノーマルインデックスの拡張を記録します(WORK のみ)。
OP ユーザーの OPEN を記録します。
REMRU 再利用チェーンからのインデックスブロックの削除を記録します(WORK のみ)。
SPISN ISN 再利用またはスペース再利用での変更を記録します。
UIEXT アッパーインデックスの拡張を記録します(WORK のみ)。
YB XA プロトコル内で実行された、トランザクションのバックアウトを記録します(OpenVMS にはない)。
YD XA プロトコルでヒューリスティックに終了した、トランザクションの破棄を記録します(OpenVMS にはない)。
YF XA プロトコルで実行された、トランザクションの最終コミットを記録します(OpenVMS にはない)。
YP XA プロトコルで実行された、トランザクションの予備コミットを記録します(OpenVMS にはない)。

次に示すように、DA レコードまたは DV レコードの場合に、表示されることがあるフラグもあります。

フラグ 説明
AI この PLOG レコードのデータにはデータレコードのアフターイメージが含まれます(レコードタイプ DA)。
BACKOUT レコードは単一コマンド内のバックアウト時に書き出されたことを示します。
BI この PLOG レコードのデータにはデータレコードのビフォーイメージが含まれます(レコードタイプ DA)。
BT レコードは 1 トランザクションのバックアウト時に書き出されたことを示します。
DI この PLOG レコードのデータにはデータレコードのデルタイメージが含まれます(レコードタイプ DA)。
FDATA このコマンドの最初の DA レコードであることを示します。
FIRST_ENTRY 指定したシーケンス番号を持つ最初のレコードであることを示します。
HIMERGE 最高インデックスレベルのマージ。
HISPLIT 最高インデックスレベルの分割。
USERD トランザクションはユーザーデータを処理します。