summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeSessionI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-11-23 14:44:51 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-11-23 14:44:51 +0000
commitad476fdda5c9a9f23b9e65fc3c4b3016f7704848 (patch)
tree329b46efefd33095fe3ed8dc92ef3d8726cd0857 /cpp/src/IceGrid/NodeSessionI.cpp
parentRemove deprecated methods (diff)
downloadice-ad476fdda5c9a9f23b9e65fc3c4b3016f7704848.tar.bz2
ice-ad476fdda5c9a9f23b9e65fc3c4b3016f7704848.tar.xz
ice-ad476fdda5c9a9f23b9e65fc3c4b3016f7704848.zip
Code cleanup and fixed startup scalability issue of the registry (it no
longer contacts all the nodes).
Diffstat (limited to 'cpp/src/IceGrid/NodeSessionI.cpp')
-rw-r--r--cpp/src/IceGrid/NodeSessionI.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/NodeSessionI.cpp b/cpp/src/IceGrid/NodeSessionI.cpp
index 3f58722c742..8df3407c322 100644
--- a/cpp/src/IceGrid/NodeSessionI.cpp
+++ b/cpp/src/IceGrid/NodeSessionI.cpp
@@ -94,7 +94,7 @@ NodeSessionI::loadServers(const Ice::Current& current) const
{
try
{
- _database->getServer(*p);
+ _database->loadServer(*p);
}
catch(const Ice::UserException&)
{
@@ -130,6 +130,19 @@ NodeSessionI::destroy(const Ice::Current& current)
_destroy = true;
}
+ Ice::StringSeq servers = _database->getAllNodeServers(_name);
+ for(Ice::StringSeq::const_iterator p = servers.begin(); p != servers.end(); ++p)
+ {
+ try
+ {
+ _database->unloadServer(*p);
+ }
+ catch(const Ice::UserException&)
+ {
+ // Ignore.
+ }
+ }
+
_database->removeNode(_name, this, !current.adapter);
if(current.adapter)