我在IBM Websphere Portal服务器上部署了一个Portlet,在忙碌的时候,当我有很多用户时,Portal服务器显示“此portlet不可用”,当你点击它的Url时。
在日志中显示以下异常......
ServletWrappe E SRVE0068E:无法在servlet MyCystomPortlet上调用service()方法。抛出异常:javax.servlet.ServletException: 会话对象内部: id:溢出会话
在对谷歌进行一些研究后,我相信发生了什么事情,即并发会话太多了。首先,有人可以向我确认这种理解是否正确?
其次我相信Websphere中有一些设置可以解决这个问题。内存会话数最大值。目前它已设置为1000.我想将其增加到1500但我不确定如果这个太高会如何解决,因此会冒着服务器崩溃的风险。有人可以就此提出建议吗?
最后是在我的portlet中减少会话超时是另一种尝试修复它的有效方法吗?
由于
答案 0 :(得分:1)
如果用户在没有注销的情况下放弃会话,缩短更短的超时将有所帮助,但通常最好将其从默认值缩短30分钟。
您可以增加内存中保存的最大会话数,但您还应该增加最大堆大小。但请确保您的操作系统有足够的内存资源来处理增加的堆,否则如果系统开始交换,您的性能将非常差。
因此,尝试仅针对失败的应用程序进行更改(您可以覆盖每个应用程序的会话设置),不要更改Web容器中的全局设置,因为它们默认应用于所有应用程序。