2012-05-14 82 views
1

有誰知道是否可以在我的應用程序代碼中啓動/停止EJB?例如。我有一些MDB希望在我的應用程序運行時選擇性地啓動/停止?有任何想法嗎?這可以通過JMX完成嗎?如何以編程方式啓動/停止EJB

乾杯!

+0

JBoss的版本是什麼? – Phani

+0

嗨。版本是4.2.1.GA. – Dave

回答

1

EJB規範沒有機制在應用程序中啓動/停止單個EJB(甚至模塊)。可以通過JSR 77使用JMX動態地啓動/停止應用程序。

(我看你正在使用JBoss的標籤。我在JBoss中沒有專業知識,所以我不知道它是否提供了支持你想要做什麼擴展。)

+0

謝謝。無論如何,我寧願停留在規範之內,因此看起來它不會成爲一個好手。 – Dave

1

一個EJB是不是可以「開始」或「停止」。當然,它有一個life cycle,但它更關心創建,激活,鈍化和刪除EJB 實例,它完全取決於EJB容器來管理生命週期。

簡而言之:您無法以編程方式管理EJB的生命週期。

0

每個部署的MDB都有一個管理MBean。 MBean類是org.jboss.ejb3.mdb.MdbDelegateWrapper。 JMX ObjectName因JBoss 4的不同版本而有所不同,具體取決於你部署它們的方式。假設你部署了一個名爲MDB MyMDB在一個叫做罐子myapp.jar這是在耳朵叫myapp.ear,名稱可能是:

jboss.j2ee:ear=myapp.ear,jar=myapp.jar,name=MyMDB,service=EJB3 

舊版本的JBoss 4中也有一個系統哈希碼在那裏。如果你不使用EJB3,我想認爲服務將仍然在那裏只有它將是EJB2

不管怎麼說,一旦你找到了管理豆,你可以調用停止開始操作。我們經常使用它來暫停消息傳遞。

相關問題