You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2009/03/04 12:48:25 UTC
svn commit: r749969 -
/qpid/trunk/qpid/cpp/src/qpid/client/FailoverManager.cpp
Author: gsim
Date: Wed Mar 4 11:48:25 2009
New Revision: 749969
URL: http://svn.apache.org/viewvc?rev=749969&view=rev
Log:
Added some extra debug information on failover time.
Modified:
qpid/trunk/qpid/cpp/src/qpid/client/FailoverManager.cpp
Modified: qpid/trunk/qpid/cpp/src/qpid/client/FailoverManager.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/FailoverManager.cpp?rev=749969&r1=749968&r2=749969&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/FailoverManager.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/FailoverManager.cpp Wed Mar 4 11:48:25 2009
@@ -21,12 +21,15 @@
#include "FailoverManager.h"
#include "qpid/Exception.h"
#include "qpid/log/Statement.h"
+#include "qpid/sys/Time.h"
namespace qpid {
namespace client {
using qpid::sys::Monitor;
+using qpid::sys::AbsTime;
+using qpid::sys::Duration;
FailoverManager::FailoverManager(const ConnectionSettings& s,
ReconnectionStrategy* rs) : settings(s), strategy(rs), state(IDLE) {}
@@ -35,15 +38,21 @@
{
bool retry = false;
bool completed = false;
+ AbsTime failed;
while (!completed) {
try {
AsyncSession session = connect().newSession();
+ if (retry) {
+ Duration failoverTime(failed, AbsTime::now());
+ QPID_LOG(info, "Failed over for " << &c << " in " << (failoverTime/qpid::sys::TIME_MSEC) << " milliseconds");
+ }
c.execute(session, retry);
session.sync();//TODO: shouldn't be required
session.close();
completed = true;
} catch(const TransportFailure&) {
- retry = true;
+ retry = true;
+ failed = AbsTime::now();
}
}
}
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org