summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/ServerCache.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2007-02-01 17:09:49 +0000
committerBernard Normier <bernard@zeroc.com>2007-02-01 17:09:49 +0000
commitabada90e3f84dc703b8ddc9efcbed8a946fadead (patch)
tree2c6f9dccd510ea97cb927a7bd635422efaae547a /cpp/src/IceGrid/ServerCache.cpp
parentremoving trace message (diff)
downloadice-abada90e3f84dc703b8ddc9efcbed8a946fadead.tar.bz2
ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.tar.xz
ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.zip
Expanded tabs into spaces
Diffstat (limited to 'cpp/src/IceGrid/ServerCache.cpp')
-rw-r--r--cpp/src/IceGrid/ServerCache.cpp1000
1 files changed, 500 insertions, 500 deletions
diff --git a/cpp/src/IceGrid/ServerCache.cpp b/cpp/src/IceGrid/ServerCache.cpp
index 36c8a917717..14030eea69b 100644
--- a/cpp/src/IceGrid/ServerCache.cpp
+++ b/cpp/src/IceGrid/ServerCache.cpp
@@ -26,45 +26,45 @@ namespace IceGrid
struct AddCommunicator : std::unary_function<CommunicatorDescriptorPtr&, void>
{
- AddCommunicator(ServerCache& serverCache, const ServerEntryPtr& entry, const string& application) :
- _serverCache(serverCache), _entry(entry), _application(application)
- {
- }
-
- void
- operator()(const CommunicatorDescriptorPtr& desc)
- {
- _serverCache.addCommunicator(desc, _entry, _application);
- }
-
- ServerCache& _serverCache;
- const ServerEntryPtr _entry;
- const string _application;
+ AddCommunicator(ServerCache& serverCache, const ServerEntryPtr& entry, const string& application) :
+ _serverCache(serverCache), _entry(entry), _application(application)
+ {
+ }
+
+ void
+ operator()(const CommunicatorDescriptorPtr& desc)
+ {
+ _serverCache.addCommunicator(desc, _entry, _application);
+ }
+
+ ServerCache& _serverCache;
+ const ServerEntryPtr _entry;
+ const string _application;
};
struct RemoveCommunicator : std::unary_function<CommunicatorDescriptorPtr&, void>
{
- RemoveCommunicator(ServerCache& serverCache, const ServerEntryPtr& entry) :
- _serverCache(serverCache), _entry(entry)
- {
- }
+ RemoveCommunicator(ServerCache& serverCache, const ServerEntryPtr& entry) :
+ _serverCache(serverCache), _entry(entry)
+ {
+ }
- void
- operator()(const CommunicatorDescriptorPtr& desc)
- {
- _serverCache.removeCommunicator(desc, _entry);
- }
+ void
+ operator()(const CommunicatorDescriptorPtr& desc)
+ {
+ _serverCache.removeCommunicator(desc, _entry);
+ }
- ServerCache& _serverCache;
- const ServerEntryPtr _entry;
+ ServerCache& _serverCache;
+ const ServerEntryPtr _entry;
};
}
ServerCache::ServerCache(const Ice::CommunicatorPtr& communicator,
- NodeCache& nodeCache,
- AdapterCache& adapterCache,
- ObjectCache& objectCache,
- AllocatableObjectCache& allocatableObjectCache) :
+ NodeCache& nodeCache,
+ AdapterCache& adapterCache,
+ ObjectCache& objectCache,
+ AllocatableObjectCache& allocatableObjectCache) :
_communicator(communicator),
_nodeCache(nodeCache),
_adapterCache(adapterCache),
@@ -81,8 +81,8 @@ ServerCache::add(const ServerInfo& info)
ServerEntryPtr entry = getImpl(info.descriptor->id);
if(!entry)
{
- entry = new ServerEntry(*this, info.descriptor->id);
- addImpl(info.descriptor->id, entry);
+ entry = new ServerEntry(*this, info.descriptor->id);
+ addImpl(info.descriptor->id, entry);
}
entry->update(info);
_nodeCache.get(info.node, true)->addServer(entry);
@@ -91,9 +91,9 @@ ServerCache::add(const ServerInfo& info)
if(_traceLevels && _traceLevels->server > 0)
{
- Ice::Trace out(_traceLevels->logger, _traceLevels->serverCat);
+ Ice::Trace out(_traceLevels->logger, _traceLevels->serverCat);
- out << "added server `" << info.descriptor->id << "' (`" << info.uuid << "', `" << info.revision << "')";
+ out << "added server `" << info.descriptor->id << "' (`" << info.uuid << "', `" << info.revision << "')";
}
return entry;
@@ -106,9 +106,9 @@ ServerCache::get(const string& id) const
ServerEntryPtr entry = getImpl(id);
if(!entry)
{
- ServerNotExistException ex;
- ex.id = id;
- throw ex;
+ ServerNotExistException ex;
+ ex.id = id;
+ throw ex;
}
return entry;
}
@@ -134,14 +134,14 @@ ServerCache::remove(const string& id, bool destroy)
if(destroy)
{
- entry->destroy(); // This must be done after otherwise some allocatable objects
- // might allocate a destroyed server.
+ entry->destroy(); // This must be done after otherwise some allocatable objects
+ // might allocate a destroyed server.
}
if(_traceLevels && _traceLevels->server > 0)
{
- Ice::Trace out(_traceLevels->logger, _traceLevels->serverCat);
- out << "removed server `" << id << "'";
+ Ice::Trace out(_traceLevels->logger, _traceLevels->serverCat);
+ out << "removed server `" << id << "'";
}
return entry;
@@ -156,30 +156,30 @@ ServerCache::clear(const string& id)
void
ServerCache::addCommunicator(const CommunicatorDescriptorPtr& comm,
- const ServerEntryPtr& server,
- const string& application)
+ const ServerEntryPtr& server,
+ const string& application)
{
for(AdapterDescriptorSeq::const_iterator q = comm->adapters.begin() ; q != comm->adapters.end(); ++q)
{
- assert(!q->id.empty());
- _adapterCache.addServerAdapter(*q, server, application);
+ assert(!q->id.empty());
+ _adapterCache.addServerAdapter(*q, server, application);
- ObjectDescriptorSeq::const_iterator r;
- for(r = q->objects.begin(); r != q->objects.end(); ++r)
- {
- ObjectInfo info;
- info.type = r->type;
- info.proxy = _communicator->stringToProxy("\"" + _communicator->identityToString(r->id) + "\" @ " + q->id);
- _objectCache.add(info, application);
- }
+ ObjectDescriptorSeq::const_iterator r;
+ for(r = q->objects.begin(); r != q->objects.end(); ++r)
+ {
+ ObjectInfo info;
+ info.type = r->type;
+ info.proxy = _communicator->stringToProxy("\"" + _communicator->identityToString(r->id) + "\" @ " + q->id);
+ _objectCache.add(info, application);
+ }
- for(r = q->allocatables.begin(); r != q->allocatables.end(); ++r)
- {
- ObjectInfo info;
- info.type = r->type;
- info.proxy = _communicator->stringToProxy("\"" + _communicator->identityToString(r->id) + "\" @ " + q->id);
- _allocatableObjectCache.add(info, server);
- }
+ for(r = q->allocatables.begin(); r != q->allocatables.end(); ++r)
+ {
+ ObjectInfo info;
+ info.type = r->type;
+ info.proxy = _communicator->stringToProxy("\"" + _communicator->identityToString(r->id) + "\" @ " + q->id);
+ _allocatableObjectCache.add(info, server);
+ }
}
}
@@ -188,16 +188,16 @@ ServerCache::removeCommunicator(const CommunicatorDescriptorPtr& comm, const Ser
{
for(AdapterDescriptorSeq::const_iterator q = comm->adapters.begin() ; q != comm->adapters.end(); ++q)
{
- ObjectDescriptorSeq::const_iterator r;
- for(r = q->objects.begin(); r != q->objects.end(); ++r)
- {
- _objectCache.remove(r->id);
- }
- for(r = q->allocatables.begin(); r != q->allocatables.end(); ++r)
- {
- _allocatableObjectCache.remove(r->id);
- }
- _adapterCache.removeServerAdapter(q->id);
+ ObjectDescriptorSeq::const_iterator r;
+ for(r = q->objects.begin(); r != q->objects.end(); ++r)
+ {
+ _objectCache.remove(r->id);
+ }
+ for(r = q->allocatables.begin(); r != q->allocatables.end(); ++r)
+ {
+ _allocatableObjectCache.remove(r->id);
+ }
+ _adapterCache.removeServerAdapter(q->id);
}
}
@@ -224,14 +224,14 @@ ServerEntry::syncAndWait()
syncImpl();
try
{
- waitImpl();
+ waitImpl();
}
catch(const NodeUnreachableException&)
{
- //
- // The node being unreachable isn't considered as a failure to
- // synchronize the server.
- //
+ //
+ // The node being unreachable isn't considered as a failure to
+ // synchronize the server.
+ //
}
}
@@ -240,7 +240,7 @@ ServerEntry::waitNoThrow()
{
try
{
- waitImpl();
+ waitImpl();
}
catch(const Ice::Exception&)
{
@@ -253,7 +253,7 @@ ServerEntry::unsync()
Lock sync(*this);
if(_loaded.get())
{
- _load = _loaded;
+ _load = _loaded;
}
_proxy = 0;
_adapters.clear();
@@ -273,14 +273,14 @@ ServerEntry::update(const ServerInfo& info)
if(!_destroy.get())
{
- if(_loaded.get() && descriptor->node != _loaded->node)
- {
- _destroy = _loaded;
- }
- else if(_load.get() && descriptor->node != _load->node)
- {
- _destroy = _load;
- }
+ if(_loaded.get() && descriptor->node != _loaded->node)
+ {
+ _destroy = _loaded;
+ }
+ else if(_load.get() && descriptor->node != _load->node)
+ {
+ _destroy = _load;
+ }
}
_load = descriptor;
@@ -298,16 +298,16 @@ ServerEntry::destroy()
assert(_loaded.get() || _load.get());
if(!_destroy.get())
{
- if(_loaded.get())
- {
- assert(!_destroy.get());
- _destroy = _loaded;
- }
- else if(_load.get())
- {
- assert(!_destroy.get());
- _destroy = _load;
- }
+ if(_loaded.get())
+ {
+ assert(!_destroy.get());
+ _destroy = _loaded;
+ }
+ else if(_load.get())
+ {
+ assert(!_destroy.get());
+ _destroy = _load;
+ }
}
_load.reset(0);
@@ -321,30 +321,30 @@ ServerEntry::getInfo(bool resolve) const
ServerInfo info;
SessionIPtr session;
{
- Lock sync(*this);
- if(!_loaded.get() && !_load.get())
- {
- throw ServerNotExistException();
- }
- info = _loaded.get() ? *_loaded : *_load;
- session = _session;
+ Lock sync(*this);
+ if(!_loaded.get() && !_load.get())
+ {
+ throw ServerNotExistException();
+ }
+ info = _loaded.get() ? *_loaded : *_load;
+ session = _session;
}
assert(info.descriptor);
if(resolve)
{
- try
- {
- return _cache.getNodeCache().get(info.node)->getServerInfo(info, session);
- }
- catch(const DeploymentException&)
- {
- }
- catch(const NodeNotExistException&)
- {
- }
- catch(const NodeUnreachableException&)
- {
- }
+ try
+ {
+ return _cache.getNodeCache().get(info.node)->getServerInfo(info, session);
+ }
+ catch(const DeploymentException&)
+ {
+ }
+ catch(const NodeNotExistException&)
+ {
+ }
+ catch(const NodeUnreachableException&)
+ {
+ }
}
return info;
}
@@ -367,45 +367,45 @@ ServerPrx
ServerEntry::getProxy(int& activationTimeout, int& deactivationTimeout, string& node, bool upToDate)
{
{
- Lock sync(*this);
- if(_loaded.get() || _proxy && _synchronizing && !upToDate) // Synced or if not up to date is fine
- {
- assert(_loaded.get() || _load.get() || _destroy.get());
- activationTimeout = _activationTimeout;
- deactivationTimeout = _deactivationTimeout;
- node = _loaded.get() ? _loaded->node : (_load.get() ? _load->node : _destroy->node);
- return _proxy;
- }
+ Lock sync(*this);
+ if(_loaded.get() || _proxy && _synchronizing && !upToDate) // Synced or if not up to date is fine
+ {
+ assert(_loaded.get() || _load.get() || _destroy.get());
+ activationTimeout = _activationTimeout;
+ deactivationTimeout = _deactivationTimeout;
+ node = _loaded.get() ? _loaded->node : (_load.get() ? _load->node : _destroy->node);
+ return _proxy;
+ }
}
while(true)
{
- //
- // Note that we don't call syncAndWait() because we want
- // NodeUnreachableException exceptions to go through.
- //
- syncImpl();
- waitImpl();
-
- {
- Lock sync(*this);
- if(_loaded.get() || _proxy && _synchronizing && !upToDate) // Synced or if not up to date is fine
- {
- assert(_loaded.get() || _load.get() || _destroy.get());
- activationTimeout = _activationTimeout;
- deactivationTimeout = _deactivationTimeout;
- node = _loaded.get() ? _loaded->node : (_load.get() ? _load->node : _destroy->node);
- return _proxy;
- }
- else if(_load.get())
- {
- continue; // Retry
- }
- else
- {
- throw ServerNotExistException(_id);
- }
- }
+ //
+ // Note that we don't call syncAndWait() because we want
+ // NodeUnreachableException exceptions to go through.
+ //
+ syncImpl();
+ waitImpl();
+
+ {
+ Lock sync(*this);
+ if(_loaded.get() || _proxy && _synchronizing && !upToDate) // Synced or if not up to date is fine
+ {
+ assert(_loaded.get() || _load.get() || _destroy.get());
+ activationTimeout = _activationTimeout;
+ deactivationTimeout = _deactivationTimeout;
+ node = _loaded.get() ? _loaded->node : (_load.get() ? _load->node : _destroy->node);
+ return _proxy;
+ }
+ else if(_load.get())
+ {
+ continue; // Retry
+ }
+ else
+ {
+ throw ServerNotExistException(_id);
+ }
+ }
}
}
@@ -420,58 +420,58 @@ AdapterPrx
ServerEntry::getAdapter(int& activationTimeout, int& deactivationTimeout, const string& id, bool upToDate)
{
{
- Lock sync(*this);
- if(_loaded.get() || _proxy && _synchronizing && !upToDate) // Synced or if not up to date is fine
- {
- AdapterPrxDict::const_iterator p = _adapters.find(id);
- if(p != _adapters.end())
- {
- assert(p->second);
- activationTimeout = _activationTimeout;
- deactivationTimeout = _deactivationTimeout;
- return p->second;
- }
- else
- {
- throw AdapterNotExistException(id);
- }
- }
+ Lock sync(*this);
+ if(_loaded.get() || _proxy && _synchronizing && !upToDate) // Synced or if not up to date is fine
+ {
+ AdapterPrxDict::const_iterator p = _adapters.find(id);
+ if(p != _adapters.end())
+ {
+ assert(p->second);
+ activationTimeout = _activationTimeout;
+ deactivationTimeout = _deactivationTimeout;
+ return p->second;
+ }
+ else
+ {
+ throw AdapterNotExistException(id);
+ }
+ }
}
while(true)
{
- //
- // Note that we don't call syncAndWait() because we want
- // NodeUnreachableException exceptions to go through.
- //
- syncImpl();
- waitImpl();
-
- {
- Lock sync(*this);
- if(_loaded.get() || _proxy && _synchronizing && !upToDate) // Synced or if not up to date is fine
- {
- AdapterPrxDict::const_iterator p = _adapters.find(id);
- if(p != _adapters.end())
- {
- activationTimeout = _activationTimeout;
- deactivationTimeout = _deactivationTimeout;
- return p->second;
- }
- else
- {
- throw AdapterNotExistException(id);
- }
- }
- else if(_load.get())
- {
- continue; // Retry
- }
- else
- {
- throw AdapterNotExistException(id);
- }
- }
+ //
+ // Note that we don't call syncAndWait() because we want
+ // NodeUnreachableException exceptions to go through.
+ //
+ syncImpl();
+ waitImpl();
+
+ {
+ Lock sync(*this);
+ if(_loaded.get() || _proxy && _synchronizing && !upToDate) // Synced or if not up to date is fine
+ {
+ AdapterPrxDict::const_iterator p = _adapters.find(id);
+ if(p != _adapters.end())
+ {
+ activationTimeout = _activationTimeout;
+ deactivationTimeout = _deactivationTimeout;
+ return p->second;
+ }
+ else
+ {
+ throw AdapterNotExistException(id);
+ }
+ }
+ else if(_load.get())
+ {
+ continue; // Retry
+ }
+ else
+ {
+ throw AdapterNotExistException(id);
+ }
+ }
}
}
@@ -481,21 +481,21 @@ ServerEntry::getLoad(LoadSample sample) const
string application;
string node;
{
- Lock sync(*this);
- if(_loaded.get())
- {
- application = _loaded->application;
- node = _loaded->node;
- }
- else if(_load.get())
- {
- application = _load->application;
- node = _load->node;
- }
- else
- {
- throw ServerNotExistException();
- }
+ Lock sync(*this);
+ if(_loaded.get())
+ {
+ application = _loaded->application;
+ node = _loaded->node;
+ }
+ else if(_load.get())
+ {
+ application = _load->application;
+ node = _load->node;
+ }
+ else
+ {
+ throw ServerNotExistException();
+ }
}
float factor;
@@ -503,14 +503,14 @@ ServerEntry::getLoad(LoadSample sample) const
switch(sample)
{
case LoadSample1:
- return load.avg1 < 0.f ? 1.0f : load.avg1 * factor;
+ return load.avg1 < 0.f ? 1.0f : load.avg1 * factor;
case LoadSample5:
- return load.avg5 < 0.f ? 1.0f : load.avg5 * factor;
+ return load.avg5 < 0.f ? 1.0f : load.avg5 * factor;
case LoadSample15:
- return load.avg15 < 0.f ? 1.0f : load.avg15 * factor;
+ return load.avg15 < 0.f ? 1.0f : load.avg15 * factor;
default:
- assert(false);
- return 1.0f;
+ assert(false);
+ return 1.0f;
}
}
@@ -523,60 +523,60 @@ ServerEntry::syncImpl()
int timeout = -1;
{
- Lock sync(*this);
- if(_synchronizing)
- {
- return;
- }
-
- if(!_load.get() && !_destroy.get())
- {
- _load = _loaded; // Re-load the current server.
- }
-
- _updated = false;
- _exception.reset(0);
-
- if(_destroy.get())
- {
- destroy = *_destroy;
- timeout = _deactivationTimeout;
- }
- else if(_load.get())
- {
- load = *_load;
- session = _session;
- timeout = _deactivationTimeout; // loadServer might block to deactivate the previous server.
- }
- else
- {
- return;
- }
-
- _synchronizing = true;
+ Lock sync(*this);
+ if(_synchronizing)
+ {
+ return;
+ }
+
+ if(!_load.get() && !_destroy.get())
+ {
+ _load = _loaded; // Re-load the current server.
+ }
+
+ _updated = false;
+ _exception.reset(0);
+
+ if(_destroy.get())
+ {
+ destroy = *_destroy;
+ timeout = _deactivationTimeout;
+ }
+ else if(_load.get())
+ {
+ load = *_load;
+ session = _session;
+ timeout = _deactivationTimeout; // loadServer might block to deactivate the previous server.
+ }
+ else
+ {
+ return;
+ }
+
+ _synchronizing = true;
}
if(destroy.descriptor)
{
- try
- {
- _cache.getNodeCache().get(destroy.node)->destroyServer(this, destroy, timeout);
- }
- catch(NodeNotExistException&)
- {
- exception(NodeUnreachableException(destroy.node, "node is not active"));
- }
+ try
+ {
+ _cache.getNodeCache().get(destroy.node)->destroyServer(this, destroy, timeout);
+ }
+ catch(NodeNotExistException&)
+ {
+ exception(NodeUnreachableException(destroy.node, "node is not active"));
+ }
}
else if(load.descriptor)
{
- try
- {
- _cache.getNodeCache().get(load.node)->loadServer(this, load, session, timeout);
- }
- catch(NodeNotExistException&)
- {
- exception(NodeUnreachableException(load.node, "node is not active"));
- }
+ try
+ {
+ _cache.getNodeCache().get(load.node)->loadServer(this, load, session, timeout);
+ }
+ catch(NodeNotExistException&)
+ {
+ exception(NodeUnreachableException(load.node, "node is not active"));
+ }
}
}
@@ -586,35 +586,35 @@ ServerEntry::waitImpl()
Lock sync(*this);
while(_synchronizing)
{
- wait();
+ wait();
}
if(_exception.get())
{
- try
- {
- _exception->ice_throw();
- }
- catch(const DeploymentException&)
- {
- throw;
- }
- catch(const NodeUnreachableException&)
- {
- throw;
- }
- catch(const Ice::Exception& ex) // This shouln't happen.
- {
- ostringstream os;
- os << "unexpected exception while synchronizing server `" + _id + "':\n" << ex;
- TraceLevelsPtr traceLevels = _cache.getTraceLevels();
- if(traceLevels)
- {
- Ice::Error err(traceLevels->logger);
- err << os.str();
- }
- throw DeploymentException(os.str());
- }
+ try
+ {
+ _exception->ice_throw();
+ }
+ catch(const DeploymentException&)
+ {
+ throw;
+ }
+ catch(const NodeUnreachableException&)
+ {
+ throw;
+ }
+ catch(const Ice::Exception& ex) // This shouln't happen.
+ {
+ ostringstream os;
+ os << "unexpected exception while synchronizing server `" + _id + "':\n" << ex;
+ TraceLevelsPtr traceLevels = _cache.getTraceLevels();
+ if(traceLevels)
+ {
+ Ice::Error err(traceLevels->logger);
+ err << os.str();
+ }
+ throw DeploymentException(os.str());
+ }
}
}
@@ -627,66 +627,66 @@ ServerEntry::loadCallback(const ServerPrx& proxy, const AdapterPrxDict& adpts, i
int timeout = -1;
{
- Lock sync(*this);
- if(!_updated)
- {
- //
- // Set timeout on server and adapter proxies. Most of the
- // calls on the proxies shouldn't block for longer than the
- // node session timeout. Calls that might block for a longer
- // time should set the correct timeout before invoking on the
- // proxy (e.g.: server start/stop, adapter activate).
- //
- _loaded = _load;
- assert(_loaded.get());
- _proxy = proxy;
- _adapters = adpts;
- _activationTimeout = at;
- _deactivationTimeout = dt;
-
- assert(!_destroy.get() && !_load.get());
- _synchronizing = false;
- notifyAll();
- return;
- }
- else
- {
- _updated = false;
- if(_destroy.get())
- {
- destroy = *_destroy;
- }
- else if(_load.get())
- {
- load = *_load;
- session = _session;
- timeout = _deactivationTimeout; // loadServer might block to deactivate the previous server.
- }
- }
+ Lock sync(*this);
+ if(!_updated)
+ {
+ //
+ // Set timeout on server and adapter proxies. Most of the
+ // calls on the proxies shouldn't block for longer than the
+ // node session timeout. Calls that might block for a longer
+ // time should set the correct timeout before invoking on the
+ // proxy (e.g.: server start/stop, adapter activate).
+ //
+ _loaded = _load;
+ assert(_loaded.get());
+ _proxy = proxy;
+ _adapters = adpts;
+ _activationTimeout = at;
+ _deactivationTimeout = dt;
+
+ assert(!_destroy.get() && !_load.get());
+ _synchronizing = false;
+ notifyAll();
+ return;
+ }
+ else
+ {
+ _updated = false;
+ if(_destroy.get())
+ {
+ destroy = *_destroy;
+ }
+ else if(_load.get())
+ {
+ load = *_load;
+ session = _session;
+ timeout = _deactivationTimeout; // loadServer might block to deactivate the previous server.
+ }
+ }
}
assert(destroy.descriptor || load.descriptor);
if(destroy.descriptor)
{
- try
- {
- _cache.getNodeCache().get(destroy.node)->destroyServer(this, destroy, timeout);
- }
- catch(NodeNotExistException&)
- {
- exception(NodeUnreachableException(destroy.node, "node is not active"));
- }
+ try
+ {
+ _cache.getNodeCache().get(destroy.node)->destroyServer(this, destroy, timeout);
+ }
+ catch(NodeNotExistException&)
+ {
+ exception(NodeUnreachableException(destroy.node, "node is not active"));
+ }
}
else if(load.descriptor)
{
- try
- {
- _cache.getNodeCache().get(load.node)->loadServer(this, load, session, timeout);
- }
- catch(NodeNotExistException&)
- {
- exception(NodeUnreachableException(load.node, "node is not active"));
- }
+ try
+ {
+ _cache.getNodeCache().get(load.node)->loadServer(this, load, session, timeout);
+ }
+ catch(NodeNotExistException&)
+ {
+ exception(NodeUnreachableException(load.node, "node is not active"));
+ }
}
}
@@ -697,41 +697,41 @@ ServerEntry::destroyCallback()
SessionIPtr session;
{
- Lock sync(*this);
- _destroy.reset(0);
- _proxy = 0;
- _adapters.clear();
- _activationTimeout = -1;
- _deactivationTimeout = -1;
+ Lock sync(*this);
+ _destroy.reset(0);
+ _proxy = 0;
+ _adapters.clear();
+ _activationTimeout = -1;
+ _deactivationTimeout = -1;
- if(!_load.get())
- {
- assert(!_load.get() && !_loaded.get());
- _synchronizing = false;
- notifyAll();
- }
- else
- {
- _updated = false;
- load = *_load;
- session = _session;
- }
+ if(!_load.get())
+ {
+ assert(!_load.get() && !_loaded.get());
+ _synchronizing = false;
+ notifyAll();
+ }
+ else
+ {
+ _updated = false;
+ load = *_load;
+ session = _session;
+ }
}
if(load.descriptor)
{
- try
- {
- _cache.getNodeCache().get(load.node)->loadServer(this, load, session, -1);
- }
- catch(NodeNotExistException&)
- {
- exception(NodeUnreachableException(load.node, "node is not active"));
- }
+ try
+ {
+ _cache.getNodeCache().get(load.node)->loadServer(this, load, session, -1);
+ }
+ catch(NodeNotExistException&)
+ {
+ exception(NodeUnreachableException(load.node, "node is not active"));
+ }
}
else
{
- _cache.clear(_id);
+ _cache.clear(_id);
}
}
@@ -744,43 +744,43 @@ ServerEntry::exception(const Ice::Exception& ex)
int timeout = -1;
{
- Lock sync(*this);
- if((_destroy.get() && !_load.get()) || (!_destroy.get() && !_updated))
- {
- remove = _destroy.get();
- _destroy.reset(0);
- _exception.reset(ex.ice_clone());
- _proxy = 0;
- _adapters.clear();
- _activationTimeout = -1;
- _deactivationTimeout = -1;
- _synchronizing = false;
- notifyAll();
- }
- else
- {
- _destroy.reset(0);
- _updated = false;
- load = *_load.get();
- session = _session;
- timeout = _deactivationTimeout; // loadServer might block to deactivate the previous server.
- }
+ Lock sync(*this);
+ if((_destroy.get() && !_load.get()) || (!_destroy.get() && !_updated))
+ {
+ remove = _destroy.get();
+ _destroy.reset(0);
+ _exception.reset(ex.ice_clone());
+ _proxy = 0;
+ _adapters.clear();
+ _activationTimeout = -1;
+ _deactivationTimeout = -1;
+ _synchronizing = false;
+ notifyAll();
+ }
+ else
+ {
+ _destroy.reset(0);
+ _updated = false;
+ load = *_load.get();
+ session = _session;
+ timeout = _deactivationTimeout; // loadServer might block to deactivate the previous server.
+ }
}
if(load.descriptor)
{
- try
- {
- _cache.getNodeCache().get(load.node)->loadServer(this, load, session, timeout);
- }
- catch(NodeNotExistException&)
- {
- exception(NodeUnreachableException(load.node, "node is not active"));
- }
+ try
+ {
+ _cache.getNodeCache().get(load.node)->loadServer(this, load, session, timeout);
+ }
+ catch(NodeNotExistException&)
+ {
+ exception(NodeUnreachableException(load.node, "node is not active"));
+ }
}
else if(remove)
{
- _cache.clear(_id);
+ _cache.clear(_id);
}
}
@@ -804,14 +804,14 @@ ServerEntry::allocated(const SessionIPtr& session)
{
if(!_loaded.get() && !_load.get())
{
- return;
+ return;
}
TraceLevelsPtr traceLevels = _cache.getTraceLevels();
if(traceLevels && traceLevels->server > 1)
{
- Ice::Trace out(traceLevels->logger, traceLevels->serverCat);
- out << "server `" << _id << "' allocated by `" << session->getId() << "' (" << _count << ")";
+ Ice::Trace out(traceLevels->logger, traceLevels->serverCat);
+ out << "server `" << _id << "' allocated by `" << session->getId() << "' (" << _count << ")";
}
ServerDescriptorPtr desc = _loaded.get() ? _loaded->descriptor : _load->descriptor;
@@ -824,52 +824,52 @@ ServerEntry::allocated(const SessionIPtr& session)
//
if(desc->activation == "session")
{
- _updated = true;
- if(!_load.get())
- {
- _load = _loaded;
- }
- _session = session;
- _load->sessionId = session->getId();
+ _updated = true;
+ if(!_load.get())
+ {
+ _load = _loaded;
+ }
+ _session = session;
+ _load->sessionId = session->getId();
}
Glacier2::SessionControlPrx ctl = session->getSessionControl();
if(ctl)
{
- ServerHelperPtr helper = createHelper(desc);
- multiset<string> adapterIds;
- multiset<Ice::Identity> identities;
- helper->getIds(adapterIds, identities);
- try
- {
- //
- // SunCC won't accept the following:
- //
- // ctl->adapterIds()->add(Ice::StringSeq(adapterIds.begin(), adapterIds.end()));
- // ctl->identities()->add(Ice::IdentitySeq(identities.begin(), identities.end()));
- //
- Ice::StringSeq adapterIdSeq;
- for(multiset<string>::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p)
- {
- adapterIdSeq.push_back(*p);
- }
- Ice::IdentitySeq identitySeq;
- for(multiset<Ice::Identity>::iterator q = identities.begin(); q != identities.end(); ++q)
- {
- identitySeq.push_back(*q);
- }
- ctl->adapterIds()->add(adapterIdSeq);
- ctl->identities()->add(identitySeq);
- }
- catch(const Ice::LocalException& ex)
- {
- if(traceLevels && traceLevels->server > 0)
- {
- Ice::Trace out(traceLevels->logger, traceLevels->serverCat);
- out << "couldn't add Glacier2 filters for server `" << _id << "' allocated by `" << session->getId();
- out << ":\n" << ex;
- }
- }
+ ServerHelperPtr helper = createHelper(desc);
+ multiset<string> adapterIds;
+ multiset<Ice::Identity> identities;
+ helper->getIds(adapterIds, identities);
+ try
+ {
+ //
+ // SunCC won't accept the following:
+ //
+ // ctl->adapterIds()->add(Ice::StringSeq(adapterIds.begin(), adapterIds.end()));
+ // ctl->identities()->add(Ice::IdentitySeq(identities.begin(), identities.end()));
+ //
+ Ice::StringSeq adapterIdSeq;
+ for(multiset<string>::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p)
+ {
+ adapterIdSeq.push_back(*p);
+ }
+ Ice::IdentitySeq identitySeq;
+ for(multiset<Ice::Identity>::iterator q = identities.begin(); q != identities.end(); ++q)
+ {
+ identitySeq.push_back(*q);
+ }
+ ctl->adapterIds()->add(adapterIdSeq);
+ ctl->identities()->add(identitySeq);
+ }
+ catch(const Ice::LocalException& ex)
+ {
+ if(traceLevels && traceLevels->server > 0)
+ {
+ Ice::Trace out(traceLevels->logger, traceLevels->serverCat);
+ out << "couldn't add Glacier2 filters for server `" << _id << "' allocated by `" << session->getId();
+ out << ":\n" << ex;
+ }
+ }
}
}
@@ -877,13 +877,13 @@ void
ServerEntry::allocatedNoSync(const SessionIPtr& session)
{
{
- Lock sync(*this);
- if(!_updated ||
- _loaded.get() && _loaded->descriptor->activation != "session" ||
- _load.get() && _load->descriptor->activation != "session")
- {
- return;
- }
+ Lock sync(*this);
+ if(!_updated ||
+ _loaded.get() && _loaded->descriptor->activation != "session" ||
+ _load.get() && _load->descriptor->activation != "session")
+ {
+ return;
+ }
}
sync();
@@ -895,7 +895,7 @@ ServerEntry::released(const SessionIPtr& session)
{
if(!_loaded.get() && !_load.get())
{
- return;
+ return;
}
ServerDescriptorPtr desc = _loaded.get() ? _loaded->descriptor : _load->descriptor;
@@ -909,13 +909,13 @@ ServerEntry::released(const SessionIPtr& session)
//
if(desc->activation == "session")
{
- _updated = true;
- if(!_load.get())
- {
- _load = _loaded;
- }
- _load->sessionId = "";
- _session = 0;
+ _updated = true;
+ if(!_load.get())
+ {
+ _load = _loaded;
+ }
+ _load->sessionId = "";
+ _session = 0;
}
TraceLevelsPtr traceLevels = _cache.getTraceLevels();
@@ -923,46 +923,46 @@ ServerEntry::released(const SessionIPtr& session)
Glacier2::SessionControlPrx ctl = session->getSessionControl();
if(ctl)
{
- ServerHelperPtr helper = createHelper(desc);
- multiset<string> adapterIds;
- multiset<Ice::Identity> identities;
- helper->getIds(adapterIds, identities);
- try
- {
- //
- // SunCC won't accept the following:
- //
- // ctl->adapterIds()->remove(Ice::StringSeq(adapterIds.begin(), adapterIds.end()));
- // ctl->identities()->remove(Ice::IdentitySeq(identities.begin(), identities.end()));
- //
- Ice::StringSeq adapterIdSeq;
- for(multiset<string>::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p)
- {
- adapterIdSeq.push_back(*p);
- }
- Ice::IdentitySeq identitySeq;
- for(multiset<Ice::Identity>::iterator q = identities.begin(); q != identities.end(); ++q)
- {
- identitySeq.push_back(*q);
- }
- ctl->adapterIds()->remove(adapterIdSeq);
- ctl->identities()->remove(identitySeq);
- }
- catch(const Ice::LocalException& ex)
- {
- if(traceLevels && traceLevels->server > 0)
- {
- Ice::Trace out(traceLevels->logger, traceLevels->serverCat);
- out << "couldn't remove Glacier2 filters for server `" << _id << "' allocated by `";
- out << session->getId() << ":\n" << ex;
- }
- }
+ ServerHelperPtr helper = createHelper(desc);
+ multiset<string> adapterIds;
+ multiset<Ice::Identity> identities;
+ helper->getIds(adapterIds, identities);
+ try
+ {
+ //
+ // SunCC won't accept the following:
+ //
+ // ctl->adapterIds()->remove(Ice::StringSeq(adapterIds.begin(), adapterIds.end()));
+ // ctl->identities()->remove(Ice::IdentitySeq(identities.begin(), identities.end()));
+ //
+ Ice::StringSeq adapterIdSeq;
+ for(multiset<string>::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p)
+ {
+ adapterIdSeq.push_back(*p);
+ }
+ Ice::IdentitySeq identitySeq;
+ for(multiset<Ice::Identity>::iterator q = identities.begin(); q != identities.end(); ++q)
+ {
+ identitySeq.push_back(*q);
+ }
+ ctl->adapterIds()->remove(adapterIdSeq);
+ ctl->identities()->remove(identitySeq);
+ }
+ catch(const Ice::LocalException& ex)
+ {
+ if(traceLevels && traceLevels->server > 0)
+ {
+ Ice::Trace out(traceLevels->logger, traceLevels->serverCat);
+ out << "couldn't remove Glacier2 filters for server `" << _id << "' allocated by `";
+ out << session->getId() << ":\n" << ex;
+ }
+ }
}
if(traceLevels && traceLevels->server > 1)
{
- Ice::Trace out(traceLevels->logger, traceLevels->serverCat);
- out << "server `" << _id << "' released by `" << session->getId() << "' (" << _count << ")";
+ Ice::Trace out(traceLevels->logger, traceLevels->serverCat);
+ out << "server `" << _id << "' released by `" << session->getId() << "' (" << _count << ")";
}
}
@@ -970,13 +970,13 @@ void
ServerEntry::releasedNoSync(const SessionIPtr& session)
{
{
- Lock sync(*this);
- if(!_updated ||
- _loaded.get() && _loaded->descriptor->activation != "session" ||
- _load.get() && _load->descriptor->activation != "session")
- {
- return;
- }
+ Lock sync(*this);
+ if(!_updated ||
+ _loaded.get() && _loaded->descriptor->activation != "session" ||
+ _load.get() && _load->descriptor->activation != "session")
+ {
+ return;
+ }
}
sync();