diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/SplittableData_jo.py b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/SplittableData_jo.py index 70519af75a924fbe3a0b3933fb3ed25e77c34783..5ad67fee0b0ec8d1aacc72f656bbc8acacdf8471 100755 --- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/SplittableData_jo.py +++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/SplittableData_jo.py @@ -83,7 +83,6 @@ svcMgr.PoolSvc.WriteCatalog = "xmlcatalog_file:SplittableData.xml" from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc svcMgr += AthenaPoolCnvSvc() -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; include( "AthenaPoolMultiTest/ExampleStreamConfig.py" ) diff --git a/Control/AthenaExamples/AthExThinning/share/AthExThinning_makeData.py b/Control/AthenaExamples/AthExThinning/share/AthExThinning_makeData.py index 451d45f5859377dfee0264b6adf4725e3bfe3fff..b7399af225b8a5147676d4b20c593ce2a15d1d75 100644 --- a/Control/AthenaExamples/AthExThinning/share/AthExThinning_makeData.py +++ b/Control/AthenaExamples/AthExThinning/share/AthExThinning_makeData.py @@ -61,7 +61,6 @@ if not 'OUTPUT' in dir(): OUTPUT = "my.data.pool" pass outStream.OutputFile = OUTPUT -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 if not hasattr (svcMgr, 'AthenaSealSvc'): svcMgr += CfgMgr.AthenaSealSvc() diff --git a/Control/AthenaExamples/AthExThinning/share/ReadNonSlimmedData_jobOptions.py b/Control/AthenaExamples/AthExThinning/share/ReadNonSlimmedData_jobOptions.py index b550cda56b76e4cf5427ff1a81ced8dc9c4139f0..5f00a9472302600579a781574ee22b5b7dd9c0b9 100644 --- a/Control/AthenaExamples/AthExThinning/share/ReadNonSlimmedData_jobOptions.py +++ b/Control/AthenaExamples/AthExThinning/share/ReadNonSlimmedData_jobOptions.py @@ -65,7 +65,6 @@ outStream.ItemList = [ "AthExElephantino#*", "AthExFatObject#*", ] -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 ############################################################## # diff --git a/Control/AthenaExamples/AthExThinning/share/ReadNonThinnedData_jobOptions.py b/Control/AthenaExamples/AthExThinning/share/ReadNonThinnedData_jobOptions.py index 610ab6c4309bf2c0259aaa1d04f0be04825e1723..a1e07dc97587bc9534fe850d52ca3cbf4163fa37 100644 --- a/Control/AthenaExamples/AthExThinning/share/ReadNonThinnedData_jobOptions.py +++ b/Control/AthenaExamples/AthExThinning/share/ReadNonThinnedData_jobOptions.py @@ -71,7 +71,6 @@ outStream.ItemList = [ "AthExDecay#*", "AthExElephantino#*" ] -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 ############################################################## # diff --git a/Control/AthenaExamples/AthExThinning/share/ReadSlimmedData_jobOptions.py b/Control/AthenaExamples/AthExThinning/share/ReadSlimmedData_jobOptions.py index bc36716b5b38ba6f812cb23ec08299f8c73e8be2..14f6cef6188939ba2888ff7624d2824d19ca2b32 100644 --- a/Control/AthenaExamples/AthExThinning/share/ReadSlimmedData_jobOptions.py +++ b/Control/AthenaExamples/AthExThinning/share/ReadSlimmedData_jobOptions.py @@ -65,7 +65,6 @@ outStream.ItemList = [ "AthExElephantino#*", "AthExFatObject#*", ] -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 ############################################################## # diff --git a/Control/AthenaExamples/AthExThinning/share/ReadThinnedData_jobOptions.py b/Control/AthenaExamples/AthExThinning/share/ReadThinnedData_jobOptions.py index d7f2c7c419b60248a0608238dad10b3360243d26..fccf2f77cbc2eca23336eb979580ea66a51de268 100644 --- a/Control/AthenaExamples/AthExThinning/share/ReadThinnedData_jobOptions.py +++ b/Control/AthenaExamples/AthExThinning/share/ReadThinnedData_jobOptions.py @@ -75,7 +75,6 @@ outStream.ItemList = [ "EventInfo#*" ] outStream.ItemList += [ "AthExParticles#*" ] outStream.ItemList += [ "AthExDecay#*" ] outStream.ItemList += [ "AthExElephantino#*" ] -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 ############################################################## # diff --git a/Control/AthenaExamples/AthExThinning/share/WriteSlimmedData_jobOptions.py b/Control/AthenaExamples/AthExThinning/share/WriteSlimmedData_jobOptions.py index b9c846e8a0dd0f7ebd3cd8d400493ada1ebb25c8..7ba4af06c6eaaddba96aaf3cc999a26187cf584e 100644 --- a/Control/AthenaExamples/AthExThinning/share/WriteSlimmedData_jobOptions.py +++ b/Control/AthenaExamples/AthExThinning/share/WriteSlimmedData_jobOptions.py @@ -87,7 +87,6 @@ outStreams[1].OutputFile = os.path.join( os.path.dirname(OUTPUT), 'non.%s' % os.path.basename(OUTPUT) ) -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 ############################### # Load thinning service diff --git a/Control/AthenaExamples/AthExThinning/share/WriteThinnedData_jobOptions.py b/Control/AthenaExamples/AthExThinning/share/WriteThinnedData_jobOptions.py index 107388cb83cabfde3d4a3a1ce57724f5f756878b..34c73f0c5129578ae92d4aaafa639ecb5bf24805 100644 --- a/Control/AthenaExamples/AthExThinning/share/WriteThinnedData_jobOptions.py +++ b/Control/AthenaExamples/AthExThinning/share/WriteThinnedData_jobOptions.py @@ -89,7 +89,6 @@ for i in xrange(2): if 'OUTPUT' not in dir(): OUTPUT = "thinned.%s" % INPUT[0] -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 # Stream's output file outStreams[0].OutputFile = OUTPUT diff --git a/Control/AthenaPython/python/ConfigLib.py b/Control/AthenaPython/python/ConfigLib.py index bab093d8c39f8d576176a9ab9741705d2c754f49..8cbff5ce6b0e553fd675f2a64cbbc1960a9c60d5 100644 --- a/Control/AthenaPython/python/ConfigLib.py +++ b/Control/AthenaPython/python/ConfigLib.py @@ -118,10 +118,6 @@ def _copy_file_impl(cfg, hints): outstream.ForceRead=True outstream.TakeItemsFromInput=True - ## tweak the default commit interval - from AthenaCommon.AppMgr import ServiceMgr as svcMgr - svcMgr.AthenaPoolCnvSvc.CommitInterval = 100 - pass if do_write is not None: diff --git a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_baseline_bench.py b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_baseline_bench.py index 0f356c97b6296b9a8b9d722cc33164d855b14b98..40df29e5c38a8cc82bb0bc8d2af86b8353daa0bc 100755 --- a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_baseline_bench.py +++ b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_baseline_bench.py @@ -75,7 +75,6 @@ outStream.OutputFile = OUTPUT ## somehow better configure the AthenaPoolCnvSvc for our small ## persistency output job -svcMgr.AthenaPoolCnvSvc.CommitInterval = 1000 svcMgr += CfgMgr.AthenaSealSvc( OutputLevel = ERROR ) diff --git a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_digitization_calo_noLVL1.py b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_digitization_calo_noLVL1.py index 6eb5ead4adc3782414f73801f10d7d0617d0750b..a30a116f1e45b8fa30e514dd4db33ae634307ee5 100755 --- a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_digitization_calo_noLVL1.py +++ b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_digitization_calo_noLVL1.py @@ -97,7 +97,6 @@ outStreams.Stream1.ItemList = [ ## repeat 10 times the same event ## jobproperties.PerfMonFlags.installEvtSelector = True ## svcMgr.PerfMonEventSelector.NbrReplays = 10-1 -## svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 #============================================================== # diff --git a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_multiple_noopalgs_write_evtinfo.py b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_multiple_noopalgs_write_evtinfo.py index 035082feaf105294af014bdab1d334bab9aaab77..e1ab040fc492e7a226427864b8fc5c687d2e6111 100755 --- a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_multiple_noopalgs_write_evtinfo.py +++ b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_multiple_noopalgs_write_evtinfo.py @@ -67,7 +67,6 @@ outStream.OutputFile = OUTPUT ## somehow better configure the AthenaPoolCnvSvc for our small ## persistency output job -svcMgr.AthenaPoolCnvSvc.CommitInterval = 1000 svcMgr.MessageSvc.OutputLevel = ERROR #============================================================== diff --git a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_noopalg_write_datahdr.py b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_noopalg_write_datahdr.py index 6b279d453d7b523ef647a9e61830b42e879b1d1a..da6978b0f280a0a215361fc207dbc49b36516f1c 100755 --- a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_noopalg_write_datahdr.py +++ b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_noopalg_write_datahdr.py @@ -60,7 +60,6 @@ outStream.OutputFile = OUTPUT ## somehow better configure the AthenaPoolCnvSvc for our small ## persistency output job -svcMgr.AthenaPoolCnvSvc.CommitInterval = 1000 svcMgr.MessageSvc.OutputLevel = ERROR #============================================================== diff --git a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_noopalg_write_evtinfo.py b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_noopalg_write_evtinfo.py index ce315e3984c88b0c796ec60cb4ea5184cb234a15..3869afa8fe49411ab225399c63dcd2466828b404 100755 --- a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_noopalg_write_evtinfo.py +++ b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_noopalg_write_evtinfo.py @@ -63,7 +63,6 @@ outStream.OutputFile = OUTPUT ## somehow better configure the AthenaPoolCnvSvc for our small ## persistency output job -svcMgr.AthenaPoolCnvSvc.CommitInterval = 1000 svcMgr.MessageSvc.OutputLevel = ERROR #============================================================== diff --git a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_truthjets.py b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_truthjets.py index 14b09486a025ecdb95c3dbc018b85e3bcba8e259..4a6730f2877cea5e2a8b816e7c19dd9c29b18c55 100755 --- a/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_truthjets.py +++ b/Control/PerformanceMonitoring/PerfMonTests/share/test_perfMonSvc_truthjets.py @@ -101,7 +101,6 @@ outStream.OutputFile = OUTPUT from AthenaSealSvc.AthenaSealSvcConf import AthenaSealSvc svcMgr += AthenaSealSvc( OutputLevel = ERROR ) -svcMgr.AthenaPoolCnvSvc.CommitInterval = 100 from GaudiSvc.GaudiSvcConf import MessageSvc svcMgr += MessageSvc( defaultLimit = 4000000 ) diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/IAthenaPoolCnvSvc.h b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/IAthenaPoolCnvSvc.h index 849819fc75eedf3e79395288284afc15c868c92a..56249c82a4fcc83009d77d30a1ac5131521bccb5 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/IAthenaPoolCnvSvc.h +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/IAthenaPoolCnvSvc.h @@ -60,7 +60,7 @@ public: /// @param placement [IN] pointer to the placement hint /// @param obj [IN] pointer to the Data Object to be written to Pool /// @param classDesc [IN] pointer to the Seal class description for the Data Object. - virtual const Token* registerForWrite(const Placement* placement, + virtual const Token* registerForWrite(Placement* placement, const void* obj, const RootType& classDesc) const = 0; diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.cxx b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.cxx index 012694429ff25357cf23d4a3b3bdfc958c9315d7..f9fe7223de93e05a138245922a3a64d6cef058fc 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.cxx +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.cxx @@ -31,6 +31,8 @@ #include "AuxDiscoverySvc.h" +#include <algorithm> + //______________________________________________________________________________ // Initialize the service. StatusCode AthenaPoolCnvSvc::initialize() { @@ -103,13 +105,6 @@ StatusCode AthenaPoolCnvSvc::initialize() { } } } - // Setting default 'TREE_MAX_SIZE' for ROOT to 1024 GB to avoid file chains. - std::vector<std::string> maxFileSize; - maxFileSize.push_back("TREE_MAX_SIZE"); - maxFileSize.push_back("1099511627776L"); - m_domainAttr.push_back(maxFileSize); - // Extracting OUTPUT POOL ItechnologySpecificAttributes for Domain, Database and Container. - extractPoolAttributes(m_poolAttr, &m_containerAttr, &m_databaseAttr, &m_domainAttr); // Extracting INPUT POOL ItechnologySpecificAttributes for Domain, Database and Container. extractPoolAttributes(m_inputPoolAttr, &m_inputAttr, &m_inputAttr, &m_inputAttr); // Extracting the INPUT POOL ItechnologySpecificAttributes which are to be printed for each event @@ -329,8 +324,10 @@ StatusCode AthenaPoolCnvSvc::connectOutput(const std::string& outputConnectionSp if (streamClient == m_streamClientFiles.size()) { m_streamClientFiles.push_back(outputConnectionSpec); } + unsigned int contextId = IPoolSvc::kOutputStream; + if (m_persSvcPerOutput) contextId = m_poolSvc->getOutputContext(m_outputConnectionSpec); try { - if (!m_poolSvc->connect(pool::ITransaction::UPDATE).isSuccess()) { + if (!m_poolSvc->connect(pool::ITransaction::UPDATE, contextId).isSuccess()) { ATH_MSG_ERROR("connectOutput FAILED to open an UPDATE transaction."); return(StatusCode::FAILURE); } @@ -338,10 +335,20 @@ StatusCode AthenaPoolCnvSvc::connectOutput(const std::string& outputConnectionSp ATH_MSG_ERROR("connectOutput - caught exception: " << e.what()); return(StatusCode::FAILURE); } - if (!processPoolAttributes(m_domainAttr, m_outputConnectionSpec, IPoolSvc::kOutputStream).isSuccess()) { + if (std::find(m_contextAttr.begin(), m_contextAttr.end(), contextId) == m_contextAttr.end()) { + m_contextAttr.push_back(contextId); + // Setting default 'TREE_MAX_SIZE' for ROOT to 1024 GB to avoid file chains. + std::vector<std::string> maxFileSize; + maxFileSize.push_back("TREE_MAX_SIZE"); + maxFileSize.push_back("1099511627776L"); + m_domainAttr.push_back(maxFileSize); + // Extracting OUTPUT POOL ItechnologySpecificAttributes for Domain, Database and Container. + extractPoolAttributes(m_poolAttr, &m_containerAttr, &m_databaseAttr, &m_domainAttr); + } + if (!processPoolAttributes(m_domainAttr, m_outputConnectionSpec, contextId).isSuccess()) { ATH_MSG_DEBUG("connectOutput failed process POOL domain attributes."); } - if (!processPoolAttributes(m_databaseAttr, m_outputConnectionSpec, IPoolSvc::kOutputStream).isSuccess()) { + if (!processPoolAttributes(m_databaseAttr, m_outputConnectionSpec, contextId).isSuccess()) { ATH_MSG_DEBUG("connectOutput failed process POOL database attributes."); } return(StatusCode::SUCCESS); @@ -511,23 +518,25 @@ StatusCode AthenaPoolCnvSvc::commitOutput(const std::string& outputConnectionSpe if (m_doChronoStat) { m_chronoStatSvc->chronoStart("commitOutput"); } - if (!processPoolAttributes(m_domainAttr, m_outputConnectionSpec, IPoolSvc::kOutputStream).isSuccess()) { + unsigned int contextId = IPoolSvc::kOutputStream; + if (m_persSvcPerOutput) contextId = m_poolSvc->getOutputContext(m_outputConnectionSpec); + if (!processPoolAttributes(m_domainAttr, m_outputConnectionSpec, contextId).isSuccess()) { ATH_MSG_DEBUG("commitOutput failed process POOL domain attributes."); } - if (!processPoolAttributes(m_databaseAttr, m_outputConnectionSpec, IPoolSvc::kOutputStream).isSuccess()) { + if (!processPoolAttributes(m_databaseAttr, m_outputConnectionSpec, contextId).isSuccess()) { ATH_MSG_DEBUG("commitOutput failed process POOL database attributes."); } - if (!processPoolAttributes(m_containerAttr, m_outputConnectionSpec, IPoolSvc::kOutputStream).isSuccess()) { + if (!processPoolAttributes(m_containerAttr, m_outputConnectionSpec, contextId).isSuccess()) { ATH_MSG_DEBUG("commitOutput failed process POOL container attributes."); } try { if (doCommit) { - if (!m_poolSvc->commit(IPoolSvc::kOutputStream).isSuccess()) { + if (!m_poolSvc->commit(contextId).isSuccess()) { ATH_MSG_ERROR("commitOutput FAILED to commit OutputStream."); return(StatusCode::FAILURE); } } else { - if (!m_poolSvc->commitAndHold(IPoolSvc::kOutputStream).isSuccess()) { + if (!m_poolSvc->commitAndHold(contextId).isSuccess()) { ATH_MSG_ERROR("commitOutput FAILED to commitAndHold OutputStream."); return(StatusCode::FAILURE); } @@ -544,7 +553,7 @@ StatusCode AthenaPoolCnvSvc::commitOutput(const std::string& outputConnectionSpe iter->second.Destruct(iter->first); } // Check FileSize - long long int currentFileSize = m_poolSvc->getFileSize(m_outputConnectionSpec, m_dbType.type(), IPoolSvc::kOutputStream); + long long int currentFileSize = m_poolSvc->getFileSize(m_outputConnectionSpec, m_dbType.type(), contextId); if (m_databaseMaxFileSize.find(m_outputConnectionSpec) != m_databaseMaxFileSize.end()) { if (currentFileSize > m_databaseMaxFileSize[m_outputConnectionSpec]) { ATH_MSG_WARNING("FileSize > MaxFileSize for " << m_outputConnectionSpec); @@ -589,7 +598,9 @@ StatusCode AthenaPoolCnvSvc::disconnectOutput() { m_domainAttr.push_back(maxFileSize); // Extracting OUTPUT POOL ItechnologySpecificAttributes for Domain, Database and Container. extractPoolAttributes(m_poolAttr, &m_containerAttr, &m_databaseAttr, &m_domainAttr); - return(m_poolSvc->disconnect(IPoolSvc::kOutputStream)); + unsigned int contextId = IPoolSvc::kOutputStream; + if (m_persSvcPerOutput) contextId = m_poolSvc->getOutputContext(m_outputConnectionSpec); + return(m_poolSvc->disconnect(contextId)); } //______________________________________________________________________________ const std::string& AthenaPoolCnvSvc::getOutputConnectionSpec() const { @@ -641,7 +652,7 @@ IPoolSvc* AthenaPoolCnvSvc::getPoolSvc() { return(&*m_poolSvc); } //______________________________________________________________________________ -const Token* AthenaPoolCnvSvc::registerForWrite(const Placement* placement, +const Token* AthenaPoolCnvSvc::registerForWrite(Placement* placement, const void* obj, const RootType& classDesc) const { if (m_doChronoStat) { @@ -763,6 +774,11 @@ const Token* AthenaPoolCnvSvc::registerForWrite(const Placement* placement, token = m_poolSvc->registerForWrite(placement, obj, classDesc); } } else { + if (m_persSvcPerOutput) { + char text[32]; + ::sprintf(text, "[CTXT=%08X]", m_poolSvc->getOutputContext(placement->fileName())); + placement->setAuxString(text); + } token = m_poolSvc->registerForWrite(placement, obj, classDesc); } } @@ -1115,6 +1131,7 @@ AthenaPoolCnvSvc::AthenaPoolCnvSvc(const std::string& name, ISvcLocator* pSvcLoc declareProperty("PrintInputAttrPerEvt", m_inputPoolAttrPerEvent); declareProperty("MaxFileSizes", m_maxFileSizes); declareProperty("CommitInterval", m_commitInterval = 0); + declareProperty("PersSvcPerOutput", m_persSvcPerOutput = false); declareProperty("SkipFirstChronoCommit", m_skipFirstChronoCommit = false); declareProperty("InputStreamingTool", m_inputStreamingTool); declareProperty("OutputStreamingTool", m_outputStreamingTool); @@ -1248,7 +1265,7 @@ StatusCode AthenaPoolCnvSvc::processPoolAttributes(std::vector<std::vector<std:: if (m_poolSvc->setAttribute(opt, data, m_dbType.type(), fileName, cont, contextId).isSuccess()) { ATH_MSG_DEBUG("setAttribute " << opt << " to " << data << " for db: " << fileName << " and cont: " << cont); if (doClear) { - if (file.substr(0, 1) == "*") { + if (file.substr(0, 1) == "*" && !m_persSvcPerOutput) { (*iter)[2] += "," + fileName + ","; } else { iter->clear(); diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.h b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.h index cf7bf62e3e06221228c26363a2d4c60732388826..11bdea8b082a99641fa09a47d8e70c9227d8638c 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.h +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.h @@ -97,7 +97,7 @@ public: /// @param placement [IN] pointer to the placement hint /// @param obj [IN] pointer to the Data Object to be written to Pool /// @param classDesc [IN] pointer to the Seal class description for the Data Object. - const Token* registerForWrite(const Placement* placement, + const Token* registerForWrite(Placement* placement, const void* obj, const RootType& classDesc) const; @@ -215,6 +215,7 @@ private: // properties std::vector<std::vector<std::string> > m_domainAttr; std::vector<std::vector<std::string> > m_databaseAttr; std::vector<std::vector<std::string> > m_containerAttr; + std::vector<unsigned int> m_contextAttr; /// Input PoolAttributes, vector with names and values of technology specific attributes for POOL StringArrayProperty m_inputPoolAttr; std::vector<std::vector<std::string> > m_inputAttr; @@ -235,6 +236,10 @@ private: // properties /// default = 0. IntegerProperty m_commitInterval; + /// PersSvcPerOutput,boolean property to use multiple persistency services, one per output stream. + /// default = false. + BooleanProperty m_persSvcPerOutput; + /// SkipFirstChronoCommit, boolean property to skip the first commit in the chrono stats so the first /// container being committed to disk is not 'tainted' with the POOL overhead BooleanProperty m_skipFirstChronoCommit; diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/test/TestCnvSvcBase.icc b/Database/AthenaPOOL/AthenaPoolCnvSvc/test/TestCnvSvcBase.icc index a245f02b89af2ba0675e2adb82a968ae8904044b..054ea5cc3f3320d8137bd9d16fe4f0f8766399d9 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/test/TestCnvSvcBase.icc +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/test/TestCnvSvcBase.icc @@ -36,7 +36,7 @@ public: { std::abort(); } virtual IPoolSvc* getPoolSvc() override { std::abort(); } - virtual const Token* registerForWrite(const Placement* /*placement*/, + virtual const Token* registerForWrite(Placement* /*placement*/, const void* /*obj*/, const RootType& /*classDesc*/) const override { std::abort(); } diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ConcatJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ConcatJobOptions.py index 440bf286a945013a596a151247855e3de63d1813..497e919558409cc32633afc00b89e8e455ad413d 100755 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ConcatJobOptions.py +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ConcatJobOptions.py @@ -37,8 +37,6 @@ import AthenaPoolCnvSvc.AthenaPool #Explicitly specify the output file catalog svcMgr.PoolSvc.WriteCatalog = "xmlcatalog_file:Catalog1.xml" -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - #-------------------------------------------------------------- # Private Application Configuration options #-------------------------------------------------------------- diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_CopyJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_CopyJobOptions.py index 5c3595e1abd1b8dab79f0cc57d0ee24f067dc876..92f0f4cf06f89a9484d7d2c4d8b2d3ddaf67e257 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_CopyJobOptions.py +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_CopyJobOptions.py @@ -63,10 +63,6 @@ from PoolSvc.PoolSvcConf import PoolSvc svcMgr += PoolSvc() svcMgr.PoolSvc.WriteCatalog = "xmlcatalog_file:Catalog1.xml" -from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc -svcMgr += AthenaPoolCnvSvc() -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - #-------------------------------------------------------------- # Private Application Configuration options #-------------------------------------------------------------- diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_FilterJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_FilterJobOptions.py index 2697ef2a3b94aa8faf9e959c12dba30dca9a4e75..6faea9708dc3b7f589056f3072ac261482f93dc5 100755 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_FilterJobOptions.py +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_FilterJobOptions.py @@ -66,8 +66,6 @@ svcMgr.EventSelector.Query = "EventNumber > 5" svcMgr.PoolSvc.ReadCatalog = [ "file:Catalog.xml" ] svcMgr.PoolSvc.WriteCatalog = "file:Catalog1.xml" -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolEx__QueryTag QueryTag = AthPoolEx__QueryTag("QueryTag") svcMgr.EventSelector.HelperTools = [ QueryTag ] diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilterJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilterJobOptions.py index c991462c281dab3f0917710bf8a040e3adf61efc..cf2c6a6adb91148d35380dbeef4a7b58bd08a199 100755 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilterJobOptions.py +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilterJobOptions.py @@ -68,8 +68,6 @@ svcMgr.PoolSvc.ReadCatalog = [ "file:Catalog.xml" ] svcMgr.PoolSvc.ReadCatalog += [ "file:Catalog1.xml" ] svcMgr.PoolSvc.WriteCatalog = "file:Catalog2.xml" -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - #from EventSelectorAthenaPool.EventSelectorAthenaPoolConf import TagRemappingTool #TagRemappingTool = TagRemappingTool("TagRemappingTool") #TagRemappingTool.JoinListKey = "Stream1_ref" diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RWJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RWJobOptions.py index daef84be46304348b19702a60a656fd30dd9d8d8..a08a5d9af2a0b599a66355b8efef7397f168e7eb 100755 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RWJobOptions.py +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RWJobOptions.py @@ -62,8 +62,6 @@ svcMgr.EventSelector.InputCollections = [ "SimplePoolFile1.root" ]; # ** mandato svcMgr.PoolSvc.ReadCatalog = [ "file:Catalog.xml" ] svcMgr.PoolSvc.WriteCatalog = "file:Catalog1.xml" -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - #-------------------------------------------------------------- # Private Application Configuration options #-------------------------------------------------------------- diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgainJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgainJobOptions.py index 620ae1e040bac7c210cf51d5d77960f5be12112c..445d033046697c8d492a1de4973e61f8a1ed4e54 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgainJobOptions.py +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgainJobOptions.py @@ -62,8 +62,6 @@ svcMgr.EventSelector.InputCollections = [ "SimplePoolReplica1.root" ]; # ** mand svcMgr.PoolSvc.ReadCatalog = [ "file:Catalog.xml" ] svcMgr.PoolSvc.WriteCatalog = "file:Catalog1.xml" -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - #-------------------------------------------------------------- # Private Application Configuration options #-------------------------------------------------------------- diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNextJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNextJobOptions.py index b4bb295563dadbd218501422a6ff75eb1a86caa0..f4510a1c54fc23e467a4e15cf7dd3f1042f2bdeb 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNextJobOptions.py +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNextJobOptions.py @@ -62,8 +62,6 @@ svcMgr.EventSelector.InputCollections = [ "SimplePoolFile3.root" ]; # ** mandato svcMgr.PoolSvc.ReadCatalog = [ "file:Catalog.xml" ] svcMgr.PoolSvc.WriteCatalog = "file:Catalog1.xml" -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - #-------------------------------------------------------------- # Private Application Configuration options #-------------------------------------------------------------- diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMetaJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMetaJobOptions.py index 0f9b53d4f9a42698eeefc5e154f09e7118c93fcc..f674bbe0246621dab6100fa551fede3b134b2789 100755 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMetaJobOptions.py +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMetaJobOptions.py @@ -36,8 +36,6 @@ import AthenaPoolCnvSvc.WriteAthenaPool #Explicitly specify the output file catalog svcMgr.PoolSvc.WriteCatalog = "xmlcatalog_file:Catalog2.xml" -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream Stream1 = AthenaPoolOutputStream( "Stream1", "ROOTTREE:SimplePoolFile5.root", noTag=True ) Stream1.ItemList += [ "ExampleHitContainer#MyHits" ] diff --git a/Database/AthenaPOOL/PoolSvc/PoolSvc/IPoolSvc.h b/Database/AthenaPOOL/PoolSvc/PoolSvc/IPoolSvc.h index 3629f8e167c29337cf109a725fa4e20828747654..4db033b2555a32d6ac29f17c8a1d272a15190f1d 100644 --- a/Database/AthenaPOOL/PoolSvc/PoolSvc/IPoolSvc.h +++ b/Database/AthenaPOOL/PoolSvc/PoolSvc/IPoolSvc.h @@ -56,6 +56,10 @@ public: // Non-static members /// @param token [IN] token of the Data Object for which a Pool Ref is filled. virtual void setObjPtr(void*& obj, const Token* token) const = 0; + /// @return an Id for an output context (POOL persistency service) and create it if needed. + /// @param label [IN] string label to name new context and allow sharing (returns existing contextId) + virtual unsigned int getOutputContext(const std::string& label) = 0; + /// @return an Id for an input context (POOL persistency service) and create it if needed. /// @param label [IN] string label to name new context and allow sharing (returns existing contextId) /// @param maxFile [IN] maximum number of open input files. diff --git a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx index 1ffbeabd6a609ad92272ed1bd79889ee5ca8bcb7..0b02cf28d7d6ec1284cddf201d45988a3e1a9403 100644 --- a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx +++ b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx @@ -263,8 +263,11 @@ StatusCode PoolSvc::finalize() { //__________________________________________________________________________ StatusCode PoolSvc::io_finalize() { ATH_MSG_INFO("I/O finalization..."); - if (!disconnect(IPoolSvc::kOutputStream).isSuccess()) { - ATH_MSG_WARNING("Cannot disconnect output Stream"); + for (size_t i = 0; i < m_persistencySvcVec.size(); i++) { + if (m_persistencySvcVec[i]->session().defaultConnectionPolicy().writeModeForNonExisting() != pool::DatabaseConnectionPolicy::RAISE_ERROR && + !disconnect(i).isSuccess()) { + ATH_MSG_WARNING("Cannot disconnect output Stream " << i); + } } for (const auto& persistencySvc : m_persistencySvcVec) { delete persistencySvc; @@ -295,8 +298,21 @@ StatusCode PoolSvc::queryInterface(const InterfaceID& riid, void** ppvInterface) const Token* PoolSvc::registerForWrite(const Placement* placement, const void* obj, const RootType& classDesc) const { - std::lock_guard<CallMutex> lock(*m_pers_mut[IPoolSvc::kOutputStream]); - Token* token = m_persistencySvcVec[IPoolSvc::kOutputStream]->registerForWrite(*placement, obj, classDesc); + unsigned int contextId = IPoolSvc::kOutputStream; + const std::string& auxString = placement->auxString(); + if (!auxString.empty()) { + if (auxString.substr(0, 6) == "[CTXT=") { + ::sscanf(auxString.c_str(), "[CTXT=%08X]", &contextId); + } else if (auxString.substr(0, 8) == "[CLABEL=") { + contextId = const_cast<PoolSvc*>(this)->getOutputContext(auxString);//FIXME? + } + if (contextId >= m_persistencySvcVec.size()) { + ATH_MSG_WARNING("registerForWrite: Using default output Stream instead of id = " << contextId); + contextId = IPoolSvc::kOutputStream; + } + } + std::lock_guard<CallMutex> lock(*m_pers_mut[contextId]); + Token* token = m_persistencySvcVec[contextId]->registerForWrite(*placement, obj, classDesc); if (token == nullptr) { ATH_MSG_WARNING("Cannot write object: " << placement->containerName()); } @@ -329,6 +345,33 @@ void PoolSvc::setObjPtr(void*& obj, const Token* token) const { } } //__________________________________________________________________________ +unsigned int PoolSvc::getOutputContext(const std::string& label) { + std::lock_guard<CallMutex> lock(m_pool_mut); + if (m_mainOutputLabel.empty()) { + m_mainOutputLabel = label; + m_contextLabel.insert(std::pair<std::string, unsigned int>(label, IPoolSvc::kOutputStream)); + } + if (label == m_mainOutputLabel || label.empty()) { + return(IPoolSvc::kOutputStream); + } + std::map<std::string, unsigned int>::const_iterator contextIter = m_contextLabel.find(label); + if (contextIter != m_contextLabel.end()) { + return(contextIter->second); + } + const unsigned int id = m_persistencySvcVec.size(); + m_persistencySvcVec.push_back(pool::IPersistencySvc::create(*m_catalog).release()); + m_pers_mut.push_back(new CallMutex); + pool::DatabaseConnectionPolicy policy; + policy.setWriteModeForNonExisting(pool::DatabaseConnectionPolicy::CREATE); + policy.setWriteModeForExisting(pool::DatabaseConnectionPolicy::OVERWRITE); + if (m_fileOpen.value() == "update") { + policy.setWriteModeForExisting(pool::DatabaseConnectionPolicy::UPDATE); + } + m_persistencySvcVec[id]->session().setDefaultConnectionPolicy(policy); + m_contextLabel.insert(std::pair<std::string, unsigned int>(label, id)); + return(id); +} +//__________________________________________________________________________ unsigned int PoolSvc::getInputContext(const std::string& label, unsigned int maxFile) { std::lock_guard<CallMutex> lock(m_pool_mut); if (!label.empty()) { @@ -344,7 +387,7 @@ unsigned int PoolSvc::getInputContext(const std::string& label, unsigned int max m_persistencySvcVec.push_back( pool::IPersistencySvc::create(*m_catalog).release() ); m_pers_mut.push_back(new CallMutex); if (!connect(pool::ITransaction::READ).isSuccess()) { - ATH_MSG_ERROR("Failed to connect Input PersistencySvc."); + ATH_MSG_WARNIND("Failed to connect Input PersistencySvc: " << id); return(IPoolSvc::kInputStream); } if (!label.empty()) { @@ -413,9 +456,7 @@ pool::ICollection* PoolSvc::createCollection(const std::string& collectionType, } } std::lock_guard<CallMutex> lock(m_pool_mut); - if (openMode != pool::ICollection::READ) { - contextId = IPoolSvc::kOutputStream; - } else { + if (openMode == pool::ICollection::READ) { if (contextId > m_persistencySvcVec.size()) { contextId = IPoolSvc::kInputStream; } else if (contextId == m_persistencySvcVec.size()) { @@ -473,7 +514,8 @@ pool::ICollection* PoolSvc::createCollection(const std::string& collectionType, pool::CollectionFactory* collFac = pool::CollectionFactory::get(); pool::CollectionDescription collDes(collection, collectionType, collectionType == "ImplicitCollection" ? connection : ""); pool::ICollection* collPtr = nullptr; - if (collectionType == "RootCollection" && contextId == IPoolSvc::kOutputStream) { + if (collectionType == "RootCollection" && + m_persistencySvcVec[contextId]->session().defaultConnectionPolicy().writeModeForNonExisting() != pool::DatabaseConnectionPolicy::RAISE_ERROR) { ATH_MSG_INFO("Writing ExplicitROOT Collection - do not pass session pointer"); collPtr = collFac->create(collDes, openMode); } else { @@ -542,11 +584,16 @@ Token* PoolSvc::getToken(const std::string& connection, StatusCode PoolSvc::connect(pool::ITransaction::Type type, unsigned int contextId) const { std::lock_guard<CallMutex> lock(m_pool_mut); if (type != pool::ITransaction::READ) { - contextId = IPoolSvc::kOutputStream; + if (contextId >= m_persistencySvcVec.size()) { + ATH_MSG_WARNING("connect: Using default output Stream instead of id = " << contextId); + contextId = IPoolSvc::kOutputStream; + } } else { if (contextId > m_persistencySvcVec.size()) { + ATH_MSG_WARNING("connect: Using default input Stream instead of id = " << contextId); contextId = IPoolSvc::kInputStream; } else if (contextId == m_persistencySvcVec.size()) { + ATH_MSG_INFO("Connecting to InputStream for: " << contextId); contextId = const_cast<PoolSvc*>(this)->getInputContext(""); } } @@ -642,7 +689,7 @@ long long int PoolSvc::getFileSize(const std::string& dbName, long tech, unsigne return 0; // failure } if (dbH->openMode() == pool::IDatabase::CLOSED) { - if (contextId == IPoolSvc::kOutputStream) { + if (m_persistencySvcVec[contextId]->session().defaultConnectionPolicy().writeModeForNonExisting() != pool::DatabaseConnectionPolicy::RAISE_ERROR) { dbH->setTechnology(tech); dbH->connectForWrite(); } else { @@ -687,7 +734,7 @@ StatusCode PoolSvc::getAttribute(const std::string& optName, return(StatusCode::FAILURE); } if (dbH->openMode() == pool::IDatabase::CLOSED) { - if (contextId == IPoolSvc::kOutputStream) { + if (m_persistencySvcVec[contextId]->session().defaultConnectionPolicy().writeModeForNonExisting() != pool::DatabaseConnectionPolicy::RAISE_ERROR) { dbH->setTechnology(tech); dbH->connectForWrite(); } else { @@ -764,7 +811,7 @@ StatusCode PoolSvc::setAttribute(const std::string& optName, return(StatusCode::FAILURE); } if (dbH->openMode() == pool::IDatabase::CLOSED) { - if (contextId == IPoolSvc::kOutputStream) { + if (m_persistencySvcVec[contextId]->session().defaultConnectionPolicy().writeModeForNonExisting() != pool::DatabaseConnectionPolicy::RAISE_ERROR) { dbH->setTechnology(tech); dbH->connectForWrite(); } else { @@ -774,7 +821,7 @@ StatusCode PoolSvc::setAttribute(const std::string& optName, bool retError = false; std::string objName; bool hasTTreeName = (contName.length() > 6 && contName.substr(0, 6) == "TTree="); - if (contName.empty() || hasTTreeName || contextId != IPoolSvc::kOutputStream) { + if (contName.empty() || hasTTreeName || m_persistencySvcVec[contextId]->session().defaultConnectionPolicy().writeModeForNonExisting() == pool::DatabaseConnectionPolicy::RAISE_ERROR) { objName = hasTTreeName ? contName.substr(6) : contName; if (data[data.size() - 1] == 'L') { retError = dbH->technologySpecificAttributes().setAttribute<long long int>(optName, atoll(data.c_str()), objName); @@ -924,6 +971,7 @@ PoolSvc::PoolSvc(const std::string& name, ISvcLocator* pSvcLocator) : m_persistencySvcVec(), m_pers_mut(), m_contextLabel(), + m_mainOutputLabel(), m_contextMaxFile(), m_guidLists() { declareProperty("WriteCatalog", m_writeCatalog = "xmlcatalog_file:PoolFileCatalog.xml"); @@ -951,11 +999,12 @@ std::unique_ptr<pool::IDatabase> PoolSvc::getDbHandle(unsigned int contextId, co pool::ISession& sesH = m_persistencySvcVec[contextId]->session(); if (!sesH.transaction().isActive()) { pool::ITransaction::Type transMode = pool::ITransaction::READ; - if (contextId == IPoolSvc::kOutputStream) { + if (m_persistencySvcVec[contextId]->session().defaultConnectionPolicy().writeModeForNonExisting() != pool::DatabaseConnectionPolicy::RAISE_ERROR) { transMode = pool::ITransaction::UPDATE; } + ATH_MSG_DEBUG("Start transaction, type = " << transMode); if (!sesH.transaction().start(transMode)) { - ATH_MSG_DEBUG("Failed to start transaction, type = " << transMode); + ATH_MSG_WARNING("Failed to start transaction, type = " << transMode); return(nullptr); } } diff --git a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h index f3e51efd7b6cc9552d27daffc9f9f8d199c1ec79..b71bbe6f32d3bd5be3772dd1fc582ecd6d13b103 100644 --- a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h +++ b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h @@ -62,6 +62,10 @@ public: // Non-static members /// @param token [IN] token of the Data Object for which a Pool Ref is filled. void setObjPtr(void*& obj, const Token* token) const; + /// @return an Id for an output context (POOL persistency service) and create it if needed. + /// @param label [IN] string label to name new context and allow sharing (returns existing contextId) + unsigned int getOutputContext(const std::string& label); + /// @return an Id for an input context (POOL persistency service) and create it if needed. /// @param label [IN] string label to name new context and allow sharing (returns existing contextId) /// @param maxFile [IN] maximum number of open input files. @@ -183,6 +187,7 @@ private: // data std::vector<pool::IPersistencySvc*> m_persistencySvcVec; mutable std::vector<CallMutex*> m_pers_mut; std::map<std::string, unsigned int> m_contextLabel; + std::string m_mainOutputLabel; std::map<unsigned int, unsigned int> m_contextMaxFile; // Cache for open file guids for each m_persistencySvcVec member, protected by m_pers_mut mutable std::map<unsigned int, std::list<Guid> > m_guidLists; diff --git a/Database/RegistrationServices/src/RegistrationStreamLCGTool.cxx b/Database/RegistrationServices/src/RegistrationStreamLCGTool.cxx index e16c07c3ca0ff2ee00a6fd8d5e9a331cce8dd795..b0b6e0c2edbfa2ea252195a8c8dee04aa1ff3222 100755 --- a/Database/RegistrationServices/src/RegistrationStreamLCGTool.cxx +++ b/Database/RegistrationServices/src/RegistrationStreamLCGTool.cxx @@ -260,7 +260,8 @@ RegistrationStreamLCGTool::initCollection() m_collection = m_poolSvc->createCollection(collectionType, connection, m_outputCollection.value(), - openMode); + openMode, + IPoolSvc::kOutputStream); } catch (std::exception& e) { msg(MSG::ERROR) << "::initCollection: Caught exception from Pool collection creation. Message: " diff --git a/Generators/EvgenJobTransforms/share/skeleton.ABtoEVGEN.py b/Generators/EvgenJobTransforms/share/skeleton.ABtoEVGEN.py index 558642bb23744dc2bfd8a26c338d3677ab04f3ee..21e6e3fc2d4ce9101d7f772fde167fcd6d21e880 100644 --- a/Generators/EvgenJobTransforms/share/skeleton.ABtoEVGEN.py +++ b/Generators/EvgenJobTransforms/share/skeleton.ABtoEVGEN.py @@ -321,9 +321,6 @@ if evgenConfig.findJets: ## Configure POOL streaming to the output EVNT format file from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream -from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc -#from PoolSvc.PoolSvcConf import PoolSvc -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 #< tweak for MC needs if hasattr(runArgs, "outputEVNTFile"): poolFile = runArgs.outputEVNTFile elif hasattr(runArgs, "outputEVNT_PreFile"): diff --git a/Generators/EvgenJobTransforms/share/skeleton.GENtoEVGEN.py b/Generators/EvgenJobTransforms/share/skeleton.GENtoEVGEN.py index 52dab345c7f76180ac15ddcf86a7313486d7dc9d..f9d0e418bb38e3bb0416acf93b7c715ac87e0109 100644 --- a/Generators/EvgenJobTransforms/share/skeleton.GENtoEVGEN.py +++ b/Generators/EvgenJobTransforms/share/skeleton.GENtoEVGEN.py @@ -339,9 +339,6 @@ if evgenConfig.findJets: ## Configure POOL streaming to the output EVNT format file from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream -from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc -#from PoolSvc.PoolSvcConf import PoolSvc -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 #< tweak for MC needs if hasattr(runArgs, "outputEVNTFile"): poolFile = runArgs.outputEVNTFile elif hasattr(runArgs, "outputEVNT_PreFile"): diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/share/Pixel_main.py b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/share/Pixel_main.py index fab979ced159243be102c2d526295eefd4ea3cae..0d8ee8434c38d50b862672c1c63a1ad1406af9ee 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/share/Pixel_main.py +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/share/Pixel_main.py @@ -162,8 +162,6 @@ if doWriteESD or doWriteAOD or ('doCopyRDO' in dir() and doCopyRDO): from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream # --- check dictionary ServiceMgr.AthenaSealSvc.CheckDictionary = True - # --- commit interval (test) - ServiceMgr.AthenaPoolCnvSvc.CommitInterval = 10 if doWriteESD: # --- create stream diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py index 80e3e20bafea5695f1acaf157e0b347ddcad8d1c..43fa4afd36414a6ae03adbb6d42d88393b2772dc 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py @@ -211,8 +211,6 @@ if doWriteESD or doWriteAOD or ('doCopyRDO' in dir() and doCopyRDO): from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream # --- check dictionary ServiceMgr.AthenaSealSvc.CheckDictionary = True - # --- commit interval (test) - ServiceMgr.AthenaPoolCnvSvc.CommitInterval = 10 # MC truth information if doWriteESD or doWriteAOD: diff --git a/InnerDetector/InDetExample/InDetSLHC_Example/share/GeantinoMapping_ITk_jobOptions.py b/InnerDetector/InDetExample/InDetSLHC_Example/share/GeantinoMapping_ITk_jobOptions.py index 08ad02eaf963398e266c7b6121e3889dd97cac3d..80391aa092453d52f555d194092ce4820f7e213a 100644 --- a/InnerDetector/InDetExample/InDetSLHC_Example/share/GeantinoMapping_ITk_jobOptions.py +++ b/InnerDetector/InDetExample/InDetSLHC_Example/share/GeantinoMapping_ITk_jobOptions.py @@ -113,7 +113,6 @@ from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream ServiceMgr.AthenaSealSvc.CheckDictionary = True # --- commit interval (test) ServiceMgr.AthenaPoolCnvSvc.OutputLevel = DEBUG -ServiceMgr.AthenaPoolCnvSvc.CommitInterval = 10 MaterialStream = AthenaPoolOutputStream ( 'MaterialStream' ) MaterialStream.OutputFile = "MaterialStepCollection.root" MaterialStream.ItemList += [ 'Trk::MaterialStepCollection#*'] diff --git a/InnerDetector/InDetExample/InDetSLHC_Example/share/GeantinoMapping_jobOptionsOverride.py b/InnerDetector/InDetExample/InDetSLHC_Example/share/GeantinoMapping_jobOptionsOverride.py index 7975b16c92e5bb577e2f96e97882b6e7e8609e19..a0c5fa39401a81f3cc5a810a239899c8643c86f9 100755 --- a/InnerDetector/InDetExample/InDetSLHC_Example/share/GeantinoMapping_jobOptionsOverride.py +++ b/InnerDetector/InDetExample/InDetSLHC_Example/share/GeantinoMapping_jobOptionsOverride.py @@ -109,7 +109,6 @@ from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream ServiceMgr.AthenaSealSvc.CheckDictionary = True # --- commit interval (test) ServiceMgr.AthenaPoolCnvSvc.OutputLevel = DEBUG -ServiceMgr.AthenaPoolCnvSvc.CommitInterval = 10 MaterialStream = AthenaPoolOutputStream ( 'MaterialStream' ) MaterialStream.OutputFile = outPath + "MaterStepFile.root" MaterialStream.ItemList += [ 'MaterialStepVector#*'] diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/share/MuonMonLoadPoolSupport.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/share/MuonMonLoadPoolSupport.py index 6915eac28bd6940f4bedd3dbe7010ad8d7e8d41f..9930f0679c716a4bb038cb98ea9368faf51ce259 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/share/MuonMonLoadPoolSupport.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/share/MuonMonLoadPoolSupport.py @@ -10,7 +10,3 @@ from AthenaCommon.AppMgr import ServiceMgr as svcMgr from PoolSvc.PoolSvcConf import PoolSvc svcMgr += PoolSvc() svcMgr.PoolSvc.WriteCatalog = "xmlcatalog_file:Catalog1.xml" - -from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc -svcMgr += AthenaPoolCnvSvc() -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; diff --git a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_ReadGenEvent_jobOptions.py b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_ReadGenEvent_jobOptions.py index a4d9a69201530039648adacc5de13f67a644ec15..69c113a7b035bba4ceca3acaa84ef60d74732c8a 100755 --- a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_ReadGenEvent_jobOptions.py +++ b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_ReadGenEvent_jobOptions.py @@ -101,9 +101,6 @@ import os outStream.OutputFile = OUTPUT outStream.ForceRead = True #force read of output data objs -## tweak the default commit interval -svcMgr.AthenaPoolCnvSvc.CommitInterval = 100 - #-------------------------------------------------------------- # Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) #-------------------------------------------------------------- diff --git a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_ReadTruthParticles_jobOptions.py b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_ReadTruthParticles_jobOptions.py index 70f0314679aeba1b6c2a8dce7a94dad62b0fda72..de89fd1809fd9c29d89f55ee3bd6770aa2ece9e8 100755 --- a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_ReadTruthParticles_jobOptions.py +++ b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_ReadTruthParticles_jobOptions.py @@ -99,9 +99,6 @@ outStream.ItemList += [ "TruthParticleContainer#SpclMC" ] outStream.ItemList += [ "TruthEtIsolationsContainer#TruthEtIsol_GEN_EVENT" ] outStream.ItemList += [ "TruthEtIsolationsContainer#TruthEtIsol_GEN_AOD" ] -## tweak the default commit interval -svcMgr.AthenaPoolCnvSvc.CommitInterval = 100 - svcMgr.MessageSvc.defaultLimit = 4000000 svcMgr.MessageSvc.OutputLevel = ERROR diff --git a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_WriteGenEvent_jobOptions.py b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_WriteGenEvent_jobOptions.py index 85e3ca809f10ceb5c9a0e0a08cc6c4f833936109..e883dca275fbdda23719331f669cfecbb17738fc 100755 --- a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_WriteGenEvent_jobOptions.py +++ b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_WriteGenEvent_jobOptions.py @@ -105,9 +105,6 @@ if not 'OUTPUT' in dir(): pass outStream.OutputFile = OUTPUT -## tweak the default commit interval -svcMgr.AthenaPoolCnvSvc.CommitInterval = 100 - svcMgr.MessageSvc.defaultLimit = 4000000 svcMgr.MessageSvc.OutputLevel = INFO diff --git a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_WriteTruthParticles_jobOptions.py b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_WriteTruthParticles_jobOptions.py index 97bda78591a427dda3f8883ac4e8cf110e59bee7..4f06a81a8a62d5926b02ec9b09dd8dcfc12dca00 100755 --- a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_WriteTruthParticles_jobOptions.py +++ b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/iotest_WriteTruthParticles_jobOptions.py @@ -137,9 +137,6 @@ if 'OUTPUT' not in dir(): outStream.OutputFile = OUTPUT outStream.ForceRead = True #force read of output data objs -## tweak the default commit interval -svcMgr.AthenaPoolCnvSvc.CommitInterval = 100 - svcMgr.MessageSvc.defaultLimit = 4000000 svcMgr.MessageSvc.OutputLevel = ERROR diff --git a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/test_mcaodfilter.py b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/test_mcaodfilter.py index 9fe5d0826810f744f3c169a3727abc9a6aa58410..9bbb1a98c092dcf7a5e781c20ad219e3d016b799 100644 --- a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/test_mcaodfilter.py +++ b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/test_mcaodfilter.py @@ -80,9 +80,6 @@ import os outStream.OutputFile = OUTPUT outStream.ForceRead = True #force read of output data objs -## tweak the default commit interval -svcMgr.AthenaPoolCnvSvc.CommitInterval = 100 - #-------------------------------------------------------------- # Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) #-------------------------------------------------------------- diff --git a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/test_mcaodfilter_solution.py b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/test_mcaodfilter_solution.py index 6fd4926c4318e29064ffa9167da7122e76e3e2a2..ff36dcf07bfc4021239ded5e7c1bb9951ace2788 100644 --- a/PhysicsAnalysis/TruthParticleID/McParticleTests/share/test_mcaodfilter_solution.py +++ b/PhysicsAnalysis/TruthParticleID/McParticleTests/share/test_mcaodfilter_solution.py @@ -88,9 +88,6 @@ import os outStream.OutputFile = OUTPUT outStream.ForceRead = True #force read of output data objs -## tweak the default commit interval -svcMgr.AthenaPoolCnvSvc.CommitInterval = 100 - #-------------------------------------------------------------- # Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) #-------------------------------------------------------------- diff --git a/Reconstruction/RecExample/RecExCommon/share/RecoUtils.py b/Reconstruction/RecExample/RecExCommon/share/RecoUtils.py index e84a97dffce08a39e3ffad2a48c5d5e5bbb29996..f431f191563902358f15c2c5fc436a3c9f8ed31f 100644 --- a/Reconstruction/RecExample/RecExCommon/share/RecoUtils.py +++ b/Reconstruction/RecExample/RecExCommon/share/RecoUtils.py @@ -151,7 +151,6 @@ if rec.doTimeLimit(): # rather use default athenapool value if rec.doPersistencyOptimization() and hasattr(svcMgr, 'AthenaPoolCnvSvc'): svcMgr.AthenaPoolCnvSvc.MaxFileSizes = [ "12000000000" ] - svcMgr.AthenaPoolCnvSvc.CommitInterval = 1000000000 svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "TREE_BRANCH_OFFSETTAB_LEN ='100'" ] diff --git a/Tools/ValgrindRTTJobs/share/McGenerationPythia.py b/Tools/ValgrindRTTJobs/share/McGenerationPythia.py index bd2f94f140edf124e623e9587e19f07b130c24bf..6ed2f1b776124c09315101a580abb11f0e1f538d 100644 --- a/Tools/ValgrindRTTJobs/share/McGenerationPythia.py +++ b/Tools/ValgrindRTTJobs/share/McGenerationPythia.py @@ -63,14 +63,6 @@ topAlg+=ValgrindHelperAlg() # Pool Persistency #--------------------------------------------------------------- from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream - -## tweak the default commit interval for montecarlo needs -from AthenaCommon.AppMgr import ServiceMgr as svcMgr -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10 - -from PoolSvc.PoolSvcConf import PoolSvc -from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc - Stream1 = AthenaPoolOutputStream("Stream1") Stream1.ItemList += ["EventInfo#*", "McEventCollection#*" ] # Stream1.ForceRead=True diff --git a/Tracking/TrkDetDescr/TrkDetDescrUnitTests/share/TrkDetDescrTPCnvTest_jobOptions.py b/Tracking/TrkDetDescr/TrkDetDescrUnitTests/share/TrkDetDescrTPCnvTest_jobOptions.py index 9836ff1c8530296d6a08425f166e6fec3b4920a2..7b0111eac328f06ed6e8395440545bf8b90840b3 100644 --- a/Tracking/TrkDetDescr/TrkDetDescrUnitTests/share/TrkDetDescrTPCnvTest_jobOptions.py +++ b/Tracking/TrkDetDescr/TrkDetDescrUnitTests/share/TrkDetDescrTPCnvTest_jobOptions.py @@ -88,7 +88,6 @@ if WriteFile : ServiceMgr.AthenaSealSvc.CheckDictionary = True # --- commit interval (test) ServiceMgr.AthenaPoolCnvSvc.OutputLevel = DEBUG - ServiceMgr.AthenaPoolCnvSvc.CommitInterval = 1 MaterialStream = AthenaPoolOutputStream ( 'TrkDetDescrTPCnv' ) MaterialStream.OutputFile = 'TrkDetDescrTPCnvTest.root' MaterialStream.ItemList += [ 'Trk::MaterialStepCollection#'+MaterialStepCollectionName ] diff --git a/Tracking/TrkG4Components/TrkG4UserActions/share/EnergyLossSimulation_jobOptions.py b/Tracking/TrkG4Components/TrkG4UserActions/share/EnergyLossSimulation_jobOptions.py index 8b8d73a064a06ad0dbc05e9011635afa0b02b92e..024257cdc813e608d2947c97cc99db64be04029a 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/share/EnergyLossSimulation_jobOptions.py +++ b/Tracking/TrkG4Components/TrkG4UserActions/share/EnergyLossSimulation_jobOptions.py @@ -103,7 +103,6 @@ ServiceMgr.THistSvc.Output += [ "val DATAFILE='/tmp/salzburg/EnergyLossRecorder. #ServiceMgr.AthenaSealSvc.CheckDictionary = True ## --- commit interval (test) #ServiceMgr.AthenaPoolCnvSvc.OutputLevel = DEBUG -#ServiceMgr.AthenaPoolCnvSvc.CommitInterval = 10 #MaterialStream = AthenaPoolOutputStream ( 'MaterialStream' ) #MaterialStream.OutputFile = "MaterialStepFile.root" #MaterialStream.ItemList += [ 'MaterialStepVector#*'] diff --git a/Tracking/TrkG4Components/TrkG4UserActions/share/GeantFollowingMS_jobOptions.py b/Tracking/TrkG4Components/TrkG4UserActions/share/GeantFollowingMS_jobOptions.py index 768921e05d60a78d27ee660f4057096ab6570b4c..21e3b8cddf5917a79a4bbcf6279c0e5c47789ac0 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/share/GeantFollowingMS_jobOptions.py +++ b/Tracking/TrkG4Components/TrkG4UserActions/share/GeantFollowingMS_jobOptions.py @@ -338,7 +338,6 @@ from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream ServiceMgr.AthenaSealSvc.CheckDictionary = True ## --- commit interval (test) #ServiceMgr.AthenaPoolCnvSvc.OutputLevel = DEBUG -ServiceMgr.AthenaPoolCnvSvc.CommitInterval = 10 from AthenaCommon.AppMgr import ServiceMgr if not hasattr(ServiceMgr, 'THistSvc'): diff --git a/Tracking/TrkG4Components/TrkG4UserActions/share/GeantFollowing_jobOptions.py b/Tracking/TrkG4Components/TrkG4UserActions/share/GeantFollowing_jobOptions.py index fe4884761c2a062fd09b8659e99ed8827f55efbe..cf553386d17ed52471b7050fe7c0357b88427dfc 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/share/GeantFollowing_jobOptions.py +++ b/Tracking/TrkG4Components/TrkG4UserActions/share/GeantFollowing_jobOptions.py @@ -334,7 +334,6 @@ from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream ServiceMgr.AthenaSealSvc.CheckDictionary = True ## --- commit interval (test) #ServiceMgr.AthenaPoolCnvSvc.OutputLevel = DEBUG -ServiceMgr.AthenaPoolCnvSvc.CommitInterval = 10 from AthenaCommon.AppMgr import ServiceMgr if not hasattr(ServiceMgr, 'THistSvc'): diff --git a/Tracking/TrkG4Components/TrkG4UserActions/share/GeantinoMapping_jobOptions.py b/Tracking/TrkG4Components/TrkG4UserActions/share/GeantinoMapping_jobOptions.py index a9c83882a4fd58fa91f750cd09f7659c8923b943..8347d6fd84fbc3862e1a2bc97f2094988d64d406 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/share/GeantinoMapping_jobOptions.py +++ b/Tracking/TrkG4Components/TrkG4UserActions/share/GeantinoMapping_jobOptions.py @@ -105,7 +105,6 @@ from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream ServiceMgr.AthenaSealSvc.CheckDictionary = True # --- commit interval (test) ServiceMgr.AthenaPoolCnvSvc.OutputLevel = DEBUG -ServiceMgr.AthenaPoolCnvSvc.CommitInterval = 10 MaterialStream = AthenaPoolOutputStream ( 'MaterialStream' ) MaterialStream.OutputFile = "MaterialStepFile.root" MaterialStream.ItemList += [ 'Trk::MaterialStepCollection#*'] diff --git a/Trigger/TrigAnalysis/TrigDecisionMaker/python/TrigDecisionMakerConfig.py b/Trigger/TrigAnalysis/TrigDecisionMaker/python/TrigDecisionMakerConfig.py index 758e3f6ce249d41ce1e744524bba6c7175747f58..8be4b3024fe29df37179c078bd46823b64118bbb 100644 --- a/Trigger/TrigAnalysis/TrigDecisionMaker/python/TrigDecisionMakerConfig.py +++ b/Trigger/TrigAnalysis/TrigDecisionMaker/python/TrigDecisionMakerConfig.py @@ -41,10 +41,6 @@ class TrigDecisionStream ( object) : from AthenaCommon.AppMgr import ServiceMgr as svcMgr svcMgr.PoolSvc.WriteCatalog = catalog - from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc - svcMgr += AthenaPoolCnvSvc() - svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - # revert later from OutputStreamAthenaPool.OutputStreamAthenaPool import createOutputStream # revert later self.stream = createOutputStream( streamName ) @@ -79,10 +75,6 @@ class TrigConditionStream ( object) : svcMgr += PoolSvc() svcMgr.PoolSvc.WriteCatalog = catalog - from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc - svcMgr += AthenaPoolCnvSvc() - svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - from OutputStreamAthenaPool.OutputStreamAthenaPool import AthenaPoolOutputConditionStream self.stream = AthenaPoolOutputConditionStream( streamName ) diff --git a/Trigger/TrigAnalysis/TrigDecisionMaker/share/trigDec_pureSteeringL2_WritePOOL.py b/Trigger/TrigAnalysis/TrigDecisionMaker/share/trigDec_pureSteeringL2_WritePOOL.py index fcc650b7880ebc9492e9b4f5c7519340126a1ac0..664c23efbd9f993a4f2741cc9a2497c14380153c 100644 --- a/Trigger/TrigAnalysis/TrigDecisionMaker/share/trigDec_pureSteeringL2_WritePOOL.py +++ b/Trigger/TrigAnalysis/TrigDecisionMaker/share/trigDec_pureSteeringL2_WritePOOL.py @@ -60,10 +60,6 @@ from PoolSvc.PoolSvcConf import PoolSvc svcMgr += PoolSvc() svcMgr.PoolSvc.WriteCatalog = "xmlcatalog_file:Catalog1.xml" -from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc -svcMgr += AthenaPoolCnvSvc() -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream Stream1 = AthenaPoolOutputStream( "Stream1" ) diff --git a/Trigger/TrigSteer/TrigSteering/share/pureSteering_jobOptionsWithPoolOutput.py b/Trigger/TrigSteer/TrigSteering/share/pureSteering_jobOptionsWithPoolOutput.py index 80247cd16e01ac3e42a7295f9320d97719ed458d..19e74cda12e137fc198196d9fbdf8f2ca68c5dc9 100755 --- a/Trigger/TrigSteer/TrigSteering/share/pureSteering_jobOptionsWithPoolOutput.py +++ b/Trigger/TrigSteer/TrigSteering/share/pureSteering_jobOptionsWithPoolOutput.py @@ -111,11 +111,6 @@ import AthenaPoolCnvSvc.WriteAthenaPool from AthenaCommon.AppMgr import ServiceMgr as svcMgr svcMgr.PoolSvc.WriteCatalog = "xmlcatalog_file:Catalogue1.xml" -from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc -svcMgr += AthenaPoolCnvSvc() -#svcMgr.AthenaPoolCnvSvc.OutputLevel = DEBUG -svcMgr.AthenaPoolCnvSvc.CommitInterval = 10; - from OutputStreamAthenaPool.OutputStreamAthenaPool import createOutputStream stream = createOutputStream( "Stream1" )