26 coral::ITable&
table = m_session.nominalSchema().tableHandle(
"SUPER_MASTER_TABLE");
28 query->setRowCacheSize( 5 );
32 bindList.extend<
int>(
"smtid");
33 bindList[0].data<
int>() = SuperMasterKey;
34 query->setCondition(
"SMT_ID = :smtid" , bindList );
38 attList.extend<
int>(
"SMT_L1_MASTER_TABLE_ID" );
39 attList.extend<std::string>(
"SMT_NAME" );
40 query->defineOutput(attList);
41 query->addToOutputList(
"SMT_L1_MASTER_TABLE_ID" );
42 query->addToOutputList(
"SMT_NAME" );
47 msg() <<
"MasterTableLoader >> No such SuperMaster key exists " << SuperMasterKey << std::endl;
50 throw std::runtime_error(
"MasterTableLoader >> SuperMasterKey not available" );
54 Lvl1MasterKey =
row[
"SMT_L1_MASTER_TABLE_ID"].data<
int>();
55 menuName =
row[
"SMT_NAME"].data<std::string>();
60 catch(
const coral::SchemaException&
e ) {
61 msg() <<
"BunchGroupLoader >> SchemaException: " <<
e.what() << std::endl;
62 m_session.transaction().rollback();
65 msg() <<
"BunchGroupLoader >> Standard C++ exception: " <<
e.what() << std::endl;
66 m_session.transaction().rollback();
69 msg() <<
"BunchGroupLoader >> Unknown C++ exception" << std::endl;
70 m_session.transaction().rollback();
81 if(SuperMasterKey==0) {
82 msg() <<
"MasterTableLoader: Error loading ThresholdConfig" << std::endl;
83 msg() <<
">>no super- or lvl1- master key is specified" << std::endl;
87 std::string menuName{
""};
88 loadMasterKeys(SuperMasterKey, Lvl1MasterKey, menuName);
95 return thrLoader.
load(thrcfg);
96 }
catch (std::bad_cast& ex) {
97 msg() <<
"Caught exception in MasterTableLoader : "
98 << ex.what() << std::endl;
108 if(SuperMasterKey==0) {
109 msg() <<
"MasterTableLoader: Error loading CTPConfig" << std::endl;
110 msg() <<
">>no super- or lvl1- master key is specified" << std::endl;
113 int Lvl1MasterKey(0);
115 msg() <<
"Load L1 master key" << std::endl;
116 std::string menuName{
""};
117 loadMasterKeys(SuperMasterKey, Lvl1MasterKey, menuName);
119 msg() <<
"Loaded L1 master key" << Lvl1MasterKey << std::endl;
129 return ctpLoader.
load(ctpc);
131 msg() <<
"MasterTableLoader >> Failed to load CTPConfig: "
132 <<
e.what() << std::endl;
135 }
catch (std::bad_cast& ex) {
136 msg() <<
"Caught exception in MasterTableLoader : "
137 << ex.what() << std::endl;
145 if ( !
m.lvl1MasterTableId() ) {
146 int SuperMasterKey =
m.superMasterTableId();
147 if(SuperMasterKey==0) {
148 msg() <<
"MasterTableLoader: Error loading Muctpi since no L1MasterKey nor a SMK is specified" << std::endl;
151 int Lvl1MasterKey(0);
152 std::string menuName{
""};
153 loadMasterKeys(SuperMasterKey, Lvl1MasterKey, menuName);
154 m.setLvl1MasterTableId(Lvl1MasterKey);
159 return muctpiLoader.
load(
m);
160 }
catch (std::bad_cast& ex) {
161 msg() <<
"Caught exception in MasterTableLoader : "
162 << ex.what() << std::endl;
171 return l1topoLoader.
load(l1topo);
173 msg() <<
"Caught exception in MasterTableLoader : "
174 << ex.what() << std::endl;
183 msg() <<
"MasterTableLoader loading mt_id for next run " << std::endl;
187 if ( ! m_session.transaction().isActive() )
188 m_session.transaction().start(
true);
191 coral::ITable& table0 = m_session.nominalSchema().tableHandle(
"TRIGGER_NEXT_RUN");
192 coral::IQuery* query0 = table0.newQuery();
193 query0->setRowCacheSize( 5 );
195 std::string whereclause0=
"TNR_ID = 1";
197 query0->setCondition( whereclause0, emptyBindVariableList0 );
199 query0->addToOutputList(
"TNR_SUPER_MASTER_TABLE_ID" );
201 coral::ICursor& cursor0 = query0->execute();
203 if ( ! cursor0.next() ) {
204 msg() <<
"MasterTableLoader >> No Entry in NEXT_RUN Table " << std::endl;
207 throw std::runtime_error(
"MasterTableLoader >> no entry in NEXT_RUN table" );
211 int supermastertableid = 0;
212 supermastertableid = row0[
"TNR_SUPER_MASTER_TABLE_ID"].data<
int>();
214 if ( cursor0.next() ) {
215 msg() <<
"MasterTableLoader >> More than one entry in NEXT_RUNtable" << std::endl;
218 throw std::runtime_error(
"MasterTableLoader >> More than one entry in NEXT_RUNtable" );
223 msg() <<
"MasterTableLoader>> getting data for super_mt_id = " << supermastertableid << std::endl;
225 coral::ITable&
table = m_session.nominalSchema().tableHandle(
"SUPER_MASTER_TABLE");
227 unique_ptr< coral::IQuery >
query(
table.newQuery() );
228 query->setRowCacheSize( 5 );
231 std::string
os=
"SMT_ID = ";
232 std::ostringstream lStringOS;
233 lStringOS << supermastertableid;
234 os += lStringOS.str();
236 query->setCondition(
os , emptyBindVariableList );
238 query->addToOutputList(
"SMT_L1_MASTER_TABLE_ID" );
243 msg() <<
"MasterTableLoader >> No such Super_Master_table exists " << supermastertableid << std::endl;
246 throw std::runtime_error(
"MasterTableLoader >> No such Super_Master_table exists " );
251 mt_id =
row[
"SMT_L1_MASTER_TABLE_ID"].data<
int>();
254 msg() <<
"MasterTableLoader >> More than one Super_Master_table exists "
255 << supermastertableid << std::endl;
256 throw std::runtime_error(
"MasterTableLoader >> More than one Super_Master_table exists " );
261 catch(
const coral::SchemaException&
e )
263 msg() <<
"CTPConfigLoader >> SchemaException: "
264 <<
e.what() << std::endl;
265 m_session.transaction().rollback();
270 msg() <<
"CTPConfigLoader >> Standard C++ exception: " <<
e.what() << std::endl;
271 m_session.transaction().rollback();
276 msg() <<
"CTPConfigLoader >> unknown C++ exception" << std::endl;
277 m_session.transaction().rollback();