2017-11-03 37 views
0

메시지가 배달 불능 문자 대기열에 도달 한 후 실제 재 배달 횟수를 얻는 방법에 대한 아이디어. 나타난다, Artemis는 이것을 새로운 전달이라고보고, 카운터를 1로 재설정한다.불필요한 문자 대기열의 JMSXDeliveryCount

아래 그림을 참조하십시오. 1. 메시지가 MDB에 의해 소비되었습니다. 2. 문제가 발생하여 최대 재시도 횟수가 3에 도달 할 때까지 컨텍스트에서 setRollbackOnly를 호출합니다. 3. Artemis가 구성된 DLQ에 메시지를 보냅니다. 4. DLQ Mdb는 메시지를 사용하지만 메시지의 JMSXDeliveryCount는 대신 1을 읽습니다.

어떤 생각, 어떻게 DLQ에서 재시도 횟수 3을 검색합니까?

답변

0

나는이 시점에서 원하는 것을 쉽게 할 수있는 방법이 있다고 생각하지 않습니다. 원본 메시지의 배달 횟수를 추론하려면 메시지에서 "_AMQ_ORIG_ADDRESS"속성을 가져 와서 ActiveMQServerControl # getAddressSettingsAsJSON 관리 방법을 사용하여 브로커에 쿼리 할 수 ​​있습니다. 해당 메소드의 출력에는 해당 주소에 대해 구성된 "maxDeliveryAttempts"가 포함됩니다.이 주소는 데드 - 레터 주소로 보내질 때 메시지의 JMSXDeliveryCount와 일치해야합니다.