【发布时间】:2018-11-20 11:23:07
【问题描述】:
我希望能够对生产中部署的消息驱动 Bean 进行健康检查。我最初的想法是添加一个health() 方法,确保 JMS 队列(用于读取)和数据库(用于写入)都可用,然后将此运行状况方法公开为 REST API。不幸的是,由于 MDB 不像其他类型的 EJB 那样可注入,所以我无法从我的 REST 控制器中获得对它的引用...
有没有办法通过 REST API 公开消息驱动 bean 的方法?或者任何其他方式来实现我的初始目标?
编辑
有点精确:我不想只检查资源是否可用,还想检查 EJB 是否可以与它们通信(通过从 EJB 实例内部 ping 它们)。这不仅会验证资源是否可用(这确实可以通过其他方式完成),而且对我来说更重要的是资源绑定是有效的并且资源注入正在工作。
【问题讨论】:
-
您的应用服务器通常会管理 MDB 实例池和数据库连接,向 MDB 添加检查并没有真正的帮助,因为您只会检查一个实例(并在占用资源的同时你正在这样做)。大多数应用服务器会提供一个 JMX 接口来监控这些资源,但可用信息取决于服务器。
-
@NickWilson 我认为检查一个实例就足以验证所有实例。如果我可以从一个 EJB 访问(ping)资源,那么他们很有可能都能够这样做,因为绑定和注入都可以。我已经编辑了我的问题,以便更明确地说明我想要验证的内容以及为什么我认为我需要从 EJB 内部进行验证。
标签: rest jakarta-ee ejb-3.1 message-driven-bean