0
我有一個問題,我只使用aciveMq交換模式。ExchangeTimedOutException:沒有收到OUT消息
我寫了一個模塊在ServiceMix中運行。它工作正常,除了它發送每個消息到死信隊列(ActiveMQ.DLQ)。如果我檢查消息,則dlqDeliveryFailureCause包含以下消息:java.lang.Throwable:Message Expired。
我查了JMSExpiration = 0
路線:
from("direct:" + reqOutQueue).id("reqInEnritch")
.log("Start dispatch")
.setExchangePattern(ExchangePattern.InOnly)
.recipientList().method(EsbDynamicRouter.class, "systemRoute").parallelProcessing();
功能,是什麼給後面的端點列表:
@RecipientList
public String[] systemRoute(@Body Object body) throws Exception
{
String[] result = null;
List<DispConfView> targetList;
int cikl = 0;
SystemQueueHelper systemInfo;
MessageHeaderHelper msgHeadHelp = new MessageHeaderHelper(body);
// The object contains the affected elements
targetList = dispHelp.getDispConfByMsgType(msgHeadHelp.getMsgType());
result = new String[targetList.size()];
for (DispConfView element : targetList)
{
// It builds the target andpoints
systemInfo = new SystemQueueHelper(element.getSystemCode(), null, msgHeadHelp.getDirection());
result[cikl] = systemInfo.getQueuName();
cikl++;
}
return result;
}
列表中包含這些值:
activemq:queue:ERP.req.in?exchangePattern=InOnly
activemq:queue:WF.req.in?exchangePattern=InOnly
如您所見,我嘗試設置正確的模式,但每條消息都會發送到死信隊列。
請幫助,我必須設置!
謝謝!
我習慣於看到錯誤信息(後面跟着「NNNNN millis」中的單詞),用於「InOut」交換,而不是「InOnly」。所以我要做的第一件事就是確認你是否確實設置了一個'InOnly'交換模式...... – Tim
Hi Tim!你可以檢查我的設置。我想我把所有的輸出都設置爲InOnly,但是如果你有任何其他的想法,我要怎麼設置,請告訴我。我設置了路由交換模式,並設置了收件人列表元素。你知道任何其他地方,我可以在那裏設置它嗎?謝謝! – Feri