.NET CORE MySql MaxPoolSize не применяется в

У нас есть база данных MySQl, размещенная в RDS. При создании подключения MySQL не применяется максимальный размер пула. У нас есть строка подключения, которая выглядит так

Server=myServer;Port=3306;Database=MyDatabase;User Id=MyUser;Password=MyPassword;ConnectionReset=True;pooling=true;minpoolsize=1;maxpoolsize=4;ConnectionLifeTime=30"

Мы добавляем сюда максимальный размер пула, но наше приложение по-прежнему принимает слишком много подключений. Я проверил это в MySqlWorkbench с помощью команды

select * FROM INFORMATION_SCHEMA.PROCESSLIST

Мы создаем sql-соединение обычным образом .. что я делаю не так?

var connection = new MySql.Data.MySqlClient.MySqlConnection(_connectionString);
connection.Open()

current_connections

Техническая информация: MySql Server Версия: 5.7.16

MySqlConnector: (пакет Nuget) -> MySql.Data Version = "7.0.6-ir31"

ОБНОВИТЬ:

При выполнении этого в модульном тесте и параллельном открытии соединений MySQL все идет нормально. Однако, когда веб-запросы поступают через ASP.NET Core, возникает проблема.


person Rob Van Pamel    schedule 06.12.2017    source источник
comment
Вы смогли найти решение? У нас такая же проблема   -  person managerger    schedule 04.03.2019


Ответы (1)


Я столкнулся с похожей ситуацией. Похоже, что минимальный и максимальный размер пула не работает при использовании экземпляров ec2 с балансировкой нагрузки, на которых запущено ядро ​​.net. В моем случае это поражает aurora mysql.

Проблема, похоже, связана с наличием разных строк подключения с разными минимальными и максимальными настройками на разных экземплярах ec2. Вроде путают мин и макс пула.

Решение (или, возможно, исправление) заключается в том, чтобы убедиться, что минимальные и максимальные настройки пула одинаковы для всех экземпляров ec2. которые попадают в кластер db.

person Anton    schedule 07.09.2018