在 JavaEE(JBoss AS5.1、EJB 3.0)中,当 jboss 实例离线时是否可以收到通知?具体来说,我希望在先前查找的 ejb 不再可用或再次可用时收到通知(ejb 不是集群的,但这是另一个故事)。
我当前的解决方法是调用一个名为 isAvailable 的方法,该方法始终返回 true,当发生异常时我知道 ejb 已关闭。这种在线检查显然不是做到这一点的最佳方法。
最佳答案
如果我理解正确的话,您希望在 JBoss 实例出现故障时收到警报。您需要一个外部监控和警报工具,例如 RHQ或Hawkular为了达成这个。
将 EJB 集群化将有助于提供高可用性。但是,您可能仍然需要一个驱动和警报工具来监视集群以及 JBoss 实例上的其他资源。
如果您只关心EJB何时不可用并且不想使用外部工具,那么您可以创建Service MBean或自定义 MBean 。这样您就可以创建与您的 EJB 生命周期相关的自定义通知。
请记住,当您决定升级到 JBoss AS7 或 Wildfly 位时,必须更改此 MBean,因为这些版本中的 MBean 支持有很大不同。
关于EJB 离线时的 JavaEE 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30368055/