다른 프로세스의 결과를 반환하는 Camel 프록시를 사용하고 있습니다.Camel JMS 프록시 제한 시간이 20000 밀리가 응답 메시지를 기다린 후 발생했습니다.
public interface DataProcessingInterface {
public List<ResponseData> processPreview(ClientData criteria, Config config);
}
그리고이 구성되어 연결이
<camel:proxy
id="processPreviewProxy"
serviceInterface="model.jms.DataProcessingInterface"
serviceUrl="jms:queue:processPreview"/>
하지만 가끔은 다른 프로세스가 결과를 반환하는 데 시간이 오래 걸리고 나는
TemporaryQueueReplyManager - Timeout occurred after 20000 millis waiting for reply message with correlationID [Camel-ID-PC01-2661-1367403764103-0-15]. Setting ExchangeTimedOutException on (MessageId: ID-PC01-2661-1367403764103-0-17 on ExchangeId: ID-PC01-2661-1367403764103-0-16) and continue routing.
가 어떻게 시간 제한 예외를 얻는 데 나는 응답이 준비 될 때까지 카멜에게 기다려달라고 말한다. 시간이 얼마나 걸릴지는 오래 걸릴 것입니다. 클라이언트는 다른 스레드에서 관리되므로 소요 시간이 클라이언트에 영향을 미치지 않습니다.
또한 계속 기다릴 수 있도록 TimeoutException이 throw되면 연결을 재설정 할 수 있습니까?
의견을 보내 주셔서 감사합니다. 나는 "영원히" "좋은 전략이 아니다"라고 생각한다. ExceptionHandler와 시간 제한을 결합하여 요청을 다시 시도합니다. 영원히 기다리는 것보다 훨씬 더 똑똑합니다. tx –
+1 "서버/응용 프로그램 재시작으로도 요청이 실패하게됩니다." – techuser