summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-06-27 23:01:13 +0200
committerBenoit Foucher <benoit@zeroc.com>2017-06-27 23:01:13 +0200
commit18a18d6f301a74a4a5534a7b29315a19a7baf6fa (patch)
treed3ffcca408ae8f96f975ce68c484675001b5b984 /cpp/src
parentminor PHP fixes (diff)
downloadice-18a18d6f301a74a4a5534a7b29315a19a7baf6fa.tar.bz2
ice-18a18d6f301a74a4a5534a7b29315a19a7baf6fa.tar.xz
ice-18a18d6f301a74a4a5534a7b29315a19a7baf6fa.zip
Fixed ICE-8163 - improved locator tracing
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/LocatorInfo.cpp61
-rw-r--r--cpp/src/Ice/LocatorInfo.h1
2 files changed, 49 insertions, 13 deletions
diff --git a/cpp/src/Ice/LocatorInfo.cpp b/cpp/src/Ice/LocatorInfo.cpp
index 95695c88e39..fc17b90c4e3 100644
--- a/cpp/src/Ice/LocatorInfo.cpp
+++ b/cpp/src/Ice/LocatorInfo.cpp
@@ -371,6 +371,11 @@ IceInternal::LocatorInfo::RequestCallback::response(const LocatorInfoPtr& locato
// by the locator is an indirect proxy. We now need to resolve the endpoints
// of this indirect proxy.
//
+ if(_ref->getInstance()->traceLevels()->location >= 1)
+ {
+ locatorInfo->trace("retrieved adapter for well-known object from locator, adding to locator cache",
+ _ref, r);
+ }
locatorInfo->getEndpoints(r, _ref, _ttl, _callback);
return;
}
@@ -591,6 +596,10 @@ IceInternal::LocatorInfo::getEndpoints(const ReferencePtr& ref,
}
else if(!r->isWellKnown())
{
+ if(ref->getInstance()->traceLevels()->location >= 1)
+ {
+ trace("found adapter for well-known object in locator cache", ref, r);
+ }
getEndpoints(r, ref, ttl, callback);
return;
}
@@ -618,7 +627,7 @@ IceInternal::LocatorInfo::clearCache(const ReferencePtr& ref)
if(!endpoints.empty() && ref->getInstance()->traceLevels()->location >= 2)
{
- trace("removed endpoints from locator table", ref, endpoints);
+ trace("removed endpoints for adapter from locator cache", ref, endpoints);
}
}
else
@@ -630,11 +639,15 @@ IceInternal::LocatorInfo::clearCache(const ReferencePtr& ref)
{
if(ref->getInstance()->traceLevels()->location >= 2)
{
- trace("removed endpoints from locator table", ref, r->getEndpoints());
+ trace("removed endpoints for well-known object from locator cache", ref, r->getEndpoints());
}
}
else if(!r->isWellKnown())
{
+ if(ref->getInstance()->traceLevels()->location >= 2)
+ {
+ trace("removed adapter for well-known object from locator cache", ref, r);
+ }
clearCache(r);
}
}
@@ -690,11 +703,10 @@ IceInternal::LocatorInfo::getEndpointsException(const ReferencePtr& ref, const I
if(ref->getInstance()->traceLevels()->location >= 1)
{
Trace out(ref->getInstance()->initializationData().logger, ref->getInstance()->traceLevels()->locationCat);
- out << "couldn't contact the locator to retrieve adapter endpoints\n";
+ out << "couldn't contact the locator to retrieve endpoints\n";
if(ref->getAdapterId().empty())
{
- out << "object = " << Ice::identityToString(ref->getIdentity(), ref->getInstance()->toStringMode())
- << "\n";
+ out << "well-known proxy = " << ref->toString() << "\n";
}
else
{
@@ -715,11 +727,25 @@ IceInternal::LocatorInfo::getEndpointsTrace(const ReferencePtr& ref,
{
if(cached)
{
- trace("found endpoints in locator table", ref, endpoints);
+ if(ref->isWellKnown())
+ {
+ trace("found endpoints for well-known proxy in locator cache", ref, endpoints);
+ }
+ else
+ {
+ trace("found endpoints for adapter in locator cache", ref, endpoints);
+ }
}
else
{
- trace("retrieved endpoints from locator, adding to locator table", ref, endpoints);
+ if(ref->isWellKnown())
+ {
+ trace("retrieved endpoints for well-known proxy from locator, adding to locator cache", ref, endpoints);
+ }
+ else
+ {
+ trace("retrieved endpoints for adapter from locator, adding to locator cache", ref, endpoints);
+ }
}
}
else
@@ -728,8 +754,8 @@ IceInternal::LocatorInfo::getEndpointsTrace(const ReferencePtr& ref,
out << "no endpoints configured for ";
if(ref->getAdapterId().empty())
{
- out << "object\n";
- out << "object = " << Ice::identityToString(ref->getIdentity(), ref->getInstance()->toStringMode());
+ out << "well-known object\n";
+ out << "well-known proxy = " << ref->toString();
}
else
{
@@ -752,8 +778,7 @@ IceInternal::LocatorInfo::trace(const string& msg, const ReferencePtr& ref, cons
}
else
{
- out << "object = " << Ice::identityToString(ref->getIdentity(), ref->getInstance()->toStringMode())
- << '\n';
+ out << "well-known proxy = " << ref->toString() << '\n';
}
const char* sep = endpoints.size() > 1 ? ":" : "";
@@ -763,6 +788,17 @@ IceInternal::LocatorInfo::trace(const string& msg, const ReferencePtr& ref, cons
out << "endpoints = " << o.str();
}
+void
+IceInternal::LocatorInfo::trace(const string& msg, const ReferencePtr& ref, const ReferencePtr& resolved)
+{
+ assert(ref->isWellKnown());
+
+ Trace out(ref->getInstance()->initializationData().logger, ref->getInstance()->traceLevels()->locationCat);
+ out << msg << '\n';
+ out << "well-known proxy = " << ref->toString() << '\n';
+ out << "adapter = " << resolved->getAdapterId();
+}
+
IceInternal::LocatorInfo::RequestPtr
IceInternal::LocatorInfo::getAdapterRequest(const ReferencePtr& ref)
{
@@ -791,8 +827,7 @@ IceInternal::LocatorInfo::getObjectRequest(const ReferencePtr& ref)
if(ref->getInstance()->traceLevels()->location >= 1)
{
Trace out(ref->getInstance()->initializationData().logger, ref->getInstance()->traceLevels()->locationCat);
- out << "searching for object by id\nobject = " << Ice::identityToString(ref->getIdentity(),
- ref->getInstance()->toStringMode());
+ out << "searching for well-known object\nwell-known proxy = " << ref->toString();
}
map<Ice::Identity, RequestPtr>::const_iterator p = _objectRequests.find(ref->getIdentity());
diff --git a/cpp/src/Ice/LocatorInfo.h b/cpp/src/Ice/LocatorInfo.h
index 1f66426621b..6df7444cab9 100644
--- a/cpp/src/Ice/LocatorInfo.h
+++ b/cpp/src/Ice/LocatorInfo.h
@@ -171,6 +171,7 @@ private:
void getEndpointsException(const ReferencePtr&, const Ice::Exception&);
void getEndpointsTrace(const ReferencePtr&, const std::vector<EndpointIPtr>&, bool);
void trace(const std::string&, const ReferencePtr&, const std::vector<EndpointIPtr>&);
+ void trace(const std::string&, const ReferencePtr&, const ReferencePtr&);
RequestPtr getAdapterRequest(const ReferencePtr&);
RequestPtr getObjectRequest(const ReferencePtr&);