EJB存根是否安全线程安全?

时间:2015-06-26 15:51:49

标签: java spring thread-safety ejb

EJB无状态bean在某种意义上是线程安全的,它们可以被许多客户端同时访问而无需担心,实际上每个客户端都将由不同的实例提供服务。

在客户端,我们使用对特定无状态EJB的代理引用。 EJB代理/远程存根是否也可以安全地调用?

我的意思是,如果我的Spring控制器是带有EJB的Autowired,那么它的方法可能会被许多线程一次调用。

这一切都是线程安全吗?

2 个答案:

答案 0 :(得分:2)

几年前我在RMI邮件列表(已解散)上询问了一个类似的关于RMI / JRMP存根的问题。 Sun的答案是,假设JDK类被认为是线程安全的,除非Javadoc声明相反。

因此,假设仍然保持良好状态,这似乎是答案是'是'。考虑到客户端连接管理,答案也必须是'是'。

答案 1 :(得分:-1)

http://docs.oracle.com/javaee/6/tutorial/doc/gipjg.html"当客户端调用无状态bean的方法时,bean的实例变量可能包含特定于该客户端的状态,但仅限于调用的持续时间&#34 ; 。这加上有一个无状态bean池(为什么需要集合无状态对象 - 一个应该足够)的事实表明无状态bean本质上不是线程安全的。 EJB容器很可能确保在"相同的"上进行并发调用。 bean最终会出现在不同的池化实例上