为侦听器端口监视服务器会话池
通过启用服务器会话池监视功能并定义要对服务器会话应用的超时值,可以最大程度地减少服务器会话所使用的资源量。
关于此任务
每个侦听器端口都使用一个或多个服务器会话,这些会话存放在服务器会话池中。每个服务器会话都与一个 JMS 会话相关联,系统将从该侦听器端口配置为使用的 JMS 连接工厂的相关联 JMS 会话池中获取该会话。
缺省情况下,服务器会话池监视功能处于禁用状态。侦听器端口在使用服务器会话时,它直到关闭后才会在服务器会话池中释放该服务器会话。这意味着,直到侦听器端口关闭后才会将相关联的 JMS 会话释放回到 JMS 会话池中,即使该侦听器端口未处理任何消息亦如此。因此,该 JMS 会话所使用的资源(例如 TCP/IP 连接)可能被长时间占用,在资源局促的系统上,这可能会引起问题。
为了最大程度地减少服务器会话所使用的资源量,您必须监视服务器会话池。启用服务器会话池监视功能后,侦听器端口所使用的每个服务器会话池中的每个服务器会话都将受监视,以便确定该服务器会话自从上次被使用后耗用的时间长度。如果耗用时间大于您配置的超时值,那么将从服务器会话池中移除该服务器会话并使它的相关联 JMS 会话返回到 JMS 会话池中。所返回的 JMS 会话可能被另一应用程序复用,也可能被关闭,这取决于 JMS 会话池设置。另外,您还可以配置其他合用机制,这取决于 JMS 提供程序。
注: 如果消息侦听器服务正在以非应用程序服务器设施(非 ASF)方式工作,即,如果 NON.ASF.RECEIVE.TIMEOUT 消息侦听器服务定制属性设置为非零值,那么无法使用服务器会话池监视功能。
在 z/OS 系统上,无法选择非 ASF 方式。
过程
示例
例如,假定对一个应用程序服务器配置了侦听器端口 lp1 和 lp2。
下列规则适用:
- 未设置属性
- 如果未设置任何属性,那么服务器会话池监视功能将处于禁用状态,并且服务器会话所使用的 JMS 会话直到侦听器端口(lp1 或 lp2)或者它的相关联消息驱动的 Bean 关闭后才会返回到 JMS 会话池中。
- 设置了 SERVER.SESSION.POOL.REAP.TIME 和 SERVER.SESSION.POOL.UNUSED.TIMEOUT
- 例如,假定采用下列设置:
- SERVER.SESSION.POOL.REAP.TIME=60
- SERVER.SESSION.POOL.UNUSED.TIMEOUT=120
- 设置了 SERVER.SESSION.POOL.REAP.TIME 和 SERVER.SESSION.POOL.UNUSED.TIMEOUT,并覆盖对 SERVER.SESSION.POOL.UNUSED.TIMEOUT.lpname 设置的值
- 例如,假定采用下列设置:
- SERVER.SESSION.POOL.REAP.TIME=60
- SERVER.SESSION.POOL.UNUSED.TIMEOUT=120
- SERVER.SESSION.POOL.UNUSED.TIMEOUT.lp2=-1
- SERVER.SESSION.POOL.UNUSED.TIMEOUT.lp1=60