【发布时间】:2012-08-22 20:19:30
【问题描述】:
想象这样一种情况,用户使用某个使用 ViewScoped 支持 bean 的 JSF 页面。如果导航到应用程序中的不同页面,将自动调用 bean 的自定义析构函数(即@PreDestroy)。如果用户正确关闭选项卡/窗口,则可以通过 AJAX 在服务器上调用远程命令以释放 bean。
但是,如果只是用户侧的电源故障并且PC立即关闭或浏览器被不正确地终止以至于无法调用JS代码怎么办。这意味着 bean 将使用它的资源永远挂在服务器端。 这样的问题怎么解决?
我想到的解决方案之一是在页面上放置一个 PrimeFaces 轮询元素,该元素将通过远程命令“ping”托管 bean。如果 bean 注意到超时,那么它将终止自身以释放所有资源。这个问题有更好的解决方案吗?谢谢。
【问题讨论】:
-
这不是您问题的答案,但如果您的支持 bean 是那么“重”,请考虑拥有一个执行实际业务逻辑的 EJB 池,例如。让视图 bean 将命令传达给由 EJB(池?)运行的模拟器。
标签: jakarta-ee jsf-2 managed-bean