Jboss 中的 Wicket 应用程序:会话过期太快
Wicket application in Jboss: session expires too quickly
我是 运行 一个托管在 Jboss EAP 6.2
服务器上的 Wicket 6.x
应用程序。
我的 web.xml
文件包含:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
这表明会话超时为 20 分钟。但是,实际超时要低得多。我没有确定确切的时间,但我可以告诉你,即使只过了 5 分钟,会话就已经过期了。当我刷新页面时,它会重新初始化并且所有状态都消失了。
我可以延长超时时间吗?它是如何控制的?
JBoss 6.x 应将默认的 http 会话超时设置为 30 分钟。
通常,正确设置 web.xml 应该覆盖默认值。
直接在 JBoss 服务器连接器上访问应用程序时,尝试测量会话超时。
https://hostname:8443/app_context_root
要么
http://hostname:8080/app_context_root
除非您自定义了端口,否则应该可以像上面那样访问。
如果您在 JBoss 之前有 Apache HTTPD 服务器并通过 Apache 代理访问它,它将关闭在 Apache HTTPD 中配置的会话。
这同样适用于任何 F5 负载均衡器,依此类推。
经过额外测试,发现问题出在 EJB 池的超时时间:
<pools>
<bean-instance-pools>
<strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
<strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
</bean-instance-pools>
</pools>
将值更改为 20 分钟解决了问题
我是 运行 一个托管在 Jboss EAP 6.2
服务器上的 Wicket 6.x
应用程序。
我的 web.xml
文件包含:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
这表明会话超时为 20 分钟。但是,实际超时要低得多。我没有确定确切的时间,但我可以告诉你,即使只过了 5 分钟,会话就已经过期了。当我刷新页面时,它会重新初始化并且所有状态都消失了。
我可以延长超时时间吗?它是如何控制的?
JBoss 6.x 应将默认的 http 会话超时设置为 30 分钟。 通常,正确设置 web.xml 应该覆盖默认值。
直接在 JBoss 服务器连接器上访问应用程序时,尝试测量会话超时。
https://hostname:8443/app_context_root 要么 http://hostname:8080/app_context_root
除非您自定义了端口,否则应该可以像上面那样访问。
如果您在 JBoss 之前有 Apache HTTPD 服务器并通过 Apache 代理访问它,它将关闭在 Apache HTTPD 中配置的会话。 这同样适用于任何 F5 负载均衡器,依此类推。
经过额外测试,发现问题出在 EJB 池的超时时间:
<pools>
<bean-instance-pools>
<strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
<strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
</bean-instance-pools>
</pools>
将值更改为 20 分钟解决了问题