我收到一条类似于下一条的消息:
2007-08-08-09.28.41.745208-240 I10292373A694 LEVEL: Error
PID : 1720384 TID : 1 PROC : db2agent (DPADB) 0
INSTANCE: XXXXX NODE : 000 DB : DPADB
APPHDL : 0-154 APPID: GA381C80.O107.00D748132841
DATA #1 : SQLCA, PD_DB2_TYPE_SQLCA, 136 bytes
sqlcaid : SQLCA sqlcabc: 136 sqlcode: -1060 sqlerrml: 8
sqlerrmc: YYYYY
sqlerrp : sqlrrait
sqlerrd : (1) 0x8012006D (2) 0x00000000 (3) 0x00000000
(4) 0x00000000 (5) 0x00000000 (6) 0x00000000
sqlwarn : (1) (2) (3) (4) (5) (6)
(7) (8) (9) (10) (11)
sqlstate:
我想知道正在从哪台机器尝试连接。我是否必须使用嗅探器,或者 DB2 是否有工具来识别这一点?
诊断日志条目中的 APPID 包含 IP 地址和端口,尽管以一种奇怪的方式编码(见注释 11)。APPID 被格式化
address.port.timestamp
。当连接是本地的时,“地址”部分将类似于“*LOCAL”,但显然在这种情况下它是远程的。远程地址和端口以十六进制编码,但(每个的)第一个字符被修改,以便“0”映射到“G”,“1”映射到“H”等(APPID 可能有一些内部要求出现非数字)。所以在这种情况下,远程地址是:
端口的情况相同(O107 = 0x8107 = 33031)。我不记得时间戳是如何解码的(上面链接的页面声称它是“唯一标识符”部分,但我可以发誓我记得它是一个时间戳,或基于时间戳)。