2014-11-19 3 views
1

Inside MessageListener 예외가 발생합니다. 메시지 수신기 컨테이너의 기본 동작은 다시 시작 메시지입니다. 내 질문 - 메시지가 큐에 들어갔을 때 메시지 헤더를 변경할 수 있습니까?예외가 발생했을 때 메시지 헤더 변경

답변

2

아니요, 거부 된 메시지는 변경할 수 없습니다. 당신은 그것을 거절하는 대신 예외 이후에 새로운 메시지를 발행해야 할 것입니다.

프레임 워크 provides a mechanism to do that using a RepublishMessageRecoverer, 스택 추적을 포함한 헤더를 추가하지만 자신의 헤더를 추가 할 수는 없습니다. 당신은 그렇게하기 위해 서브 클래스를 만들어야 할 것이다.

+0

고마워요, 게리. 나는 이미 이렇게했다. 예를 들어 3 번 거부 한 메시지를 다시 게시 한 후 다른 오류 대기열에 메시지를 혼합하는 것이 일반적인 방법이라고 생각하십니까? – Nawa

+0

요구 사항에 따라 다릅니다. 때로는 문제가 일시적인 오류이므로 재시도가 성공할 수 있습니다. 다른 시간은 항상 실패합니다. 'maxAttempts'를 1로 변경하면 첫 번째 실패 이후 강제로 다시 공개 할 수 있습니다. 또는 재시도 정책을 구성하여 특정 예외에 대해서만 재 시도하고 그렇지 않은 경우에는 즉시 복구자를 호출 할 수 있습니다. 'SimpleRetryPolicy'를 보라. –

관련 문제