Hey Guys,
We're still having problems consuming messages from an ActiveMQ service via
Apache.NMS.  We've fixed a few bugs in the past week, and we're left with
one outstanding issue where we have one of our consumers in a different
data-center than the message server.  It appears as if our TCP connections
are timing out while the system is idle (possibly due to NAT translation
timeouts) and we're never properly re-establishing connections back to the
message server.

I've dug around in the in the NMS code a bit, and I have a few questions.

1. TcpTransport, Connection, and Session have a property called
"RequestTimeout".  I'm not entirely clear on what this property dose.  What
times out, and what is a "request"?   What happens when one of these
requests timeout?  Is the socket dropped and re-opened?

2. It does not appear that there is any way to turn KeepAlive on via the NMS
client, but I do see code for handling keep alive packets.  The
documentation here
http://activemq.apache.org/tcp-transport-reference.htmlseems to imply
that this is a client side option, but I was wondering if we
could configure it in the server side and how could we verify that it was in
fact running?

3. If a client reconnects to the server, does the server forcefully close
the old socket?  I'm not sure this is happening, but it seems like a logical
thing to do and I was curious what the expected behavior is.

Any other suggestions how we can deal with this?  This channel is
high-latency, but very low messages, so we don't mind if it takes awhile to
handle these messages, we just need it to happen.

Thanks,
Bryan

Reply via email to