2011-04-29 3 views
2

JMS 주제에 내구성있는 사용자가 있습니다. 클라이언트 ID를 설정하면 대기열에 내구성이 높은 소비자로 표시됩니다.JMS를 사용하여 내구성이 강한 소비자를 종료하는 가장 좋은 방법은 무엇입니까?

코드를 배포 할 때 서버가 다시 시작되지만 다시 시작할 때 (따라서 내구성이 강한) 누락 된 메시지를 대기열에 넣고 싶습니다. 올바른 방법은 무엇에 정상적으로 종료 메시지 소비자 그래서 당신이 그것을 종료하지만 여전히 대기열이 올바른 방법입니다 당신

destination = session.createTopic("beacons"); 
messageConsumer = session.createDurableSubscriber(destination, clientID); 

의 메시지를 버퍼 아는 것을? 또는 다시 연결하면 메시지가 더 이상 전달되지 않게 대기열에 알릴 수 있습니까? 요컨대

messageConsumer.close 

은 내가, 감사에 가입하고있어 화제 메시지를 잃지 않고 내 서비스를 다시 시작 할 수 있도록 찾고 있어요!

답변

3

AFAIK, close()는 단순히 해당 소비자를 종료합니다. 구독을 삭제하려면 구독을 취소해야합니다 (Session의 메소드). 그러나 JMS 스펙을 의도 한대로 구현했는지 확인하기 위해 선택한 JMS 제공자로 테스트해야합니다! :)

관련 문제