Symfoware(R) Server RDBユーザーズガイド 応用プログラム開発編 - FUJITSU -
目次 索引 前ページ次ページ

上へ第5章 応用プログラムの実行
上へ5.2 応用プログラムのデバッグ

5.2.1 SQL_SNAP機能の利用方法

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機能の出力形

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

[表:出力レベルの指定と出力情報の対応]

出力する情報

出力レベル

1

2

応用プログラム名

SQL文 (注)

カーソル情報

ホスト変数情報

SQLSTATE

SQL文の処理時間

メッセージ

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

図:SQL_SNAP機能の出力形式(レベル1)の例および図:SQL_SNAP機能の出力形式(レベル2)の例に、具体的な出力形式の例を示します。

なお、出力されるSQL文は、応用プログラムに記述したものと同一ではありません。翻訳・結合編集時に加工したものが出力されます。

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

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

■レベル1を指定した場合

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

[図:SQL_SNAP機能の出力形式(レベル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を指定した場合

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

[図:SQL_SNAP機能の出力形式(レベル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進数で示します。ここでは、ホスト変数“会社名”の属性と内容を示します。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2003-2004