summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeCache.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-09-12 09:01:35 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-09-12 09:01:35 +0000
commitd89514da858be06f7e44129bcd6675a46181208e (patch)
tree662073ca1e8a9b6e56e9914087da66a824b88d6c /cpp/src/IceGrid/NodeCache.cpp
parentMinor Makefile tweak. (diff)
downloadice-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.cpp37
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)
{