有没有办法检查ActiveMQ服务器是否仍在运行,而没有实际接收或发送或执行事务?我正在使用“尽力而为1阶段提交”逻辑 - 即不使用XA,而是在提交JMS之前提交db,假设JMS提交将通过,除非服务器已关闭(而不是SQL提交,它可能因为例如违反约束而失败。
这非常接近非常好。但是,如果可以,在提交数据库事务之前,检查ActiveMQ服务器是否实际上正在运行,我会稍微收紧潜在的崩溃窗口。
通过连接发送某种“ping”的方式正是我所寻找的,例如从实际服务器获取某种状态(不只是询问连接对象它是否认为它与服务器有连接)。对于SQL Server,“SELECT 1”对于这种情况非常好。我想我可以在没有任何消费者的情况下向主题发送消息,但这看起来有点沉重。在实际的ActiveMQConnection对象上使用方法(而不是纯粹的JMS API)是没有问题的。