【问题标题】:JBoss Messaging Queue Stuck, with Remote Interface and MDB ConsumerJBoss 消息队列卡住,带有远程接口和 MDB 消费者
【发布时间】:2011-10-30 01:27:10
【问题描述】:

我正在尝试诊断和解决可能存在的环境问题。我们有开发、SI 和生产服务器,它们已经设置了好几年。其中一个环境已停止为特定的 JBM 队列工作,到目前为止我一直无法弄清楚原因。

我通过 JMX 控制台看到的是消息“卡在”传递状态。每次通过队列发送消息时,MessageCount 和 DeliveringCount 都会增加。消费者的 onMessage() 被调用,并将调试消息输出到 log4j 日志中,但我认为它不会完成请求。

这是一个持久的 JBM 设置。重新启动 JBoss 服务器没有帮助。清除甚至删除 JBM_* 表也无济于事。

jbm_msg_ref 条目的 transaction_id 为空,状态为“C”,这似乎是我们使用的 oracle-persistence-service.xml 中的准备好的语句“ROLLBACK_MESSAGE_REF2”将其置于此状态。

MDB 消费者的 MaxPoolSize 为 15,这也是消费者实例接收的最大消息量。 15 之后,队列似乎“填满”,不再有任何可用的消费者 MBean 来接收消息。

我正在寻找有关如何诊断和解决问题的想法或建议。几天来,我一直在谷歌搜索和尝试一些东西,但收效甚微。这个相当旧的 JBM 版本有很多 JIRA 票证,但相同设置的其他实例工作正常,所以我怀疑这台服务器/数据库组合上存在某种网络、竞争条件或环境问题。

JBoss 远程处理 4.3.0.GA JBoss 消息传递 1.4.0.SP3 JBoss 4.3.0.GA

谢谢!

【问题讨论】:

    标签: persistence ejb-3.0 remoting jboss-messaging jboss-eap-4.3.x


    【解决方案1】:

    已确定该问题是由 Oracle 数据库问题引起的。已退回数据库实例以解决该问题。很可能,数据库性能太慢导致消息确认出现时间问题。

    【讨论】:

      猜你喜欢
      • 2018-07-13
      • 2019-09-06
      • 2012-01-28
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多