У меня есть несколько верблюжьих маршрутов, определяющих подобную "схему" (где qx
- номер очереди x, px
- номер процессора x)
q1 -> p1 -> q2 -> p2 -> q1 -> p1 -> q3 -> p3 -> (...)
как
from("jms:queue:q1).process("p1").dynamicRouter().method(DynamicRouterTest.class, "nextStep");
from("jms:queue:q2).process("p2").to("jms:queue:q1");
from("jms:queue:q3).process("p3").to(...);
Как вы можете заметить, я повторно использую очередь q1
(для архитектурных целей), dynamicrouter
динамически указывает пункт назначения, когда сообщение приходит из q1
, но когда сообщение приходит в p2
, яполучить исключение тайм-аута в этом стиле:
2018-09-22 14:21:21,443 [Camel (camel-1) thread #6 - JmsConsumer[QueueTest]] WARN org.apache.camel.component.jms.EndpointMessageListener - Execution of JMS message listener failed. Caused by: [org.apache.camel.RuntimeCamelException - org.apache.camel.ExchangeTimedOutException: The OUT message was not received within: 20000 millis due reply message with correlationID: ID:373034344443444200000000000000000000000000000000 not received.
Как я могу заставить его работать без отключения ответа jms?