使用者の手引き


トレース・ユーティリティー (ddcstrc)

ddcstrc ユーティリティーを利用して、 DB2 コネクト・ワークステーション (データベース・クライアントの代理) とホストまたは AS/400 データベース・サーバー管理システムとの間で交換されたデータの記録を入手することができます。

データベース管理者として (またはアプリケーション開発者として)、このデータ・フローがどのように働くかを理解することは有用です。 この知識は、特定の問題の源を判別するのに役立つからです。 たとえば、CONNECT TO データベース・ステートメントをホストまたは AS/400 データベース・サーバーに対して発行したが、 コマンドが失敗して、失敗の戻りコードを受け取ったとします。 そのとき、どのような情報がホストまたは AS/400 データベース・サーバー管理システムに送られたかを正確に理解していれば、 たとえ戻りコードの情報が一般的なものであったとしても、失敗の原因を判別することができます。 ユーザー自身による単純なエラーが、多くの失敗の原因となっています。

ddcstrc からの出力は、 DB2 コネクト・ワークステーションとホストまたは AS/400 データベース・サーバー管理システムとの間で交換されたデータ・ストリームをリストします。 ホストまたは AS/400 データベース・サーバーへ送られたデータには SEND BUFFER とラベル付けされ、 ホストまたは AS/400 データベース・サーバーから受け取られたデータは RECEIVE BUFFER とラベル付けされます。

受信バッファーが SQLCA 情報を含んでいる場合、その後に、このデータの書式化された解釈が続き、SQLCA とラベル付けされます。 SQLCA の SQLCODE フィールドは、 ホストまたは AS/400 データベース・サーバーにより戻されるとおりのマップされていない 値です。 (マッピングに関する詳細については、SQLCODE マッピングを参照してください。) 送信バッファーと受信バッファーは、ファイル内で最も古いものから順に、最新のものへと配置されます。それぞれのバッファーには、以下のものが入ります。

送信バッファーと受信バッファー内の残りのデータは、以下のものを構成する 5 つの列に分けられます。

DDM の詳細については、以下を参照してください。

トレース構文

このコマンドは、オペレーティング・システム・コマンド・プロンプトから、 以下の構文で呼び出されます。

図 9. ddcstrc コマンドの構文


Figure 00003491 not displayed.

注:このコマンドの構文は、使用しているオペレーティング・システムにより微妙に変わることがあります。たとえば、OS/2 オペレーティング・システムでは - の代わりに / が使用されます。

トレース・パラメーター

on
DB2 コネクトによる、ホストまたは AS/400 データベース・サーバーでの DRDA フローのトレースをオンにします。

off
DB2 コネクトによる、ホストまたは AS/400 データベース・サーバーでの DRDA フローのトレースをオフにします。

-i
トレース情報にタイム・スタンプを含めます。

-r
ホストまたは AS/400 サーバー・システムから受信された DRDA データ・ストリームをトレースします。

-s
ホストまたは AS/400 データベース・サーバーに送信された DRDA データ・ストリームをトレースします。

-c
ホストまたは AS/400 データベース・サーバーから受信された SQLCA をトレースします。

省略時の値は、-r、-s、および -c です。

-l=length
トレース情報の保管に使用するバッファーのサイズを指定します。 省略時値は 1M で、最小値は 64K です。

-t=tracefile
トレースの宛先を指定します。 tracefile には、ファイルまたは標準装置の名前を指定できます。 ファイル名がフルパスで指定されていない場合、省略されている部分には現行パスが使用されます。 省略時のファイル名は、ddcstrc.dmp です。

-p=pid
この処理に関する事象のみトレースします。 -p が指定されていない場合、ユーザーのインスタンスに関するすべての処理が出力ファイルに書き込まれます。

注:リモート・クライアントについては、pid は、データベース・システム・モニターによって戻されるエージェント ID フィールド内で検出できます。
詳細については、データベース・システム・モニターを参照してください。

トレース出力

ddcstrc ユーティリティーは、tracefile に以下の情報を書き込みます。

注:

  1. 終了コードのゼロ値は、そのコマンドが正常に完了したことを示し、 ゼロ以外の値は、そのコマンドが正常に完了しなかったことを示します。

  2. 戻されるフィールドは、使用した API によって変わります。 SNA API は、2PC SPM 接続にのみ使用されます。

  3. 戻されるフィールドは、同じ API の場合でさえ、DB2 コネクトが実行しているプラットフォームによって変わります。

  4. ddcstrc がすでに存在しているファイルへ出力を送信した場合、 ファイル上の許可により消去を禁止しているのでない限り、 以前のファイルは消去されてしまいます。

トレース出力ファイルの分析

以下のページは、出力例を示しており、 DB2 コネクト・ワークステーションとホストまたは AS/400 データベース・サーバーとの間で交換されるいくつかの DRDA データ・ストリームを例示しています。 ユーザーの観点からは、コマンド行プロセッサーを使用して CONNECT TO データベース・コマンドを発行しています。

図 10 は、APPC 接続上で DB2 コネクト エンタープライズ・エディション バージョン 7 および DB2 ユニバーサル・データベース (OS/390 版) バージョン 5.1 を使用します。

図 11 は、TCP/IP 接続上で DB2 コネクト エンタープライズ・エディション バージョン 7 および DB2 ユニバーサル・データベース (OS/390 版) バージョン 5.1 を使用します。

図 10. トレース出力の例 (APPC 接続)

1       DB2 fnc_data      gateway_drda_ar      sqljcsend (1.35.10.80)
        pid 95212; tid 537115484; node 0; cpid 0; sec 0; nsec 0; tpoint 177
        SEND BUFFER:  EXCSAT RQSDSS         (ASCII)           (EBCDIC)
         0 1 2 3 4 5 6 7  8 9 A B C D E F   0123456789ABCDEF  0123456789ABCDEF
  0000  006AD04100010064 10410020115E8482   .j.A...d.A. .^..  .|}..........;db
  0010  F282974040404040 4040404040404040   ...@@@@@@@@@@@@@  2bp
  0020  4040F0F0F0F1F7F3 C5C3000C116DA685   @@...........m..    000173EC..._we
  0030  81A2859340400013 115AC4C2F240C396   ....@@...Z...@..  asel  ...]DB2 Co
  0040  95958583A340F54B F200141404140300   .....@.K........  nnect 5.2.......
  0050  0414440003240700 05240F0003000D11   ..D..$...$......  ................
  0060  47D8C4C2F261F6F0 F0F00085D0010002   G....a..........  .QDB2/6000.e}...
  0070  007F200100162110 E2C1D56DC6D9C1D5   .. ...!....m....  ."......SAN_FRAN
  0080  C3C9E2C3D6404040 40400006210F2407   .....@@@@@..!.$.  CISCO     ......
  0090  000D002FD8E3C4E2 D8D3C1E2C3000C11   .../............  ....QTDSQLASC...
  00A0  2EE2D8D3F0F5F0F2 F0003C210437E2D8   ..........
3       DB2 fnc_data      gateway_drda_ar      sqljcsend (1.35.10.80)
        pid 95212; tid 537115484; node 0; cpid 0; sec 0; nsec 0; tpoint 177
        SEND BUFFER:  RDBCMM  RQSDSS        (ASCII)           (EBCDIC)
         0 1 2 3 4 5 6 7  8 9 A B C D E F   0123456789ABCDEF  0123456789ABCDEF
  0000  000AD00100010004 200E               ........ .        ..}.......
4       DB2 fnc_data      gateway_drda_ar      sqljcrecv (1.35.10.81)
        pid 95212; tid 537115484; node 0; cpid 0; sec 0; nsec 0; tpoint 178
        RECEIVE BUFFER:  ENDUOWRM RPYDSS    (ASCII)           (EBCDIC)
         0 1 2 3 4 5 6 7  8 9 A B C D E F   0123456789ABCDEF  0123456789ABCDEF
  0000  002BD05200010025 220C000611490004   .+.R...%"....I..  ..}.............
  0010  00162110E2C1D56D C6D9C1D5C3C9E2C3   ..!....m........  ....SAN_FRANCISC
  0020  D640404040400005 211501000BD00300   .@@@@@..!.......  O     .......}..
  0030  0100052408FF                        ...$..            ......
5       DB2 fnc_data      gateway_drda_ar      sqljmsca (1.35.10.108)
        pid 95212; tid 537115484; node 0; cpid 0; sec 0; nsec 0; tpoint 179
        SQLCA
        SQLCAID:  SQLCA
        SQLCABC:  136
        SQLCODE:  0
        SQLERRML: 0
        SQLERRMC:
        SQLERRP:  DSN
        SQLERRD[0->5]: 00000000, 00000000, 00000000, 00000000, 00000000, 00000000
        SQLWARN(0->A):  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
        SQLSTATE: 00000

図 11. トレース出力の例 (TCP/IP 接続)

1       DB2 fnc_data      gateway_drda_ar      sqljcsend (1.35.10.80)
        pid 80286; tid 537125164; node 0; cpid 0; sec 0; nsec 0; tpoint 177
        SEND BUFFER:  EXCSAT RQSDSS         (ASCII)           (EBCDIC)
         0 1 2 3 4 5 6 7  8 9 A B C D E F   0123456789ABCDEF  0123456789ABCDEF
  0000  006ED04100010068 10410020115E8482   .n.A...h.A. .^..  .>}..........;db
  0010  F282974040404040 4040404040404040   ...@@@@@@@@@@@@@  2bp
  0020  4040F0F0F0F1F3F9 F9C5000C116DA685   @@...........m..    0001399E..._we
  0030  81A2859340400013 115AC4C2F240C396   ....@@...Z...@..  asel  ...]DB2 Co
  0040  95958583A340F54B F200181404140300   .....@.K........  nnect 5.2.......
  0050  0514740005240700 05240F0003144000   ..t..$...$....@.  .............. .
  0060  05000D1147D8C4C2 F261F6F0F0F00010   ....G....a......  .....QDB2/6000..
  0070  D0410002000A106D 000611A20003003C   .A.....m.......<  }......_...s....
  0080  D04100030036106E 000611A200030016   .A...6.n........  }......>...s....
  0090  2110E2C1D56DC6D9 C1D5C3C9E2C3D640   !....m.........@  ..SAN_FRANCISCO
  00A0  40404040000C11A1 9781A2A2A6969984   @@@@............      ....password
  00B0  000A11A0A4A28599 8984009CD0010004   ................  ....userid..}...
  00C0  0096200100162110 E2C1D56DC6D9C1D5   .. ...!....m....  .o......SAN_FRAN
  00D0  C3C9E2C3D6404040 40400006210F2407   .....@@@@@..!.$.  CISCO     ......
  00E0  000D002FD8E3C4E2 D8D3C1E2C3000C11   .../............  ....QTDSQLASC...
  00F0  2EE2D8D3F0F5F0F2 F0003C210437E2D8   ..........
3       DB2 fnc_data      gateway_drda_ar      sqljcsend (1.35.10.80)
        pid 80286; tid 537125164; node 0; cpid 0; sec 0; nsec 0; tpoint 177
        SEND BUFFER:  RDBCMM  RQSDSS        (ASCII)           (EBCDIC)
         0 1 2 3 4 5 6 7  8 9 A B C D E F   0123456789ABCDEF  0123456789ABCDEF
  0000  000AD00100010004 200E               ........ .        ..}.......
4       DB2 fnc_data      gateway_drda_ar      sqljcrecv (1.35.10.81)
        pid 80286; tid 537125164; node 0; cpid 0; sec 0; nsec 0; tpoint 178
        RECEIVE BUFFER:  ENDUOWRM RPYDSS    (ASCII)           (EBCDIC)
         0 1 2 3 4 5 6 7  8 9 A B C D E F   0123456789ABCDEF  0123456789ABCDEF
  0000  002BD05200010025 220C000611490004   .+.R...%"....I..  ..}.............
  0010  00162110E2C1D56D C6D9C1D5C3C9E2C3   ..!....m........  ....SAN_FRANCISC
  0020  D640404040400005 211501000BD00300   .@@@@@..!.......  O     .......}..
  0030  0100052408FF                        ...$..            ......
5       DB2 fnc_data      gateway_drda_ar      sqljmsca (1.35.10.108)
        pid 80286; tid 537125164; node 0; cpid 0; sec 0; nsec 0; tpoint 179
        SQLCA
        SQLCAID:  SQLCA
        SQLCABC:  136
        SQLCODE:  0
        SQLERRML: 0
        SQLERRMC:
        SQLERRP:  DSN
        SQLERRD[0->5]: 00000000, 00000000, 00000000, 00000000, 00000000, 00000000
        SQLWARN(0->A):  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
        SQLSTATE: 00000

以下の情報がトレースに取り込まれます。

1 番目のバッファーには、ホストまたは AS/400 データベース・サーバー管理システムに送信される交換サーバー属性 (EXCSAT) およびアクセス RDB (ACCRDB) コマンドが入っています。 そして、それらを CONNECT TO データベース・コマンドの結果として送信します。

2 番目のバッファーには、DB2 コネクトがホストまたは AS/400 データベース・サーバー管理システムから受け取る応答が入ります。このバッファーは、交換サーバー属性応答データ (EXCSATRD) およびアクセス RDB 応答メッセージ (ACCRDBRM) を含んでいます。

EXCSAT および ACCRDB の分析

EXCSAT コマンドには、サーバー名 (SRVNAM) オブジェクトにより指定されたクライアントのワークステーション名が入っています。 そのオブジェクトのコード点は X'116D' であり、DDM 仕様に従っています。 EXCSAT コマンドは、1 番目のバッファーにあります。 EXCSAT コマンドでは、値 X'116DA68581A28593' (CCSID 500 によりコード化) は、X'116D' を除去すると、 weasel に変換されます。

また EXCSAT コマンドには、EXTNAM (外部名) オブジェクトも含まれます。 このオブジェクトは、しばしば、ホストまたは AS/400 データベース管理システムについての診断情報に入れられます。 それは、20 バイトのアプリケーション ID、続いて 8 バイトのプロセス ID (または 4 バイトのプロセス ID と 4 バイトのスレッド ID)から成ります。それは、コード点 X'115E' で表され、この例ではその値は db2bp_32 で、ブランクが埋め込まれ 0000BE5C へと続きます。UNIX ベースのデータベース・クライアントについては、この値は ps コマンドを使用して相関させることができ、このコマンドは活動状態のプロセスについてのプロセス状況情報を標準出力に戻します。

ACCRDB コマンドは、RDBNAM オブジェクトにある RDB_NAME を含んでいます。 そのコード点は X'2110' です。 ACCRDB コマンドは、1 番目のバッファーにおいて EXCSAT コマンドの後に続きます。 ACCRDB コマンドでは、 値 X'2110E2C1D56DC6D9C1D5C3C9E2C3D6' は X'2110' を除去すると、SAN_FRANCISCO に変換されます。 これは、DCS ディレクトリーにあるターゲット・データベース名フィールドに対応しています。

会計ストリングのコード点は X'2104' です (DB2 ユニバーサル・データベース (OS/390 版) でのチャージバック会計の実装を参照してください)。

DB2 コネクト ワークステーション用に構成されたコード・セットは、ACCRDB コマンドにおいてコード点が X'119C' である CCSID オブジェクトの CCSIDSBC (1 バイト文字の CCSID) の位置により示されます。この例では、CCSIDSBC は X'0352' です。これは 850 になります。

追加のオブジェクト CCSIDDBC (2 バイト文字の CCSID) と CCSIDMBC (混合バイト文字の CCSID) がそれぞれコード点 X'119D' と X'119E' で示される場合、 DB2 コネクト・ワークステーションは DBCS コード・ページ・サポート用に構成されます。 出力ファイルの例では、2 つの追加コード点を組み込んでいないため、 ワークステーションは DBCS 用に構成されてはいません。
注:TCP/IP フローには、2 つの新しいコマンドが含まれています。 1 つは ACCSEC で、機密保護マネージャーにアクセスし、 サポートされる機密保護メカニズムを交換するために使用されます。もう 1 つは SECCHK で、 接続のエンド・ユーザーを認証するために使用される認証トークンが入っています。 ACCSEC および SECCHK は TCP/IP 接続の場合だけに現れ、EXCSAT と ACCRDB の間で実行します。

EXCSATRD および ACCRDBRM の分析

また CCSID 値は、ホストまたは AS/400 データベース・サーバーから、 2 番目のバッファー内にあるアクセス RDB 応答メッセージ (ACCRDBRM) にも戻されます。 このバッファーには、EXCSATRD とそれに続くACCRDBRM が入っています。 出力ファイルの例では、ホストまたは AS/400 データベース・サーバー・システム 500 (X'01F4', SBCS CCSID) の値が含まれています。

ホストまたは AS/400 データベース・サーバーから戻ってきているコード・ページを DB2 コネクトが認識しない場合は、 SQLCODE -332 がソースおよびターゲット・コード・ページと共にユーザーに戻されます。 DB2 コネクトから送信されたコード・セットをホストまたは AS/400 データベース・サーバーが認識しない場合、 ホストまたは AS/400 データベース・サーバーは VALNSPRM (サポートされていないパラメーター値、 DDM コード点 X'1252') を戻し、それはユーザー用に SQLCODE -30073 に変換されます。

ACCRDBRM には、パラメーター PRDID (製品特定識別子、コード点は X'112E') も含まれています。値は、X'C4E2D5F0F5F0F1F0' です。この 16 進数ストリングは、 EBCDIC で DSN05010 に対応します。標準によれば、DSN は DB2 (MVS/ESA 版) または DB2 ユニバーサル・データベース (OS/390 版) です。 バージョンが 5.1 であることも示されています。ARI は DB2 (VSE および VM 版) で、 SQL は DB2 共通サーバー、および QSQ は DB2 ユニバーサル・データベース (AS/400 版) です。

後続のバッファーの分析

それ以降の送信バッファーと受信バッファーを分析して、追加情報を得ることができます。 3 番目のバッファーは、コミットを含んでいます。 commit コマンドは、ホストまたは AS/400 データベース・サーバー管理システムが現行の作業単位をコミットするよう命令します。 4 番目のバッファーは、ホストまたは AS/400 データベース・サーバー管理システムから、 コミットまたはロールバックの結果として受け取られます。 そこには終了作業単位応答メッセージ (ENDUOWRM) が含まれ、 それは現行の作業単位か終了したことを示します。 この例では、4 番目のバッファーは、ヌルの SQLCA を含み、 DDM コード点 X'2408' とそれに続く X'FF' が示されています。 ヌルの SQLCA (X'2408FF') は、成功 (SQLCODE 0) を示しています。 受信バッファーに SQLCA (ヌルの SQLCA もあり得ます) が入っているとき、 この受信バッファーの後には、SQLCA 情報の書式化された解釈を伴う ddcstrc が続きます。

図 12 は、受信バッファー (エラー SQLCA を含む) および書式化された SQLCA の表示の例を示しています。 この SQLCA は、存在しない表から行削除を試みた結果の例です。

図 12. 受信バッファーの例

1       DB2 fnc_data      gateway_drda_ar      sqljcrecv (1.35.10.81)
        pid 48732; tid 1; node 0; cpid 0; sec 0; nsec 0; tpoint 178        
 
        RECEIVE BUFFER:  SQLCARD OBJDSS     (ASCII)           (EBCDIC)
         0 1 2 3 4 5 6 7  8 9 A B C D E F   0123456789ABCDEF  0123456789ABCDEF
  0000  0065D0030001005F 240800FFFFFF34F4   .e....._$.....4.  ..}....^.......4    
  0010  F2F7F0F4C4E2D5E7 D6E3D34000E2C1D5   ...........@....  2704DSNXOTL .SAN    
  0020  6DC6D9C1D5C3C9E2 C3D64040404040FF   m.........@@@@@.  _FRANCISCO     .    
  0030  FFFE0C0000000000 000000FFFFFFFF00   ................  ................    
  0040  0000000000000040 4040404040404040   .......@@@@@@@@@  .......    
  0050  40400000000FC4C4 C3E2E4E2F14BD4E8   @@...........K..    ....DDCSUS1.MY
  0060  E3C1C2D3C5                          .....             TABLE
               
2       DB2 fnc_data      gateway_drda_ar      sqljmsca (1.35.10.108) 
        pid 48732; tid 1; node 0; cpid 0; sec 0; nsec 0; tpoint 179             
        SQLCA
 
        SQLCAID:  SQLCA
        SQLCABC:  136                                                           
        SQLCODE:  -204                                                           
        SQLERRML: 15                                                            
        SQLERRMC: DDCSUS1.MYTABLE
        SQLERRP:  DSNXOTL                                                 
        SQLERRD[0->5]: FFFFFE0C, 00000000, 00000000, FFFFFFFF, 00000000, 00000000
        SQLWARN(0->A):  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
        SQLSTATE: 42704


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