ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 アプリケーション開発ガイド(埋込みSQL編)

7.2.3 ROUTINE_SNAP機能の利用方法

プロシジャを利用するアプリケーションの場合は、サーバ側で動作するプロシジャのデバッグに、ROUTINE_SNAP機能を利用することができます。ROUTINE_SNAP機能は、プロシジャルーチンが実行したSQL文の情報を、サーバ上のファイルに出力します。このファイルをルーチンスナップファイルといいます。

ROUTINE_SNAP機能を利用するには、クライアント用の動作環境ファイルにROUTINE_SNAPパラメタを設定します。

参照

指定形式については、“アプリケーション開発ガイド(共通編)”の“クライアント用の動作環境ファイル”を参照してください。

次に指定の例を示します。この例では、出力レベル1のデバッグ情報を、サーバ上のROUTINE1.LSTに出力します。

SolarisLinuxSolaris/Linuxの場合

ROUTINE_SNAP = (ON,/var/tmp/ROUTINE1.LST,1)

WindowsWindows(R)の場合

ROUTINE_SNAP = (ON,E:\VAR\TMP\ROUTINE1.LST,1)

ROUTINE_SNAP機能の出力形式

ROUTINE_SNAP機能で出力される情報は、出力レベルの指定によって異なります。出力レベルの指定と出力情報の対応を以下に示します。

表7.3 出力レベルの指定と出力情報の対応

出力する情報

出力レベル

1

2

プロシジャルーチン名

SQL文(注)

カーソル情報

ホスト変数情報

プロシジャルーチンの引数の値

SQLSTATE

メッセージ

プロシジャルーチンの処理時間

注)SQL文名のみ出力します。

複数のアプリケーションが動作する場合は、クライアント用の動作環境ファイルの実行パラメタ(DIV_TRACE_FILE)の指定により、出力ファイル名の後にプロセスIDなどの情報を付加して、個別のトレース情報を出力します。

アプリケーションがマルチスレッド環境で動作する場合は、DIV_TRACE_FILEの指定に関係なく、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。

レベル1を指定した場合

出力レベルに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を指定した場合

出力レベルに2を指定した場合は、以下の情報が出力されます。

SolarisLinuxSolaris/Linuxの場合

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進数で表示します。