2012-05-14 59 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

不管怎么说,一旦你找到了管理豆,你可以调用停止开始操作。我们经常使用它来暂停消息传递。

相关问题