summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/TransactionalEvictorI.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2012-08-21 17:01:15 -0400
committerBernard Normier <bernard@zeroc.com>2012-08-21 17:03:33 -0400
commit472d9552de83c5e8b96030f47ed222de77556417 (patch)
treeda9ed5b4c66c3e9ce112dbe6797cf73d8d386152 /cpp/src/Freeze/TransactionalEvictorI.cpp
parentFixed ICE-2097: with Ice encoding > 1.0, Freeze evictors no longer maintain (diff)
downloadice-472d9552de83c5e8b96030f47ed222de77556417.tar.bz2
ice-472d9552de83c5e8b96030f47ed222de77556417.tar.xz
ice-472d9552de83c5e8b96030f47ed222de77556417.zip
Much better fix for ICE-2097: whether or not to keep the stats is no longer
determined by the encoding but by the Catalog data for the evictor. With the new default, the catalog data key and value are set, in particular the value is set to "Object". With old evictors, the catalog data value was set to "", which means ::Freeze::ObjectRecord (with stats).
Diffstat (limited to 'cpp/src/Freeze/TransactionalEvictorI.cpp')
-rw-r--r--cpp/src/Freeze/TransactionalEvictorI.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/cpp/src/Freeze/TransactionalEvictorI.cpp b/cpp/src/Freeze/TransactionalEvictorI.cpp
index 40ec9191450..dfca69dee6a 100644
--- a/cpp/src/Freeze/TransactionalEvictorI.cpp
+++ b/cpp/src/Freeze/TransactionalEvictorI.cpp
@@ -139,27 +139,26 @@ Freeze::TransactionalEvictorI::addFacet(const ObjectPtr& servant, const Identity
checkIdentity(ident);
DeactivateController::Guard deactivateGuard(_deactivateController);
+ ObjectStore<TransactionalEvictorElement>* store = findStore(facet, _createDb);
+ if(store == 0)
+ {
+ throw NotFoundException(__FILE__, __LINE__, "addFacet: could not open database for facet '"
+ + facet + "'");
+ }
+
Ice::Long currentTime = 0;
- if(_encoding == Ice::Encoding_1_0)
+ if(store->keepStats())
{
currentTime = IceUtil::Time::now(IceUtil::Time::Monotonic).toMilliSeconds();
}
Statistics stats = { currentTime };
ObjectRecord rec = { servant, stats };
-
- ObjectStore<TransactionalEvictorElement>* store = findStore(facet, _createDb);
-
- if(store == 0)
- {
- throw NotFoundException(__FILE__, __LINE__, "addFacet: could not open database for facet '"
- + facet + "'");
- }
-
+
TransactionIPtr tx = beforeQuery();
- if(_encoding == Ice::Encoding_1_0)
+ if(store->keepStats())
{
updateStats(rec.stats, currentTime);
}