diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-09-12 09:01:35 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-09-12 09:01:35 +0000 |
commit | d89514da858be06f7e44129bcd6675a46181208e (patch) | |
tree | 662073ca1e8a9b6e56e9914087da66a824b88d6c /cpp/src/IceGrid/NodeCache.cpp | |
parent | Minor Makefile tweak. (diff) | |
download | ice-d89514da858be06f7e44129bcd6675a46181208e.tar.bz2 ice-d89514da858be06f7e44129bcd6675a46181208e.tar.xz ice-d89514da858be06f7e44129bcd6675a46181208e.zip |
Fixes
Diffstat (limited to 'cpp/src/IceGrid/NodeCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/NodeCache.cpp | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/cpp/src/IceGrid/NodeCache.cpp b/cpp/src/IceGrid/NodeCache.cpp index cc99eb4c07c..bb65d422d93 100644 --- a/cpp/src/IceGrid/NodeCache.cpp +++ b/cpp/src/IceGrid/NodeCache.cpp @@ -134,6 +134,18 @@ public: os << ex; _server->exception(NodeUnreachableException(_node, os.str())); } + catch(const DeploymentException& ex) + { + if(_traceLevels && _traceLevels->server > 1) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->serverCat); + out << "couldn't unload `" << _id << "' on node `" << _node << "':\n" << ex.reason; + } + + ostringstream os; + os << "couldn't unload `" << _id << "' on node `" << _node << "':\n" << ex.reason; + _server->exception(DeploymentException(os.str())); + } catch(const Ice::Exception& ex) { if(_traceLevels && _traceLevels->server > 1) @@ -280,23 +292,6 @@ NodeEntry::setSession(const NodeSessionIPtr& session) Ice::Trace out(_cache.getTraceLevels()->logger, _cache.getTraceLevels()->nodeCat); out << "node `" << _name << "' up"; } - - ServerEntrySeq entries; - { - Lock sync(*this); - for(map<string, ServerEntryPtr>::const_iterator q = _servers.begin() ; q != _servers.end(); ++q) - { - entries.push_back(q->second); - } - } - - try - { - for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&ServerEntry::sync)); - } - catch(const DeploymentException&) - { - } } else { @@ -460,17 +455,17 @@ NodeEntry::loadServer(const ServerEntryPtr& entry, const ServerInfo& server, con } void -NodeEntry::destroyServer(const ServerEntryPtr& entry, const string& id) +NodeEntry::destroyServer(const ServerEntryPtr& entry, const ServerInfo& info) { try { if(_cache.getTraceLevels() && _cache.getTraceLevels()->server > 2) { Ice::Trace out(_cache.getTraceLevels()->logger, _cache.getTraceLevels()->serverCat); - out << "unloading `" << id << "' on node `" << _name << "'"; + out << "unloading `" << info.descriptor->id << "' on node `" << _name << "'"; } - AMI_Node_destroyServerPtr amiCB = new DestroyCB(_cache.getTraceLevels(), entry, id, _name); - getProxy()->destroyServer_async(amiCB, id); + AMI_Node_destroyServerPtr amiCB = new DestroyCB(_cache.getTraceLevels(), entry, info.descriptor->id, _name); + getProxy()->destroyServer_async(amiCB, info.descriptor->id, info.uuid, info.revision); } catch(const NodeUnreachableException& ex) { |