Folks-- When we have clients running and we take down AMQ (<= 4.1.0), then attempt to shutdown the clients with Control-C (rather than kill the JVM with a -9), the clients won't shut down. It's as if a "close" on the failover connection never reaches the amq client classes.
I note that in the 4.1.0 release notes, this issue is referenced, and the advice is to set the maxReconnectAttempts (or similar) property to something non-zero. The problem is that we don't want there to be a max number of attempts. Unless we specifically want to take down the client (say, for an apt-get package upgrade), we want it to keep on trying forever. SO, my question: Is there an architectural reason for not being able to close a failover connection if AMQ is down? If it isn't impossible due to tradeoffs elsewhere in the code base, we might be willing to submit a patch to fix the issue. Our only other recourse is to attempt to close the connections in separate threads, then timeout those threads after a while and fall out the end of the java process. For instance: Thread th = new Thread(new Runnable() { public void run() { connection.close(); } }); th.start(); // give up after 2 seconds Thread.currentThread().join(2000); I guess this is do-able, but it seems, you know, some how, well, wrong. So, is it worth investigating a patch to AMQ? Keith