【问题标题】:Concurrent access Stateless Sessionbean from Singleton来自 Singleton 的并发访问无状态会话 Bean
【发布时间】:2017-08-29 09:20:53
【问题描述】:

如果我的理解是正确的,容器不会对 SLSB 进行并发调用。调用被序列化或创建一个新的 SLSB 实例。我的问题是:

从具有 ConcurrencyManagement.BEAN 的单例访问 SLSB 是否安全,并发调用可能发生在哪里?

如果安全的话,在 SLSB 内部使用 entitymanager 实例是否也安全,因为 entitymanager 不是线程安全的,如果 SLSB 实例在不同线程之间共享,则 entitymanager 也在线程之间共享。

提前致谢!

【问题讨论】:

    标签: java concurrency singleton entitymanager stateless-session-bean


    【解决方案1】:

    两个问题都可以,这是安全的。 一个会话 bean,无状态或有状态一次只能由一个线程使用。

    来自 EJB 3.1 规范:

    容器必须确保只有一个线程可以执行无状态或有状态会话 bean 随时实例。

    http://download.oracle.com/otndocs/jcp/ejb-3.1-pfd-oth-JSpec/

    如果 2 个并发调用来自您的单例,则这些调用将由 2 个不同的 SLSB 实例提供服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 2012-06-23
      • 2011-03-31
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      相关资源
      最近更新 更多