activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Lichtin <lich...@yahoo.com.INVALID>
Subject Failover - send timeout not working
Date Sat, 29 Apr 2017 10:24:37 GMT
I'm running into a situation with the Failover Transport not respecting the timeout that's
been set.
The symptom is endless messages of this kind:

2017-04-29 09:48:26,128 | TRACE | .engine.cfgengine.in]-11 | FailoverTransport           
    | sport.failover.FailoverTransport 615 | 81 - org.apache.activemq.activemq-osgi - 5.14.0
| Waiting for transport to reconnect..: TransactionInfo {commandId = 127798, responseRequired
= true, type = 7, connectionId = ID:inucdev4-57330-1493370444659-3:3, transactionId = XID:[1096044365,globalId=6374726c6366672d656e67696e653130333530323030303034,branchId=6374726c6366672d656e67696e6531313036383134]}
2017-04-29 09:48:26,228 | TRACE | .engine.cfgengine.in]-11 | FailoverTransport           
    | sport.failover.FailoverTransport 615 | 81 - org.apache.activemq.activemq-osgi - 5.14.0
| Waiting for transport to reconnect..: TransactionInfo {commandId = 127798, responseRequired
= true, type = 7, connectionId = ID:inucdev4-57330-1493370444659-3:3, transactionId = XID:[1096044365,globalId=6374726c6366672d656e67696e653130333530323030303034,branchId=6374726c6366672d656e67696e6531313036383134]}
2017-04-29 09:48:26,329 | TRACE | .engine.cfgengine.in]-11 | FailoverTransport           
    | sport.failover.FailoverTransport 615 | 81 - org.apache.activemq.activemq-osgi - 5.14.0
| Waiting for transport to reconnect..: TransactionInfo {commandId = 127798, responseRequired
= true, type = 7, connectionId = ID:inucdev4-57330-1493370444659-3:3, transactionId = XID:[1096044365,globalId=6374726c6366672d656e67696e653130333530323030303034,branchId=6374726c6366672d656e67696e6531313036383134]}
2017-04-29 09:48:26,429 | TRACE | .engine.cfgengine.in]-11 | FailoverTransport           
    | sport.failover.FailoverTransport 615 | 81 - org.apache.activemq.activemq-osgi - 5.14.0
| Waiting for transport to reconnect..: TransactionInfo {commandId = 127798, responseRequired
= true, type = 7, connectionId = ID:inucdev4-57330-1493370444659-3:3, transactionId = XID:[1096044365,globalId=6374726c6366672d656e67696e653130333530323030303034,branchId=6374726c6366672d656e67696e6531313036383134]}
2017-04-29 09:48:26,530 | TRACE | .engine.cfgengine.in]-11 | FailoverTransport           
    | sport.failover.FailoverTransport 615 | 81 - org.apache.activemq.activemq-osgi - 5.14.0
| Waiting for transport to reconnect..: TransactionInfo {commandId = 127798, responseRequired
= true, type = 7, connectionId = ID:inucdev4-57330-1493370444659-3:3, transactionId = XID:[1096044365,globalId=6374726c6366672d656e67696e653130333530323030303034,branchId=6374726c6366672d656e67696e6531313036383134]}
...
2017-04-29 09:48:33,270 | TRACE | .engine.cfgengine.in]-11 | FailoverTransport           
    | sport.failover.FailoverTransport 615 | 81 - org.apache.activemq.activemq-osgi - 5.14.0
| Waiting for transport to reconnect..: TransactionInfo {commandId = 127798, responseRequired
= true, type = 7, connectionId = ID:inucdev4-57330-1493370444659-3:3, transactionId = XID:[1096044365,globalId=6374726c6366672d656e67696e653130333530323030303034,branchId=6374726c6366672d656e67696e6531313036383134]}
2017-04-29 09:48:33,371 | TRACE | .engine.cfgengine.in]-11 | FailoverTransport           
    | sport.failover.FailoverTransport 615 | 81 - org.apache.activemq.activemq-osgi - 5.14.0
| Waiting for transport to reconnect..: TransactionInfo {commandId = 127798, responseRequired
= true, type = 7, connectionId = ID:inucdev4-57330-1493370444659-3:3, transactionId = XID:[1096044365,globalId=6374726c6366672d656e67696e653130333530323030303034,branchId=6374726c6366672d656e67696e6531313036383134]}


It seems to never get out of this loop:

     while (transport == null && !disposed && connectionFailure == null
             && !Thread.currentThread().isInterrupted() && willReconnect())
{

         LOG.trace("Waiting for transport to reconnect..: {}", command);
         long end = System.currentTimeMillis();
         if (command.isMessage() && timeout > 0 && (end - start > timeout))
{
             timedout = true;
             LOG.info("Failover timed out after {} ms", (end - start));
             break;
         }
         try {
             reconnectMutex.wait(100);
         } catch (InterruptedException e) {
             Thread.currentThread().interrupt();
             LOG.debug("Interupted:", e);
         }
         transport = connectedTransport.get();
     }

The timeout is set to 5000ms and should have hit a long time ago, but I guess "command.isMessage()"
returns false in this situation?
Any reason this condition is needed? It seems to me anything that can't be sent within the
timeout should cause the throw.

- Martin


Mime
View raw message