배경 : 응용 프로그램을 npgsql v1에서 npgsql v2.0.9로 이동하고 있습니다. 내 응용 프로그램을 실행하는 몇 분 후, 나는 System.Exception : 풀에서 연결을 가져 오는 동안 시간 초과.npgsql Postgres DB 연결 누수 : 연결을 모니터하는 방법은 무엇입니까?
웹은 연결이 누출 되었기 때문에 발생한다고 주장합니다 (db 연결을 열지 만 제대로 닫지는 않음).
그래서나는 npgsql에 포스트 그레스 연결을 누출 진단하는 데 노력하고있어.
주위의 다양한 웹 문헌에서. 누설 연결을 진단하는 한 가지 방법은 npgsql에 로깅을 설정하고 로그에 누설 연결 경고 메시지가 있는지 확인하는 것입니다. 문제는, 어디서나이 메시지가 로그에 표시되지 않는다는 것입니다.
또한 npgsql 연결을 모니터하는 유틸리티가 있지만 불안정하고 충돌이 발생합니다.
그래서 수동으로 코드를 검사합니다. npgsql 연결을 생성하는 모든 곳에는 finally 블록이 있습니다. datareader를 여는 모든 곳에서 CommandBehavior.CloseConnection이 사용됩니다 (그리고 datareader가 삭제됩니다).
다른 장소를 확인하거나 누군가가 누출 된 수영장 연결을 찾는 방법을 권장 할 수 있습니까?
나는 똑같은 문제를 겪고 있습니다. 하지만 DbConnection.BeginTransaction 및 DbTransaction.Commit/Rollback을 사용하면 연결이 누출됩니다. 나는 모든 연결을 적절히 닫고 폐기하지만 도움을주지 않도록하고있다. 나는 그것이 Npgsql 자체와 우리 코드가 아닌 문제라고 생각한다. 해결책을 찾았 으면 알려주세요. 감사. – Fung