[DBLOG Trace]画面には、Natural DBLOG バッファに保持される Adabas コマンド、DL/I コールと SYNC/ROLB コール、または SQL ステートメントに関して記録されたログデータが表示されます。
以下のトピックについて説明します。
次の例は、Adabas コマンド用の[DBLOG Trace]画面を呼び出す手順を示しています。
次の Natural プログラムを作成します。
DEFINE DATA LOCAL 1 EMP-VIEW VIEW OF EMPLOYEES 2 NAME END-DEFINE READ (3) EMP-VIEW BY NAME DISPLAY NAME END-READ END
次の Natural システムコマンドを入力します。
TEST DBLOG
「DBLOG started now
」というメッセージが表示されます。
次の Natural システムコマンドを入力します。
RUN
ソースエリアの Natural プログラムが実行されます。
次のコマンドを再度入力します。
TEST DBLOG
ロギングが非アクティブになり、下記の例のような[DBLOG Trace]画面が表示されます。
14:14:23 ***** NATURAL TEST UTILITIES ***** 2008-07-31 User SAG - DBLOG Trace - Library SAG M No Cmd DB FNR Rsp ISN ISQ CID CID(Hex) OP Pgm Line _ 1 L3 10 316 5555 &?? 00500101 A LOGTEST 0050 _ 2 L3 10 316 5557 &?? 00500101 A LOGTEST 0050 _ 3 L3 10 316 2108 &?? 00500101 A LOGTEST 0050 _ 4 RC 10 316 &?? 00500101 SI LOGTEST 0050 _ 5 RC 10 00000000 F LOGTEST 0080 Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Print Exit Posi -- - + ++ Canc |
このセクションでは、[DBLOG Trace]画面に表示されるフィールドの列、およびこの画面またはこの画面から開かれたバッファウィンドウをスクロールする場合に使用できるコマンドについて説明します(「Adabas バッファの表示」を参照)。 コマンドを実行するには、PF キーを押すか、またはコマンド行にダイレクトコマンドを入力します。
列 | PF キー | 説明 |
---|---|---|
ダイレクトコマンド | ||
M | バッファの詳細情報が示される追加ウィンドウを呼び出す行コマンドの入力オプション(「Adabas バッファの表示」を参照)。 | |
No | シーケンス番号。 コマンドは、実行された順序で表示されます。 | |
Cmd | Adabas コマンド。 | |
DB | データベース ID。 | |
FNR | ファイル番号。 | |
Rsp | Adabas レスポンスコード。 | |
ISN | レコードの内部シーケンス番号。 | |
ISQ | ISN 数。 | |
CID | コマンド ID。 | |
CID (Hex) | 16 進形式のコマンド ID。 | |
OP | Adabas コマンドオプションの 1 と 2。 | |
Pgm | プログラム名。 | |
Line | ソースコード行番号。 | |
PF2 | スクリーンショットのハードコピーを印刷します。 | |
PF3 | [DBLOG Trace]画面を終了するか、バッファウィンドウを閉じます。 現在のログレコードは Natural DBLOG バッファに保持されます。 | |
PF5 |
ログエントリを画面最上部に移動します。 |
|
PF6
または
|
リストの先頭、またはバッファウィンドウ内のデータの先頭までスクロールします。 | |
PF7
または
|
リストまたはバッファウィンドウ内のデータを 1 ページ上方にスクロールします。 | |
PF8
または
|
リストまたはバッファウィンドウ内のデータを 1 ページ下方にスクロールします。 | |
PF9
または
|
リストの末尾、またはバッファウィンドウ内のデータの末尾までスクロールします。 | |
PF10 | 複数のレコードバッファ/フォーマットバッファが含まれるバッファウィンドウでのみ使用できます。
前のレコードバッファ/フォーマットバッファを表示します。 |
|
PF11 | 複数のレコードバッファ/フォーマットバッファが含まれるバッファウィンドウでのみ使用できます。
次のレコードバッファ/フォーマットバッファを表示します。 |
|
PF12 | Natural DBLOG バッファをクリアし、ロギングを非アクティブにします。 |
デフォルトでは、Adabas コントロールブロックが記録されます。 1 つ以上の Adabas バッファを記録する場合は、「Adabas バッファの指定」の説明に従ってロギング機能を実行する前に、[DBLOG Menu]で必要なバッファをマークする必要があります。 例えば、[DBLOG Menu]でフォーマットバッファのロギングのみがマークされている場合、[Format Buffer]ウィンドウのみ表示できます。[Record Buffer]ウィンドウは表示できません。
コントロールブロックまたはバッファの情報を表示するには
必要なコマンドの横にある入力フィールドに、必要なバッファに対応する行コマンドを入力し、Enter キーを押します。
行コマンド | 必要なバッファ |
---|---|
C |
コントロールブロック |
F |
フォーマットバッファ |
R |
レコードバッファ |
S |
サーチバッファ |
V |
バリューバッファ |
I |
ISN バッファ |
. |
ピリオド(「.」)を入力すると、[DBLOG Trace]画面が終了します。 現在のログレコードは Natural DBLOG バッファに保持されます。 |
ウィンドウが開き、要求したコントロールブロックまたはバッファのログデータが表示されます。 複数の行コマンドを入力した場合は、PF3 キーを押すと、次のコマンドのコントロールブロックまたはバッファを表示できます。
レコードバッファのデータが表示されたウィンドウの例を次に示します。
16:50:05 ***** NATURAL TEST UTILITIES ***** 2008-08-01 User SAG - DBLOG Trace - Library SAG M No Cmd DB FNR Rsp ISN ISQ CID CID(Hex) OP Pgm Line _ 1 RC 10 00000000 F ATEST 0220 _ 2 S1 20000 50 1 2232 ? ?? 02000101 ADATEST 0200 R 3 L1 20000 50 1 2232 40404040 ADATEST 0200 _ +------------------Page 1 of 1 (logged range:0x-0x4F)-------------------+ 200 _ ! _____ Seq No .. 3 Record Buffer1/13 (length:0x7A) ! 340 _ ! 0000 * C1C4D2C9 D5E2D6D5 40404040 40404040 * ADKINSON * 0000 ! 350 _ ! 0010 * 40404040 0000000B 00000001 40404040 * ? ? * 0010 ! 350 _ ! 0020 * 40404040 00000000 00000000 00000000 * * 0020 ! 350 ! 0030 * 00000000 00000000 00000000 00000000 * * 0030 ! ! 0040 * 00000000 F0F0F0F0 F0F0F0F0 40404040 * 00000000 * 0040 ! +-----------------------------------------------------------------------+ Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit -- - + ++ < > Canc |
次の表に、バッファウィンドウに表示されるフィールドとその説明を示します。
複数のレコードバッファ/フォーマットバッファが含まれるレコードバッファ/フォーマットバッファウィンドウでは、次のいずれかの方法を使用して、各レコードバッファ/フォーマットバッファを表示できます。
PF10 キーを押すと、前のレコードバッファ/フォーマットバッファが表示されます。
または:
PF11 キーを押すと、次のレコードバッファ/フォーマットバッファが表示されます。
または:
[_____]入力フィールドに、表示するレコードバッファ/フォーマットバッファに対応する番号を入力します。
FIND
、READ
、または HISTOGRAM
ステートメントで MULTI-FETCH
節が使用されている場合、一連のレコードを取得する Adabas コマンドのみが実際にデータベースにアクセスします。 取得されたレコードは、そのレコードがデータベースループの実行中にフェッチされた、マルチフェッチバッファに移動されます。 次のデータベースコールは、次の一連のレコードに対してのみ行われます。
詳細については、『プログラミングガイド』の「MULTI-FETCH 節」を参照してください。
[DBLOG Trace]画面に、データベースコールと非データベースコールの両方がリストされます。データベースコールは、[OP]列の最初の位置に M
でマークされ、マルチフェッチバッファの非データベースコールは小なり記号(<
)でマークされます。 次の例を参照してください。
MFETCH
という名前の次の Natural プログラムに対して DBLOG を実行します。
DEFINE DATA LOCAL 1 EMP-VIEW VIEW OF EMPLOYEES 2 NAME END-DEFINE * READ (5) MULTI-FETCH OF 3 EMP-VIEW BY NAME = 'ADKINSON' DISPLAY *COUNTER NAME END-READ END
次のような[DBLOG Trace]画面が表示されます。
10:04:46 ***** NATURAL TEST UTILITIES ***** 2008-07-24 User SAG - DBLOG Trace - Library SAG M No Cmd DB FNR Rsp ISN ISQ CID CID(Hex) OP Pgm Line _ 1 L3 10 316 2108 -?? 00600101 MA MFETCH 0060 _ 2 L3 10 316 2109 -?? 00600101 <A MFETCH 0060 _ 3 L3 10 316 2110 -?? 00600101 <A MFETCH 0060 _ 4 L3 10 316 2111 -?? 00600101 MA MFETCH 0060 _ 5 L3 10 316 2112 -?? 00600101 <A MFETCH 0060 _ 6 RC 10 316 -?? 00600101 SI MFETCH 0060 _ 7 RC 10 00000000 F MFETCH 0090 Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Print Exit Posi -- - + ++ Canc |
シーケンス番号 1
および 4
として示された L3
コマンドは、データベースから一連のレコードを取得し([OP]列に M
で示されています)、最初のレコードをプログラムに返します。 これ以外のレコードは、マルチフェッチバッファにキャッシュされます。
シーケンス番号 2
、3
、および 5
として示された L3
コマンドは、マルチフェッチバッファからレコードを取得し([OP]列に <
で示されています)、そのレコードをプログラムに返します。
マルチフェッチを使用するデータベースコールのレコードバッファには、データベースから取得されたすべてのレコードのデータが含まれます。 これらは、処理された順序でリストされます。
Adabas では、一連のレコードをロードするとき、最初のバイトから、データベースから返されたレコードまでの範囲のレコードバッファが上書きされます。 バッファに残っているスペースは消去されず、前のデータベースコール中にロードされた古いレコードのデータが含まれています。
このため、例えば NAME(A20)
として定義されたフィールドが読み込まれ、マルチフェッチ係数として 5 が使用された場合、レコードバッファの長さは 100 (20 * 5) バイトとなります。 データベースから 3 つのレコードのみが返された場合は、レコードバッファにはこの最初の
3 レコード(バイト 1~60)のみが格納され、最後の 2 レコード(バイト 61~100)は変更されません。
次の例は、DL/I コール用の[DBLOG Trace]画面を呼び出す手順を示しています。
次の Natural プログラムを作成します。
DEFINE DATA LOCAL 01 COURSE VIEW OF DNDL01-COURSE 02 COURSEN (A3) 02 TITLE (A33) 01 OFFERING VIEW OF DNDL01-OFFERING 02 COURSEN-COURSE (A3) 02 LOCATION (A31) END-DEFINE READ (5) COURSE BY COURSEN IF TITLE = 'NATURAL' FIND (1) OFFERING WITH COURSEN-COURSE = COURSEN MOVE 'DARMSTADT' TO LOCATION UPDATE END OF TRANSACTION END-FIND END-IF END-READ END
次の Natural システムコマンドを入力します。
TEST DBLOG D
「DBLOG started now
」というメッセージが表示されます。
次の Natural システムコマンドを入力します。
RUN
ソースエリアに含まれる Natural プログラムが実行されます。
次のコマンドを再度入力します。
TEST DBLOG D
ロギングが非アクティブになり、DL/I コール用の[DBLOG Trace]画面が表示されます。
User SAG - DBLOG Trace - Library SAG No Func PCB NS SC DBD/PSB First SSA (truncated) IOA (trunc) Program Line --- ---- --- -- -- -------- ------------------------- ----------- -------- ---- 1 PCB PCNQA42 LOGDL1 0090 2 GU 1 1 DNDL01 COURSE *--(COURSEN => . LOGDL1 0090 3 GN 1 1 DNDL01 COURSE *--(COURSEN => .Z01 LOGDL1 0090 4 GN 1 1 DNDL01 COURSE *--(COURSEN => .001 LOGDL1 0090 5 GN 1 1 DNDL01 COURSE *--(COURSEN => .004NATURA LOGDL1 0090 6 GHNP 1 2 DNDL01 COURSE *- (COURSEN =004 ?010791DAR LOGDL1 0110 7 REPL 1 DNDL01 ?010791DAR LOGDL1 0130 8 SYNC LOGDL1 0140 9 PCB PCNQA42 LOGDL1 0110 10 GU 1 1 DNDL01 COURSE *--(COURSEN = 004 .004NATURA LOGDL1 0110 11 GHNP 1 2 DNDL01 COURSE *--(COURSEN = 004 ?010791DAR LOGDL1 0110 12 GN 1 1 DNDL01 COURSE *--(COURSEN => +110 LOGDL1 0090 ***** End of Log ***** NEXT LIB=SAG |
次のセクションで、[DBLOG Trace]画面で DL/I コール用に提供されているフィールドの列について説明します。
列 | 説明 |
---|---|
No | シーケンス番号。 コマンドは、実行された順序で表示されます。 |
Func | DL/I 機能。 |
PCB | PCB 番号。 |
NS | SSA の数。 |
SC | DL/I ステータスコード。 |
DBD/PSB |
DB コールの場合、DBD 名。 |
First SSA | 最初の SSA の最初の 25 バイト。 |
IOA | 最初の I/O エリアの最初の 13 バイト。 |
Program | Natural プログラム名。 |
Line | ソースコード行番号。 |
次の例は、SQL ステートメント用の[DBLOG Trace]画面を呼び出す手順を示しています。
次の Natural プログラムを作成します。
DEFINE DATA LOCAL 01 EMP VIEW OF DSN8810-EMP 02 EMPNO 02 FIRSTNME 02 MIDINIT 02 LASTNAME 02 EDLEVEL 02 SALARY 01 EMPPROJACT VIEW OF DSN8810-EMPPROJACT 02 EMPNO 02 PROJNO 02 ACTNO 02 EMPTIME END-DEFINE FIND (1) EMP WITH EMPNO > '000300' FIND (1) EMPPROJACT WITH EMPNO = EMPNO(0150) MOVE 0.75 TO EMPTIME UPDATE END-FIND ADD 1 TO EDLEVEL UPDATE END-FIND * FIND (1) EMP WITH EMPNO > '000300' FIND (1) EMPPROJACT WITH EMPNO = EMPNO(0240) DISPLAY EMPPROJACT EMP.EDLEVEL END-FIND END-FIND ROLLBACK END
次の Natural システムコマンドを入力します。
TEST DBLOG Q
「DBLOG started now
」というメッセージが表示されます。
次の Natural システムコマンドを入力します。
RUN
ソースエリアの Natural プログラムが実行されます。
次のコマンドを再度入力します。
TEST DBLOG Q
ロギングが非アクティブになり、下記の例のような SQL ステートメント用の[DBLOG Trace]画面が表示されます。
11:28:58 ***** NATURAL Test Utilities ***** 2008-07-28 User SAG - DBLOG Trace - Library SAG M No R SQL Statement (truncated) CU SN SREF M Typ SQLC/W Program Line LV _ 1 SELECT EMPNO,FIRSTNME,MIDINIT 01 01 0150 D DB2 LOGSQL 0150 01 _ 2 FETCH CURSOR NEX 01 01 0150 D DB2 LOGSQL 0150 01 _ 3 SELECT EMPNO,PROJNO,ACTNO,EMP 02 02 0160 D DB2 LOGSQL 0160 01 _ 4 FETCH CURSOR NEX 02 02 0160 D DB2 LOGSQL 0160 01 _ 5 UPDATE DSN8810.EMPPROJACT SET 02 03 0160 D DB2 LOGSQL 0180 01 _ 6 CLOSE CURSOR 02 02 0160 D DB2 LOGSQL 0160 01 _ 7 UPDATE DSN8810.EMP SET EDLEVE 01 04 0150 D DB2 LOGSQL 0210 01 _ 8 CLOSE CURSOR 01 01 0150 D DB2 LOGSQL 0150 01 _ 9 SELECT EMPNO,FIRSTNME,MIDINIT 05 05 0240 D DB2 LOGSQL 0240 01 _ 10 FETCH CURSOR NEX 05 05 0240 D DB2 LOGSQL 0240 01 _ 11 SELECT EMPNO,PROJNO,ACTNO,EMP 06 06 0250 D DB2 LOGSQL 0250 01 _ 12 FETCH CURSOR NEX 06 06 0250 D DB2 LOGSQL 0250 01 _ 13 CLOSE CURSOR 06 06 0250 D DB2 LOGSQL 0250 01 _ 14 CLOSE CURSOR 05 05 0240 D DB2 LOGSQL 0240 01 _ 15 ROLLBACK 00 00 0000 D DB2 LOGSQL 0290 01 _ _ Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Print Exit Top Posi Bot - + Canc |
次のセクションで、[DBLOG Trace]画面で SQL ステートメント用に提供されているフィールドの列およびコマンドについて説明します。 コマンドを実行するには、PF キーを押すか、またはコマンド行にダイレクトコマンドを入力します。
列 | PF キー | 説明 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ダイレクトコマンド | ||||||||||||||||
M |
|
|||||||||||||||
No | シーケンス番号。ステートメントは、実行された順序で表示されます。 | |||||||||||||||
R | DB2 に Natural ファイルサーバーが使用されている場合にのみ適用されます。
対応するステートメントの前のアスタリスクによって、再選択されたことを示します。それ以外の場合は、列は空のままです。 『Natural for DB2』ドキュメントの「ファイルサーバーの概念」も参照してください。 |
|||||||||||||||
SQL ステートメント | ログに記録された SQL ステートメントの最初の 29 文字。 | |||||||||||||||
CU | カーソル番号。 | |||||||||||||||
SN | 内部ステートメント番号。 | |||||||||||||||
SREF | ステートメント参照番号。 | |||||||||||||||
M | モード:ダイナミックは D 、スタティックは S 。
|
|||||||||||||||
Typ | データベースタイプ:DB2 または /DS。 | |||||||||||||||
SQLC/W | SQLCA の SQLCODE フィールドの SQL リターンコード、または SQLCODE が 0 の場合は SQLCA の SQLWARN0 フィールドの警告。
|
|||||||||||||||
Pgm | Natural プログラム名。 | |||||||||||||||
Line | ソースコード行番号。 | |||||||||||||||
LV | プログラムレベル。 | |||||||||||||||
PF2 | スクリーンショットのハードコピーを印刷します。 | |||||||||||||||
PF3 | [DBLOG Trace]を終了します。 現在のログレコードは Natural DBLOG バッファに保持されます。 | |||||||||||||||
PF4 | リストの先頭までスクロールします。 | |||||||||||||||
PF5 | ログエントリを画面最上部に移動します。列[M]で、列[No]にリストされた目的のコマンドとシーケンス番号の隣にカーソルを置いて PF5 キーを選択します。 ログの位置が変更され、選択したシーケンス番号が先頭になります。 | |||||||||||||||
PF6 | リストの末尾までスクロールします。 | |||||||||||||||
PF7
または
|
リストを 1 ページ上方にスクロールします。 | |||||||||||||||
PF8
または
|
リストを 1 ページ下方にスクロールします。 | |||||||||||||||
PF12 | Natural DBLOG バッファをクリアし、ロギングを非アクティブにします。 |