2011-12-19 2 views
4

나는 직접 작성하지 않은 라이브러리에서 버그를 추적하고 있습니다. ASP.NET에서이 라이브러리를 사용할 때 동일한 연결 문자열로 두 번째 연결을 열면 SQLConnection이 닫히기 때문에 DB 연결 오류가 발생합니다.동일한 ConnectionString을 사용하여 두 개의 SQLConnections 열기

이 문서에 문서가 있습니까? 동일한 연결 문자열을 사용하여 새 SQLConnection을 열면 다른 SQLConnection 객체를 닫을 수 있습니까?

내 문제의 가장 큰 원인 인 것으로 보이는 디버깅에서 내 이론을 지원하기 위해 웹에서 아무 것도 찾을 수 없습니다.

+0

이 간단한 방법은 단어를 새로 검색하고 다시 작성하는 중입니다.이 연결은 속성 또는 정적 문자열로 열거 나 닫힌 코드 일 수 있습니다 .. 한 번만 새 항목을 만들거나 추가하십시오. Connection.State를 확인하는 코드입니다. 코드를 작성하는 곳의 코드와 닫히는 코드 또는 연결 상태가 닫힌 곳 – MethodMan

+1

잘 작동합니다. 이 문제는 요청간에 연결을 다시 사용하는 경향이 있습니다. – SLaks

+0

@DJ KRAZE : 두 번째 연결이 동일한 연결 문자열로 열려있는 부분을 이미 발견했습니다. 필자가 쓴 것처럼, 나는이 연결이 첫 번째 연결을 닫는 지 알고 싶다. – magnattic

답변

3

아니요, 동일한 연결 문자열 매개 변수를 사용하는 경우에도 SqlConnection.Open() 메서드를 호출하면 풀에서 사용하지 않는 연결을 다시 사용하거나 새 연결을 만드는 등의 두 가지 작업 중 하나를 수행합니다. 어느 경우 든 SQL Server에 대해 충돌하지 않는 SPID가 생깁니다.

0

즉, 동일한 연결 문자열로 새 연결을 열면 기존 연결이 닫히지 않습니다. 그러나 ... 새 연결에 대한 새 참조를 만들어 기존 개체를 다시 사용하면 연결이 끊어집니다.

+0

죄송합니다, 마지막 문장을 이해하지 못하겠습니까, 무슨 뜻인지 설명해 주시겠습니까? 새 오브젝트에 대한 새로운 참조를 작성하여 오브젝트를 재사용 할 수 있습니까? – magnattic

+0

예, 가지고있는 경우 : SqlConnection conn = 새 SqlConnection (someconnstring); conn = 새 SqlConnection (someconnstring); ... 그러면 원래 연결 개체가 새 개체로 덮어 쓰여집니다. –

+0

@Lynn Crumbling : 기존 개체를 재사용하지 않습니다. 또한 연결이 반드시 종료되는 것은 아닙니다. – jason

3

이 문서에 나와있는 문제는 있습니까?

번호

다른 SQLConnection 객체를 닫고 동일한 연결 문자열을 사용하여 새로운하여 SQLConnection을 열 수 있습니까? 당신이 설정을 수정하지 않는 한, SQL 서버는 32,767 개의 동시 연결을 허용하는

번호

참고. 그러나 그때조차도, 그것은 당신이 보는 행동을 설명하지 못합니다.