【问题标题】:How to get the max retry count within an MDB?如何获得 MDB 中的最大重试次数?
【发布时间】:2011-12-22 13:11:01
【问题描述】:

我可以使用 javax.jms.Message.getIntProperty("JMSXDeliveryCount") 读取当前的传递计数。我正在尝试读取当前的最大重试设置。我使用 jms-service.xml 中的以下配置将其配置为 5。

<attribute name="MaxDeliveryAttempts">5</attribute>

但是当我尝试使用

阅读它时
  • javax.jms.Message.propertyExists("dLQMaxResent") JBoss
  • javax.jms.Message.propertyExists("MaxDeliveryAttempts")
  • javax.jms.Message.propertyExists("DLQMaxResent")
  • javax.jms.Message.propertyExists("MaxDeliveryCnt") Oracle

以上所有都返回 false。我正在使用带有 jboss 消息传递的 JBoss EAP 5.0.1。

关于我应该寻找哪个房产有什么建议吗?

【问题讨论】:

    标签: java jboss jms


    【解决方案1】:

    您通过&lt;attribute name="MaxDeliveryAttempts"&gt; 设置的是MBean 配置,但随后您尝试从消息 中读取它。为什么它应该在那里?

    【讨论】:

    • 你能从邮件中读取最大传递尝试吗?即使我不设置它,它默认为10。我希望能够读取当前设置。
    【解决方案2】:

    正如@MaDa 所说,这是 MBean 配置。

    使用以下代码,您可以读取 JBoss 环境中的任何 JMX MBean 设置。

    javax.management.MBeanServer server = org.jboss.mx.util.MBeanServerLocator.locateJBoss();
    server.getAttribute(new javax.management.ObjectName(mbeanName), attributeName);
    

    例如

    server.getAttribute(new javax.management.ObjectName("jboss.messaging.destination:service=Queue,name=testQueue"),"MaxDeliveryAttempts");
    

    为此,您需要在 maven 依赖项中包含 jboss-jmx.jar

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多