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) {