예제 #1
0
        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;
        }
예제 #2
0
        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;
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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;
        }