2009-12-24 2 views
2

SqlClient 연결 풀의 모든 유휴 연결을 닫으 려합니다. 이 일을위한 문서화 된 방법이 있습니까?SqlClient 공급자에 대한 풀의 모든 연결을 닫는 방법이 있습니까

이 응용 프로그램의 정상적인 처리 (테스트 하네스)의 일부로 데이터베이스를 삭제하고 각 테스트 scenerio 시작시이를 다시 작성해야합니다. 분명히 활성 연결 (클라이언트가 아닌 SQL Server의 관점에서 활성화)을 사용하여 데이터베이스를 삭제할 수 없습니다.

답변

1

일반적으로 아니요. 특정 데이터베이스 제공 업체가이를 수행하는 방법을 제공 할 수 있습니다. SqlClient는 SqlConnection.ClearPool 및 SqlConnection.ClearAllPools를 통해 비슷한 기능을 제공하지만 열려있는 연결을 닫지는 않습니다. 풀에 반환 된 연결을 지우는 것입니다.

+0

그건 정확히 내가 원했던 것입니다. 수영장에서 여전히 열리는 유휴 연결로 귀찮은 일이었습니다. 감사! –

0

실제 이유는 없습니다. 이 작업을 수행해야하는 경우 응용 프로그램의 다른 곳에서 누수가 발생했음을 나타내므로 연결을 제대로 처분하지 않는 위치를 찾아야합니다.

FWIW, 나는 모든 공급자에 대해 일관되게이를 수행 할 방법이 있다고 생각하지 않지만 위에서 언급 한 내용을 토대로 이 필요하지 않습니다.

+1

거의 모든 상황에서 연결 풀을 홀로 남겨 둘 수는 있지만 문제는 장기 실행 테스트의 일부로 수행 할 수 있어야한다는 단점이 있습니다. 데이터베이스를 삭제할 수 있어야합니다. 그것을 다시 만드십시오. 활성 연결로 할 수 없습니다. –

+0

@Ralph DB를 삭제하는 것에 대한 흥미로운 점은 질문에 추가해야합니다. –

관련 문제