2011-12-15 56 views
2

我可以使用javax.jms.Message.getIntProperty(「JMSXDeliveryCount」)讀取當前的遞送計數。我正在嘗試讀取當前的最大重試設置。我使用jms-service.xml中的以下配置將其配置爲5。 如何獲取MDB中的最大重試次數?

<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

所有以上返回虛假。我正在使用JBoss EAP 5.0.1和jboss消息傳遞。

任何建議我應該尋找哪些屬性?

回答

0

正如@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 dependencies中包含jboss-jmx.jar

0

什麼你被<attribute name="MaxDeliveryAttempts">設置爲的MBean配置,但此時你試圖從消息閱讀。爲什麼它應該在那裏?

+0

你可以閱讀郵件的最大傳遞嘗試嗎?即使我沒有設置它,它默認爲10.我想能夠讀取當前設置。 – chinto 2011-12-15 20:58:21

相關問題