2011-08-12 4 views
3

내 응용 프로그램에 Jboss MQ를 사용 중입니다.JMS 메시지가 큐에 대한 재전송

JMS 큐에 다시 전달 된 메시지를 처리하려고합니다. 소비자가받은 원본 메시지에 몇 가지 값을 설정할 수있는 방법이 있습니까 (처음 메시지를 받았습니다). 메시지를 다시 전달할 때마다 값을 읽고 결정할 수 있도록합니다.

질문이 명확하지 않은 경우 알려 주시면 자세히 설명 드리겠습니다.

+1

예제가 도움이 될 것입니다. :) –

답변

6

아니요, JMS가 그렇게 작동하지 않습니다.

대기열은 소비자 (수신), 생산자 (전송) 또는 브라우저 (픽)와 상호 작용합니다. 변경된 메시지를 다시 넣기위한 조작은 없습니다. 컨슈머 (consumer)가 롤백 (rollback) 된 트랜잭션 (transaction)로 동작하면 (자), 트랜잭션 (transaction)의 위탁을 위해서 (때문에) 큐내에서 대기하고 있었기 때문에,이 메시지는 「put back」으로 표시됩니다.

이론적으로 메시지를 가져온 큐와 동일한 큐에 대한 생성자를 만들고이를 수정하여 "자신에게"(메시지 드라이브 빈) 보낼 수는 있지만 다른 메시지, 비슷한 내용으로 만 그리고 대기열의 끝까지 도달 할 것입니다. 그리고 그렇게하는 것은 권장되지 않습니다.

메시지 데이터 (적어도 관심있는 부분)를 데이터베이스에 보관하여 새 메시지인지 재 배달 메시지인지 검색하는 것이 좋습니다.

1

엔터프라이즈 통합 패턴 Content Enricher (1) (2)가 도움이 될 수 있습니다.

관련 문제