Справочная информация. Я перемещаю свое приложение из npgsql v1 в npgsql v2.0.9. Через несколько минут после запуска моего приложения я получаю сообщение System.Exception: Timeout, получая соединение из пула.
Веб-сайт утверждает, что это происходит из-за утечки соединений (открытие соединения db, но не закрытие их должным образом).
Итак,
Я пытаюсь диагностировать утечку соединений postgres в npgsql.
Из различных веб-литературы; одним из способов диагностики утечек соединений является настройка ведения журнала на npgsql и поиск предупреждающего сообщения о утечке в журнале. Проблема в том, что я не вижу это сообщение в журналах где-нибудь.
Я также нашел утилиту, которая контролирует соединения npgsql, но она нестабильна и сбой.
Итак, я оставил ручную проверку кода. Для каждого приложения, создающего соединение npgsql, есть блок, в котором он находится. Для каждого, кто открывает datareader, используется CommandBehavior.CloseConnection(и размещается datareader).
Любые другие места для проверки или кто-то может рекомендовать способ поиска утечек пула соединений?