5.4. 可能需要指示企业 bean 子系统调整的例外


  • Stateless Jakarta Enterprise Beans 实例组不够大,或者超时太低

    javax.ejb.EJBException: JBAS014516: Failed to acquire a permit within 20 SECONDS
         at org.jboss.as.ejb3.pool.strictmax.StrictMaxPool.get(StrictMaxPool.java:109)
    Copy to Clipboard Toggle word wrap
  • 企业 bean 线程池不够大,或者企业 bean 需要比调用超时更长的时间

    java.util.concurrent.TimeoutException: No invocation response received in 300000 milliseconds
    Copy to Clipboard Toggle word wrap

5.4.1. 有状态会话 Bean 的默认全局超时值

ejb3 子系统中,您可以使用 default-stateful-bean-session-timeout 属性为服务器实例上部署的所有有状态会话 Bean (SFSB)配置默认的全局超时值。

使用 default-stateful-bean-session-timeout 属性,您可以在 ejb3 子系统中使用以下管理 CLI 操作:

  • 管理 CLI 中的 read-attribute 操作,以查看属性的当前全局超时值。
  • 使用管理 CLI 配置属性的 write-attribute 操作。

属性行为因服务器模式而异。例如:

  • 在单机服务器中运行时,配置的值将应用到应用服务器上部署的所有 SFSB。
  • 在受管域中运行服务器时,服务器组内服务器实例上部署的所有 SFSB 都接收并发超时值。
注意

当您更改属性的全局超时值时,更新的设置仅适用于新部署。您必须重新加载服务器,才能将新设置应用到当前部署。

默认情况下,属性值设为 -1, 这意味着部署的 SFSB 配置为永不超时。但是,您可以为属性配置以下类型的有效值:

  • 当您将属性值设为 0 时,属性会立即标记被 ejb 容器移除的合格 SFSB。
  • 当您设置大于 0 的属性值时,SFSB 会在 ejb 容器移除有资格的 SFSB 前保持闲置指定时间(以毫秒为单位)。
注意

您仍然可以使用预先存在的 @StatefulTimeout 注释或 stateful-timeout 元素(位于 ejb-jar.xml 部署描述符中)来配置 SFSB 的超时值。但是,设置此类配置会将默认的全局超时值覆盖 SFSB。

有两个方法用于验证您为属性设置的新值:

  • 在管理 CLI 中使用 read-attribute 操作。
  • 检查服务器配置文件的 ejb3 子系统部分。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat