2009-09-02 5 views
0

저는 Websphere Application Server (WAS) 6.1의 JMS 용 기본 메시징 프로 바이더를 사용하고 있습니다. 내 원격 클라이언트 응용 프로그램이 연결을 만든 다음 setExceptionListener을 호출하여 콜백을 등록합니다.네트워크 연결이 끊어지면 javax.jms.ExceptionListener가 onException 콜백을 지연합니까?

WAS Integrated Solutions Console을 사용하여 메시징 엔진을 간단하게 중지하면 내 응용 프로그램이 예상대로 작동합니다. 즉, onException이 즉시 호출되고 그에 따라 적절하게 반응합니다. 그러나 네트워크 케이블을 당길 때 onException 콜백이 30 ~ 60 초 사이에 다시 호출되지 않습니다.

추한 결과는 내 앱이 30 초에서 60 초 사이의 기간 동안 WAS로 메시지를 계속 보내려고하고 그 메시지가 손실된다는 것입니다. ExceptionListener에 대해 자세히 알아 내려고 여러 가지 검색을 해본 결과 (예 : 콜백 시간 초과를 지정하는 데 사용되는 구성 매개 변수가 있음) 성공하지 못했습니다.

바라건대, 이것은 누군가에게 의미가 있습니다. 케이블 "절단"시나리오를 더 빨리 감지 할 수있는 방법에 대한 제안이 있습니까? 당신의 도움을 주셔서 감사합니다.

-Kris

답변

1

을 당신은 30 초 TCP 제한 시간이 정의되어 일이 없습니다? 그렇다면 MQ는 일시적으로 JVM/OS에 책임을 넘겨주고 요청 된 네트워크 관련 작업을 수행 할 때까지 ACK를 기다리고 있습니다. TCP 타임 아웃 값을 낮춰보십시오.

관련 문제