2013-01-05 1 views
0

알다시피 MessageListener의 onMessage 메소드에서 예외가 발생하면 JMS는 해당 메시지를 다시 사용하려고 시도합니다.이 메시지는 "재 전달"이라고합니다.JMS가 onMessage의 재 전달 기능을 어떻게 구현 했습니까?

하지만 어떻게이 기능을 구현 않았다됩니다 궁금 무엇? onMessage 메소드는 예외가 발생했는지 어떻게 알 수 있습니까? 대답은 기본적인 자바 지식이 될 수 있습니다 알아요. 그러나 불행히도, 나는 그것에 대해 아직 모른다.

그래서 ... 누군가가 그것을 명확하게 할 수 있는가?

+0

당신은 OpenJMS을 체크 아웃 할 수는 JMS 스펙의 오픈 소스 구현 : http://sourceforge.net/projects/openjms – derekerdmann

+0

덕분에, 그것은 매우 도움이! –

답변

1

이 특정 JMS 제공자에 따라 다릅니다. 하지만 당신의 onMessage() 메소드는 예외, 당신의 onMessage()을 단지

try { 
    listener.onMessage(..); 
} catch (Exception ex) { 
    //handle exception 
} 

그리고 예외가 잡힐 경우, 그것은을위한 전략을 채택 할 수 .eg, 그것을 잡을 수 호출하는 JMS 공급자의 코드를 발생하는 경우 메시지를 재전송합니다. 클라이언트는 브로커에게 메시지 전달이 실패했음을 알리는 메시지를 다시 JMS 브로커에 보내고 브로커가 해당 메시지를 다시 전달하도록 할 수 있습니다.

관련 문제