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 の詳細については、以下を参照してください。
このコマンドは、オペレーティング・システム・コマンド・プロンプトから、 以下の構文で呼び出されます。
![]() |
注: | このコマンドの構文は、使用しているオペレーティング・システムにより微妙に変わることがあります。たとえば、OS/2 オペレーティング・システムでは - の代わりに / が使用されます。 |
省略時の値は、-r、-s、および -c です。
注: | リモート・クライアントについては、pid は、データベース・システム・モニターによって戻されるエージェント ID フィールド内で検出できます。 |
ddcstrc ユーティリティーは、tracefile に以下の情報を書き込みます。
注:
以下のページは、出力例を示しており、 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 を使用します。
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 |
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 コマンドには、サーバー名 (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 の間で実行します。 |
また 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 は、存在しない表から行削除を試みた結果の例です。
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 |