对 SIP 容器会话存储库进行故障诊断
对 SIP 容器会话存储库进行故障诊断时,可能需要 SIP 会话详细信息以转储到指定跟踪文件。
关于此任务
可以使用 SIP 会话内存转储实用程序来帮助调试关于 SIP 容器会话的问题。SIP 容器使用 SipContainerMBean 方法对 SIP 容器执行多种可维护性类型操作,包括通过 wsadmin 来启动服务器停顿(命令行界面)。此任务描述您可以如何使用 SipContainerMBean 方法来转储 SIP 应用程序会话和 SIP 会话信息(包含在 SIP 容器的内存间会话存储库中)。您可以通过配置 SIPContainerMBean 方法以使用各种跟踪方法来指定要转储到指定的跟踪文件的 SIP 会话详细信息。
使用 wsadmin 脚本编制启动会话转储方法时,缺省情况下,有关会话的请求信息将输出到 SystemOut.log 文件中或者发送到预定义的源中(如果已通过 setDumpMethod 方法设置)。
如果使用简明会话转储方法,那么仅为每个转储方法执行记录会话标识。
如果您使用详细会话转储方法,那么将发生以下情况:
- 将为每个转储方法执行记录事务用户详细信息以及 SIP 会话详细信息(如果存在)。
- 转储到跟踪文件的属性仅是 JSR 289 规范允许显示的属性。
- 详细方法在跟踪文件中记录以下信息:应用名称、调用标识、对话状态、创建时间和属性名称。
每个 SIP 应用程序发生跟踪记录输出;因此,所有 SIP 会话数据结构在记录之前进行排序。 您可以通过将工作分派到低优先级线程从而将 SIPContainerMBean 转储设施用于生产服务器,以便所有转储都在单独线程上,并且跟踪不会影响总体系统的调用处理延迟。
转储可区分创建了 SIP 会话的事务用户与不含 SipSession 对象的事务用户。转储中还以描绘方式包含了以下类型的 SIP 会话:已不存在的会话,不再有效或在跟踪快照时存在的会话。
方法 | 描述 |
---|---|
dumpAllSASIds() | 记录所有 SIP 应用程序会话和 SIP 应用程序会话标识。 |
dumpAllTUSipSessionIds() | 记录事务用户 (TU)(如果存在)中的若干事务用户和 SIP 会话标识。 |
方法 | 描述 |
---|---|
dumpAllSASDetails() | 记录所有 SIP 应用程序会话和 SIP 应用程序会话标识详细信息。 |
dumpAllTUSipSessionDetails() | 记录事务用户 (TU)(如果存在)中的若干事务用户以及 SIP 会话标识详细信息。 |
dumpSASDetails(String sasId) | 记录 sasId 参数指定的 SIP 应用程序会话的详细信息。 |
dumpSipSessionDetails(String sessionId) | 记录 sessionId 参数指定的 SIP 会话的详细信息。 |
注: 使用以下信息来帮助分析记录输出:
- 对于所有记录输出,第一行提供应用程序名称和若干记录。
- 输出之间的定界符是制表符。
- 会话属性之间的定界符是 ;(分号)。
过程
结果
您已将 SIP 会话内存转储实用程序配置为记录您希望对 SIP 应用程序会话和 SIP 会话使用的跟踪信息级别,以帮助您对 SIP 容器的问题进行故障诊断。
示例
以下示例说明当您在单个应用程序服务器配置中使用 SipContainerMBean 方法时 wsadmin 脚本编制命令和跟踪数据输出。
- 使用简明 dumpAllSASIds 方法:
- 使用 Jacl:
$AdminControl invoke $apps dumpAllSASIds
- Using Jython:
AdminControl.invoke (apps, "dumpAllSASIds")
此信息以下列格式提供:dump.ids.test.app1 2 local.1347524282775_8 local.1347524282775_7
[SAS_ID]
- 使用 Jacl:
- 使用详细 dumpAllSASDetails 方法并指定转储输出记录到 /opt/IBM/output.log 文件中:
- 使用 Jacl:
$AdminControl invoke $apps setDumpMethod {{FILE} {/opt/IBM/output.log}} $AdminControl invoke $apps dumpAllSASDetails
- 使用 Jython:
AdminControl.invoke (apps, "setDumpMethod", ["FILE", "/opt/IBM/output.log"]) AdminControl.invoke (apps, "dumpAllSASDetails")
此信息以下列格式提供:dump.ids.test.app1 1 local.1348147884986_2 Sep 20,2012 16:31 DumpSasDetailsAttr;
[SAS_ID] [CreationTime] [attributes]
- 使用 Jacl:
- 使用简明 dumpAllTUSipSessionIds 方法来记录事务用户的数量以及事务用户中的 SIP 会话标识:
- 使用 Jacl:
$AdminControl invoke $apps dumpAllTUSipSessionIds
- Using Jython:
AdminControl.invoke (apps, "dumpAllTUSipSessionIds")
This information is provided in the following format:DumpSessionsTest 1 local.1349965420866_1_0 true local.1349965420866_1_0_1
[TU_ID] [hasSIPSession] [SipSessionId]
- 使用 Jacl:
- 使用详细 dumpAllTUSipSessionDetails 方法来记录事务用户以及事务用户中 SIP 会话标识的详细信息:
- 使用 Jacl:
$AdminControl invoke $apps dumpAllTUSipSessionDetails
- Using Jython:
AdminControl.invoke (apps, "dumpAllTUSipSessionDetails")
This information is provided in the following format:DumpSessionsTest 1 local.1349965420866_1_0 true local.1349965420866_1_0_1 8-8548@9.148.57.128 2 false INVITE local.1349965420866_1 Jan 24,2013 14:41 TestSSAttr1; TestSSAttr2;
[TU_ID] [hasSIPSession] [SipSessionId] [Call-Id] [DialogState] [hasOutgoingTransaction] [initialMethod] [SAS_ID] [CreationTime] [attributes]
- 使用 Jacl:
- 使用详细 dumpSASDetails 方法记录由 sasID 参数指定的 SIP 应用程序会话的详细信息。
- 使用 Jacl:
$AdminControl invoke $apps dumpSASDetails $sasId
- Using Jython:
AdminControl.invoke (apps, "dumpSASDetails ", "sasId")
If the requested session does not exist, an error message is given; for example:local.1358950127352_20 Jan 23,2013 16:19 TestSASAttr1; TestSASAttr2;
ERROR: Requested session <local.1358950127352_20> does not exist.
- 使用 Jacl:
- Using the verbose dumpSipSessionDetails method to print the details
of the SIP session that is specified by the sessionId parameter:
- Using Jacl:
$AdminControl invoke $apps dumpSipSessionDetails $sessionId
- Using Jython:
AdminControl.invoke (apps, "dumpSipSessionDetails", "sessionId")
If the requested session does not exist, an error message is given; for example:local.1358950127352_21_20_1 local.1358950127352_21 Jan 23,2013 16:22 TestSSAttr1; TestSSAttr2;
ERROR: Requested session <local.1358950127352_21_20_1> does not exist.
- Using Jacl: