![[z/OS]](../images/ngzos.gif)
计时器概述
计时器定义完成特定操作时所需时间的限制。计时器控制的操作类型确定对该计时器设置的时间段何时开始生效。
配置消息驱动的 Bean 以使其使用侦听器端口或激活规范时的相关计时器属性
对于 WebSphere® Application Server V7 及更高版本,不推荐使用侦听器端口。因此,应该进行规划,以便将 IBM MQ 消息驱动的 Bean 部署配置由使用侦听器端口迁移为使用激活规范。但是,不应该开始此迁移,除非您确定应用程序不必在低于 WebSphere Application Server V7 的应用程序服务器上工作。在一些情况下,您将继续使用 IBM MQ 消息启动的 Bean 部署和侦听器端口,而在另一些情况下,您将使用 IBM MQ 消息启动的 Bean 部署和激活规范。
下列属性不适用于激活规范驱动的消息驱动的 Bean 部署。即,这些属性要求您将其配置成使用 IBM MQ 消息启动的 Bean 部署和侦听器端口:
- control_region_mdb_request_timeout
- control_region_mdb_queue_timeout_percent
- server_region_mdb_stalled_thread_dump_action
下列属性适用于激活规范驱动的消息 Bean 部署。即,这些属性要求您将其配置成使用 IBM MQ 消息启动的 Bean 部署和激活规范:
- control_region_wlm_dispatch_timeout
- control_region_iiop_queue_timeout_percent
- server_region_iiop_stalled_thread_dump_action
按照指示信息配置这些属性时,请记住哪些属性适用于侦听器端口,哪些属性适用于激活规范。
大多数计时器都具有一个定义合理时间段的缺省值,在该时间段内应完成特定操作。达到对计时器指定的时间限制时,产品将执行下列其中一个操作:
- 如果达到时间限制,但尚未将客户机请求分派给服务方,那么向客户机发送一个次代码。
- 如果达到时间限制,而客户机请求正由服务方中运行的应用程序组件处理,那么用 EC3 ABEND 异常结束服务方。
在这种情况下,此服务方中的所有线程均被终止。服务方也会被终止,以防止因资源被应用程序挂起而导致其他请求无法使用这些资源。在服务方被终止后,工作负载管理 (WLM) 将启动新的服务方以代替被终止的服务方。
避免故障: 事务生存期总超时和最长事务超时的宽限期比指定的超时值大约多 4 分钟。此扩展时间段必须耗尽,才会执行 ABEND。gotcha
不同类型的计时器可能同时达到其时间限制,因为它们控制的操作可能存在一定程度的重叠。例如,假设应用程序服务器接收到 IIOP 客户机请求,该请求将由使用事务支持的应用程序组件处理。在这种情况下,如下两个计时器可能同时倒计时:
- control_region_wlm_dispatch_timeout,它限制客户机请求在 WLM 队列上等待的时间,以及应用程序组件处理请求所需的时间
- transaction_defaultTimeout,它限制控制器在等待落实或回滚事务时所用的时间
这些计时器仅在处理事务期间的时间上有重叠。要确定哪个计时器导致了错误,可使用特定于症状的次代码或 EC3 异常结束原因码。
为了尽快确定发生超时以及防止进一步的资源锁定,发生超时情况后,WebSphere Application Server 不允许在事务路径中处理更多事务性工作。这对于以下情况同样成立:尝试在当前事务上下文下执行工作以及尝试在其他事务上下文下执行工作。
用于控制处理行为的计时器可划分为五种常用类型。这些常用类型及其控制的操作在下表中作了总结。
常用类型 | 计时器处理 | 超时症状 |
---|---|---|
输入 | 输入计时器定义接收完成请求的限制;当建立到 J2EE 服务器的连接时开始倒计时。通信协议(HTTP、HTTPS)确定用于请求的计时器。 | 会话被关闭。 |
会话 | 会话计时器定义使用会话连接的限制。会话一变得空闲,这些计时器就开始倒计时。 | 会话被关闭。 |
WLM 分派 | 分派计时器控制完成客户机请求在服务方区域中用多长时间等待被分派以处理。对于某些分派计时器,可以指定其他值以指定分派时间的百分比作为 WLM 队列的超时值。如果超出此时间,那么将从 WLM 队列中移除工作,但不会对服务方发出异常结束命令。当控制器将请求放置在 WLM 队列上时倒计时开始。根据特定计时器,时间限制可能不仅包括在 WLM 队列上的等待时间,还包括处理对客户机请求的响应所需的时间。 | 消息 BBOO0327I 适用于所有超时。 如果服务方被终止,那么消息 BBOO0232W 和 EC3 ABEND 显示在服务方中,带有下列其中一个原因码:
|
事务 | 事务计时器定义以下操作用多长时间:
|
消息 BBOT0003W 或 BBOO0232W 和 EC3 ABEND 显示在服务方中,带有下列其中一个原因码:
|
输出 | 输出计时器定义控制器用多长时间等待接收客户机请求的输出。当将客户机请求分派到服务方供处理时倒计时开始。通信协议(HTTP 或 HTTPS)确定用于请求的计时器。 | 消息 BBOO0232W 和 EC3 ABEND 显示在服务方中,带原因码 04130007。 |