public static ObjectPool<Connection> GetConnectionPool(ConnectionSetting connectionSetting)
        {
            if (connectionSetting == null)
                throw new ArgumentNullException("connectionSetting");

            var key = connectionSetting.ConnectionString;

            ObjectPool<Connection> connectionPool = null;

            lock ((ConnectionPools as ICollection).SyncRoot)
            {
                if (ConnectionPools.ContainsKey(key))
                    connectionPool = ConnectionPools[key];

                if (connectionPool == null)
                {
                    connectionPool = new ObjectPool<Connection>(
                        new ConnectionFactory(connectionSetting),
                        new ObjectPool<Connection>.Configuration {
                            MinSize = connectionSetting.MinPoolSize,
                            MaxSize = connectionSetting.MaxPoolSize,
                            Timeout = connectionSetting.ConnectionTimeout });
                    ConnectionPools[key] = connectionPool;
                }
            }

            return connectionPool as ObjectPool<Connection>;
        }
Example #2
0
 public Mongo(ConnectionSetting connectionSetting)
 {
     this.connectionSetting
         = connectionSetting
             ?? new ConnectionSetting();
 }