![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
对象请求代理通信跟踪
对象请求代理 (ORB) 通信跟踪,通常指的是 CommTrace,其包含应用程序在运行时 ORB 发送和接收通用 ORB 间协议(GIOP)消息的序列。
在问题确定期间,了解客户机对服务器或服务器对服务器交互作用的低级别顺序可能是必需的。本主题使用日志示例的跟踪条目来说明日志的内容,并帮助您理解交互作用序列。它仅关注 GIOP 消息而不论述介入 GIOP 消息边界时显示的其他详细跟踪信息。
位置
启用 ORB 跟踪后,此信息放在
app_server_root/profiles/profile_name/logs/server_name/trace.log 目录中。
启用 ORB 跟踪后,此信息放在
profile_root/logs/server_name/trace.log 目录中。
关于 ORB 跟踪文件
以下是启用 ORB 跟踪时创建的文件的属性。
- 只读
- 由管理功能更新
- 使用此文件本地化和解决与 ORB 相关的问题。
如何解释输出
以下部分参阅在本主题较后部分出现的样本日志输出。
- 识别信息
- 根据进程是发送消息还是接收消息,通过包含 OUT GOING: 或 IN COMING: 的行识别启动 GIOP 消息。识别行条目下面的是一系列项(为方便起见进行了格式化),这些项带有从识别此特定消息交互中的端点的原始消息抽取的信息。请参阅两个示例中的第 3 行到第 13 行。已格式化的项包括以下各项:
- GIOP 消息类型(第 3 行)
- 记录消息的日期和时间(第 4 行)
- 有助于识别记录消息时在运行的线程的信息以及其他特定于线程的信息(第 5 行)
- 用于交互的本地和远程 TCP/IP 端口(第 6 行到第 9 行)
- GIOP 版本(字节顺序)指示消息是否是一个片段,以及消息的大小(第 10 行到第 13 行)
- 请求标识、预期的响应和应答状态
- 遵循引进消息的信息,请求标识是 ORB 生成的整数。它用于识别每个请求并将每个请求与相应的应答关联。此关联是必需的,因为 ORB 可以从多个客户机接收请求,并且必须能够将每个应答与发出它的相应请求相关联。
- 请求示例中的第 15 行到第 17 行显示请求标识,后跟到需要响应的接收端点的指示(CORBA 支持为不需要的响应发送单向请求。)
- Sample Log Entry - GIOP Reply 中的第 15 行显示了请求标识;第 33 行显示了完成先前发送的请求后接收到的应答状态。
- 对象键
- 请求示例中的第 18 行到第 20 行显示对象键,ORB 使用该内部说明来识别和查找预定用来接收请求消息的目标对象。对象键未被标准化。
- 操作
- 请求示例中的第 21 行显示在接收端点中启动目标对象的操作的名称。在该示例中所请求的特定操作命名为 _get_value。
- 服务上下文信息
- 为了方便起见,消息中的服务上下文也已格式化。每个 GIOP 消息都可能包含一系列由每个端点发送和接收的服务上下文。用标识唯一地识别的服务上下文包含特定交互中使用的数据,如安全性、字符代码集转换和 ORB 版本信息。某些服务上下文的内容由 OMG 标准化并指定,而其他服务上下文是专有的并由每个供应商指定。IBM 特定的服务上下文用以 0x4942 开头的标识识别。
请求示例中的第 22 行到第 41 行说明典型服务上下文条目。第 22 行中显示请求消息中的三个服务上下文。每个服务上下文的标识、数据长度和原始数据在下一行打印。第 23 行到第 25 行显示 IBM 专有信息,用 0x49424D12 标识指出这些上下文。第 26 行到第 41 行显示两个标准服务上下文,用 0x6 标识(第 26 行)和 0x1 标识(第 39 行)指出他们。
Sample Log Entry - GIOP Reply 中的第 16 行到第 32 行演示了两个服务上下文,一个是 IBM 专有上下文(第 17 行),另一个是标准化的上下文(第 20 行)。
要获取标准化的服务上下文的定义,请参阅 CORBA 规范。服务上下文 0x1(CORBA::IOP::CodeSets)用于发布 ORB 支持的字符代码集,以协商和确定传输字符数据使用的代码集。服务上下文 0x6(CORBA::IOP::SendingContextRunTime)由远程方法调用使用,它通过因特网 ORB 间协议(RMI-IIOP)来向 SendingContextRuntime 对象提供具有 IOR 的接收端点。IBM 服务上下文 0x49424D12 用来发布 ORB PartnerVersion 信息以支持发送和接收 ORB 之间的发行版到发行版的互操作性。
- 数据偏移量
- 请求示例中的第 42 行显示偏移量(与 GIOP 消息的开头相关),其中找到了请求或应答消息的剩余主体。消息的该部分是特定于每个操作的,并随着操作的改变而改变。因此当 ORB 不知道该特定内容时,这部分消息未格式化。该偏移量作为在原始 GIOP 消息转储中快速查找特定操作数据的帮助打印,它遵循数据偏移量。
- 原始 GIOP 消息转储
- 从请求示例中第 45 行以及 Sample Log Entry - GIOP Reply 中的第 36 行开始,整个 GIOP 消息的原始转储以十六进制格式打印。请求消息包含给定操作所需的参数,而应答消息包含给定操作所需的返回值和输出参数的内容。为了简洁起见,图中未显示所有的原始数据。
样本日志条目 - GIOP 请求
1. OUT GOING: 3. Request Message 4. Date: April 17, 2002 10:00:43 PM CDT 5. Thread Info: P=842115:O=1:CT 6. Local Port: 1243 (0x4DB) 7. Local IP: jdoe.austin.ibm.com/192.168.1.101 8. Remote Port: 1242 (0x4DA) 9. Remote IP: jdoe.austin.ibm.com/192.168.1.101 10. GIOP Version: 1.2 11. Byte order: big endian 12. Fragment to follow: No 13. Message size: 268 (0x10C) -- 15. Request ID: 5 16. Response Flag: WITH_TARGET 17. Target Address: 0 18. Object Key: length = 24 (0x18) 4B4D4249 00000010 BA4D6D34 000E0008 00000000 00000000 21. Operation: _get_value 22. Service Context: length = 3 (0x3) 23. Context ID: 1229081874 (0x49424D12) 24. Context data: length = 8 (0x8) 00000000 13100003 26. Context ID: 6 (0x6) 27. Context data: length = 164 (0xA4) 00000000 00000028 49444C3A 6F6D672E 6F72672F 53656E64 696E6743 6F6E7465 78742F43 6F646542 6173653A 312E3000 00000001 00000000 00000068 00010200 0000000E 3139322E 3136382E 312E3130 310004DC 00000018 4B4D4249 00000010 BA4D6D69 000E0008 00000000 00000000 00000002 00000001 00000018 00000000 00010001 00000001 00010020 00010100 00000000 49424D0A 00000008 00000000 13100003 39. Context ID: 1 (0x1) 40. Context data: length = 12 (0xC) 00000000 00010001 00010100 42. Data Offset: 118 45. 0000: 47494F50 01020000 0000010C 00000005 GIOP............ 46. 0010: 03000000 00000000 00000018 4B4D4249 ............KMBI 47. 0020: [remainder of message body deleted for brevity]
样本日志条目 - GIOP 应答
1. IN COMING: 3. Reply Message 4. Date: April 17, 2002 10:00:47 PM CDT 5. Thread Info: RT=0:P=842115:O=1:com.ibm.rmi.transport.TCPTransportConnection 5a (line 5 broken for publication). remoteHost=192.168.1.101 remotePort=1242 localPort=1243 6. Local Port: 1243 (0x4DB) 7. Local IP: jdoe.austin.ibm.com/192.168.1.101 8. Remote Port: 1242 (0x4DA) 9. Remote IP: jdoe.austin.ibm.com/192.168.1.101 10. GIOP Version: 1.2 11. Byte order: big endian 12. Fragment to follow: No 13. Message size: 208 (0xD0) -- 15. Request ID: 5 16. Service Context: length = 2 (0x2) 17. Context ID: 1229081874 (0x49424D12) 18. Context data: length = 8 (0x8) 00000000 13100003 20. Context ID: 6 (0x6) 21. Context data: length = 164 (0xA4) 00000000 00000028 49444C3A 6F6D672E 6F72672F 53656E64 696E6743 6F6E7465 78742F43 6F646542 6173653A 312E3000 00000001 00000000 00000068 00010200 0000000E 3139322E 3136382E 312E3130 310004DA 00000018 4B4D4249 00000010 BA4D6D34 000E0008 00000001 00000000 00000002 00000001 00000018 00000000 00010001 00000001 00010020 00010100 00000000 49424D0A 00000008 00000000 13100003 33. Reply Status: NO_EXCEPTION 36. 0000: 47494F50 01020001 000000D0 00000005 GIOP............ 37. 0010: 00000000 00000002 49424D12 00000008 ........IBM..... 38. 0020: [remainder of message body deleted for brevity]