DB2数据库网络报文格式分析
简述
DB2数据库使用DRDA协议,DRDA是一个跨IBM平台访问、遵循SQL标准的数据库信息标准。它是IBM的信息仓库框架中的重要组成部分,该框架定义了庞大的后台服务器,客户机可通过较小的基于工作组的中介服务器来访问它,DRDA具有下列功能:
提供了IBM的DB2、DBM、SQL/DS和SQL/400数据库系统的互连框架;
支持多供应商提供的数据库系统;
DRDA是IBM环境中建立客户机/服务器计算的基础之一。其它基础是高级的对等联网(APPN)和分布式数据管理(DDM)。通过信息仓库和DRDA,IBM计算机将它的企业中心组成部分的大型计算机,用作各种类型信息(包括多媒体信息)的存储平台。
报文结构
DRDA报文
DRDA利用TCP传输数据:
通常一个DRDA报文中可以包含一个或者多个DRDA数据结构。
DRDA结构
一个DRDA结构包含一个DDM头:
Length:单个DRDA的长度
Magic: 0xD0
Format: 0x02 Reply Message
0x03 Object Response
0x42 Chained Reply Message, same RC
0x52 Chained Reply Message, different RC
0x53 Chained Object Message, same RC
CorrelID:连接的ID
Length2:Length减去Magic、Format、CorrelID后的长度
Code point: DDM Term Code
数据区可以是Parameters结构,也可以直接用字节流.
Parameters格式如下图:
报文结构格式如下图:
字节码结构如下图:
Length: Parameter的长度
Code point:描述这个数据的用途
Data :数据
字节流如下图:
常用DDM列表
DDM Term |
Term Title |
Connection establishment to a remote database manager |
|
EXCSAT |
Exchange server attributes |
ACCRDB |
Access RDB |
Package creation/rebind/remove |
|
BGNBND |
Begin binding of a package to an RDB |
BNDSQLSTT |
Bind SQL Statement to an RDB package |
ENDBND |
End binding of a package to an RDB |
REBIND |
Rebind an existing RDB package |
DRPPKG |
DROP a package at an RDB |
Query Processing |
|
OPNQRY |
Open query |
CNTQRY |
Continue query |
CLSQRY |
Close query |
Prepare/describe/execute SQL statements |
|
PRPSQLSTT |
Prepare SQL statement |
DSCSQLSTT |
Describe SQL statement |
DSCRDBTBL |
Describe RDB table |
EXCSQLSTT |
Execute SQL statement |
EXCSQLIMM |
Execute immediate SQL statement |
Commit/rollback unit of work |
|
RDBCMM |
RDB commit unit of work used by RUOW connections |
RDBRLLBCK |
RDB rollback unit of work used by RUOW connections |
SYNCCTL |
Sync point control request used for DUOW connections |
SYNCRSY |
Sync point resynchronization request used by DUOW connections |
Security processing |
|
ACCSEC |
Access security |
SECCHK |
Security check |
Propagating special register settings |
|
EXCSQLSET |
SET SQL environment |
Connection establishment to a remote database manager |
|
EXCSAT |
Exchange server attributes |
ACCRDB |
Access RDB |
DDM Reply Data Objects Used by DRDA
DDM Term |
Term Title |
ACCRDBRM |
Access to RDB completed |
ACCSECRD |
Access security reply data |
CMDCMPRM |
Command processing completed |
ENDQRYRM |
End of query condition |
ENDUOWRM |
End unit of work condition |
EXCSATRD |
Server attributes reply data |
OPNQRYRM |
Open query complete |
QRYDSC |
Query answer set description |
QRYDTAQ |
Query answer set data |
RDBUPDRM |
Update at an RDB condition (Introduced in DRDA Level 2) |
RSLSETRM |
RDB result set reply message |
SECCHKRM |
Security check complete reply message |
SECTKN |
Security token reply data |
SQLCARD |
SQL communications area reply data |
SQLCINRD |
SQL result set column info reply data |
SQLDARD |
SQLDA reply data |
SQLDTARD |
SQL data reply data |
SQLRSLRD |
SQL result set reply data |
SYNCCRD |
Sync point control reply data in support of distributed unit of work |
SYNCRRD |
Sync point resynchronization reply data in support of distributed unit of work |
SYNCLOG |
Identifies the sync point log used for a unit of work |
TYPDEFNAM |
Data type definition name |
TYPDEFOVR |
Data type definition override |
常用Parameter
Parameter Term |
Term Title |
Term Value of Test |
EXTNAM |
External Name |
db2bp |
SRVCLSNM |
Server Class Name |
DB2/LINUXX8664 |
SRVNAM |
Server Name |
localhost.localdomain |
SRVRLSLV |
Server Product Release Level |
SQL09077 |
SEMMEC |
Security Mechnism |
0x0009 |
RDBNAM |
Relational Database Name |
SNDBADB1 |
SECTKN |
Security Token |
Hex String |
MGRLVLLS |
Manage Level List |
Hex String |
SECCHKCD |
Security Check Code |
0x01 |
USRID |
User ID at The Target System |
sndbains |
CRRTKN |
Correlation Token |
192.168.85.30.39881.19055161113048 |
PRDID |
Product-Specific Identifier |
SQL09077 |
TYPDEFNAM |
Data Type Definition Name |
QTDSQLX86 |
PKGNAMCSN |
RDB Package Name, Consistency Token and Section Number |
|