java - 有状态 session Bean 的超时设置?

标签 java jboss ejb-3.0

对于我的 JavaScript Web 应用程序,后端是 JBoss 应用程序服务器。
JavaScript 前端始终联系一个 servlet(前端 Controller )。
servlet 在登录时进行一次查找(加上“窄”)。
此查找是对 SFSB(有状态 session Bean)的查找。
此查找的结果存储在 HttpSession 对象中。
servlet 和 SFSB 之间的所有后续通信均由此进行 存储的远程对象。

JBossWeb (Tomcat) 的 session 超时(对于 HttpSession 对象)为 30 分钟。
因此,每次当前端没有任何 Activity 时(> 30 分钟), session 过期, session 中包含所有内容 - 也包括远程接口(interface) SFSB 的 - 已删除。

与此同时,SFSB 被钝化到磁盘 (deploy/ejb3-interceptors-aop.xml ->idleTimeoutSeconds=300)。

我的 SFSB 的默认超时是无限的 (removalTimeoutSeconds=0)。所以默认是不会自动删除钝化的sfsb。

在我的情况下,实际上是否有任何理由不将 SFSB 超时 (removalTimeoutSeconds) 设置为 30 分钟 (30*60)(与 session 超时相同)?

最佳答案

唯一的异常(exception)是与有状态 bean 关联的长时间运行的后台事务进程。如果完成时间超过指定的持续时间,则会导致异常,可能交易未激活。

因此,即使前端超时,后台进程也需要结束。在这种情况下,删除超时可能会影响处理并需要进行相应更改。

关于java - 有状态 session Bean 的超时设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9605460/

相关文章:

java - 在 Java 中找不到主类?

apache - HttpServletRequest.getRemoteAddr() 返回错误的地址

java - 为什么 WildFly 在 Intellij IDEA 的 Debug模式下抛出异常,而运行模式运行良好?

java - 使用 jboss、ant、jsp 和 prehistoric pc 时 "ear"的部署时间很烦人

java - 注入(inject)静态EJB,废话?

java - 使用 Jax-Rs 在 RestApi 调用上返回用户定义的类对象时出错

java - 在 Java 中存储 1000 位数字的最佳数据类型

java - 作为IT公司中较新的应用程序开发人员,是否足够了解所有编程语言的基础知识?

java - 获取对 JCA 适配器内的 EJB3 本地业务接口(interface)的引用

java - EJB 的默认类路径是什么?