javax.servlet.ServletException:会话对象内部:id:溢出会话

时间:2015-08-01 06:56:56

标签: websphere websphere-portal

我在IBM Websphere Portal服务器上部署了一个Portlet,在忙碌的时候,当我有很多用户时,Portal服务器显示“此portlet不可用”,当你点击它的Url时。

在日志中显示以下异常......

ServletWrappe E SRVE0068E:无法在servlet MyCystomPortlet上调用service()方法。抛出异常:javax.servlet.ServletException: 会话对象内部: id:溢出会话

在对谷歌进行一些研究后,我相信发生了什么事情,即并发会话太多了。首先,有人可以向我确认这种理解是否正确?

其次我相信Websphere中有一些设置可以解决这个问题。内存会话数最大值。目前它已设置为1000.我想将其增加到1500但我不确定如果这个太高会如何解决,因此会冒着服务器崩溃的风险。有人可以就此提出建议吗?

最后是在我的portlet中减少会话超时是另一种尝试修复它的有效方法吗?

由于

1 个答案:

答案 0 :(得分:1)

如果用户在没有注销的情况下放弃会话,缩短更短的超时将有所帮助,但通常最好将其从默认值缩短30分钟。

您可以增加内存中保存的最大会话数,但您还应该增加最大堆大小。但请确保您的操作系统有足够的内存资源来处理增加的堆,否则如果系统开始交换,您的性能将非常差。

因此,尝试仅针对失败的应用程序进行更改(您可以覆盖每个应用程序的会话设置),不要更改Web容器中的全局设置,因为它们默认应用于所有应用程序。