문제

AdonetAppender를 사용하여 SQL Server 2005 데이터베이스 테이블에 작성하고 있습니다. 엔트리가 즉시 작성되도록 버퍼 크기를 1로 설정했습니다.

내 DBA는 Log4Net이 데이터베이스 연결을 열어두고 있다고 우려합니다. 오늘날 데이터베이스에 ~ 50 개의 연결이 있지만 22 개의 로그 항목 만 있습니다. 여러 경우 로그인 시간이 다른 동일한 클라이언트의 여러 연결이 있습니다.

연결 풀링이 작동하지 않거나 코드에서 공개하지 않는 리소스가 있다고 생각합니다. 이것을 어떻게 문제를 해결해야합니까?

도움이 되었습니까?

해결책

SQL Server Profiler 가이 모든 것을 보여줄 것입니다. 콘솔 앱을 만들고 몇 가지 문을 기록한 다음 연결이 열리고 닫히고 있는지 확인하십시오.

참고로, 버퍼 크기를 1로 설정하지 않는 것이 좋습니다. 크기가 상당한 크기의 앱 (nhibernate를 보자)의 경우 단일 작업에 대해 100 개 이상의 명령문을 쉽게 로그 로그인 할 수 있습니다 (로그 레벨에 따라 다름). 이는 요청 당 100 개의 개별 데이터베이스 연결과 동일하며 서버를 무릎으로 쉽게 가져올 수 있습니다.

5 또는 10의 버퍼 크기는 놀라운 일입니다. 물론 몇 가지 로그 메시지를 잃을 위험이 있지만 대부분의 경우 결국 플러시됩니다 (전력 손실 또는 하드웨어 고장을 저장).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top