일반적으로 처리 (MessageProcessor) JMS 대기열에서 오류가 발생하여 faultSequence로 이동하여 대기열에서 제거되지 않는 경우. 의심 스럽지만 JMS 큐에서 FAULT라는 메시지를 제거해야하는 오류 코드가 있습니다. 당신이 나를 도울 수.흐름 FAULT에서 JMS 대기열 (메시지 프로세서)에서 메시지를 제거하는 방법은 무엇입니까?
1
A
답변
2
메시지 전달 프로세서를 사용하는 경우 메시지를 대기열에서 제거 할 수 없습니다. 메시지를 성공적으로 보낼 때까지 계속 시도 할 것입니다.
사용 사례에 대해 메시지 샘플링 프로세서를 사용할 수 있으며 샘플 메시지 프로세서는 메시지를 한 번만 보내고 큐에서 제거 할 수 있습니다. 잘못된 시도로 발견 한 경우 faultSequence에있는 오류 코드를 기반으로 메시지를 다시 큐에 삽입 할 수 있습니다.
1
당신은 아마 갖는 axis2.xml 당신의 JMS 리스너 설정에서 다음 거래에서 프로세서를 실행
<parameter name="transport.jms.SessionTransacted">true</parameter>
은 읽을 된 큐에서 제거하여 실패한 메시지를 만들 것입니다이 매개 변수를 false로 변경 .
"transport.jms.SessionTransacted"가 거짓 인 경우 대기열에서 메시지가 제거됩니다 백엔드의 실패에 관계없이 – Vanji
예, 저는 똑같을 것을 기대합니다. 그러나 문제는 내가보기에 실패한 메시지 때문입니다. – user3714601