diff options
author | Bernard Normier <bernard@zeroc.com> | 2012-08-21 17:01:15 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2012-08-21 17:03:33 -0400 |
commit | 472d9552de83c5e8b96030f47ed222de77556417 (patch) | |
tree | da9ed5b4c66c3e9ce112dbe6797cf73d8d386152 /cpp/src/Freeze/TransactionalEvictorI.cpp | |
parent | Fixed ICE-2097: with Ice encoding > 1.0, Freeze evictors no longer maintain (diff) | |
download | ice-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.cpp | 21 |
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); } |