Hello, We have a camel route to connect to a TCP server as below: seda:route1 - processor-1 (Using producertemplate exchange is sent to different direct endpoints) direct:<route1....n> - OnException: - CustomErrorHandlingProcessor - Processor-2 - toURI: netty:<host>:<port>?sync=true - ResponseProessor The TCP server URLs are dynamically generated. Whenever there are errors from the direct route, we want to retry the same exchange on same or different endpoints. For ex. When there is a slow server, we are receiving ReadTimeoutException from netty handler in processor-1 and we would like to retry on other available servers. This retry handling and endpoint selection based on failure is handled by processor-1 in the first seda route. When retry is attempted currently, the exchange is forwarded to the direct route from 2nd time onwards, but we are unable to see the message delivered at server or in the tcpdump after the first attempt. We tried options like reuseChannel=true(common), disconnectOnNoReply=true(consumer) option at our sample server simulation. Please suggest if any configurations are missing in the above solution custom retry handling. Example URLs: Netty Producer toURL: netty:tcp://127.0.0.1:6066?sync=true&requestTimeout=2000 Netty Consumer FromURL: netty:tcp://127.0.0.1:6066?sync=true maximumRedeliveries option works, but it retries the same route so the drawback is we cannot select a different server endpoint in this case. The version that we use currently is Camel-http 3.7.4
Much thanks, VNS
