优化:Myfaces:NUMBER_OF_VIEWS_IN_SESSION
Posted
技术标签:
【中文标题】优化:Myfaces:NUMBER_OF_VIEWS_IN_SESSION【英文标题】:Optimized:Myfaces:NUMBER_OF_VIEWS_IN_SESSION 【发布时间】:2017-10-09 02:22:15 【问题描述】:我正在使用 primefaces 6.0/myfaces 进行 Web 应用程序开发。我们需要同时 3000 个用户将使用我们的应用程序。我只想知道 3000 个用户的参数值应该是多少?我应该考虑哪些因素?如果我减少我得到 viewExpiredException 的数量,我已经经历过。我们的 web.xml 中有这个配置
<context-param>
<param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name>
<param-value>128</param-value>
</context-param>
``
【问题讨论】:
【参考方案1】:这 3000 个用户将有 3000 个不同的会话,因此从这个意义上说,此设置与此处无关。
如果您有一个 AJAXical 应用程序,那么基本上一个打开的页面 = 一个视图。您真的希望您的用户一次打开多达 128 个页面吗?
如果您预计会有很多用户,则实际上应该降低此设置,否则您可能会因为保留太多视图而导致内存不足。视图有两种过期方式:当队列已满并添加新视图时,或者当会话终止时。有了这么大的队列,只要会话处于活动状态,您的所有视图都将保存在内存中。即使用户很久以前关闭了页面,它的视图仍将继续存在并占用内存。
这一切取决于很多因素:你的视图有多大的内存,你在服务器上有多少内存,典型用户的浏览习惯是什么,会话超时是多少......也许你可以切换到客户端状态保存。也许你应该研究一下集群和负载平衡。
【讨论】:
一页=一次浏览?如果我在同一页面上设置 param-value=8 如果我点击 8 次,我会得到 viewExpiredException。 @Raj,那么您可能没有使用 AJAX。每个非 AJAX POST 都会创建一个新视图,就像每个 GET 一样。见***.com/a/16050424/1341535。 非常感谢您的回答!!以上是关于优化:Myfaces:NUMBER_OF_VIEWS_IN_SESSION的主要内容,如果未能解决你的问题,请参考以下文章
Primefaces,icefaces,myfaces跟JSF哪个功能强大,各自的优缺点
为啥我的 Glassfish3.1.2.2/MyFaces2.1.9/JSF 管理的性能优于 TomEE1.5+/CDI 管理的性能?