2015-06-26 47 views
1

EJB無狀態bean是線程安全的,因爲它們可以被許多客戶端同時訪問而不用擔心,實際上每個客戶端都將由不同的實例提供服務。EJB存根線程安全嗎?

在客戶端我們使用對特定無狀態EJB的代理引用。 EJB代理/遠程存根還可以線程調用嗎?

我的意思是,如果我的Spring控制器是帶有EJB的Autowired,它的方法一次可能被很多線程調用。

這一切是線程安全的嗎?

回答

2

幾年前,我在RMI郵件列表(已停用)上詢問了有關RMI/JRMP存根的類似問題。 Sun的答案是,除非Javadoc反駁,否則有一種推測認爲JDK類是線程安全的。

所以假設它仍然好,看起來好,答案是'是'。考慮客戶端連接管理,答案也必須是「是」。

+0

我很高興能和你一樣懷疑,因爲沒有人關心我是在開始認爲我的問題沒有任何意義:) – GionJh

+0

它是有道理的,但正確回答是另一回事。這可能被認爲是理所當然的,但如果提出質疑,則很難提供參考或引用。在我想起之前,我不得不思考很長一段時間。 – EJP

+1

非常感謝你 – GionJh

-1

http://docs.oracle.com/javaee/6/tutorial/doc/gipjg.html「當一個客戶端調用無狀態bean的方法,bean的實例變量可能含有特定於該客戶端,但僅用於調用期間的狀態」。這加上有一個無狀態bean池(爲什麼需要合併無狀態對象 - 一個應該就足夠了)這一事實表明無狀態bean本質上不是線程安全的。 EJB容器很可能確保「同一個」bean上的併發調用最終在不同的池化實例上執行

+0

問題是關於存根,而不是服務器端。 – EJP