Как решить ошибку пула соединений к PostgreSql?

сть PostgreSql на AWS. Коннекшн к ней делается через DbConnecrionFactory, что-то типа такого:

using (IDbConnection dbConnection = _dbConnectionFactory.NewNpgSqlConnection())
{
   // Something
}

Проблема в том, что при быстрых запросах вылетакт ошибка:

Npgsql.PostgresException (0x80004005): 53300: remaining connection slots are reserved for non-replication superuser connections

Когда возникает ошибка? При быстрой перезагрузке сайта, при быстрых и частых (один за другим) переходах между страницами и подобных действиях

Может ли это быть связано с тем, что подключение к БД делает внутри using, а не, допустим, через какой-то GenericRepository внутри DI (Scoped)? Но при переходе между страницами делается только один запрос к БД, по этому количество запросов не должно меняться

Я думаю, что проблема может быть в одном из вариантов:

  • В using'ах, которые используются для подключения к БД. Тут я больше склоняюсь к тому, что подключение к БД должно быть одно на весь http запрос, а не открываться отдельно для каждой операции
  • В tria версии aws, на котором лежит БД. Там может быть ограничение по подключениям. Из-за того, что поступает много асинхронных запросов, забиваются все доступные подключения

Я запутался немного, поправьте, если ошибаюсь. Как мне решить эту проблему?


Ответы (0 шт):