private static void TryAndCloseConnection(ConnectionFactoryDesc connectionFactoryDesc) { var config = new ConfigurationDBRef { ConnectionFactoryDesc = connectionFactoryDesc }; var connectionFactory = new DatabaseDriverConnFactory( (DbDriverFactoryConnection)config.ConnectionFactoryDesc, config.ConnectionSettings); var connection = connectionFactory.Driver.CreateConnection(); TryAndCloseConnection(connection); }
/// <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); }