JSF会话管理和调优

时间:2011-10-17 20:34:04

标签: session jsf websphere myfaces

所有

我正在研究如何缩减我们的JSF应用程序在每个用户基础上消耗的会话内存量。

我们正在使用在IBM Websphere 7.0补丁19上运行的MyFaces 1.1.7和Tomahawk 1.1.5。(目前无法升级其中任何一项)

IBM的指导原则是会话大小应小于5k - 平均大约2.5k,以免影响服务器和会话复制的性能。我们目前正在使用Memory to Memory,但正在考虑按照IBM的建议迁移到数据库。

我们的网站每位用户的运行速度约为35M。我们将视图状态的数量从100更改为10,并将其降低到大约4M。

我们有几个支持bean,它们目前是会话范围,正在考虑将它们更改为请求范围。

我还发现了以下内容:http://www.econsulting.nl/images/pdf/Tuning%20JSF%20Applications-%20J-Spring%202008.pdf似乎有很多关于JSF如何处理页面上某些内容的信息。目前仍在调查中,以确保所陈述的内容有意义。

我还在某处读过,无论托管支持bean是会话还是请求范围,视图状态仍将具有bean及其内容。因此视图状态大小不会改变。寻求对此的澄清。

问题是其他人面临同样的问题,其中JSF应用程序倾向于为给定的用户会话消耗大量内存吗?

使用JSF时,有哪些减少此大小的最佳做法是什么?

运行JSF应用程序时IBM WebSphere上的会话复制问题?

有没有关于JSF / MyFaces如何利用堆内存的文档 - Young vs old还是应该在这个范围内考虑?垃圾收集调整?

我们看到的结果是,如果用户跳到另一台服务器,会话数据不会出现,因为数据有多大以及复制需要多长时间。用户体验问题。

我们已经看到一个问题,即会话中对象的更改似乎没有正确更新,并且已经完成了一些会话管理调优,我们在其中自定义设置以便写出所有会话属性。查看.jar​​文件时,当会话中对象的内容发生更改时,myFaces会正确地进行调用。因此,WebSphere会话侦听器应该接受这种更改。

1 个答案:

答案 0 :(得分:2)

您可以尝试在客户端保存视图状态,但我不确定MyFaces 1.1.7是否已支持此