diff options
author | Bernard Normier <bernard@zeroc.com> | 2007-05-30 13:18:35 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2007-05-30 13:18:35 +0000 |
commit | cd8abbb04a79b0d93f34742c49b06607e4e989f7 (patch) | |
tree | fabe04903dac6bd3ecf2ac6f3248ab5c22300fa7 /cpp/src/Freeze | |
parent | fix problem with possible use of uninitialized local variable (diff) | |
download | ice-cd8abbb04a79b0d93f34742c49b06607e4e989f7.tar.bz2 ice-cd8abbb04a79b0d93f34742c49b06607e4e989f7.tar.xz ice-cd8abbb04a79b0d93f34742c49b06607e4e989f7.zip |
Removed transactional evictor context
Diffstat (limited to 'cpp/src/Freeze')
20 files changed, 337 insertions, 245 deletions
diff --git a/cpp/src/Freeze/.depend b/cpp/src/Freeze/.depend index 2805f3e9cac..5141803cb2e 100644 --- a/cpp/src/Freeze/.depend +++ b/cpp/src/Freeze/.depend @@ -15,11 +15,11 @@ Index$(OBJEXT): Index.cpp ../../include/Freeze/Index.h ../../include/Ice/Ice.h . MapI$(OBJEXT): MapI.cpp ../Freeze/MapI.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../Freeze/SharedDb.h ../Freeze/ConnectionI.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ObjectStore$(OBJEXT): ObjectStore.cpp ../Freeze/ObjectStore.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/DB.h ../../include/Freeze/EvictorStorage.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../../include/Freeze/Transaction.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/BackgroundSaveEvictorI.h ../Freeze/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ../Freeze/IndexI.h PingObject$(OBJEXT): PingObject.cpp ../Freeze/PingObject.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/LocalException.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/ObjectFactory.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h -SharedDbEnv$(OBJEXT): SharedDbEnv.cpp ../Freeze/SharedDbEnv.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/Exception.h ../Freeze/Util.h ../../include/Freeze/DB.h ../Freeze/SharedDb.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../../include/Freeze/Map.h ../Freeze/TransactionalEvictorContextI.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/EvictorStorage.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../Freeze/EvictorIteratorI.h ../../include/IceUtil/DisableWarnings.h +SharedDbEnv$(OBJEXT): SharedDbEnv.cpp ../Freeze/SharedDbEnv.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/Exception.h ../Freeze/Util.h ../../include/Freeze/DB.h ../Freeze/SharedDb.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../../include/Freeze/Map.h ../Freeze/TransactionalEvictorContext.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/EvictorStorage.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../Freeze/EvictorIteratorI.h ../../include/IceUtil/DisableWarnings.h SharedDb$(OBJEXT): SharedDb.cpp ../Freeze/SharedDb.h ../../include/IceUtil/Config.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/TransactionI.h ../Freeze/SharedDbEnv.h ../../include/Freeze/Map.h ../../include/Freeze/Exception.h ../Freeze/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h TransactionalEvictor$(OBJEXT): TransactionalEvictor.cpp ../../include/Freeze/TransactionalEvictor.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Evictor.h ../../include/Ice/ServantLocator.h ../../include/Freeze/Exception.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h -TransactionalEvictorI$(OBJEXT): TransactionalEvictorI.cpp ../Freeze/TransactionalEvictorI.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Config.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/Functional.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Shared.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/Util.h ../Freeze/TransactionalEvictorContextI.h -TransactionalEvictorContextI$(OBJEXT): TransactionalEvictorContextI.cpp ../Freeze/TransactionalEvictorContextI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/EvictorStorage.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/TransactionalEvictorI.h ../Freeze/Util.h ../Freeze/ConnectionI.h +TransactionalEvictorI$(OBJEXT): TransactionalEvictorI.cpp ../Freeze/TransactionalEvictorI.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Config.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/Functional.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Shared.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/Util.h ../Freeze/TransactionalEvictorContext.h +TransactionalEvictorContext$(OBJEXT): TransactionalEvictorContext.cpp ../Freeze/TransactionalEvictorContext.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/EvictorStorage.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/TransactionalEvictorI.h ../Freeze/Util.h ../Freeze/ConnectionI.h TransactionHolder$(OBJEXT): TransactionHolder.cpp ../../include/Freeze/TransactionHolder.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h TransactionI$(OBJEXT): TransactionI.cpp ../Freeze/TransactionI.h ../../include/Freeze/Transaction.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StreamF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/SharedDbEnv.h ../../include/Freeze/Exception.h Transaction$(OBJEXT): Transaction.cpp ../../include/Freeze/Transaction.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h diff --git a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp index dd228d80cd7..b047ae4ed47 100644 --- a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp +++ b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp @@ -1229,7 +1229,7 @@ Freeze::BackgroundSaveEvictorI::run() } } -DbTxn* +Freeze::TransactionIPtr Freeze::BackgroundSaveEvictorI::beforeQuery() { saveNow(); diff --git a/cpp/src/Freeze/BackgroundSaveEvictorI.h b/cpp/src/Freeze/BackgroundSaveEvictorI.h index 83498be90c7..72fb895dd43 100644 --- a/cpp/src/Freeze/BackgroundSaveEvictorI.h +++ b/cpp/src/Freeze/BackgroundSaveEvictorI.h @@ -151,7 +151,7 @@ public: virtual ~BackgroundSaveEvictorI(); - virtual DbTxn* beforeQuery(); + virtual TransactionIPtr beforeQuery(); // // Thread diff --git a/cpp/src/Freeze/EvictorI.cpp b/cpp/src/Freeze/EvictorI.cpp index d050d2f2c74..dd2560ddfb2 100644 --- a/cpp/src/Freeze/EvictorI.cpp +++ b/cpp/src/Freeze/EvictorI.cpp @@ -33,15 +33,15 @@ string Freeze::EvictorIBase::indexPrefix = "$index:"; // DeactivateController // -Freeze::DeactivateController::Guard::Guard(DeactivateController& controller) : - _controller(controller) +Freeze::DeactivateController::Guard::Guard(const DeactivateController& controller) : + _controller(const_cast<DeactivateController&>(controller)) { Lock sync(controller); if(controller._deactivated || _controller._deactivating) { throw EvictorDeactivatedException(__FILE__, __LINE__); } - controller._guardCount++; + _controller._guardCount++; } Freeze::DeactivateController::Guard::~Guard() diff --git a/cpp/src/Freeze/EvictorI.h b/cpp/src/Freeze/EvictorI.h index c27b51af34d..6cc8c9320f8 100644 --- a/cpp/src/Freeze/EvictorI.h +++ b/cpp/src/Freeze/EvictorI.h @@ -44,7 +44,7 @@ public: class Guard { public: - Guard(DeactivateController&); + Guard(const DeactivateController&); ~Guard(); private: @@ -81,7 +81,7 @@ class EvictorIBase : public virtual Evictor, public IceUtil::Monitor<IceUtil::Mu { public: - virtual DbTxn* beforeQuery() = 0; + virtual TransactionIPtr beforeQuery() = 0; virtual void setSize(Ice::Int); virtual Ice::Int getSize(); @@ -165,7 +165,7 @@ public: { DeactivateController::Guard deactivateGuard(_deactivateController); - DbTxn* tx = beforeQuery(); + TransactionIPtr tx = beforeQuery(); return new EvictorIteratorI(findStore(facet, false), tx, batchSize); } diff --git a/cpp/src/Freeze/EvictorIteratorI.cpp b/cpp/src/Freeze/EvictorIteratorI.cpp index 10e459a788c..401b17750fd 100644 --- a/cpp/src/Freeze/EvictorIteratorI.cpp +++ b/cpp/src/Freeze/EvictorIteratorI.cpp @@ -17,13 +17,13 @@ using namespace Freeze; using namespace Ice; -Freeze::EvictorIteratorI::EvictorIteratorI(ObjectStoreBase* store, DbTxn* tx, Int batchSize) : +Freeze::EvictorIteratorI::EvictorIteratorI(ObjectStoreBase* store, const TransactionIPtr& tx, Int batchSize) : _store(store), _batchSize(static_cast<size_t>(batchSize)), _key(1024), _more(store != 0), _initialized(false), - _tx(tx) + _tx(tx == 0 ? 0 : tx->dbTxn()) { _batchIterator = _batch.end(); } diff --git a/cpp/src/Freeze/EvictorIteratorI.h b/cpp/src/Freeze/EvictorIteratorI.h index b69b5dc3d8f..41fed5db623 100644 --- a/cpp/src/Freeze/EvictorIteratorI.h +++ b/cpp/src/Freeze/EvictorIteratorI.h @@ -17,13 +17,17 @@ namespace Freeze { +class TransactionI; +typedef IceUtil::Handle<TransactionI> TransactionIPtr; + + class ObjectStoreBase; class EvictorIteratorI : public EvictorIterator { public: - EvictorIteratorI(ObjectStoreBase*, DbTxn*, Ice::Int); + EvictorIteratorI(ObjectStoreBase*, const TransactionIPtr&, Ice::Int); virtual bool hasNext(); virtual Ice::Identity next(); diff --git a/cpp/src/Freeze/IndexI.cpp b/cpp/src/Freeze/IndexI.cpp index 5679e93fa02..11ea57a6db4 100644 --- a/cpp/src/Freeze/IndexI.cpp +++ b/cpp/src/Freeze/IndexI.cpp @@ -57,8 +57,9 @@ Freeze::IndexI::untypedFindFirst(const Key& bytes, Int firstN) const Ice::CommunicatorPtr communicator = _store->communicator(); - DbTxn* tx = _store->evictor()->beforeQuery(); - + TransactionIPtr transaction = _store->evictor()->beforeQuery(); + DbTxn* tx = transaction == 0 ? 0 : transaction->dbTxn(); + vector<Identity> identities; try @@ -203,12 +204,13 @@ Freeze::IndexI::untypedCount(const Key& bytes) const // (ref Oracle SR 5925672.992) // dbKey.set_flags(DB_DBT_USERMEM | DB_DBT_PARTIAL); - Dbt dbValue; dbValue.set_flags(DB_DBT_USERMEM | DB_DBT_PARTIAL); - DbTxn* tx = _store->evictor()->beforeQuery(); + TransactionIPtr transaction = _store->evictor()->beforeQuery(); + DbTxn* tx = transaction == 0 ? 0 : transaction->dbTxn(); + Int result = 0; try diff --git a/cpp/src/Freeze/Makefile b/cpp/src/Freeze/Makefile index 5383d96591d..5034fd1d397 100644 --- a/cpp/src/Freeze/Makefile +++ b/cpp/src/Freeze/Makefile @@ -37,7 +37,7 @@ OBJS = BackgroundSaveEvictor.o \ SharedDb.o \ TransactionalEvictor.o \ TransactionalEvictorI.o \ - TransactionalEvictorContextI.o \ + TransactionalEvictorContext.o \ TransactionHolder.o \ TransactionI.o \ Transaction.o \ diff --git a/cpp/src/Freeze/Makefile.mak b/cpp/src/Freeze/Makefile.mak index 4b0b90fb1b6..2789c26b911 100644 --- a/cpp/src/Freeze/Makefile.mak +++ b/cpp/src/Freeze/Makefile.mak @@ -37,7 +37,7 @@ OBJS = BackgroundSaveEvictor.obj \ SharedDb.obj \ TransactionalEvictor.obj \ TransactionalEvictorI.obj \ - TransactionalEvictorContextI.obj \ + TransactionalEvictorContext.obj \ TransactionHolder.obj \ TransactionI.obj \ Transaction.obj \ diff --git a/cpp/src/Freeze/ObjectStore.cpp b/cpp/src/Freeze/ObjectStore.cpp index 77556081f22..f472cba7614 100644 --- a/cpp/src/Freeze/ObjectStore.cpp +++ b/cpp/src/Freeze/ObjectStore.cpp @@ -160,8 +160,18 @@ Freeze::ObjectStoreBase::~ObjectStoreBase() } bool -Freeze::ObjectStoreBase::dbHasObject(const Identity& ident, DbTxn* tx) const +Freeze::ObjectStoreBase::dbHasObject(const Identity& ident, const TransactionIPtr& transaction) const { + DbTxn* tx = 0; + if(transaction != 0) + { + tx = transaction->dbTxn(); + if(tx == 0) + { + throw DatabaseException(__FILE__, __LINE__, "inactive transaction"); + } + } + Key key; marshal(ident, key, _communicator); Dbt dbKey; @@ -305,13 +315,18 @@ Freeze::ObjectStoreBase::unmarshal(ObjectRecord& v, const Value& bytes, const Co } bool -Freeze::ObjectStoreBase::load(const Identity& ident, const TransactionIPtr& tx, ObjectRecord& rec) +Freeze::ObjectStoreBase::load(const Identity& ident, const TransactionIPtr& transaction, ObjectRecord& rec) { - DbTxn* txn = tx->dbTxn(); + if(transaction == 0) + { + throw DatabaseException(__FILE__, __LINE__, "no active transaction"); + } + + DbTxn* txn = transaction->dbTxn(); if(txn == 0) { - throw DatabaseException(__FILE__, __LINE__, "invalid TransactionalEvictorContext"); + throw DatabaseException(__FILE__, __LINE__, "inactive transaction"); } Key key; @@ -364,13 +379,18 @@ Freeze::ObjectStoreBase::load(const Identity& ident, const TransactionIPtr& tx, } void -Freeze::ObjectStoreBase::update(const Identity& ident, const ObjectRecord& rec, const TransactionIPtr& tx) +Freeze::ObjectStoreBase::update(const Identity& ident, const ObjectRecord& rec, const TransactionIPtr& transaction) { - DbTxn* txn = tx->dbTxn(); + if(transaction == 0) + { + throw DatabaseException(__FILE__, __LINE__, "no active transaction"); + } + + DbTxn* txn = transaction->dbTxn(); if(txn == 0) { - throw DatabaseException(__FILE__, __LINE__, "invalid TransactionalEvictorContext"); + throw DatabaseException(__FILE__, __LINE__, "inactive transaction"); } Key key; @@ -406,8 +426,18 @@ Freeze::ObjectStoreBase::update(const Identity& ident, const ObjectRecord& rec, } bool -Freeze::ObjectStoreBase::insert(const Identity& ident, const ObjectRecord& rec, DbTxn* tx) +Freeze::ObjectStoreBase::insert(const Identity& ident, const ObjectRecord& rec, const TransactionIPtr& transaction) { + DbTxn* tx = 0; + if(transaction != 0) + { + tx = transaction->dbTxn(); + if(tx == 0) + { + throw DatabaseException(__FILE__, __LINE__, "inactive transaction"); + } + } + Key key; marshal(ident, key, _communicator); @@ -454,8 +484,18 @@ Freeze::ObjectStoreBase::insert(const Identity& ident, const ObjectRecord& rec, } bool -Freeze::ObjectStoreBase::remove(const Identity& ident, DbTxn* tx) +Freeze::ObjectStoreBase::remove(const Identity& ident, const TransactionIPtr& transaction) { + DbTxn* tx = 0; + if(transaction != 0) + { + tx = transaction->dbTxn(); + if(tx == 0) + { + throw DatabaseException(__FILE__, __LINE__, "inactive transaction"); + } + } + Key key; marshal(ident, key, _communicator); diff --git a/cpp/src/Freeze/ObjectStore.h b/cpp/src/Freeze/ObjectStore.h index 23a5ab8f734..72c1e4b068c 100644 --- a/cpp/src/Freeze/ObjectStore.h +++ b/cpp/src/Freeze/ObjectStore.h @@ -40,7 +40,7 @@ public: const Ice::ObjectPtr& sampleServant() const; - bool dbHasObject(const Ice::Identity&, DbTxn*) const; + bool dbHasObject(const Ice::Identity&, const TransactionIPtr&) const; void save(Key& key, Value& value, Ice::Byte status, DbTxn* tx); static void marshal(const Ice::Identity&, Key&, const Ice::CommunicatorPtr&); @@ -51,8 +51,8 @@ public: bool load(const Ice::Identity&, const TransactionIPtr&, ObjectRecord&); void update(const Ice::Identity&, const ObjectRecord&, const TransactionIPtr&); - bool insert(const Ice::Identity&, const ObjectRecord&, DbTxn*); - bool remove(const Ice::Identity&, DbTxn*); + bool insert(const Ice::Identity&, const ObjectRecord&, const TransactionIPtr&); + bool remove(const Ice::Identity&, const TransactionIPtr&); EvictorIBase* evictor() const; diff --git a/cpp/src/Freeze/SharedDbEnv.cpp b/cpp/src/Freeze/SharedDbEnv.cpp index ecf6bc09d04..de30521dfbe 100644 --- a/cpp/src/Freeze/SharedDbEnv.cpp +++ b/cpp/src/Freeze/SharedDbEnv.cpp @@ -11,7 +11,7 @@ #include <Freeze/Exception.h> #include <Freeze/Util.h> #include <Freeze/SharedDb.h> -#include <Freeze/TransactionalEvictorContextI.h> +#include <Freeze/TransactionalEvictorContext.h> #include <IceUtil/IceUtil.h> @@ -218,38 +218,33 @@ void Freeze::SharedDbEnv::__decRef() } -Freeze::TransactionalEvictorContextIPtr -Freeze::SharedDbEnv::getOrCreateCurrent(bool& created) -{ - created = false; - - Freeze::TransactionalEvictorContextIPtr ctx = getCurrent(); - if(ctx == 0) - { - ctx = new TransactionalEvictorContextI(this); +Freeze::TransactionalEvictorContextPtr +Freeze::SharedDbEnv::createCurrent() +{ + assert(getCurrent() == 0); + + Freeze::TransactionalEvictorContextPtr ctx = new TransactionalEvictorContext(this); #ifdef _WIN32 - if(TlsSetValue(_tsdKey, ctx.get()) == 0) - { - IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError()); - } + if(TlsSetValue(_tsdKey, ctx.get()) == 0) + { + IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError()); + } #else - if(int err = pthread_setspecific(_tsdKey, ctx.get())) - { - throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err); - } -#endif - created = true; - - // - // Give one refcount to this thread! - // - ctx->__incRef(); + if(int err = pthread_setspecific(_tsdKey, ctx.get())) + { + throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err); } +#endif + + // + // Give one refcount to this thread! + // + ctx->__incRef(); return ctx; } -Freeze::TransactionalEvictorContextIPtr +Freeze::TransactionalEvictorContextPtr Freeze::SharedDbEnv::getCurrent() { #ifdef _WIN32 @@ -260,7 +255,7 @@ Freeze::SharedDbEnv::getCurrent() if(val != 0) { - return static_cast<Freeze::TransactionalEvictorContextI*>(val); + return static_cast<TransactionalEvictorContext*>(val); } else { @@ -269,9 +264,42 @@ Freeze::SharedDbEnv::getCurrent() } void -Freeze::SharedDbEnv::clearCurrent(const Freeze::TransactionalEvictorContextIPtr& oldCtx) +Freeze::SharedDbEnv::setCurrentTransaction(const Freeze::TransactionPtr& tx) { - if(getCurrent() == oldCtx) + Freeze::TransactionalEvictorContextPtr ctx = getCurrent(); + + if(ctx != 0) + { + // + // Release thread's refcount + // + ctx->__decRef(); + } + + if(tx != 0) + { + if(ctx == 0 || ctx->transaction().get() != tx.get()) + { + ctx = new TransactionalEvictorContext(TransactionIPtr::dynamicCast(tx)); + +#ifdef _WIN32 + if(TlsSetValue(_tsdKey, ctx.get()) == 0) + { + IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError()); + } +#else + if(int err = pthread_setspecific(_tsdKey, ctx.get())) + { + throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err); + } +#endif + // + // Give one refcount to this thread + // + ctx->__incRef(); + } + } + else if(ctx != 0) { #ifdef _WIN32 if(TlsSetValue(_tsdKey, 0) == 0) @@ -284,11 +312,6 @@ Freeze::SharedDbEnv::clearCurrent(const Freeze::TransactionalEvictorContextIPtr& throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err); } #endif - - // - // Release thread's refcount - // - oldCtx->__decRef(); } } diff --git a/cpp/src/Freeze/SharedDbEnv.h b/cpp/src/Freeze/SharedDbEnv.h index 20ea19191c7..072d03e5d86 100644 --- a/cpp/src/Freeze/SharedDbEnv.h +++ b/cpp/src/Freeze/SharedDbEnv.h @@ -27,8 +27,11 @@ typedef IceUtil::Handle<SharedDbEnv> SharedDbEnvPtr; class SharedDb; typedef IceUtil::Handle<SharedDb> SharedDbPtr; -class TransactionalEvictorContextI; -typedef IceUtil::Handle<TransactionalEvictorContextI> TransactionalEvictorContextIPtr; +class Transaction; +typedef IceInternal::Handle<Transaction> TransactionPtr; + +class TransactionalEvictorContext; +typedef IceUtil::Handle<TransactionalEvictorContext> TransactionalEvictorContextPtr; class SharedDbEnv { @@ -44,10 +47,10 @@ public: // // EvictorContext factory/manager // - TransactionalEvictorContextIPtr getOrCreateCurrent(bool&); - TransactionalEvictorContextIPtr getCurrent(); - void clearCurrent(const TransactionalEvictorContextIPtr&); - + TransactionalEvictorContextPtr createCurrent(); + TransactionalEvictorContextPtr getCurrent(); + void setCurrentTransaction(const TransactionPtr& tx); + DbEnv* getEnv() const; const std::string& getEnvName() const; const Ice::CommunicatorPtr& getCommunicator() const; diff --git a/cpp/src/Freeze/TransactionI.cpp b/cpp/src/Freeze/TransactionI.cpp index c9920c7bfc0..94c56dc134b 100644 --- a/cpp/src/Freeze/TransactionI.cpp +++ b/cpp/src/Freeze/TransactionI.cpp @@ -25,9 +25,13 @@ Freeze::getTxn(const Freeze::TransactionPtr& tx) void Freeze::TransactionI::commit() { - assert(_txn != 0); - + if(_txn == 0) + { + throw DatabaseException(__FILE__, __LINE__, "inactive transaction"); + } + long txnId = 0; + try { _connection->closeAllIterators(); @@ -41,19 +45,20 @@ Freeze::TransactionI::commit() if(_txTrace >= 1) { - Trace out(_connection->communicator()->getLogger(), "Freeze.Map"); + Trace out(_connection->communicator()->getLogger(), "Freeze.Transaction"); out << "committed transaction " << hex << txnId << dec; } } catch(const ::DbDeadlockException& dx) { + if(_txTrace >= 1) { - Trace out(_connection->communicator()->getLogger(), "Freeze.Map"); + Trace out(_connection->communicator()->getLogger(), "Freeze.Transaction"); out << "failed to commit transaction " << hex << txnId << dec << ": " << dx.what(); } - cleanup(); + postCompletion(false, true); DeadlockException ex(__FILE__, __LINE__); ex.message = dx.what(); throw ex; @@ -62,16 +67,16 @@ Freeze::TransactionI::commit() { if(_txTrace >= 1) { - Trace out(_connection->communicator()->getLogger(), "Freeze.Map"); + Trace out(_connection->communicator()->getLogger(), "Freeze.Transaction"); out << "failed to commit transaction " << hex << txnId << dec << ": " << dx.what(); } - cleanup(); + postCompletion(false, false); DatabaseException ex(__FILE__, __LINE__); ex.message = dx.what(); throw ex; } - cleanup(); + postCompletion(true, false); } void @@ -93,7 +98,7 @@ Freeze::TransactionI::rollback() if(_txTrace >= 1) { - Trace out(_connection->communicator()->getLogger(), "Freeze.Map"); + Trace out(_connection->communicator()->getLogger(), "Freeze.Transaction"); out << "rolled back transaction " << hex << txnId << dec; } } @@ -101,30 +106,39 @@ Freeze::TransactionI::rollback() { if(_txTrace >= 1) { - Trace out(_connection->communicator()->getLogger(), "Freeze.Map"); + Trace out(_connection->communicator()->getLogger(), "Freeze.Transaction"); out << "failed to rollback transaction " << hex << txnId << dec << ": " << dx.what(); } - cleanup(); - DeadlockException ex(__FILE__, __LINE__); - ex.message = dx.what(); - throw ex; + postCompletion(false, true); + throw DeadlockException(__FILE__, __LINE__, dx.what()); } catch(const ::DbException& dx) { if(_txTrace >= 1) { - Trace out(_connection->communicator()->getLogger(), "Freeze.Map"); + Trace out(_connection->communicator()->getLogger(), "Freeze.Transaction"); out << "failed to rollback transaction " << hex << txnId << dec << ": " << dx.what(); } - cleanup(); - DatabaseException ex(__FILE__, __LINE__); - ex.message = dx.what(); - throw ex; + postCompletion(false, false); + throw DatabaseException(__FILE__, __LINE__, dx.what()); } - cleanup(); + postCompletion(true, false); +} + +Freeze::ConnectionPtr +Freeze::TransactionI::getConnection() const +{ + return _connection; } + +void +Freeze::TransactionI::setPostCompletionCallback(const Freeze::PostCompletionCallbackPtr& cb) +{ + _postCompletionCallback = cb; +} + Freeze::TransactionI::TransactionI(ConnectionI* connection) : _connection(connection), @@ -138,7 +152,7 @@ Freeze::TransactionI::TransactionI(ConnectionI* connection) : if(_txTrace >= 1) { long txnId = (_txn->id() & 0x7FFFFFFF) + 0x80000000L; - Trace out(_connection->communicator()->getLogger(), "Freeze.Map"); + Trace out(_connection->communicator()->getLogger(), "Freeze.Transaction"); out << "started transaction " << hex << txnId << dec; } } @@ -146,7 +160,7 @@ Freeze::TransactionI::TransactionI(ConnectionI* connection) : { if(_txTrace >= 1) { - Trace out(_connection->communicator()->getLogger(), "Freeze.Map"); + Trace out(_connection->communicator()->getLogger(), "Freeze.Transaction"); out << "failed to start transaction: " << dx.what(); } @@ -165,9 +179,14 @@ Freeze::TransactionI::~TransactionI() } void -Freeze::TransactionI::cleanup() +Freeze::TransactionI::postCompletion(bool committed, bool deadlock) { _connection->clearTransaction(); _connection = 0; _txn = 0; + + if(_postCompletionCallback != 0) + { + _postCompletionCallback->postCompletion(committed, deadlock); + } } diff --git a/cpp/src/Freeze/TransactionI.h b/cpp/src/Freeze/TransactionI.h index 04c44dc68c3..7a7922d1297 100644 --- a/cpp/src/Freeze/TransactionI.h +++ b/cpp/src/Freeze/TransactionI.h @@ -19,16 +19,27 @@ namespace Freeze class ConnectionI; typedef IceUtil::Handle<ConnectionI> ConnectionIPtr; +class PostCompletionCallback : public virtual IceUtil::Shared +{ +public: + + virtual void postCompletion(bool, bool) = 0; +}; +typedef IceUtil::Handle<PostCompletionCallback> PostCompletionCallbackPtr; + + class TransactionI : public Transaction { public: - virtual void - commit(); + virtual void commit(); - virtual void - rollback(); + virtual void rollback(); + + virtual ConnectionPtr getConnection() const; + void setPostCompletionCallback(const PostCompletionCallbackPtr&); + TransactionI(ConnectionI*); ~TransactionI(); @@ -38,14 +49,20 @@ public: return _txn; } + const ConnectionIPtr& + getConnectionI() const + { + return _connection; + } + private: - void - cleanup(); + void postCompletion(bool, bool); ConnectionIPtr _connection; Ice::Int _txTrace; DbTxn* _txn; + PostCompletionCallbackPtr _postCompletionCallback; }; typedef IceUtil::Handle<TransactionI> TransactionIPtr; diff --git a/cpp/src/Freeze/TransactionalEvictorContextI.cpp b/cpp/src/Freeze/TransactionalEvictorContext.cpp index 891f6cb7630..4c40321a8a1 100644 --- a/cpp/src/Freeze/TransactionalEvictorContextI.cpp +++ b/cpp/src/Freeze/TransactionalEvictorContext.cpp @@ -7,7 +7,7 @@ // // ********************************************************************** -#include <Freeze/TransactionalEvictorContextI.h> +#include <Freeze/TransactionalEvictorContext.h> #include <Freeze/TransactionalEvictorI.h> #include <Freeze/Initialize.h> #include <Freeze/Util.h> @@ -20,75 +20,69 @@ using namespace Freeze; using namespace Ice; -Freeze::TransactionalEvictorContextI::TransactionalEvictorContextI(const SharedDbEnvPtr& dbEnv) : +Freeze::TransactionalEvictorContext::TransactionalEvictorContext(const SharedDbEnvPtr& dbEnv) : _tx((new ConnectionI(dbEnv))->beginTransactionI()), - _rollbackOnly(false), - _dbEnv(dbEnv), _deadlockExceptionDetected(false) -{ +{ + _tx->setPostCompletionCallback(this); } -Freeze::TransactionalEvictorContextI::~TransactionalEvictorContextI() +Freeze::TransactionalEvictorContext::TransactionalEvictorContext(const TransactionIPtr& tx) : + _tx(tx), + _deadlockExceptionDetected(false) +{ + _tx->setPostCompletionCallback(this); +} + + +Freeze::TransactionalEvictorContext::~TransactionalEvictorContext() { for_each(_invalidateList.begin(), _invalidateList.end(), ToInvalidate::destroy); } -void -Freeze::TransactionalEvictorContextI::rollbackOnly() +void +Freeze::TransactionalEvictorContext::commit() { - _rollbackOnly = true; + if(_tx != 0) + { + _tx->commit(); + } } -bool -Freeze::TransactionalEvictorContextI::isRollbackOnly() const +void +Freeze::TransactionalEvictorContext::rollback() { - return _rollbackOnly; + if(_tx != 0) + { + _tx->rollback(); + } } + void -Freeze::TransactionalEvictorContextI::complete() +Freeze::TransactionalEvictorContext::postCompletion(bool committed, bool deadlock) { try { - if(_rollbackOnly) + if(committed) { - _tx->rollback(); - } - else - { - if(!_stack.empty()) - { - Warning out(_dbEnv->getCommunicator()->getLogger()); - out << "Committing TransactionalEvictorContext on DbEnv '" << - _dbEnv->getEnvName() << "' with " << _stack.size() << " unsaved objects."; - } - - _tx->commit(); - // - // Finally, remove updated & removed objects from cache + // remove updated & removed objects from cache // - for_each(_invalidateList.begin(), _invalidateList.end(), ToInvalidate::invalidate); _invalidateList.clear(); - } - } - catch(const DeadlockException&) - { - deadlockException(); - finalize(); - throw; + } + finalize(deadlock); } catch(...) { - finalize(); + finalize(deadlock); throw; } - finalize(); } -Freeze::TransactionalEvictorContextI::ServantHolder* -Freeze::TransactionalEvictorContextI::findServantHolder(const Identity& ident, ObjectStore<TransactionalEvictorElement>* store) const +Freeze::TransactionalEvictorContext::ServantHolder* +Freeze::TransactionalEvictorContext::findServantHolder(const Identity& ident, ObjectStore<TransactionalEvictorElement>* store) const { for(Stack::const_iterator p = _stack.begin(); p != _stack.end(); ++p) { @@ -102,20 +96,22 @@ Freeze::TransactionalEvictorContextI::findServantHolder(const Identity& ident, O } void -Freeze::TransactionalEvictorContextI::finalize() +Freeze::TransactionalEvictorContext::finalize(bool deadlock) { - if(_dbEnv != 0) + Lock sync(*this); + if(_tx != 0) { - _dbEnv->clearCurrent(this); - - Lock sync(*this); - _dbEnv = 0; + if(deadlock) + { + _deadlockExceptionDetected = true; + } + _tx = 0; notifyAll(); } } void -Freeze::TransactionalEvictorContextI::checkDeadlockException() +Freeze::TransactionalEvictorContext::checkDeadlockException() { if(_deadlockException.get() != 0) { @@ -124,7 +120,7 @@ Freeze::TransactionalEvictorContextI::checkDeadlockException() } bool -Freeze::TransactionalEvictorContextI::response(bool) +Freeze::TransactionalEvictorContext::response(bool) { if(_owner == IceUtil::ThreadControl()) { @@ -133,7 +129,7 @@ Freeze::TransactionalEvictorContextI::response(bool) else { Lock sync(*this); - while(_deadlockExceptionDetected == false && _dbEnv != 0) + while(_deadlockExceptionDetected == false && _tx != 0) { wait(); } @@ -142,7 +138,7 @@ Freeze::TransactionalEvictorContextI::response(bool) } bool -Freeze::TransactionalEvictorContextI::exception(const std::exception& ex) +Freeze::TransactionalEvictorContext::exception(const std::exception& ex) { const DeadlockException* dx = dynamic_cast<const DeadlockException*>(&ex); @@ -155,16 +151,16 @@ Freeze::TransactionalEvictorContextI::exception(const std::exception& ex) } bool -Freeze::TransactionalEvictorContextI::exception() +Freeze::TransactionalEvictorContext::exception() { return true; } Ice::ObjectPtr -Freeze::TransactionalEvictorContextI::servantRemoved(const Identity& ident, +Freeze::TransactionalEvictorContext::servantRemoved(const Identity& ident, ObjectStore<TransactionalEvictorElement>* store) { - if(!_rollbackOnly) + if(_tx != 0) { // // Lookup servant holder on stack @@ -186,13 +182,14 @@ Freeze::TransactionalEvictorContextI::servantRemoved(const Identity& ident, } void -Freeze::TransactionalEvictorContextI::deadlockException() +Freeze::TransactionalEvictorContext::deadlockException() { - _rollbackOnly = true; - - Lock sync(*this); - _deadlockExceptionDetected = true; - notifyAll(); + { + Lock sync(*this); + _deadlockExceptionDetected = true; + notifyAll(); + } + rollback(); } @@ -200,7 +197,7 @@ Freeze::TransactionalEvictorContextI::deadlockException() // ServantHolder // -Freeze::TransactionalEvictorContextI::ServantHolder::ServantHolder(const TransactionalEvictorContextIPtr& ctx, +Freeze::TransactionalEvictorContext::ServantHolder::ServantHolder(const TransactionalEvictorContextPtr& ctx, const Current& current, ObjectStore<TransactionalEvictorElement>* store, bool useNonmutating) : @@ -240,11 +237,11 @@ Freeze::TransactionalEvictorContextI::ServantHolder::ServantHolder(const Transac } -Freeze::TransactionalEvictorContextI::ServantHolder::~ServantHolder() +Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder() { if(_ownServant) { - if(!_ctx->isRollbackOnly()) + if(_ctx->_tx != 0) { if(!_readOnly && !_removed) { @@ -262,7 +259,7 @@ Freeze::TransactionalEvictorContextI::ServantHolder::~ServantHolder() } void -Freeze::TransactionalEvictorContextI::ServantHolder::removed() +Freeze::TransactionalEvictorContext::ServantHolder::removed() { _removed = true; } @@ -275,8 +272,8 @@ Freeze::TransactionalEvictorContextI::ServantHolder::removed() // When constructed in the servant holder destructor, it's protected by the dispatch() // deactivate controller guard // -Freeze::TransactionalEvictorContextI::ToInvalidate::ToInvalidate(const Identity& ident, - ObjectStore<TransactionalEvictorElement>* store) : +Freeze::TransactionalEvictorContext::ToInvalidate::ToInvalidate(const Identity& ident, + ObjectStore<TransactionalEvictorElement>* store) : _ident(ident), _store(store), _evictor(store->evictor()), @@ -285,14 +282,14 @@ Freeze::TransactionalEvictorContextI::ToInvalidate::ToInvalidate(const Identity& } void -Freeze::TransactionalEvictorContextI::ToInvalidate::invalidate(ToInvalidate* obj) +Freeze::TransactionalEvictorContext::ToInvalidate::invalidate(ToInvalidate* obj) { dynamic_cast<TransactionalEvictorI*>(obj->_store->evictor())->evict(obj->_ident, obj->_store); delete obj; } void -Freeze::TransactionalEvictorContextI::ToInvalidate::destroy(ToInvalidate* obj) +Freeze::TransactionalEvictorContext::ToInvalidate::destroy(ToInvalidate* obj) { delete obj; } diff --git a/cpp/src/Freeze/TransactionalEvictorContextI.h b/cpp/src/Freeze/TransactionalEvictorContext.h index 3686c21ffac..96c29c58fc4 100644 --- a/cpp/src/Freeze/TransactionalEvictorContextI.h +++ b/cpp/src/Freeze/TransactionalEvictorContext.h @@ -7,8 +7,8 @@ // // ********************************************************************** -#ifndef FREEZE_TRANSACTIONAL_EVICTOR_CONTEXT_I_H -#define FREEZE_TRANSACTIONAL_EVICTOR_CONTEXT_I_H +#ifndef FREEZE_TRANSACTIONAL_EVICTOR_CONTEXT_H +#define FREEZE_TRANSACTIONAL_EVICTOR_CONTEXT_H #include <Ice/Ice.h> #include <Freeze/TransactionalEvictor.h> @@ -23,8 +23,8 @@ template<class T> class ObjectStore; class TransactionalEvictorElement; -class TransactionalEvictorContextI : public TransactionalEvictorContext, public Ice::DispatchInterceptorAsyncCallback, - public IceUtil::Monitor<IceUtil::Mutex> +class TransactionalEvictorContext : public Ice::DispatchInterceptorAsyncCallback, public PostCompletionCallback, + public IceUtil::Monitor<IceUtil::Mutex> { public: @@ -32,7 +32,7 @@ public: { public: - ServantHolder(const TransactionalEvictorContextIPtr&, const Ice::Current&, ObjectStore<TransactionalEvictorElement>*, bool); + ServantHolder(const TransactionalEvictorContextPtr&, const Ice::Current&, ObjectStore<TransactionalEvictorElement>*, bool); ~ServantHolder(); void removed(); @@ -53,7 +53,7 @@ public: bool _ownServant; bool _removed; - const TransactionalEvictorContextIPtr& _ctx; + const TransactionalEvictorContextPtr& _ctx; const Ice::Current& _current; ObjectStore<TransactionalEvictorElement>* _store; ObjectRecord _rec; @@ -78,12 +78,12 @@ public: }; - TransactionalEvictorContextI(const SharedDbEnvPtr&); - virtual ~TransactionalEvictorContextI(); - - virtual void rollbackOnly(); - virtual bool isRollbackOnly() const; - virtual void complete(); + TransactionalEvictorContext(const SharedDbEnvPtr&); + TransactionalEvictorContext(const TransactionIPtr&); + + virtual ~TransactionalEvictorContext(); + + virtual void postCompletion(bool, bool); virtual bool response(bool); virtual bool exception(const std::exception&); @@ -95,6 +95,9 @@ public: void checkDeadlockException(); + void commit(); + void rollback(); + const TransactionIPtr& transaction() const { return _tx; @@ -106,7 +109,7 @@ private: ServantHolder* findServantHolder(const Ice::Identity&, ObjectStore<TransactionalEvictorElement>*) const; - void finalize(); + void finalize(bool); // // Stack of ServantHolder* @@ -126,8 +129,6 @@ private: std::auto_ptr<DeadlockException> _deadlockException; - SharedDbEnvPtr _dbEnv; - // // Protected by this // @@ -135,7 +136,7 @@ private: }; -typedef IceUtil::Handle<TransactionalEvictorContextI> TransactionalEvictorContextIPtr; +typedef IceUtil::Handle<TransactionalEvictorContext> TransactionalEvictorContextPtr; } diff --git a/cpp/src/Freeze/TransactionalEvictorI.cpp b/cpp/src/Freeze/TransactionalEvictorI.cpp index a28ee8a718e..74b9214c291 100644 --- a/cpp/src/Freeze/TransactionalEvictorI.cpp +++ b/cpp/src/Freeze/TransactionalEvictorI.cpp @@ -10,7 +10,7 @@ #include <Freeze/TransactionalEvictorI.h> #include <Freeze/Initialize.h> #include <Freeze/Util.h> -#include <Freeze/TransactionalEvictorContextI.h> +#include <Freeze/TransactionalEvictorContext.h> #include <IceUtil/IceUtil.h> @@ -91,25 +91,18 @@ Freeze::TransactionalEvictorI::TransactionalEvictorI(const ObjectAdapterPtr& ada } -TransactionalEvictorContextPtr -Freeze::TransactionalEvictorI::getCurrentContext() +TransactionPtr +Freeze::TransactionalEvictorI::getCurrentTransaction() const { DeactivateController::Guard deactivateGuard(_deactivateController); - return _dbEnv->getCurrent(); + return _dbEnv->getCurrent()->transaction(); } -TransactionalEvictorContextPtr -Freeze::TransactionalEvictorI::createCurrentContext() +void +Freeze::TransactionalEvictorI::setCurrentTransaction(const TransactionPtr& tx) { DeactivateController::Guard deactivateGuard(_deactivateController); - - bool created = false; - TransactionalEvictorContextPtr ctx = _dbEnv->getOrCreateCurrent(created); - if(!created) - { - throw DatabaseException(__FILE__, __LINE__, "createCurrentContext: there is already a current context"); - } - return ctx; + _dbEnv->setCurrentTransaction(tx); } @@ -134,7 +127,7 @@ Freeze::TransactionalEvictorI::addFacet(const ObjectPtr& servant, const Identity + facet + "'"); } - DbTxn* tx = beforeQuery(); + TransactionIPtr tx = beforeQuery(); updateStats(rec.stats, currentTime); @@ -170,14 +163,14 @@ Freeze::TransactionalEvictorI::removeFacet(const Identity& ident, const string& if(store != 0) { - TransactionalEvictorContextIPtr ctx = _dbEnv->getCurrent(); - DbTxn* tx = 0; + TransactionalEvictorContextPtr ctx = _dbEnv->getCurrent(); + TransactionIPtr tx = 0; if(ctx != 0) { - tx = ctx->transaction()->dbTxn(); + tx = ctx->transaction(); if(tx == 0) { - throw DatabaseException(__FILE__, __LINE__, "invalid TransactionalEvictorContext"); + throw DatabaseException(__FILE__, __LINE__, "inactive transaction"); } } @@ -239,7 +232,7 @@ Freeze::TransactionalEvictorI::hasFacet(const Identity& ident, const string& fac return false; } - DbTxn* tx = beforeQuery(); + TransactionIPtr tx = beforeQuery(); if(tx == 0) { @@ -271,7 +264,7 @@ Freeze::TransactionalEvictorI::hasAnotherFacet(const Identity& ident, const stri storeMapCopy = _storeMap; } - DbTxn* tx = beforeQuery(); + TransactionIPtr tx = beforeQuery(); for(StoreMap::iterator p = storeMapCopy.begin(); p != storeMapCopy.end(); ++p) { @@ -319,34 +312,29 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) { public: - CtxHolder(const TransactionalEvictorContextIPtr& ctx) : - _ctx(ctx) + CtxHolder(const TransactionalEvictorContextPtr& ctx, const SharedDbEnvPtr& dbEnv) : + _ctx(ctx), + _dbEnv(dbEnv) { } ~CtxHolder() { - bool isRollbackOnly = _ctx->isRollbackOnly(); - try { - _ctx->complete(); + _ctx->commit(); } catch(...) { - if(!isRollbackOnly) - { - throw; - } - // - // Otherwise ignored, we could be unwinding the stack - // + _dbEnv->setCurrentTransaction(0); + throw; } + _dbEnv->setCurrentTransaction(0); } private: - TransactionalEvictorContextIPtr _ctx; - + TransactionalEvictorContextPtr _ctx; + const SharedDbEnvPtr& _dbEnv; }; @@ -363,7 +351,7 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) // // Is there an existing context? // - TransactionalEvictorContextIPtr ctx = _dbEnv->getCurrent(); + TransactionalEvictorContextPtr ctx = _dbEnv->getCurrent(); if(ctx != 0) { @@ -372,7 +360,7 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) // // If yes, use this context; there is no retrying // - TransactionalEvictorContextI::ServantHolder servantHolder(ctx, current, store, _useNonmutating); + TransactionalEvictorContext::ServantHolder servantHolder(ctx, current, store, _useNonmutating); if(servantHolder.servant() == 0) { @@ -385,7 +373,7 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) if(dispatchStatus == DispatchUserException && _rollbackOnUserException) { - ctx->rollbackOnly(); + ctx->rollback(); } if(dispatchStatus == DispatchAsync) @@ -400,14 +388,14 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) catch(...) { // - // Important: this rollbackOnly() ensures that servant holder destructor won't perform + // Important: this rollback() ensures that servant holder destructor won't perform // any database operation, and hence will not throw. // - ctx->rollbackOnly(); + ctx->rollback(); throw; } // - // servantHolder destructor runs here and may throw (if !rollback only) + // servantHolder destructor runs here and may throw (if tx was not rolled back) // } catch(const DeadlockException&) @@ -417,7 +405,7 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) } catch(...) { - ctx->rollbackOnly(); + ctx->rollback(); throw; } } @@ -494,14 +482,12 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) { try { - bool created = false; - ctx = _dbEnv->getOrCreateCurrent(created); - CtxHolder ctxHolder(ctx); - assert(created); + ctx = _dbEnv->createCurrent(); + CtxHolder ctxHolder(ctx, _dbEnv); try { - TransactionalEvictorContextI::ServantHolder servantHolder(ctx, current, store, _useNonmutating); + TransactionalEvictorContext::ServantHolder servantHolder(ctx, current, store, _useNonmutating); if(servantHolder.servant() == 0) { @@ -513,7 +499,7 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) DispatchStatus dispatchStatus = servantHolder.servant()->ice_dispatch(request, ctx); if(dispatchStatus == DispatchUserException && _rollbackOnUserException) { - ctx->rollbackOnly(); + ctx->rollback(); } if(dispatchStatus == DispatchAsync) { @@ -528,14 +514,14 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) catch(...) { // - // Important: this rollbackOnly() ensures that servant holder destructor won't perform + // Important: this rollback() ensures that servant holder destructor won't perform // any database operation, and hence will not throw. // - ctx->rollbackOnly(); + ctx->rollback(); throw; } // - // servant holder destructor runs here and may throw (if !rollback only) + // servant holder destructor runs here and may throw (if !rolled back) // } catch(const DeadlockException&) @@ -545,12 +531,12 @@ Freeze::TransactionalEvictorI::dispatch(Ice::Request& request) } catch(...) { - ctx->rollbackOnly(); + ctx->rollback(); throw; } // - // complete occurs here! + // commit occurs here! // } catch(const DeadlockException&) @@ -600,17 +586,17 @@ Freeze::TransactionalEvictorI::~TransactionalEvictorI() // } -DbTxn* +Freeze::TransactionIPtr Freeze::TransactionalEvictorI::beforeQuery() { - TransactionalEvictorContextIPtr ctx = _dbEnv->getCurrent(); - DbTxn* tx = 0; + TransactionalEvictorContextPtr ctx = _dbEnv->getCurrent(); + TransactionIPtr tx = 0; if(ctx != 0) { - tx = ctx->transaction()->dbTxn(); + tx = ctx->transaction(); if(tx == 0) { - throw DatabaseException(__FILE__, __LINE__,"invalid TransactionalEvictorContext"); + throw DatabaseException(__FILE__, __LINE__,"inactive transaction"); } } diff --git a/cpp/src/Freeze/TransactionalEvictorI.h b/cpp/src/Freeze/TransactionalEvictorI.h index 73c2530d637..a55700a98bf 100644 --- a/cpp/src/Freeze/TransactionalEvictorI.h +++ b/cpp/src/Freeze/TransactionalEvictorI.h @@ -75,8 +75,8 @@ public: virtual ~TransactionalEvictorI(); - virtual TransactionalEvictorContextPtr getCurrentContext(); - virtual TransactionalEvictorContextPtr createCurrentContext(); + virtual TransactionPtr getCurrentTransaction() const; + virtual void setCurrentTransaction(const TransactionPtr&); virtual Ice::ObjectPrx addFacet(const Ice::ObjectPtr&, const Ice::Identity&, const std::string&); virtual Ice::ObjectPtr removeFacet(const Ice::Identity&, const std::string&); @@ -86,7 +86,7 @@ public: virtual void finished(const Ice::Current&, const Ice::ObjectPtr&, const Ice::LocalObjectPtr&); virtual void deactivate(const std::string&); - virtual DbTxn* beforeQuery(); + virtual TransactionIPtr beforeQuery(); Ice::DispatchStatus dispatch(Ice::Request&); |