Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU - |
目次 索引 |
第6章 アプリケーションの実行 | > 6.2 アプリケーションのデバッグ |
SQL_SNAP機能は、アプリケーションが実行したSQL文の情報を、ファイルに出力します。このファイルをスナップファイルといいます。この情報により、アプリケーションのデバッグ時に、SQL文が正しく動いているかどうかを確認することができます。
SQL_SNAP機能を利用するには、クライアント用の動作環境ファイルにSQL_SNAPパラメタを設定します。指定形式については、“クライアント用の動作環境ファイルの作成”を参照してください。
次にSQL_SNAPパラメタの指定の例を示します。
例1
出力レベル1のデバッグ情報を、SQLSNAP.LSTに出力します。
SQL_SNAP = (ON,SQLSNAP.LST,1)
例2
繰り返し幅を指定して、デバッグ情報をSQLSNAP.LSTに出力します。
SQL_SNAP = ( ON,SQLSNAP.LST,1,100 ) ↑ 繰り返し幅 (1)
(1) 繰り返し幅を指定すると、実行したSQL文の情報を、指定した繰り返し幅でファイルに出力できます。これにより、必要な分だけの情報が取得できます。繰り返し幅の量を超えた時点で出力ファイルを再作成します。
たとえば、100を指定した場合は、100個のSQL文情報をファイルに出力した時点で、次のSQL文情報をファイルの先頭に出力します。
SQL_SNAP機能で出力される情報は、出力レベルの指定によって異なります。出力レベルの指定と出力情報の対応を以下に示します。
出力する情報 |
出力レベル |
|||
---|---|---|---|---|
1 |
2 |
PRC1 |
PRC2 |
|
アプリケーション名 |
○ |
○ |
○ |
○ |
SQL文 (注) |
○ |
○ |
○ |
○ |
カーソル情報 |
○ |
○ |
○ |
○ |
ホスト変数情報 |
− |
○ |
− |
○ |
SQLSTATE |
○ |
○ |
○ |
○ |
SQL文の処理時間 |
○ |
○ |
○ |
○ |
メッセージ |
○ |
○ |
○ |
○ |
注)SQL文名のみ出力します。
備考)1および2はシステム単位でスナップファイルを出力する場合に指定します。PRC1およびPRC2はプロセス単位でスナップファイルを出力する場合に指定します。
なお、出力されるSQL文は、アプリケーションに記述したものと同一ではありません。コンパイル・リンク時に加工したものが出力されます。
また、複数のアプリケーションが動作する場合は、クライアント用の動作環境ファイルの実行パラメタ(DIV_TRACE_FILE)の指定により、出力ファイル名の後にプロセスIDなどの情報を付加して、個別のトレース情報を出力します。
アプリケーションがマルチスレッド環境で動作する場合は、DIV_TRACE_FILEの指定に関係なく、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。
出力レベルに1を指定した場合は、以下の情報が出力されます。
SQL-SNAP START 14:01:13 (1) 04/18 (2) APPLICATION : sample1 (3) STATEMENT : CONNECT (4) SQLSTATE : 00000 (5) SQLMSG : JYP2001I 正常に終了しました. (6) SQL-SNAP END 14:01:16 (7) (00:00:03.204000) (8) SQL-SNAP START 14:01:16 04/18 APPLICATION : sample1 STATEMENT : OPEN (9) CURSOR NAME : 会社名取出 (10) CURSOR : SELECT DISTINCT 会社名 FROM BUSINESS.取引先会社,BUSINESS.発注,BUS INESS.在庫 WHERE 取引先会社.取引先番号=発注.取引先番号 AND 取引製 品番号=製品番号 AND 製品名=? (11) SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. SQL-SNAP END 14:01:17 (00:00:00.867000) SQL-SNAP START 14:01:17 04/18 APPLICATION : sample1 STATEMENT : FETCH (12) CURSOR NAME : 会社名取出 (13) SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. SQL-SNAP END 14:01:17 (00:00:00.055000) : |
(1) SQL文の実行を開始した時刻(時:分:秒)を示します。
(2) SQL文の実行を開始した日付(月/日)を示します。
(3) 実行したアプリケーションの名前を示します。
(4) 実行したSQL文の種類を示します。ここでは、CONNECT文を実行したことを示します。
(5) SQL文の実行後にSQLSTATEに通知された状態コードを示します。ここでは、CONNECT文の実行結果として、状態コード“00000”がSQLSTATEに通知されたことを示します。
(6) SQL文の実行後にSQLMSGに通知されたメッセージ内容を示します。ここでは、CONNECT文の実行結果として、メッセージ“JYP2001I 正常に終了しました.”がSQLMSGに通知されたことを示します。
(4)〜(6)は、1つのSQL文の実行情報です。1つのSQL文の実行情報は、SQL-SNAP START と SQL-SNAP ENDの間に表示されます。
(7) SQL文の実行を終了した時刻(時:分:秒)を示します。
(8) SQL文の開始から終了までの経過時間(時:分:秒)を示します。
(9) カーソルのOPEN文を実行したことを示します。
(10) オープンしたカーソル名を示します。ここでは“会社名取出”を示します。
(11) カーソルの探索条件を示します。
(12) FETCH文を実行したことを示します。
(13) FETCH文を実行したカーソル名を示します。ここでは“会社名取出”を示します。
出力レベルに2を指定した場合は、以下の情報が出力されます。
SQL-SNAP START 14:01:13 (1) 04/18 (2) APPLICATION : sample1 (3) STATEMENT : CONNECT (4) CONNECTION INFORMATION (5) 001 : <SQL-SERVER> : SV1 002 : <USER-NAME> : USER1/PASS1 SQLSTATE : 00000 (6) SQLMSG : JYP2001I 正常に終了しました. (7) SQL-SNAP END 14:01:16 (8) (00:00:03.204000) (9) SQL-SNAP START 14:01:16 04/18 APPLICATION : sample1 STATEMENT : OPEN (10) CURSOR NAME : 会社名取出 (11) CURSOR : SELECT DISTINCT 会社名 FROM BUSINESS.取引先会社,BUSINESS.発注,BUS INESS.在庫 WHERE 取引先会社.取引先番号=発注.取引先番号 AND 取引製 品番号=製品番号 AND 製品名=? (12) INPUT VARIABLE (13) 001 : ATTRIBUTE NCHAR(10) (14) 0000(00000) a5c6a5ec a5d3a1a1 a1a1a1a1 a1a1a1a1 * テレビ * (14) 0010(00016) a1a1a1a1 * * (14) SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. SQL-SNAP END 14:01:17 (00:00:00.867000) SQL-SNAP START 14:01:17 04/18 APPLICATION : sample1 STATEMENT : FETCH (15) CURSOR NAME : 会社名取出 (16) OUTPUT VARIABLE (17) 001 : ATTRIBUTE NCHAR(10) (18) 0000(00000) a5a2a5a4 a5c7a5a2 bea6bbf6 a1a1a1a1 * アイデア商事 * (18) 0010(00016) a1a1a1a1 * * (18) SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. SQL-SNAP END 14:01:17 (00:00:00.055000) : |
(1) SQL文の実行を開始した時刻(時:分:秒)を示します。
(2) SQL文の実行を開始した日付(月/日)を示します。
(3) 実行したアプリケーションの名前を示します。
(4) 実行したSQL文の種類を示します。ここでは、CONNECT文を実行したことを示します。
(5) 実行したCONNECT文のコネクション情報を示します。ここでは、コネクション情報として、SQLサーバ名“SV1”およびユーザ指定“USER1/PASS1”を示します。
(6) SQL文の実行後にSQLSTATEに通知された状態コードを示します。ここでは、CONNECT文の実行結果として、状態コード“00000”がSQLSTATEに通知されたことを示します。
(7) SQL文の実行後にSQLMSGに通知されたメッセージ内容を示します。ここでは、CONNECT文の実行結果として、メッセージ“JYP2001I 正常に終了しました.”がSQLMSGに通知されたことを示します。
(4)〜(7)は、1つのSQL文の実行情報です。1つのSQL文の実行情報は、SQL-SNAP START と SQL-SNAP ENDの間に表示されます。
(8) SQL文の実行を終了した時刻(時:分:秒)を示します。
(9) SQL文の開始から終了までの経過時間(時:分:秒)を示します。
(10) カーソルのOPEN文を実行したことを示します。
(11) オープンしたカーソル名を示します。ここでは“会社名取出”を示します。
(12) カーソルの探索条件を示します。
(13) カーソルに対する入力のホスト変数を示します。
(14) カーソルに対する入力のホスト変数の属性とデータの内容を16進数で示します。ここでは、ホスト変数“製品名”の属性とデータを示します。
(15) FETCH文を実行したことを示します。
(16) FETCH文を実行したカーソル名を示します。ここでは“会社名取出”を示します。
(17) FETCH文により位置づけた行に対する出力のホスト変数を示します。
(18) FETCH文に指定した出力のホスト変数の属性とデータの内容を16進数で示します。ここでは、ホスト変数“会社名”の属性と内容を示します。
目次 索引 |