如何在MDB中获得最大重试次数?

时间:2011-12-15 02:33:16

标签: java jboss jms

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

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

<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 EAP 5.0.1和jboss消息传递。

关于我应该寻找哪个属性的任何建议?

2 个答案:

答案 0 :(得分:0)

<attribute name="MaxDeliveryAttempts">设置的内容是 MBean 配置,但您尝试从消息中读取它。它为什么要存在?

答案 1 :(得分:0)

正如@MaDa正确地说的那样,这是MBean配置。

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

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

e.g。

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

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