It seems Camel, when creating JMS (ActiveMQ) InOut exchanges from a client,
sets the expiration time on the message as local time + request timeout. The
server then uses its own local time to determine if the message is expired.
If the client and server do not have clocks that are in sync, the message
could get lost if the time difference is greater than the expiration time.

I don't see a way to disable the expiration, as it is built into the way
Camel deals with reply messages for InOut exchanges. The only way would be
to disable the request timeout, which is not a desirable option. I still
want the client to timeout if it waits too long, but I don't want the
message at the JMS level to be expired.

Is it fair to say that for InOut JMS messages, Camel requires that all
machines involved have synchronized clocks? It would be nice if the
communication protocol could detect the time difference between the server
and client, but that is more of an ActiveMQ issue I believe. Either that or
if there were a way to tell Camel not to set the message expiration.


--
View this message in context: 
http://camel.465427.n5.nabble.com/InOut-exchanges-require-synchronized-clocks-tp3411881p3411881.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to