2013-10-25 6 views
0

메시지 큐에서 예외를 일으키는 JMS 메시지를 처리하는 가장 좋은 방법은 무엇입니까?DLQ 처리하기

내가 한 것은 특정 대기열에 대해 DLQ를 설정하는 것입니다. 30 초의 재시도 지연으로 5 번 메시지 처리를 재 시도합니다. 메시지가 아마도 일부 버그로 인해 처리 될 수없는 경우 - 메시지를 영구 DLQ로 이동합니다. 그런 다음 버그 수정을 배포 한 다음 DLQ의 메시지를 대기열에 다시 넣는 것이 좋습니다.

이렇게하는 것이 가장 좋은 방법입니까? 그렇다면 DLQ에있는 메시지를 "다시 게시"하려면 어떻게해야합니까?

답변

2

나는 이것이 최선의 방법이라고 생각합니다.

관리자는 DLQ를 확인하고 버그를 수정 한 다음 기본 대기열로 다시 보내야합니다. jms QueueBrowser을 사용하여 대기열에있는 메시지 (메시지 텍스트, jms-id 및 ... 포함)를 검사 할 수 있습니다. 따라서 DLQ의 모든 메시지를 나열하는 프로그램을 작성해야합니다. 수퍼바이저는 메시지 텍스트를 조작하고이를 메인 대기열로 되돌려 보낼 수 있어야합니다 (DLQ에서 삭제 : consume the message by jms-id, 메인 대기열에 고정 메시지 생성)

+1

게다가 .. 실제로 사용 사례에 달려 있습니다. 경우에 따라 메시지는 특정 기간이 지나면 아무 것도 의미하지 않습니다. DLQ를 삭제해야합니다. 메시지를 DLQ에 누적시키지 마십시오. 이를 사용하거나 DLQ 주소를 페이지로 설정하십시오. –