diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-11-23 14:44:51 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-11-23 14:44:51 +0000 |
commit | ad476fdda5c9a9f23b9e65fc3c4b3016f7704848 (patch) | |
tree | 329b46efefd33095fe3ed8dc92ef3d8726cd0857 /cpp/src/IceGrid/NodeSessionI.cpp | |
parent | Remove deprecated methods (diff) | |
download | ice-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.cpp | 15 |
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) |