diff options
| author | Gordon Sim <gsim@apache.org> | 2009-01-23 21:55:15 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2009-01-23 21:55:15 +0000 |
| commit | b849efb083c88de6c1932d0f7a87a7c500dbd3d6 (patch) | |
| tree | 727bdbdb8c3701d90a0d31e2f3e42b26d10c9f9d /cpp/src/qpid/broker/SessionState.cpp | |
| parent | 85428cec6a090c58c34453dee8b38ac20a619a96 (diff) | |
| download | qpid-python-b849efb083c88de6c1932d0f7a87a7c500dbd3d6.tar.gz | |
Use special management ids for objects used in state transfer to new members. This prevents the ids getting out of sync across the cluster and allows management methods to be used reliably.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@737203 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/SessionState.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/SessionState.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/SessionState.cpp b/cpp/src/qpid/broker/SessionState.cpp index e17a813db7..0a24a39d38 100644 --- a/cpp/src/qpid/broker/SessionState.cpp +++ b/cpp/src/qpid/broker/SessionState.cpp @@ -30,6 +30,7 @@ #include "qpid/framing/reply_exceptions.h" #include "qpid/framing/ServerInvoker.h" #include "qpid/log/Statement.h" +#include "qpid/management/ManagementBroker.h" #include <boost/bind.hpp> #include <boost/lexical_cast.hpp> @@ -41,6 +42,7 @@ using namespace framing; using sys::Mutex; using boost::intrusive_ptr; using qpid::management::ManagementAgent; +using qpid::management::ManagementBroker; using qpid::management::ManagementObject; using qpid::management::Manageable; using qpid::management::Args; @@ -65,7 +67,8 @@ SessionState::SessionState( mgmtObject->set_attached (0); mgmtObject->set_detachedLifespan (0); mgmtObject->clr_expireTime(); - agent->addObject (mgmtObject); + ManagementBroker* mb = dynamic_cast<ManagementBroker*>(agent); + agent->addObject (mgmtObject, mb ? mb->allocateId(this) : 0); } } attach(h); |
