![[z/OS]](../images/ngzos.gif)
监视分派请求
使用分派进度监视器 (DPM) 以指定的时间间隔收集关于某个已分派请求的数据(如果在此时间间隔过去之后仍在处理该已分派请求的话)。在收集数据之后,新的时间间隔即会开始。与第一个时间间隔一样,此时间间隔过去后,会再次收集数据。只要 DPM 活动,并且请求仍在服务方中运行,就会在每个时间间隔结束时继续收集数据。
开始之前
- 确定要针对哪种协议类型监视请求。可以将 DPM 配置为收集关于使用 IIOP、HTTP、HTTPS、MDB、SIP 或 SIPS 协议的请求的数据。还可以将 DPM 配置为从 CRA 收集请求的数据,这些请求通过控制器定向来面向服务方排队。
- 确定要 DPM 收集每个请求的数据的频率。例如,您可能只想收集关于长时间运行的请求的数据。在这种情况下,为时间间隔设置的时间长度应可防止收集关于快速完成的请求的数据。
- 确定要 DPM 在每个时间间隔结束时收集的数据类型。可以配置 DPM 以执行 SVC 转储、Java™ 核心转储、堆转储、Java Tdump 或收集追溯数据。
关于此任务
如果对于请求正在使用的协议(例如 HTTP 或 IIOP),DPM 不活动,那么将请求分派到服务方时,DPM 不会监视该请求。即使当您在分派该请求后发出 modify 命令以动态地对该协议启动 DPM,DPM 仍不会监视该请求。对协议启用 DPM 之后,DPM 只监视使用该协议的新请求。
DPM 时间间隔和转储操作初始是从 WLM 分类文件获取的。修改 DPM 命令将覆盖整个服务器的这些值。重置 DPM 时间间隔或转储操作将关闭覆盖,以便从 WLM 分类文件再次获取重置参数的值。
如果对于正用于请求的协议 DPM 是活动的,那么在服务方中分派该请求之前,可以进行动态更改。这些动态更改可以针对指定的时间间隔以及要执行的转储操作进行。所进行的任何动态更改会在已分派请求的当前时间间隔结束时生效,并从新请求的第一个时间间隔开始。
过程
发出以下 modify 命令以配置并启用 DPM:
f server,dpm,[IIOP=nnn | HTTP=nnn | HTTPS=nnn
| MDB=nnn | CRA=nnn | SIP=nnn | SIPS=nnn | OLA=nnn | INTERVAL=nnn
| dump_action=xxx | clear_all | reset_all]
在此命令中:
- nnn 占位符指定特定协议类型或 CRA 请求的时间间隔长度(以秒计)。nnn 占位符的值必须是整数 0 - 255 或 reset。值 0 表示协议没有时间间隔并且将对使用该协议的请求禁用 DPM。值为 reset 表示将 DPM 时间间隔的控制返回给 WLM 分类文件。
- xxx 占位符的有效值为 SVCDUMP、JAVACORE、HEAPDUMP、TRACEBACK、JAVATDUMP、NONE 或 RESET。值为 RESET 表示将转储操作的控制返回给 WLM 分类文件。
- 在 INTERVAL 参数上指定的值将所有六个协议的 DPM 时间间隔设置为同一个值。
- clear_all 值会将所有相关请求协议的时间间隔设置为 0 并将转储操作设置为 None。
- reset_all 值会重置所有 DPM 时间间隔和 dump_action 参数。DPM 时间间隔和转储操作的控制将返回给 WLM 分类文件。
当对一个或多个与 DPM 相关的协议指定非零值时,会自动对那些协议启用此功能。要对特定协议禁用 DPM,请将该协议的参数设置为 0。要对所有与 DPM 相关的协议禁用 DPM,请将 dump_action 参数设置为 NONE。此设置会覆盖为特定协议的参数指定的任何值。
结果
对于某个协议,当 DPM 活动时,在时间间隔过去后会收集追溯数据,并会将类似如下示例的信息写入服务器日志文件:
BossLog: { 0175} 2008/05/05 12:16:01.418 01 SYSTEM=SY1 SERVER=BBOS001
PID=0X00010144 TID=0X00000034 0XF6FAF20 c=./bbgrjtr.cpp at line:+885 ...
BBOJ0118I: ThreadDetails: ASID = 005B, TCB = 0X008CBE88, Request = fffff503,
Is JVM Blocked = false, Tried to interrupt = false, Given up = false,
Internal Work Thread = false, Hung Reason = Not Hung,
SR Dispatch Time = 2008/05/05 12:15:31.371625,
CTL Receive Time = 2008/05/05 12:15:31.366693,
CTL Queued to WLM Time = 2008/05/05 12:15:31.371328,
Details = , ODI Details = .JVM INTERRUPTIBLE THREAD, Monitor ACTIVE.
BossLog: { 0176} 2008/05/05 12:16:01.423 01 SYSTEM=SY1 SERVER=BBOS001 PID=0X00010144
TID=0X00000034 0XF6F9DE0 c=./bbgrjtr.cpp at line:+885 ...
BBOJ0117I: JAVA THREAD STACK TRACEBACK FOR THREAD WebSphere:ORB.thread.pool t=008cbe88:
Dispatch Progress Monitor
Traceback for thread WebSphere:ORB.thread.pool t=008cbe88:
com.ibm.ws390.orb.ClientDelegate.invokeRequestCFW(Native Method)
com.ibm.ws390.orb.ClientDelegate.commonInvoke(ClientDelegate.java:998)
com.ibm.ws390.orb.ClientDelegate.invoke(ClientDelegate.java:845)
org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:484)
com.ejb.test.hello.second._SayHelloSecondHome_Stub.create(_SayHelloSecondHome_Stub.java:207)
com.ejb.test.hello.first.SayHelloFirstBean.sayHelloOne(SayHelloFirstBean.java:76)
com.ejb.test.hello.first.EJSRemoteStatelessSayHelloFirst_67c1d243.
sayHelloOne(EJSRemoteStatelessSayHelloFirst_67c1d243.java:41)
下一步做什么
- 查看当前 DPM 设置。如果要检查 DPM 的当前设置,那么可以发出以下 display 命令:
f <varname>server</varname>,display,dpm
将显示以下消息作为对此命令的响应:
BBOO0361I DISPATCH PROGRESS MONITOR (DPM) SETTINGS: IIOP(000):HTTP(010):HTTPS(015) :MDB(000):SIP(020):SIPS(000):OLA(000),DUMP_ACTION (JAVATDUMP)
从 V8.5.5.1 开始,将显示与以下消息类似的消息作为对此命令的响应:BBOO0361I DISPATCH PROGRESS MONITOR (DPM) SETTINGS: IIOP(000):HTTP(000):HTTPS(015):MDB(000):SIP(020):SIPS(000):OLA(000):CRA(015) DUMP_ACTION(TRACEBACK) BBOO0188I END OF OUTPUT FOR COMMAND DISPLAY,DPM
- 修改希望 DPM 执行的转储操作。可以使用 modify 命令或 server_region_dpm_dump_action WebSphere® 变量来修改希望
DPM 执行的转储操作。要使用 modify 命令来修改希望 DPM 执行的转储操作,请发出以下命令并指定相应的转储操作:
f server,dpm,dump_action=[SVCDUMP | JAVACORE | HEAPDUMP | TRACEBACK | JAVATDUMP | NONE ]
要使用 server_region_dpm_dump_action WebSphere 变量来修改希望 DPM 执行的转储操作,请完成以下操作:- 在管理控制台中,单击 。
- 从可用的服务器、节点和单元列表中选择适当的节点或单元,然后单击 。
- 在名称字段中指定 server_region_dpm_dump_action,并在值字段中指定 SVCDUMP、JAVACORE、HEAPDUMP、TRACEBACK、JAVATDUMP 或 NONE。