如何使WebLogic会话超时更加一致

问题描述 投票:0回答:1

我正在使用WebLogic 12c,并且必须实现一项功能,该功能会在浏览器关闭时终止会话。我有一个来自客户端的“心跳”,它每隔一定秒数就会进行一次网络呼叫。 Weblogic配置为在3个心跳缺失后使会话超时。这在大多数情况下都非常有效。.除非您正在观看日志。

因此,我发现有趣的是,WebLogic实际上并没有在指定的超时时间内将会话超时。我有一个会话侦听器,可以在用户实际注销时进行登录并处理其他一些注销功能。我观察到的是,这些日志消息不是在该超时时间准确发生的。取而代之的是,WebLogic似乎是“随机”地决定何时清除死掉的会话。好处是,如果客户端尝试使用相同的凭据重新连接,WebLogic将看到会话已超时并触发注销功能。不幸的是,这对我来说真的行不通。在WebLogic决定清除死会话之前,至少需要有一些“最长时间”。

我觉得这个问题类似于Java中的垃圾回收。每当有感觉发生时,它就会发生。

因此,简而言之,我的问题是:是否可以在WebLogic中确定会话清除线程的优先级,还是可以将WebLogic配置为每X秒触发会话清除线程?

java session weblogic weblogic12c thread-priority
1个回答
1
投票

WebLogic使用第二个名为“ invalidation-interval-secs”的参数来配置何时真正清除http会话对象。文档说:

https://docs.oracle.com/cd/E11035_01/wls100/webapp/weblogic_xml.html

© www.soinside.com 2019 - 2024. All rights reserved.