1

有谁知道是否可以在我的应用程序代码中启动/停止 EJB?例如。我有一些 MDB,我希望在我的应用程序运行时选择性地启动/停止?有任何想法吗?这可以通过 JMX 完成吗?

干杯!

4

3 回答 3

1

EJB 不是可以“启动”或“停止”的东西。当然,它有一个生命周期,但它更关心 EJB实例的创建、激活、钝化和删除,并且完全由 EJB 容器来管理生命周期。

简而言之:您不能以编程方式管理 EJB 的生命周期。

于 2012-05-14T14:26:45.807 回答
1

EJB 规范没有在应用程序中启动/停止单个 EJB(甚至模块)的机制。可以通过JSR 77使用 JMX 动态启动/停止应用程序。

(我看到你在使用 jboss 标签。我对 JBoss 没有专业知识,所以我不知道它是否提供支持你想做的扩展。)

于 2012-05-14T14:10:05.717 回答
0

每个部署的 MDB 都有一个管理 MBean。MBean 类是org.jboss.ejb3.mdb.MdbDelegateWrapper。JMX ObjectName 在 JBoss 4 的版本之间有所不同,并且取决于您如何部署它们。假设您在名为myapp.jar的 jar 中部署了一个名为MyMDB的 MDB,该 jar 位于名为myapp.ear 的耳朵中,名称可能是:

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

旧版本的 JBoss 4 也有一个系统哈希码。而且,如果您不使用 EJB3,我认为该服务仍然存在,只是它将是EJB2

无论如何,一旦找到管理 bean,就可以调用停止启动操作。我们经常使用它来暂停消息传递。

于 2012-05-15T18:39:02.633 回答