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

Reply via email to