我正在使用返回來自另一個進程的結果的Camel代理。在20000毫秒等待回覆消息後發生駱駝JMS代理超時
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被拋出,所以我可以繼續等待?
感謝您的反饋意見。我認爲「永遠」是「不是一個好策略」。我將結合超時與ExceptionHandler再次重試請求。比永遠等待更聰明多了。 tx – 2013-05-02 08:48:55
對於「服務器/應用程序重新啓動仍然會使請求失敗」+1。 – techuser 2013-05-02 13:46:02