Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU - |
目次 索引 |
第6章 アプリケーションの実行 | > 6.2 アプリケーションのデバッグ |
プロシジャを利用するアプリケーションの場合は、サーバ側で動作するプロシジャのデバッグに、ROUTINE_SNAP機能を利用することができます。ROUTINE_SNAP機能は、プロシジャルーチンが実行したSQL文の情報を、サーバ上のファイルに出力します。このファイルをルーチンスナップファイルといいます。
ROUTINE_SNAP機能を利用するには、クライアント用の動作環境ファイルにROUTINE_SNAPパラメタを設定します。指定形式については、“クライアント用の動作環境ファイルの作成”を参照してください。
次に指定の例を示します。この例では、出力レベル1のデバッグ情報を、サーバ上のROUTINE1.LSTに出力します。
ROUTINE_SNAP = (ON,/var/tmp/ROUTINE1.LST,1) |
ROUTINE_SNAP = (ON,E:\VAR\TMP\ROUTINE1.LST,1) |
ROUTINE_SNAP機能で出力される情報は、出力レベルの指定によって異なります。出力レベルの指定と出力情報の対応を以下に示します。
出力する情報 |
出力レベル |
|
---|---|---|
1 |
2 |
|
プロシジャルーチン名 |
○ |
○ |
SQL文(注) |
○ |
○ |
カーソル情報 |
○ |
○ |
ホスト変数情報 |
− |
○ |
プロシジャルーチンの引数の値 |
○ |
○ |
SQLSTATE |
○ |
○ |
メッセージ |
○ |
○ |
プロシジャルーチンの処理時間 |
○ |
○ |
注)SQL文名のみ出力します。
複数のアプリケーションが動作する場合は、クライアント用の動作環境ファイルの実行パラメタ(DIV_TRACE_FILE)の指定により、出力ファイル名の後にプロセスIDなどの情報を付加して、個別のトレース情報を出力します。
アプリケーションがマルチスレッド環境で動作する場合は、DIV_TRACE_FILEの指定に関係なく、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。
出力レベルに1を指定した場合は、以下の情報が出力されます。
ROUTINE-SNAP START 14:01:13 (1) 04/18 (2) ROUTINE-NAME : sample (3) STATEMENT : BEGIN (4) ROUTINE-SNAP END 14:01:13 (5) (00:00:00.000000) (6) ROUTINE-SNAP START 14:01:13 04/18 ROUTINE-NAME : sample STATEMENT : IF (7) ROUTINE-SNAP END 14:01:13 (00:00:00.000000) ROUTINE-SNAP START 14:01:13 04/18 ROUTINE-NAME : sample STATEMENT : OPEN (8) CURSOR NAME : 会社名取出 (9) SQLSTATE : 00000 (10) SQLMSG : JYP2001I 正常に終了しました. (11) ROUTINE-SNAP END 14:01:14 (00:00:00.867000) ROUTINE-SNAP START 14:01:14 04/18 ROUTINE-NAME : sample STATEMENT : FETCH (12) CURSOR NAME : 会社名取出 (13) SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. ROUTINE-SNAP END 14:01:14 (00:00:00.055000) |
(1) SQL文の実行の開始時刻(時:分:秒)を示します。
(2) SQL文の実行の日付(月/日)を示します。
(3) 実行したルーチンの名前を示します。
(4) 実行したSQL文の種類を示します。ここでは、SQL制御文の複合文(BEGIN)を実行したことを示します。
(5) SQL文の実行を終了した時刻(時:分:秒)を示します。
(6) SQL文の開始から終了までの経過時間(時:分:秒)を示します。
(7) 実行したSQL文の種類を示します。 ここでは、SQL制御文のIF文を実行したことを示します。
(8) カーソルのOPEN文を実行したことを示します。
(9) オープンしたカーソル名を示します。
(10) SQL文の実行後にSQLSTATEに通知された状態コードを示します。
(11) SQL文の実行後にSQLMSGに通知されたメッセージ内容を示します。
(12) FETCH文を実行したことを示します。
(13) FETCH文を実行したカーソル名を示します。
出力レベルに2を指定した場合は、以下の情報が出力されます。
ROUTINE-SNAP START 14:01:13 04/18 ROUTINE-NAME : sample STATEMENT : BEGIN ROUTINE-SNAP END 14:01:13 (00:00:00.000000) ROUTINE-SNAP START 14:01:13 (1) 04/18 (2) ROUTINE-NAME : sample (3) STATEMENT : IF (4) PARAMETER VALIABLE : (5) P1 NCHAR(10) 0000(00000) a5c6a5ec a5d3a1a1 a1a1a1a1 a1a1a1a1 * テレビ * (6) 0010(00016) a1a1a1a1 * * SQL VALIABLE : (7) V1 NCHAR(10) 0000(00000) a5c6a5ec a5d3a1a1 a1a1a1a1 a1a1a1a1 * テレビ * (8) 0010(00016) a1a1a1a1 * * ROUTINE-SNAP END 14:01:13 (9) (00:00:00.000000) (10) ROUTINE-SNAP START 14:01:13 04/18 ROUTINE-NAME : sample STATEMENT : OPEN CURSOR NAME : 会社名取出 PARAMETER VALIABLE (11) P1 NCHAR(10) 0000(00000) a5c6a5ec a5d3a1a1 a1a1a1a1 a1a1a1a1 * テレビ * (12) 0010(00016) a1a1a1a1 * * SQLSTATE : 00000 (13) SQLMSG : JYP2001I 正常に終了しました. (14) ROUTINE-SNAP END 14:01:14 (00:00:00.867000) ROUTINE-SNAP START 14:01:14 04/18 ROUTINE-NAME : sample STATEMENT : FETCH CURSOR NAME : 会社名取出 SQL VALIABLE : (15) V2 NCHAR(10) 0000(00000) a5a2a5a4 a5c7a5a2 bea6bbf6 a1a1a1a1 * アイデア商事 * (16) 0010(00016) a1a1a1a1 * * SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. ROUTINE-SNAP END 14:01:14 (00:00:00.055000) |
(1) SQL文の実行の開始時刻(時:分:秒)を示します。
(2) SQL文の実行の日付(月/日)を示します。
(3) 実行したルーチンの名前を示します。
(4) 実行したSQL文の種類を示します。 ここでは、SQL制御文のIF文を実行したことを示します。
(5) IF文で使用されたパラメタ変数のデータを表示します。ここでは、P1がパラメタ名で、NCHAR(10)がデータ型を示します。
(6) IF文に指定したパラメタ変数のデータの内容を16進数で表示します。
(7) IF文で使用されたSQL変数のデータを表示します。ここでは、V1がSQL変数名で、NCHAR(10)がデータ型を示します。
(8) IF文に指定したSQL変数のデータの内容を16進数で表示します。
(9) SQL文の実行を終了した時刻(時:分:秒)を示します。
(10) SQL文の開始から終了までの経過時間(時:分:秒)を示します。
(11) OPEN文で使用されたパラメタ変数のデータを表示します。ここでは、P1がパラメタ名で、NCHAR(10)がデータ型を示します。
(12) OPEN文で使用したパラメタ変数のデータの内容を16進数で表示します。
(13) SQL文の実行後にSQLSTATEに通知された状態コードを示します。
(14) SQL文の実行後にSQLMSGに通知されたメッセージ内容を示します。
(15) FETCH文で使用されたSQL変数のデータを表示します。ここでは、V2がSQL変数名で、NCHAR(10)がデータ型を示します。
(16) FETCH文に指定したSQL変数のデータの内容を16進数で表示します。
目次 索引 |