7 #include "RelationalAccess/AccessMode.h"
8 #include "RelationalAccess/IDatabaseServiceDescription.h"
9 #include "RelationalAccess/IDatabaseServiceSet.h"
10 #include "RelationalAccess/ILookupService.h"
11 #include "RelationalAccess/IAuthenticationService.h"
12 #include "RelationalAccess/IAuthenticationCredentials.h"
13 #include "RelationalAccess/ITypeConverter.h"
14 #include "RelationalAccess/IRelationalDomain.h"
15 #include "RelationalAccess/ConnectionService.h"
16 #include "RelationalAccess/IConnectionService.h"
17 #include "RelationalAccess/IConnectionServiceConfiguration.h"
19 #include "RelationalAccess/ISessionProxy.h"
24 #include "CoralKernel/Context.h"
25 #include "CoralBase/Exception.h"
27 #include <boost/algorithm/string/case_conv.hpp>
37 SessionMgr::SessionMgr() :
59 catch ( coral::Exception&
e ) {
70 if(m_connectionString!=
"")
74 m_connectionString = m_dbname;
75 }
else if(m_dbtype ==
"dblookup") {
76 m_connectionString = m_dbserver;
78 m_connectionString = m_dbtype +
"://" + m_dbserver +
"/" + m_dbname;
86 if( m_sessionproxy )
return *m_sessionproxy;
88 coral::ConnectionService connSvc;
89 coral::IConnectionServiceConfiguration& csc = connSvc.configuration();
90 csc.setConnectionRetrialPeriod( m_retrialPeriod );
91 csc.setConnectionRetrialTimeOut( m_retrialTimeout );
92 csc.setConnectionTimeOut( m_connectionTimeout );
95 if(csc.replicaSortingAlgorithm() ==
nullptr) {
98 csc.setReplicaSortingAlgorithm(*m_replicaSorter);
101 buildConnectionString();
103 m_sessionproxy = connSvc.connect(m_connectionString, coral::AccessMode::ReadOnly);
104 TRG_MSG_INFO(
"Opening session " << m_connectionString <<
" with " << m_retrialPeriod <<
"/" << m_retrialTimeout <<
"/" << m_connectionTimeout);
106 return *m_sessionproxy;
112 m_dbtype = boost::to_lower_copy(
s);
113 m_connectionString =
"";
119 m_connectionString =
"";
125 m_connectionString =
"";
131 m_connectionString =
"";
137 m_connectionString =
"";