From decde799ae999fb4ac217593b24c5b1aa19b928d Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Thu, 31 Jan 2019 16:09:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B1=E4=BA=8EFreeSql=E9=87=87=E7=94=A8?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E5=B0=81=E8=A3=85=E8=BF=9E=E6=8E=A5=E6=B1=A0?= =?UTF-8?q?=EF=BC=8C=E5=B0=BD=E9=87=8F=E9=81=BF=E5=85=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E7=9C=9F=E5=AE=9E=E7=9A=84max=20poo?= =?UTF-8?q?l=20size=E5=80=BC=E7=AD=89=E4=BA=8E=E4=BC=A0=E5=85=A5=E5=80=BC+?= =?UTF-8?q?1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql/MySql/MySqlAdo/MySqlConnectionPool.cs | 10 +++++++--- FreeSql/Oracle/OracleAdo/OracleConnectionPool.cs | 10 +++++++--- .../PostgreSQLAdo/PostgreSQLConnectionPool.cs | 10 +++++++--- .../SqlServer/SqlServerAdo/SqlServerConnectionPool.cs | 10 +++++++--- FreeSql/Sqlite/SqliteAdo/SqliteConnectionPool.cs | 10 +++++++--- 5 files changed, 35 insertions(+), 15 deletions(-) diff --git a/FreeSql/MySql/MySqlAdo/MySqlConnectionPool.cs b/FreeSql/MySql/MySqlAdo/MySqlConnectionPool.cs index cc7f80cc..50196cfd 100644 --- a/FreeSql/MySql/MySqlAdo/MySqlConnectionPool.cs +++ b/FreeSql/MySql/MySqlAdo/MySqlConnectionPool.cs @@ -47,10 +47,14 @@ namespace FreeSql.MySql { public string ConnectionString { get => _connectionString; set { - _connectionString = value ?? ""; - Match m = Regex.Match(_connectionString, @"Max\s*pool\s*size\s*=\s*(\d+)", RegexOptions.IgnoreCase); + var connStr = value ?? ""; + var poolsizePatern = @"Max\s*pool\s*size\s*=\s*(\d+)"; + Match m = Regex.Match(connStr, poolsizePatern, RegexOptions.IgnoreCase); if (m.Success == false || int.TryParse(m.Groups[1].Value, out var poolsize) == false || poolsize <= 0) poolsize = 100; - PoolSize = poolsize; + PoolSize = poolsize + 1; + _connectionString = m.Success ? + Regex.Replace(connStr, poolsizePatern, $"Max pool size={PoolSize}", RegexOptions.IgnoreCase) : + $"{connStr};Max pool size={PoolSize}"; var initConns = new Object[poolsize]; for (var a = 0; a < poolsize; a++) try { initConns[a] = _pool.Get(); } catch { } diff --git a/FreeSql/Oracle/OracleAdo/OracleConnectionPool.cs b/FreeSql/Oracle/OracleAdo/OracleConnectionPool.cs index 2300a35b..cc0321d5 100644 --- a/FreeSql/Oracle/OracleAdo/OracleConnectionPool.cs +++ b/FreeSql/Oracle/OracleAdo/OracleConnectionPool.cs @@ -62,10 +62,14 @@ namespace FreeSql.Oracle { public string ConnectionString { get => _connectionString; set { - _connectionString = value ?? ""; - Match m = Regex.Match(_connectionString, @"Max\s*pool\s*size\s*=\s*(\d+)", RegexOptions.IgnoreCase); + var connStr = value ?? ""; + var poolsizePatern = @"Max\s*pool\s*size\s*=\s*(\d+)"; + Match m = Regex.Match(connStr, poolsizePatern, RegexOptions.IgnoreCase); if (m.Success == false || int.TryParse(m.Groups[1].Value, out var poolsize) == false || poolsize <= 0) poolsize = 100; - PoolSize = poolsize; + PoolSize = poolsize + 1; + _connectionString = m.Success ? + Regex.Replace(connStr, poolsizePatern, $"Max pool size={PoolSize}", RegexOptions.IgnoreCase) : + $"{connStr};Max pool size={PoolSize}"; var initConns = new Object[poolsize]; for (var a = 0; a < poolsize; a++) try { initConns[a] = _pool.Get(); } catch { } diff --git a/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs b/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs index badeaa43..afa5cbfb 100644 --- a/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs +++ b/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs @@ -57,10 +57,14 @@ namespace FreeSql.PostgreSQL { public string ConnectionString { get => _connectionString; set { - _connectionString = value ?? ""; - Match m = Regex.Match(_connectionString, @"Maximum\s*pool\s*size\s*=\s*(\d+)", RegexOptions.IgnoreCase); + var connStr = value ?? ""; + var poolsizePatern = @"Maximum\s*pool\s*size\s*=\s*(\d+)"; + Match m = Regex.Match(connStr, poolsizePatern, RegexOptions.IgnoreCase); if (m.Success == false || int.TryParse(m.Groups[1].Value, out var poolsize) == false || poolsize <= 0) poolsize = 100; - PoolSize = poolsize; + PoolSize = poolsize + 1; + _connectionString = m.Success ? + Regex.Replace(connStr, poolsizePatern, $"Maximum pool size={PoolSize}", RegexOptions.IgnoreCase) : + $"{connStr};Maximum pool size={PoolSize}"; var initConns = new Object[poolsize]; for (var a = 0; a < poolsize; a++) try { initConns[a] = _pool.Get(); } catch { } diff --git a/FreeSql/SqlServer/SqlServerAdo/SqlServerConnectionPool.cs b/FreeSql/SqlServer/SqlServerAdo/SqlServerConnectionPool.cs index e3d0280c..cdd74202 100644 --- a/FreeSql/SqlServer/SqlServerAdo/SqlServerConnectionPool.cs +++ b/FreeSql/SqlServer/SqlServerAdo/SqlServerConnectionPool.cs @@ -51,10 +51,14 @@ namespace FreeSql.SqlServer { public string ConnectionString { get => _connectionString; set { - _connectionString = value ?? ""; - Match m = Regex.Match(_connectionString, @"Max\s*pool\s*size\s*=\s*(\d+)", RegexOptions.IgnoreCase); + var connStr = value ?? ""; + var poolsizePatern = @"Max\s*pool\s*size\s*=\s*(\d+)"; + Match m = Regex.Match(connStr, poolsizePatern, RegexOptions.IgnoreCase); if (m.Success == false || int.TryParse(m.Groups[1].Value, out var poolsize) == false || poolsize <= 0) poolsize = 100; - PoolSize = poolsize; + PoolSize = poolsize + 1; + _connectionString = m.Success ? + Regex.Replace(connStr, poolsizePatern, $"Max pool size={PoolSize}", RegexOptions.IgnoreCase) : + $"{connStr};Max pool size={PoolSize}"; var initConns = new Object[poolsize]; for (var a = 0; a < poolsize; a++) try { initConns[a] = _pool.Get(); } catch { } diff --git a/FreeSql/Sqlite/SqliteAdo/SqliteConnectionPool.cs b/FreeSql/Sqlite/SqliteAdo/SqliteConnectionPool.cs index 4618328d..55f82a93 100644 --- a/FreeSql/Sqlite/SqliteAdo/SqliteConnectionPool.cs +++ b/FreeSql/Sqlite/SqliteAdo/SqliteConnectionPool.cs @@ -53,10 +53,14 @@ namespace FreeSql.Sqlite { public string ConnectionString { get => _connectionString; set { - _connectionString = value ?? ""; - var m = Regex.Match(_connectionString, @"Max\s*pool\s*size\s*=\s*(\d+)", RegexOptions.IgnoreCase); + var connStr = value ?? ""; + var poolsizePatern = @"Max\s*pool\s*size\s*=\s*(\d+)"; + Match m = Regex.Match(connStr, poolsizePatern, RegexOptions.IgnoreCase); if (m.Success == false || int.TryParse(m.Groups[1].Value, out var poolsize) == false || poolsize <= 0) poolsize = 100; - PoolSize = poolsize; + PoolSize = poolsize + 1; + _connectionString = m.Success ? + Regex.Replace(connStr, poolsizePatern, $"Max pool size={PoolSize}", RegexOptions.IgnoreCase) : + $"{connStr};Max pool size={PoolSize}"; var att = Regex.Split(_connectionString, @"Attachs\s*=\s*", RegexOptions.IgnoreCase); if (att.Length == 2) {