1 시간마다 실행되는 Windows 서비스에 로그인하고 싶습니다. 내 Windows 서비스 내에 Parallel.ForEach
을 사용하고 있습니다. AdoNetAppender를 사용하여 SQL Server 데이터베이스에 로그인합니다.Windows 서비스의 Log4net 및 작업 병렬 라이브러리
ILog _log = LogManager.GetLogger(typeof(EmailJob));
위의 줄은 정적 인스턴스를 사용하여 데이터베이스에 로그인하는 것입니다. 그렇습니까? AdoNetAppender에서 어떻게 연결이 유지됩니까? 내 Windows 서비스가 첫 번째 반복을 완료하고 AdoNetAppender 연결 상태가 어떻게됩니까? 한 번에 가깝거나 가비지 컬렉터가 처리하기를 기다리고 있습니까? 다음 반복이 시작되면 새 연결이 열리게됩니까?
가비지 수집기가 개체를 처리하는 데 오랜 시간이 걸리면 Windows 서비스가 항상 실행되므로 열려있는 연결 수는 SQL Server의 최대 연결 제한을 초과합니다. 반복이 끝나면 연결을 닫고 반복이 시작되면 연결을 열어야합니다. 무엇을해야합니까?
여기에 게시하기위한 좋은 팁은 긴급 할 수도 있지만 다른 누구에게도 급한 것이 아니라는 것입니다. [이 커뮤니티 토론] (http://meta.stackoverflow.com/q/326569/472495)을 읽어보십시오. – halfer