Repository: activemq Updated Branches: refs/heads/trunk 66a689df0 -> 207d4cdee
https://issues.apache.org/jira/browse/AMQ-5080 - revert short circut of recover when failover transport is not connected - using maxstartupMaxReconnectAttempts=x provides a better alternative. tm recovery need not start a managed connection or call getConnection before a call to xaresource.recover Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/207d4cde Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/207d4cde Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/207d4cde Branch: refs/heads/trunk Commit: 207d4cdee682b65f3c434b51f440b1b6c28eefbd Parents: 66a689d Author: gtully <gary.tu...@gmail.com> Authored: Mon Jul 28 15:54:12 2014 +0100 Committer: gtully <gary.tu...@gmail.com> Committed: Mon Jul 28 16:19:20 2014 +0100 ---------------------------------------------------------------------- .../java/org/apache/activemq/TransactionContext.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/207d4cde/activemq-client/src/main/java/org/apache/activemq/TransactionContext.java ---------------------------------------------------------------------- diff --git a/activemq-client/src/main/java/org/apache/activemq/TransactionContext.java b/activemq-client/src/main/java/org/apache/activemq/TransactionContext.java index 8e36ed2..c86f448 100755 --- a/activemq-client/src/main/java/org/apache/activemq/TransactionContext.java +++ b/activemq-client/src/main/java/org/apache/activemq/TransactionContext.java @@ -643,20 +643,11 @@ public class TransactionContext implements XAResource { } public Xid[] recover(int flag) throws XAException { - if (LOG.isDebugEnabled()) { - LOG.debug("Recover: " + flag); - } + LOG.debug("recover({})", flag); TransactionInfo info = new TransactionInfo(getConnectionId(), null, TransactionInfo.RECOVER); try { this.connection.checkClosedOrFailed(); - final FailoverTransport failoverTransport = this.connection.getTransport().narrow(FailoverTransport.class); - if (failoverTransport != null && !failoverTransport.isConnected()) { - // otherwise call will block on reconnect forfeting any app level periodic check - XAException xaException = new XAException("Failover transport not connected: " + this.getConnection()); - xaException.errorCode = XAException.XAER_RMERR; - throw xaException; - } this.connection.ensureConnectionInfoSent(); DataArrayResponse receipt = (DataArrayResponse)this.connection.syncSendPacket(info); @@ -668,7 +659,7 @@ public class TransactionContext implements XAResource { answer = new XATransactionId[data.length]; System.arraycopy(data, 0, answer, 0, data.length); } - LOG.trace("recover({})={}", flag, answer); + LOG.debug("recover({})={}", flag, answer); return answer; } catch (JMSException e) { throw toXAException(e);