activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Keith Irwin" <keith.ir...@gmail.com>
Subject failover mode and client shutdown
Date Tue, 12 Dec 2006 05:37:00 GMT
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

Mime
View raw message