static SupportDatabaseService() { var configuration = ConfigurationManager.GetSection("esper-configuration") as Configuration; var dbTable = configuration.DatabaseReferences; DbConfigReferenceNative = dbTable["db1"]; DbConfigReferenceODBC = dbTable["db2"]; DbDriverFactoryNative = DbConfigReferenceNative .ConnectionFactoryDesc as DbDriverFactoryConnection; DbDriverFactoryODBC = DbConfigReferenceODBC .ConnectionFactoryDesc as DbDriverFactoryConnection; }
static SupportDatabaseService() { var configurationFile = new FileInfo(ESPER_LOCAL_CONFIG_FILE); var configuration = new Configuration(SupportContainer.Instance); configuration.Configure(configurationFile); var dbTable = configuration.DatabaseReferences; DbConfigReferenceNative = dbTable["db1"]; DbConfigReferenceODBC = dbTable["db2"]; DbDriverFactoryNative = DbConfigReferenceNative .ConnectionFactoryDesc as DbDriverFactoryConnection; DbDriverFactoryODBC = DbConfigReferenceODBC .ConnectionFactoryDesc as DbDriverFactoryConnection; }
/// <summary> /// Returns a connection factory for a configured database. /// </summary> /// <param name="databaseName">is the name of the database</param> /// <returns> /// is a connection factory to use to get connections to the database /// </returns> /// <throws> DatabaseConfigException is thrown to indicate database configuration errors </throws> public virtual DatabaseConnectionFactory GetConnectionFactory(String databaseName) { // check if we already have a reference DatabaseConnectionFactory factory; if (_connectionFactories.TryGetValue(databaseName, out factory)) { return(factory); } ConfigurationDBRef config; if (!_mapDatabaseRef.TryGetValue(databaseName, out config)) { throw new DatabaseConfigException("Cannot locate configuration information for database '" + databaseName + "'"); } ConnectionSettings settings = config.ConnectionSettings; if (config.ConnectionFactoryDesc is DbDriverFactoryConnection) { DbDriverFactoryConnection dbConfig = (DbDriverFactoryConnection)config.ConnectionFactoryDesc; factory = new DatabaseDriverConnFactory(dbConfig, settings); } else if (config.ConnectionFactoryDesc == null) { throw new DatabaseConfigException("No connection factory setting provided in configuration"); } else { throw new DatabaseConfigException("Unknown connection factory setting provided in configuration"); } _connectionFactories[databaseName] = factory; return(factory); }
/// <summary> /// Ctor. /// </summary> /// <param name="dbConfig">is the database provider configuration</param> /// <param name="connectionSettings">are connection-level settings</param> /// <throws> DatabaseConfigException thrown if the driver class cannot be loaded </throws> public DatabaseDriverConnFactory(DbDriverFactoryConnection dbConfig, ConnectionSettings connectionSettings) { this.dbDriver = dbConfig.Driver; this.connectionSettings = connectionSettings; }