用户指南


跟踪实用程序 (ddcstrc)

ddcstrc 实用程序对 DB2 Connect 工作站(代表 数据库客户机)与主机或 AS/400 数据库服务器管理系统之间 交换的数据进行了记录。

作为数据库管理员(或应用程序开发人员), 您可能会发现了解此数据流如何工作是很有用的, 因为这些知识可以帮助您确定特定问题的起源。 例如,假定您对主机或 AS/400 数据库服务器发出 CONNECT TO 数据库语句, 但是,该命令失败了,并且您接收到一个不成功的返回码。 若您准确地了解哪些信息被传送到主机或 AS/400 数据库服务器管理系统, 则您就可能确定故障的原因,即使返回的代码信息是一般的信息。 很多故障是由简单的用户错误造成的。

来自 ddcstrc 的输出列示了 DB2 Connect 工作站与主机或 AS/400 数据库服务器管理系统之间交换的数据流。 发送至主机或 AS/400 数据库服务器的数据被标记为 SEND BUFFER, 而从主机或 AS/400 数据库服务器接收的数据被标记为 RECEIVE BUFFER。

若接收缓冲区中包含 SQLCA 信息,则它将后接此数据的已格式化的解释以及带标签的 SQLCA。 SQLCA 的 SQLCODE 字段是主机或 AS/400 数据库服务器所返回的未映射的值。 (有关映射的详情。参见SQLCODE 映射。) 在文件中,发送缓冲区和接收缓冲区是按从最旧到最新的顺序来排列的。 每个缓冲区都具有:

在发送缓冲区和接收缓冲区中的其他数据被分成五列,包括:

有关 DDM 的详情,参考:

跟踪语法

此命令是在操作系统命令提示处用以下语法调用的:

图 9. ddcstrc 命令的语法


Figure 00003491 not displayed.

注意:随着您正在使用的操作系统的不同,则此命令的语法将稍微有些不同。 例如,对于 OS/2 操作系统,可能会使用 / 来代替 -

跟踪参数

on
打开对主机或 AS/400 数据库服务器的 DRDA 流的 DB2 Connect 跟踪。

off
关闭对主机或 AS/400 数据库服务器的 DRDA 流的 DB2 Connect 跟踪。

-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, 则用户的实例的所有进程都被写入输出文件中。
注意:对于远程客户机,可以在数据库系统监控程序所返回的“代理程序 ID”字段中找到 pid
有关详情,参见数据库系统监控程序

跟踪输出

ddcstrc 实用程序将下列信息写入 tracefile

记录:

  1. 出口码的值为零,指示成功地完成了命令,非零值指示没有成功地完成命令。

  2. 返回的字段将随使用的 API 不同而不同。SNA API 仅用于 2PC SPM 连接。

  3. 返回的字段将随 DB2 Connect 运行所在的平台不同而不同, 即使对于同一 API 也是如此。

  4. 若 ddcstrc 将输出发送至一个已经存在的文件中, 则将擦除旧文件,除非文件的许可权不允许擦除它。

分析跟踪输出文件

下面的页显示了用来说明在 DB2 Connect 工作站与主机或 AS/400 数据库服务器之间交换的一些 DRDA 数据流的样本输出。 从用户的角度来看,已经使用命令行处理器发出了 CONNECT TO 数据库命令。

图 10使用基于 APPC 连接的 DB2 Connect 企业版 版本 7 和 DB2 通用数据库 OS/390 版版本 5.1。

图 11使用基于 TCP/IP 的 DB2 Connect 企业版 版本 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

在跟踪中捕捉到下列信息:

第一个缓冲区中包含发送到主机或 AS/400 数据库服务器管理系统的 “交换服务器属性”(EXCSAT) 和“存取 RDB”(ACCRDB) 命令。

它将它们作为 CONNECT TO 数据库命令的结果来发送。

下一个缓冲区中包含 DB2 Connect 从主机或 AS/400 数据库服务器中接收的应答。 它包含“交换服务器属性应答数据”(EXCSATRD) 和“存取 RDB 应答信息”(ACCRDBRM)。

分析 EXCSAT 和 ACCRDB

EXCSAT 命令包含由“服务器名”(SRVNAM) 对象指定的客户机的工作站名, 按照 DDM 规范,它是代码点 X'116D'。

EXCSAT 命令是在第一个缓冲区中。在 EXCSAT 命令内, 一旦除去了 X'116D',值 X'116DA68581A28593' (按 CCSID 500 编码)就被转换为 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 命令跟在 EXCSAT 命令后面。 在 ACCRDB 命令内,一旦除去了 X'2110', 值 X'2110E2C1D56DC6D9C1D5C3C9E2C3D6' 就会被转换为 SAN_FRANCISCO。 这对应于 DCS 目录中的目标数据库名字段。

计帐字符串具有代码点 X'2104'(参见在 DB2 通用数据库 OS/390 版上实现对方付费记帐)。

通过在 ACCRDB 命令中查找具有代码点 X'119C' 的 CCSID 对象 CCSIDSBC(用于单字节字符的 CCSID),就可显示为 DB2 Connect 工作站配置的代码集。 在此示例中,CCSIDSBC 为 X'0352',代码集为 850。

若存在附加对象 CCSIDDBC(双字节字符的 CCSID)和 CCSIDMBC(混合字节字符的 CCSID),它们分别具有代码点 X'119D' 和 X'119E',则该 DB2 Connect 工作站配置为支持 DBCS 代码页。 由于样本输出文件中不包括这两个附加代码点, 所以,该工作站未配置为支持 DBCS。
注意:TCP/IP 流中包含两个新命令: ACCSEC,用来存取安全性管理程序和交换受支持的安全性机制; SECCHK,它包含用来认证连接的最终用户的认证记号。 ACCSEC 和 SECCHK 仅适用于 TCP/IP 连接, 并且在 EXCSAT 和 ACCRDB 之间执行。

分析 EXCSATRD 和 ACCRDBRM

CCSID 值也是从主机或 AS/400 数据库服务器返回的, 而且在第二个缓冲区内的“存取 RDB 回答信息”(ACCRDBRM) 中返回。 此缓冲区中包含 EXCSATRD,后接 ACCRDBRM。 样本输出文件中包含主机或 AS/400 数据库服务器系统的 CCSID 值 500 (X'01F4', SBCS CCSID)。

若 DB2 Connect 不能识别从主机或 AS/400 数据库服务器中返回的代码页, 则将对用户返回 SQLCODE -332,以及源和目标代码页。 若主机或 AS/400 数据库服务器不识别从 DB2 Connect 发送来的代码集, 则它将返回 VALNSPRM(不支持参数值,DDM 代码点为 X'1252'), 它将为用户转换为 SQLCODE -30073。

ACCRDBRM 还包含参数 PRDID(特定于产品的标识符,具有代码点 X'112E')。 该值为 X'C4E2D5F0F5F0F1F0'。 此十六进制字符串对应于 EBCDIC 中的 DSN05010。按照标准, DSN 为 DB2 MVS/ESA 版或 DB2 通用数据库 OS/390 版。还指示版本 5.1。ARI 是DB2 VSE 版和 VM 版, SQL 为 DB2 Common Server,QSQ 为 DB2 通用数据库 AS/400 版。

分析后续的缓冲区

可以分析发送和接收缓冲区以获取附加信息。 第三个缓冲区中包含落实操作。 commit 命令将指示主机或 AS/400 数据库服务器管理系统来落实工作单元。第四个缓冲区是作为落实或回滚的结果从主机或 AS/400 数据库服务器数据库管理系统中接收的。 它包含“结束工作单元应答信息”(ENDUOWRM), 它指示当前工作单元已经结束。在此示例中,它包含一个空的 SQLCA, 由后接 X'FF' 的 DDM 代码点 X'2408' 指示。 空的 SQLCA (X'2408FF') 指示成功 (SQLCODE 0)。 当接收缓冲区中包含 SQLCA(可能是空的 SQLCA)时, ddcstrc 将在此接收缓冲区后面附加对 SQLCA 信息的格式化解释。

图 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


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]