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