Author: aconway
Date: Wed Oct  3 16:34:35 2012
New Revision: 1393597

URL: http://svn.apache.org/viewvc?rev=1393597&view=rev
Log:
NO-JIRA: Add log messages to identify QueueReplicator associated with a session 
error.

Modified:
    qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
    qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.h

Modified: qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.cpp?rev=1393597&r1=1393596&r2=1393597&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.cpp Wed Oct  3 16:34:35 2012
@@ -28,6 +28,7 @@
 #include "qpid/broker/Queue.h"
 #include "qpid/broker/QueueRegistry.h"
 #include "qpid/broker/SessionHandler.h"
+#include "qpid/broker/SessionHandler.h"
 #include "qpid/framing/SequenceSet.h"
 #include "qpid/framing/FieldTable.h"
 #include "qpid/log/Statement.h"
@@ -60,6 +61,25 @@ bool QueueReplicator::isEventKey(const s
     return ret;
 }
 
+class QueueReplicator::ErrorListener : public SessionHandler::ErrorListener {
+  public:
+    ErrorListener(const std::string& prefix) : logPrefix(prefix) {}
+    void connectionException(framing::connection::CloseCode, const 
std::string& msg) {
+        QPID_LOG(error, logPrefix << "Connection error: " << msg);
+    }
+    void channelException(framing::session::DetachCode, const std::string& 
msg) {
+        QPID_LOG(error, logPrefix << "Channel error: " << msg);
+    }
+    void executionException(framing::execution::ErrorCode, const std::string& 
msg) {
+        QPID_LOG(error, logPrefix << "Execution error: " << msg);
+    }
+    void detach() {
+        QPID_LOG(error, logPrefix << "Unexpectedly detached.");
+    }
+  private:
+    std::string logPrefix;
+};
+
 QueueReplicator::QueueReplicator(HaBroker& hb,
                                  boost::shared_ptr<Queue> q,
                                  boost::shared_ptr<Link> l)
@@ -96,6 +116,8 @@ void QueueReplicator::activate() {
         boost::bind(&QueueReplicator::initializeBridge, shared_from_this(), 
_1, _2)
     );
     bridge = result.first;
+    bridge->setErrorListener(
+        boost::shared_ptr<ErrorListener>(new ErrorListener(logPrefix)));
 }
 
 QueueReplicator::~QueueReplicator() { deactivate(); }

Modified: qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.h?rev=1393597&r1=1393596&r2=1393597&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/QueueReplicator.h Wed Oct  3 16:34:35 2012
@@ -78,6 +78,7 @@ class QueueReplicator : public broker::E
     bool isBound(boost::shared_ptr<broker::Queue>, const std::string* const, 
const framing::FieldTable* const);
 
   private:
+    class ErrorListener;
     void initializeBridge(broker::Bridge& bridge, broker::SessionHandler& 
sessionHandler);
     void dequeue(framing::SequenceNumber, sys::Mutex::ScopedLock&);
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to