問題判別の手引き

その他のトレースの使用

問題を診断するために使用できるトレースは他にもあります。 この節では、次のトレースを説明します。

管理ツール・トレース

DB2 カスタマー・サポートから管理ツール・トレースを行うよう指示されることがあります。 このトレースは、DB2 の図形管理ツール (コントロール・センター、アラート・センター、 およびコマンド・センターなど) を対象に行われます。 また、このトレースは、これらのツールがデータベースへのアクセスやデータベースの使用の際に問題を検出した場合、 追加情報を提供します。 ユーザー・インターフェース自体に問題があると思われる場合、ICLUI トレースを使用してください。

このトレースは、再作成できる問題についてのみ使用するようお勧めします。 このトレースは、要求、接続、インスタンスへの付属物、CLI/ODBC/JDBC 呼び出し、DAS 要求、API 呼び出し、 および問題発生時に行われているその他の活動に関する詳細な情報を提供します。

トレース・ファイルのフォーマットは、ログ・ファイルのフォーマットと似ていますが、 トレース・ファイルのほうがログ・ファイルより多くの情報を記録している点が違います。 詳細については、管理ツール・ログの使用を参照してください。

どれほどの量の情報が書き込まれているかによって、 トレース・ファイルはオペレーティング・システムが指定した最大ファイル・サイズまで拡張できます。 次に管理ツール・トレースを行う時には、トレース・ファイルは上書きされます。

管理ツール・トレースの呼び出し

管理ツール・トレース機能を呼び出すには、次のようにします。

  1. ツールがクローズされていることを確認します。
  2. 次のコマンドを使用して、トレースをオンにします。

    set DBTTRACE=Y
    
  3. 次のコマンドを使用して、トレース・ファイルを保管する場所を指定することができます。

    set DBTTRACE_FILE=location
    
  4. コマンドでツールを呼び出します。 たとえば、db2cc.exe コマンドを使用して、 コントロール・センターのトレースを活動化させます。
  5. 問題の原因となったプロシージャーを実行します。
  6. ツールをクローズします。
  7. 診断情報を入手するためにトレース・ファイルをブラウズします。 ファイルは、消去されるか、他のトレースで上書きされるまで、システムに保持されます。

DB2 コネクト トレース (ddcstrc) の使用

DB2 コネクト トレース (ddcstrc) は、DB2 コネクト製品の問題を診断するのに使用します。 詳細については、DB2 コネクト 使用者の手引き を参照してください。

DRDA トレース (db2drdat) の使用

DRDA トレース (db2drdat コマンド) を使用して、DRDA アプリケーション・リクエスター (AR) および DRDA アプリケーション・サーバー (AS) の間で交換された DRDA データ・ストリームを取り込むことができます。 このツールは大抵、問題判別のために使用されますが、 クライアント / サーバー環境でパフォーマンス調整を行う時にも使用できます。 その場合、アプリケーションを実行するのにいくつの送信および受信が要求されたかを判別します。 このツールを使用するには、SYSADM、SYSCTRL、または SYSMAINT のいずれかの権限が必要です。

db2drdat コマンドの構文は、 以下の図に示してあります。 その後に、パラメーターの説明があります。

                         .---------.
               .-on--.   V         |
>>-db2drdat--+-+-----+-----+--r-+--+---+-----------+-+---------><
             |             +--s-+      '--l=length-' |
             |             '--c-'                    |
             '-off--+--------------+---+--------+----'
                    '--t=tracefile-'   '--p=pid-'
 

パラメーター

on
AS トレース・イベントをオンにします (なにも指定されていない場合)。

off
AS トレース・イベントをオフにします。

-r
DRDA AR から受信した DRDA 要求をトレースします。 記録された情報には、次のものが含まれます。

-s
DRDA AR に送信された DRDA 応答をトレースします。 記録された情報には、次のものが含まれます。

-c
DRDA リクエスターから受信した SQLCA をトレースします。 これは、様式化された読みやすい非ヌル SQLCA です。

記録された CPI-C エラー情報には、次のものが含まれます。

-l
トレース情報を保管するために使用されたバッファーのサイズを指定します。

-p
指定されたプロセス ID (pid) のあるプロセスに関するイベントのみをトレースします。 -p が指定されていない場合、 サーバーの着信 DRDA 接続を持つエージェントはすべてトレースされます。

-t
トレースの宛先ファイルを指定します。 完全パスなしでファイル名が指定された場合、パスは現行パスから判別されます。

注:tracefile が指定されていない場合、 メッセージは現行ディレクトリーの db2drdat.dmp ファイルに入れられます。

注:

SNA トレースの使用

DB2 はアラートを生成して、データベース管理者またはネットワーク管理者に、 データベースまたはデータベース・サーバーの重大エラーを通知します。 次の 2 種類のアラートが使用されます。

SNA アラートが生成されると、 そのアラートには起きた問題についての複数の異なった種類の情報が含まれます。 これらの情報を活用すれば、SNA および APPC 通信での問題のどんな種類の原因でも解決できます。

SNA トレースの使用については、"SNA trace" をキーワードにして、http://www.ibm.com/software/data/db2/library/ で DB2 Product and Service Technical Library を検索してください。 検索の結果として、製品の資料が検出されます。 ご使用の環境のプラットフォームを選択してください。 診断、問題判別、または問題判別の情報を調べ、 索引で "tracing" または "SNA trace" という項目を探します。

DB2 CLI/ODBC/JDBC トレース機能の使用

部分目次

  • db2cli.ini ファイルを使用した CLI/ODBC トレースの使用可能化
  • db2cli.ini ファイルを使用した JDBC トレースの使用可能化
  • 結果ファイルを見つける
  • トレース情報の読み取り
  • マルチスレッドまたはマルチ・プロセス・アプリケーションのトレース
  • ODBC ドライバー・マネージャーのトレース
  • CLI/ODBC/JDBC 構成キーワード
  • CLI、ODBC、または SQLJ を使用するアプリケーションと DB2 CLI ドライバーを使用して、 すべての機能呼び出しを非暗号化テキスト・ファイルにトレースすることができます。 このようにすると、問題判別やデータベースおよびアプリケーションの調整に役立ちますし、 また、単に第三者のアプリケーションの実行内容をより良く理解する上でも助けになります。

    実行時にこのトレースを使用可能にするには、 クライアント構成アシスタント (使用できる場合) からアクセスできる CLI/ODBC 設定ノートブックを使用するか、 または、db2cli.ini ファイルを直接編集します。 さらに、CLI/ODBC/JDBC アプリケーションで、トレースを使用可能にすることもできます。 この場合は、SQL_ATTR_TRACE および SQL_ATTR_TRACEFILE 環境または接続の属性を設定します。 これら 2 つは Microsoft ODBC ドライバー・マネージャーのトレース機能で使用される同じ属性です。

    db2cli.ini ファイルを使用した CLI/ODBC トレースの使用可能化

    db2cli.ini ファイルはデフォルトで保管されており、 保管位置はそれぞれ、Intel プラットフォームでは \sqllib\ パス、UNIX プラットフォームでは /sqllib/cfg/ パスです。 トレース機能では、次の CLI/ODBC/JDBC 構成キーワードを使用します。

    さらに、トレースを使用可能にするには次の行を追加する必要があります。 キーワードには大文字小文字の区別はありません。

    1. [COMMON]
    2. Trace=1
    3. TraceFileName=(完全修飾ファイル名)

      または

      TracePathname=(完全修飾パス名)
      注:これら 2 つのうちの少なくとも 1 つを指定する必要があります。 ただし、両方を指定することはできません。

    4. TraceFlush=(0 または 1) - オプション
    5. TraceComm=(0 または 1) - オプション
    6. TraceTimeStamp=(0、1、2、または 3) - オプション
    7. TracePidTid=(0 または 1) - オプション

    たとえば、次のようになります。

       [COMMON]
       trace=1
       tracefilename=d:\temp\clitrace.txt
    

    TRACE を 0 に設定すると、トレースは行われません。 トレース・ファイルの情報は構成ファイルに残され、 次に必要になったときに使用することができます。 詳細については、 TRACEを参照してください。

    アプリケーションが存在しない場合や変則的に存在する場合は、 トレース・ファイルが完全でないことが考えられます。 TRACEFLUSH を 1 に設定すると、毎回の機能呼び出しで、 ディスクへのフラッシュが行われます (これにより、トレースのオーバーヘッドは急激に増加します)。 詳細については、 TRACEFLUSHを参照してください。

    トレース・ファイルに含まれている各ネットワークの要求について知りたい場合は、TRACECOMM を 1 に設定します。 詳細については、 TRACECOMMを参照してください。

    CLI トレースでタイミング情報を各行に追加したい場合には、TRACETIMESTAMP を 1、2、または 3 に設定します。 TRACETIMESTAMP を 1 に設定すると、タイム・スタンプに続いて秒とミリ秒の単位の絶対時刻が提供されます。 TRACETIMESTAMP を 2 に設定すると、秒とミリ秒の単位の絶対時刻が提供されます。 TRACETIMESTAMP を 3 に設定すると、タイム・スタンプが提供されます。

    CLI トレースでプロセスおよびスレッド ID を各行に追加したい場合には、TRACEPIDTID を 1 に設定します。

    db2cli.ini ファイルを使用した JDBC トレースの使用可能化

    db2cli.ini ファイルはデフォルトで保管されており、 保管位置はそれぞれ、Intel プラットフォームでは \sqllib\ パス、UNIX プラットフォームでは /sqllib/cfg/ パスです。 以下の CLI/ODBC/JDBC 構成キーワードを使用すると、 通常の CLI/ODBC トレースよりもさらに多くの情報を提供する JDBC トレースが使用可能になります。 トレース機能では、次の CLI/ODBC/JDBC 構成キーワードを使用します。

    さらに、トレースを使用可能にするには次の行を追加する必要があります。 キーワードには大文字小文字の区別はありません。

    1. [COMMON]
    2. JDBCTrace=1
    3. JDBCPathname=(完全修飾パス名)
    4. JDBCFlush=(0 または 1) - オプション

    たとえば、次のようになります。

       [COMMON]
       jdbctrace=1
       jdbcpathname=d:\temp
    

    JDBCTRACE を 0 に設定すると、トレースは行われません。 トレース・ファイルの情報は構成ファイルに残され、 次に必要になったときに使用することができます。 詳細については、JDBCTRACEを参照してください。

    アプリケーションが存在しない場合や変則的に存在する場合は、 トレース・ファイルが完全でないことが考えられます。 JDBCTRACEFLUSH を 1 に設定すると、毎回の機能呼び出しで、 ディスクへのフラッシュが行われます (これにより、トレースのオーバーヘッドは急激に増加します)。 詳細については、 JDBCTRACEFLUSHを参照してください。

    結果ファイルを見つける

    TRACEFILENAME キーワードと一緒に完全修飾ファイル名を使用している場合は、 何の問題もなくファイルを見つけることができます。 相対パス名を使用している場合は、 オペレーティング・システムがアプリケーションの現行パスとして何を認識するかによって決まります。

    TRACEPATHNAME または JDBCTRACEPATHNAME キーワードと一緒に、ファイル名の代わりにパス名を使用した場合は、 ディレクトリーを調べて、 アプリケーションのプロセス ID と拡張子 (固有のスレッドごとの順序番号) から成る名前 (たとえば、65397.065397.165397.2) で作成したファイルのセットを探す必要があります。 ファイルの日付とタイム・スタンプを、 関係のあるファイルを配置する際の参考にすることができます。

    相対パス名を使用している場合は、 オペレーティング・システムがアプリケーションの現行パスとして何を認識するかによって決まります。

    出力ファイルがない場合は次のようにします。

    トレース情報の読み取り

    トレースを行う目的は、呼び出された機能ごとに呼び出しの順序、 入出力の引き数、および戻りコードを表示することです。 トレースは、CLI/ODBC/JDBC 機能の呼び出しに精通したユーザーを対象としています。 なお、ここで重要な 2 つの項目は、 実行される SQL ステートメントのテキストと、 アプリケーションが無視するすべてのエラー・メッセージです。

    これらの項目を見つけるには、次のような方法があります。

    トレース・ファイルの詳細な形式

    これから示すトレース・ファイルの例を参照してください。 なお、行番号はここで説明するために追加されたもので、 本来のトレースでは表示されません。

    トレース・ファイルの例

    この例では、説明のために行番号を加えていますが、 実際のトレースでは行番号は表示されません。

      1  Build Date: 97/05/13-Product: QDB2/6000 (4) - Driver Version: 05.00.0000
      2  SQLAllocHandle( fHandleType=SQL_HANDLE_ENV, hInput=0:0,
               phOutput=&2ff7f388 )
      3      ---> Time elapsed - +1.399700E-002 seconds
      4  SQLAllocHandle( phOutput=0:1 )
      5      <--- SQL_SUCCESS   Time elapsed - +6.590000E-003 seconds
      6  SQLAllocHandle( fHandleType=SQL_HANDLE_DBC, hInput=0:1,
               phOutput=&2ff7f378 )
      7      ---> Time elapsed - +1.120000E-002 seconds
      8  SQLAllocHandle( phOutput=0:1 )
      9      <--- SQL_SUCCESS   Time elapsed - +8.979000E-003 seconds
     10  SQLSetConnectOption( hDbc=0:1, fOption=SQL_ATTR_AUTOCOMMIT, vParam=0 )
     11      ---> Time elapsed - +6.638000E-003 seconds
     12  SQLSetConnectOption( )
     13      <--- SQL_SUCCESS   Time elapsed - +1.209000E-003 seconds
     14  SQLDriverConnect( hDbc=0:1, hwnd=0:0, szConnStrIn="DSN=loopback;
               uid=clitest1;pwd=*******", cbConnStrIn=-3, szConnStrOut=&2ff7e7b4,
               cbConnStrOutMax=250, pcbConnStrOut=&2ff7e7ae,
               fDriverCompletion=SQL_DRIVER_NOPROMPT )
     15      ---> Time elapsed - +1.382000E-003 seconds
     16  SQLDriverConnect( szConnStrOut="DSN=LOOPBACK;UID=clitest1;PWD=*******;",
               pcbConnStrOut=38 )
     17      <--- SQL_SUCCESS   Time elapsed - +7.675910E-001 seconds
     18  ( DSN="LOOPBACK" )
     19  ( UID="clitest1" )
     20  ( PWD="*******" )
     21  SQLAllocHandle( fHandleType=SQL_HANDLE_STMT, hInput=0:1,
               phOutput=&2ff7f378 )
     22      ---> Time elapsed - +1.459900E-002 seconds
     23  SQLAllocHandle( phOutput=1:1 )
     24      <--- SQL_SUCCESS   Time elapsed - +7.008300E-002 seconds
     25  SQLExecDirect( hStmt=1:1, pszSqlStr="create table test(id integer,
               name char(20), created date)", cbSqlStr=-3 )
     26      ---> Time elapsed - +1.576899E-002 seconds
     27  SQLExecDirect( )
     28      <--- SQL_SUCCESS   Time elapsed - +1.017835E+000 seconds
     29  SQLPrepare( hStmt=1:1, pszSqlStr="insert into test
               values (?, ?, current date)", cbSqlStr=-3 )
     30      ---> Time elapsed - +5.008000E-003 seconds
     31  SQLPrepare( )
     32      <--- SQL_SUCCESS   Time elapsed - +7.896000E-003 seconds
     33  SQLBindParameter( hStmt=1:1, iPar=1, fParamType=SQL_PARAM_INPUT,
               fCType=SQL_C_LONG, fSQLType=SQL_INTEGER, cbColDef=4, ibScale=0,
               rgbValue=&20714d88, cbValueMax=4, pcbValue=&20714d54 )
     34      ---> Time elapsed - +2.870000E-003 seconds
     35  SQLBindParameter( )
     36      <--- SQL_SUCCESS   Time elapsed - +3.803000E-003 seconds
     37  SQLBindParameter( hStmt=1:1, iPar=2, fParamType=SQL_PARAM_INPUT,
               fCType=SQL_C_CHAR, fSQLType=SQL_CHAR, cbColDef=20, ibScale=0,
               rgbValue=&20714dd8, cbValueMax=21, pcbValue=&20714da4 )
     38      ---> Time elapsed - +2.649000E-003 seconds
     39  SQLBindParameter( )
     40      <--- SQL_SUCCESS   Time elapsed - +3.882000E-003 seconds
     41  SQLExecute( hStmt=1:1 )
     42      ---> Time elapsed - +3.681000E-003 seconds
     43  ( iPar=1, fCType=SQL_C_LONG, rgbValue=10, pcbValue=4, piIndicatorPtr=4 )
     44  ( iPar=2, fCType=SQL_C_CHAR, rgbValue="-3", pcbValue=2, piIndicatorPtr=2 )
     45  SQLExecute( )
     46      <--- SQL_SUCCESS   Time elapsed - +4.273490E-001 seconds
     47  SQLExecute( hStmt=1:1 )
     48      ---> Time elapsed - +5.483000E-003 seconds
     49  ( iPar=1, fCType=SQL_C_LONG, rgbValue=10, pcbValue=4, piIndicatorPtr=4 )
     50  ( iPar=2, fCType=SQL_C_CHAR, rgbValue="-3", pcbValue=2, piIndicatorPtr=2 )
     51  SQLExecute( )
     52      <--- SQL_SUCCESS   Time elapsed - +1.299300E-002 seconds
     53  SQLExecute( hStmt=1:1 )
     54      ---> Time elapsed - +3.702000E-003 seconds
     55  ( iPar=1, fCType=SQL_C_LONG, rgbValue=10, pcbValue=4, piIndicatorPtr=4 )
     56  ( iPar=2, fCType=SQL_C_CHAR, rgbValue="-3", pcbValue=2, piIndicatorPtr=2 )
     57  SQLExecute( )
     58      <--- SQL_SUCCESS   Time elapsed - +1.265700E-002 seconds
     59  SQLExecDirect( hStmt=1:1, pszSqlStr="select * from test", cbSqlStr=-3 )
     60      ---> Time elapsed - +2.983000E-003 seconds
     61  SQLExecDirect( )
     62      <--- SQL_SUCCESS   Time elapsed - +2.469180E-001 seconds
     63  SQLBindCol( hStmt=1:1, iCol=1, fCType=SQL_C_LONG, rgbValue=&20714e38,
               cbValueMax=4, pcbValue=&20714e04 )
     64      ---> Time elapsed - +5.069000E-003 seconds
     65  SQLBindCol( )
     66      <--- SQL_SUCCESS   Time elapsed - +2.660000E-003 seconds
     67  SQLBindCol( hStmt=1:1, iCol=2, fCType=SQL_C_CHAR, rgbValue=&20714e88,
               cbValueMax=21, pcbValue=&20714e54 )
     68      ---> Time elapsed - +2.492000E-003 seconds
     69  SQLBindCol( )
     70      <--- SQL_SUCCESS   Time elapsed - +2.795000E-003 seconds
     71  SQLBindCol( hStmt=1:1, iCol=3, fCType=SQL_C_CHAR, rgbValue=&20714ee8,
               cbValueMax=21, pcbValue=&20714eb4 )
     72      ---> Time elapsed - +2.490000E-003 seconds
     73  SQLBindCol( )
     74      <--- SQL_SUCCESS   Time elapsed - +2.749000E-003 seconds
     75  SQLFetch( hStmt=1:1 )
     76      ---> Time elapsed - +2.660000E-003 seconds
     77  SQLFetch( )
     78      <--- SQL_SUCCESS   Time elapsed - +9.200000E-003 seconds
     79  ( iCol=1, fCType=SQL_C_LONG, rgbValue=10, pcbValue=4 )
     80  ( iCol=2, fCType=SQL_C_CHAR, rgbValue="-3                  ",
             pcbValue=20 )
     81  ( iCol=3, fCType=SQL_C_CHAR, rgbValue="1997-05-23", pcbValue=10 )
     82  SQLFetch( hStmt=1:1 )
     83      ---> Time elapsed - +4.942000E-003 seconds
     84  SQLFetch( )
     85      <--- SQL_SUCCESS   Time elapsed - +7.860000E-003 seconds
     86  ( iCol=1, fCType=SQL_C_LONG, rgbValue=10, pcbValue=4 )
     87  ( iCol=2, fCType=SQL_C_CHAR, rgbValue="-3                  ",
             pcbValue=20 )
     88  ( iCol=3, fCType=SQL_C_CHAR, rgbValue="1997-05-23", pcbValue=10 )
     89  SQLFetch( hStmt=1:1 )
     90      ---> Time elapsed - +4.872000E-003 seconds
     91  SQLFetch( )
     92      <--- SQL_SUCCESS   Time elapsed - +7.669000E-003 seconds
     93  ( iCol=1, fCType=SQL_C_LONG, rgbValue=10, pcbValue=4 )
     94  ( iCol=2, fCType=SQL_C_CHAR, rgbValue="-3                  ",
             pcbValue=20 )
     95  ( iCol=3, fCType=SQL_C_CHAR, rgbValue="1997-05-23", pcbValue=10 )
     96  SQLFetch( hStmt=1:1 )
     97      ---> Time elapsed - +5.103000E-003 seconds
     98  SQLFetch( )
     99      <--- SQL_NO_DATA_FOUND   Time elapsed - +6.044000E-003 seconds
    100  SQLCloseCursor( hStmt=1:1 )
    101      ---> Time elapsed - +2.682000E-003 seconds
    102  SQLCloseCursor( )
    103      <--- SQL_SUCCESS   Time elapsed - +6.794000E-003 seconds
    104  SQLExecDirect( hStmt=1:1, pszSqlStr="select * foo bad sql", cbSqlStr=-3 )
    105      ---> Time elapsed - +2.967000E-003 seconds
    106  SQLExecDirect( )
    107      <--- SQL_ERROR   Time elapsed - +1.103700E-001 seconds
    108  SQLError( hEnv=0:0, hDbc=0:0, hStmt=1:1, pszSqlState=&2ff6f19c,
               pfNativeError=&2ff6ed00, pszErrorMsg=&2ff6ed9c, cbErrorMsgMax=1024, 
               pcbErrorMsg=&2ff6ed0a )
    109      ---> Time elapsed - +2.267000E-003 seconds
    110  SQLError( pszSqlState="42601", pfNativeError=-104,
               pszErrorMsg="[IBM][CLI Driver][DB2/6000] SQL0104N  An unexpected
               token "foo bad sql" was found following "select * ".
               Expected tokens may include:  "<space>".  SQLSTATE=42601
    111  ", pcbErrorMsg=163 )
    112      <--- SQL_SUCCESS   Time elapsed - +5.299000E-003 seconds
    113  SQLError( hEnv=0:0, hDbc=0:0, hStmt=1:1, pszSqlState=&2ff6f19c,
               pfNativeError=&2ff6ed00, pszErrorMsg=&2ff6ed9c, cbErrorMsgMax=1024,
               pcbErrorMsg=&2ff6ed0a )
    114      ---> Time elapsed - +2.753000E-003 seconds
    115  SQLError( )
    116      <--- SQL_NO_DATA_FOUND   Time elapsed - +2.502000E-003 seconds
    117  SQLExecDirect( hStmt=1:1, pszSqlStr="select * foo bad sql", cbSqlStr=-3 )
    118      ---> Time elapsed - +3.292000E-003 seconds
    119  SQLExecDirect( )
    120      <--- SQL_ERROR   Time elapsed - +6.012500E-002 seconds
    121  SQLFreeHandle( fHandleType=SQL_HANDLE_STMT, hHandle=1:1 )
    122      ---> Time elapsed - +2.867000E-003 seconds
    123  ( Unretrieved error message="SQL0104N  An unexpected token "foo bad sql"
               was found following "select * ".  Expected tokens may
               include:  "<space>".  SQLSTATE=42601
    124  " )
    125  SQLFreeHandle( )
    126      <--- SQL_SUCCESS   Time elapsed - +4.936600E-002 seconds
    127  SQLEndTran( fHandleType=SQL_HANDLE_DBC, hHandle=0:1, fType=SQL_ROLLBACK )
    128      ---> Time elapsed - +2.968000E-003 seconds
    129  SQLEndTran( )
    130      <--- SQL_SUCCESS   Time elapsed - +1.643370E-001 seconds
    131  SQLDisconnect( hDbc=0:1 )
    132      ---> Time elapsed - +2.559000E-003 seconds
    133  SQLDisconnect( )
    134      <--- SQL_SUCCESS   Time elapsed - +8.253310E-001 seconds
    135  SQLFreeHandle( fHandleType=SQL_HANDLE_DBC, hHandle=0:1 )
    136      ---> Time elapsed - +4.247000E-003 seconds
    137  SQLFreeHandle( )
    138      <--- SQL_SUCCESS   Time elapsed - +4.742000E-003 seconds
    139  SQLFreeHandle( fHandleType=SQL_HANDLE_ENV, hHandle=0:1 )
    140      ---> Time elapsed - +2.023000E-003 seconds
    141  SQLFreeHandle( )
    142      <--- SQL_SUCCESS   Time elapsed - +4.420000E-003 seconds
    

    マルチスレッドまたはマルチ・プロセス・アプリケーションのトレース

    マルチスレッド・アプリケーション、 またはマルチ・プロセス・アプリケーションでトレースが役立つようにするには、 TRACEPATHNAME キーワードを使用する必要があります。 このキーワードを使用しないと、 複数のスレッドやプロセスが同時に書き込まれた場合に、 トレースが混乱してしまいます。 詳細については、 TRACEPATHNAMEを参照してください。

    これらのファイルは、 アプリケーションのプロセス ID と拡張子 (固有のスレッドごとの順序番号) から成る名前 (たとえば、65397.0, 65397.1, 65397.2 など) で指定されたパスに作成されます。

    各スレッドがそれぞれ別々のファイルに書き込みを行うようにすると、 セマフォーでトレース・ファイルへのアクセスを制限する必要はなくなります。 つまり、トレースによってマルチスレッド・アプリケーションの動作が影響を受けることがなくなります。

    ODBC ドライバー・マネージャーのトレース

    ODBC ドライバー・マネージャーによる ODBC トレースと、DB2 CLI/ODBC ドライバーによるトレース (IBM ODBC ドライバーのトレース) の違いを理解しておくと、 役に立ちます。

    出力ファイルの形式が違います。 ここで違う点は、ODBC トレースでは、 アプリケーションがドライバー・マネージャーに対して行った呼び出しを表示することです。 DB2 CLI トレースは、ODBC ドライバー・マネージャーから受け取った呼び出しを表示します。

    ODBC ドライバー・マネージャーは、 アプリケーションの機能呼び出しを別の機能や別の引き数にマップしたり、 呼び出しを遅らせたりすることがあります。

    以下の 1 つ以上が当てはまる場合があります。

    このため、起こっている事柄を明確にするには、 両方のトレースの出力を使用可能にして、互いに比較する必要があります。

    詳細については、 Microsoft ODBC 3.0 Software Development Kit and Programmer's Reference を参照してください。

    CLI/ODBC/JDBC 構成キーワード

    トレース機能では、次の CLI/ODBC/JDBC 構成キーワードを使用します。

    JDBCTRACE

    キーワードの説明:
    DB2 JDBC トレース機能をオンにします。

    db2cli.ini キーワードの構文:
    JDBCTRACE = 0 | 1

    デフォルト設定:
    トレース情報は取り込まれません。

    DB2 CLI/ODBC 設定タブ:
    サービス

    参照箇所:
    JDBCTRACEFLUSHJDBCTRACEPATHNAME

    使用上の注意:

    このオプションが (1) の場合、JDBC のトレース・レコードは、 JDBCTRACEPATHNAME 構成パラメーターが指示するサブディレクトリーのファイルに付加されます。

    たとえば、トレースを入力するたびにディスクに書き込むように JDBC トレース・ファイルをセットアップするには、 次のようにします。

         [COMMON]
         JDBCTRACE=1
         JDBCTRACEPATHNAME=E:\JDBCTRACES\CLI
         JDBCTRACEFLUSH=1
    

    (このオプションは、初期設定ファイルの共通セクションに含まれているため、DB2 へのすべての接続に当てはまります。)

    JDBCTRACEFLUSH

    キーワードの説明:
    JDBC トレースが入力されるたびに、ディスクに書き込みを行います。

    db2cli.ini キーワードの構文:
    JDBCTRACEFLUSH = 0 | 1

    デフォルト設定:
    どの入力後にも書き込みを行いません。

    DB2 CLI/ODBC 設定タブ:
    サービス

    該当する唯一の条件:
    CLI/ODBC/JDBC JDBCTRACE オプションがオンになっている。

    参照箇所:
    JDBCTRACEJDBCTRACEPATHNAME

    使用上の注意:

    このオプションを (JDBCTRACEFLUSH = 1) に設定すると、 トレースが入力されるたびに、ディスクに書き込みを行います。 このオプションを使用すると、トレース・プロセスの処理速度は下がりますが、 アプリケーションが次のステートメントを開始する前に、 それぞれの入力が必ずディスクに書き込まれます。

    このオプションは、JDBCTRACE CLI/ODBC/JDBC オプションがオンになっている場合にのみ使用されます。 例として、JDBC TRACE オプションを参照してください。

    このオプションは、初期設定ファイルの共通セクションに含まれているため、DB2 へのすべての接続に当てはまります。

    JDBCTRACEPATHNAME

    キーワードの説明:
    個々の DB2 JDBC トレース・ファイルを保管するサブディレクトリー。

    db2cli.ini キーワードの構文:
    JDBCTRACEPATHNAME = < サブディレクトリーの完全な名前 >

    デフォルト設定:
    なし

    DB2 CLI/ODBC 設定タブ:
    サービス

    該当する唯一の条件:
    JDBCTRACE オプションがオンになっている。

    該当しない条件:

    参照箇所:
    JDBCTRACEJDBCTRACEFLUSH

    使用上の注意:

    同じ DLL や共用ライブラリーを使用する各スレッドやプロセスでは、 指定されたディレクトリーに別々の JDBC トレース・ファイルを作成します。

    指定されたサブディレクトリーが無効な場合や、書き込みを行えない場合、 トレースは行われず、エラー・メッセージも返されません。

    このオプションは、JDBCTRACE オプションがオンになっている場合にのみ使用されます。 CLI/ODBC/JDBC 構成ユーティリティーにこのオプションを設定すると、 これは自動的に行われます。

    さまざまなトレースの設定を使用する例については、 JDBCTRACE オプションを参照してください。

    JDBC トレースは、デバッグを目的とする場合にのみ使用してください。 そうしないと、JDBC ドライバーの実行速度は下がり、 長い間そのままにしておくと、トレース情報がかなり大きくなってしまう場合があります。

    このオプションは、初期設定ファイルの共通セクションに含まれているため、DB2 へのすべての接続に当てはまります。

    TRACE

    キーワードの説明:
    DB2 CLI/ODBC/JDBC トレース機能をオンにします。

    db2cli.ini キーワードの構文:
    TRACE = 0 | 1

    デフォルト設定:
    トレース情報は取り込まれません。

    DB2 CLI/ODBC 設定タブ:
    サービス

    参照箇所:
    TRACEFILENAMETRACEFLUSHTRACEPATHNAME

    使用上の注意:

    このオプションが (1) の場合、 CLI/ODBC/JDBC のトレース・レコードは、TRACEFILENAME 構成パラメーターが指示するファイルか、 TRACEPATHNAME 構成パラメーターが指示するサブディレクトリーのファイルに付加されます。

    たとえば、トレースを入力するたびにディスクに書き込むように CLI/ODBC/JDBC トレース・ファイルをセットアップするには、 次のようにします。

         [COMMON]
         TRACE=1
         TRACEFILENAME=E:\TRACES\CLI\MONDAY.CLI
         TRACEFLUSH=1
    

    (このオプションは、初期設定ファイルの共通セクションに含まれているため、DB2 へのすべての接続に当てはまります。)

    TRACECOMM

    キーワードの説明:
    トレース・ファイル内の各ネットワークの要求に関する情報を含みます。

    db2cli.ini キーワードの構文:
    TRACECOMM = 0 | 1

    デフォルト設定:
    0 - ネットワークの要求に関する情報は取り込まれません。

    DB2 CLI/ODBC 設定タブ:
    このキーワードは、CLI/ODBC 設定ノートブックで設定することはできません。 db2cli.ini ファイルを直接修正して、このキーワードを使用できるようにする必要があります。

    該当する唯一の条件:
    CLI/ODBC/JDBC TRACE オプションがオンになっている。

    参照箇所:
    TRACETRACEFILENAMETRACEPATHNAMETRACEFLUSH

    使用上の注意:

    TRACECOMM が (1) に設定されている場合、 各ネットワークの要求に関する情報はトレース・ファイルに組み込まれます。

    このオプションは、TRACE CLI/ODBC/JDBC オプションがオンになっている場合にのみ使用されます。 例として、TRACE オプションを参照してください。

    このオプションは、初期設定ファイルの共通セクションに含まれているため、DB2 へのすべての接続に当てはまります。

    TRACEFILENAME

    キーワードの説明:
    CLI/ODBC/JDBC トレース情報を保管するために使用するファイル。

    db2cli.ini キーワードの構文:
    TRACEFILENAME = <完全なファイル名>

    デフォルト設定:
    なし

    DB2 CLI/ODBC 設定タブ:
    サービス

    該当する唯一の条件:
    TRACE オプションがオンになっている。

    参照箇所:
    TRACETRACEFLUSHTRACEPATHNAME

    使用上の注意:

    指定されたファイルが存在しない場合は、そのファイルが作成されます。 そうしないと、新しいトレース情報はファイルの最後に付加されます。

    指定されたファイル名が無効な場合、 またはそのファイルを作成できないか、ファイルに書き込みができない場合は、 トレースは行われず、エラー・メッセージも返されません。

    このオプションは、TRACE オプションがオンになっている場合にのみ使用されます。 CLI/ODBC/JDBC 構成ユーティリティーにこのオプションを設定すると、 これは自動的に行われます。

    さまざまなトレースの設定を使用する例については、 TRACE オプションを参照してください。 このオプションが設定されている場合、TRACEPATHNAME オプションは無視されます。 マルチスレッド・アプリケーションには、TRACEFILENAME の代わりに TRACEPATHNAME を使用して、 スレッド情報を分離して保持するようにします。

    CLI/ODBC/JDBC トレースは、デバッグを目的とする場合にのみ使用してください。 そうしないと、CLI/ODBC/JDBC ドライバーの実行速度は下がり、 長い間そのままにしておくと、トレース情報がかなり大きくなってしまう場合があります。

    (このオプションは、初期設定ファイルの共通セクションに含まれているため、DB2 へのすべての接続に当てはまります。)

    TRACEFLUSH

    キーワードの説明:
    CLI/ODBC/JDBC トレースが入力されるたびに、ディスクに書き込みを行います。

    db2cli.ini キーワードの構文:
    TRACEFLUSH = 0 | 1

    デフォルト設定:
    どの入力後にも書き込みを行いません。

    DB2 CLI/ODBC 設定タブ:
    サービス

    該当する唯一の条件:
    CLI/ODBC TRACE オプションがオンになっている。

    参照箇所:
    TRACETRACEFILENAMETRACEPATHNAME

    使用上の注意:

    このオプションを (TRACEFLUSH = 1) に設定すると、 トレースが入力されるたびに、ディスクに書き込みを行います。 このオプションを使用すると、トレース・プロセスの処理速度は下がりますが、 アプリケーションが次のステートメントを開始する前に、 それぞれの入力が必ずディスクに書き込まれます。

    このオプションは、TRACE CLI/ODBC/JDBC オプションがオンになっている場合にのみ使用されます。 例として、TRACE オプションを参照してください。

    このオプションは、初期設定ファイルの共通セクションに含まれているため、DB2 へのすべての接続に当てはまります。

    TRACEPATHNAME

    キーワードの説明:
    個々の DB2 CLI/ODBC/JDBC トレース・ファイルを保管するサブディレクトリー。

    db2cli.ini キーワードの構文:
    TRACEPATHNAME = < サブディレクトリーの完全な名前 >

    デフォルト設定:
    なし

    DB2 CLI/ODBC 設定タブ:
    サービス

    該当する唯一の条件:
    TRACE オプションがオンになっている。

    該当しない条件:
    TRACEFILENAME オプションがオンになっている。

    参照箇所:
    TRACETRACEFILENAMETRACEFLUSH

    使用上の注意:

    同じ DLL や共用ライブラリーを使用する各スレッドやプロセスでは、 指定されたディレクトリーに別々の CLI/ODBC/JDBC トレース・ファイルを作成します。

    指定されたサブディレクトリーが無効な場合や、書き込みを行えない場合、 トレースは行われず、エラー・メッセージも返されません。

    このオプションは、TRACE オプションがオンになっている場合にのみ使用されます。 CLI/ODBC/JDBC 構成ユーティリティーにこのオプションを設定すると、 これは自動的に行われます。

    さまざまなトレースの設定を使用する例については、 TRACE オプションを参照してください。 CLI/ODBC/JDBC オプション TRACEFILENAME が使用されている場合、 このオプションは無視されます。

    CLI/ODBC/JDBC トレースは、デバッグを目的とする場合にのみ使用してください。 そうしないと、CLI/ODBC/JDBC ドライバーの実行速度は下がり、 長い間そのままにしておくと、トレース情報がかなり大きくなってしまう場合があります。

    このオプションは、初期設定ファイルの共通セクションに含まれているため、DB2 へのすべての接続に当てはまります。

    TRACETIMESTAMP

    キーワードの説明:
    DB2 CLI/ODBC/JDBC トレース・ファイルの各行にタイミング情報を追加します。

    db2cli.ini キーワードの構文:
    TRACETIMESTAMP = 0 | 1 | 2 | 3

    デフォルト設定:
    0 - タイム・スタンプは表示されません。

    参照箇所:
    TRACETRACEFILENAMETRACEFLUSHTRACEPIDTID

    使用上の注意:

    このオプションは、TRACE オプションがオンになっている場合にのみ使用されます。 CLI/ODBC/JDBC 構成ユーティリティーにこのオプションを設定すると、 これは自動的に行われます。

    CLI トレースでタイミング情報を各行に追加したい場合には、TRACETIMESTAMP を 1、2、または 3 に設定します。 TRACETIMESTAMP を 1 に設定すると、タイム・スタンプに続いて秒とミリ秒の単位の絶対時刻が提供されます。 TRACETIMESTAMP を 2 に設定すると、秒とミリ秒の単位の絶対時刻が提供されます。 TRACETIMESTAMP を 3 に設定すると、タイム・スタンプが提供されます。

    TRACEPIDTID

    キーワードの説明:
    DB2 CLI/ODBC/JDBC トレース・ファイルの各行にプロセスおよびスレッド識別情報を追加します。

    db2cli.ini キーワードの構文:
    TRACEPIDTID = 0 | 1

    デフォルト設定:
    0 - プロセスまたはスレッド識別情報は表示されません。

    参照箇所:
    TRACETRACEFILENAMETRACEFLUSHTRACETIMESTAMP

    使用上の注意:

    このオプションは、TRACE オプションがオンになっている場合にのみ使用されます。 CLI/ODBC/JDBC 構成ユーティリティーにこのオプションを設定すると、 これは自動的に行われます。

    CLI トレースでプロセスおよびスレッド ID を各行に追加したい場合には、TRACEPIDTID を 1 に設定します。


    [ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]