기본 클라이언트 오류 '다른 명령에 대한 결과로 인해 연결이 사용 중입니다'를 수정하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/39928

  •  09-06-2019
  •  | 
  •  

문제

나는 점점 Connection Busy With Results From Another Command SSIS 패키지가 실행 중일 때 SQLServer Native Client 드라이버에서 오류가 발생했습니다.SQLServer 2000과 통신할 때만 해당됩니다.SQLServer 2005와 통신하는 다른 부분은 항상 잘 실행되는 것 같습니다.이견있는 사람?

도움이 되었습니까?

해결책

Microsoft KB 문서 822668 여기에 관련이 있습니다:

고치다:연결된 서버 쿼리를 실행할 때 "다른 명령에 대한 결과로 연결 중입니다." 오류 메시지가 나타남

증상

스트레스 상황에서 연결된 서버 활동을 수행할 때 다음과 같은 오류 메시지가 나타날 수 있습니다.

Server: Msg 7399, Level 16, State 1, Procedure <storedProcedureName>, Line 18 OLE DB provider 'SQLOLEDB' reported an error. 
OLE/DB Provider 'SQLOLEDB' ::GetSchemaLock returned 0x80004005:

OLE DB provider SQLOLEDB supported the Schema Lock interface, but returned 0x80004005 for GetSchemaLock .]. 
OLE/DB provider returned message: Connection is busy with results for another command 
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ::CreateSession returned 0x80004005.

메모 오류의 OLE DB 소스는 다를 수 있습니다.그러나 오류 메시지의 모든 변형에는 "다른 명령에 대한 결과로 인해 연결이 사용 중입니다."라는 텍스트가 포함됩니다.

해결

이 문제를 해결하려면 Microsoft SQL Server 2000용 최신 서비스 팩을 구하십시오.

거기에 언급된 대로 이 문제는 SQL Server 2000 서비스 팩 4에서 처음 수정되었습니다.

이 블로그 게시물 RDA Corp의 수석 소프트웨어 엔지니어인 Mark Meyerovich는 다음과 같은 통찰력을 제공합니다(원본 링크가 중단되었기 때문에 현재 보관되어 있음).

SQL Server 서비스 팩 업그레이드

Google에서 빠르게 검색하면 다음 기사가 나타납니다(http://support.microsoft.com/kb/822668):고치다:연결된 서버 쿼리를 실행할 때 "다른 명령에 대한 결과로 연결 중입니다." 오류 메시지가 나타납니다.

이는 기본적으로 문제가 버그임을 의미하며 서비스 팩 4로 업그레이드할 것을 권장합니다.우리는 SQL Server 2000 SP3으로 시작했고 방정식에 연결된 서버가 몇 개 있으므로 시도해 보겠습니다.SP4로 업그레이드한 후에도 동일한 결과가 나타납니다.

다른 팁

방금 알아낸 것처럼 MARS를 활성화하지 않은 경우 SQL 2005에서도 이런 일이 발생할 수 있습니다.나는 그것이 기본적으로 비활성화되어 있다는 사실조차 몰랐지만 그렇습니다."기본 OLEDB SQL 기본 클라이언트"연결 유형을 사용하고 있는지 확인하십시오."OLEDB.1" 유형 연결(또는 무엇이든...)을 사용하는 경우 MARS는 옵션조차 아니며 불쾌한 SQL 2000 동작을 얻게 됩니다.

연결 속성을 열고 "모두"를 클릭한 다음 Management Studio에서 아래로 스크롤하여 MARS를 활성화할 수 있습니다.

나는 당신의 질문에 대한 답변이 오래전에 끝났다는 것을 알고 있지만, 나처럼 이것 때문에 화상을 입은 다음 멍청이를 위해 이것을 던지고 있습니다.

오늘 Linux에서 SQL Server로 연결하는 SQL Server용 MS ODBC Driver 11에서 이 오류가 발생했습니다.제가 검색했을 때 이것이 첫 번째 Google 검색 결과라는 점을 고려하여 다음 검색자에게 도움을 주고 싶었습니다.

/etc/odbc.ini에서 MARS_Connection을 다음과 같이 설정해야 합니다.

[ConnName]
Driver=ODBC Driver 11 for SQL Server
Server=192.168.2.218,1433
Database=DBNameHere
MARS_Connection=yes

MS ODBC Linux 드라이버에 대해 말하자면:이를 처리하는 것은 완전한 PITA이지만 기본 솔루션을 사용한다고 주장했습니다.특히 ZF2를 사용하면서 너무 많은 벽을 경험했습니다. 그러나 모든 문제에는 드라이버와 함께 해결책이 있다고 말할 수 있습니다.사람들이 그것을 사용하도록 장려하기 위해 대신 빨리 포기하십시오.

누군가가 ODBC와 함께 PHP PDO를 사용하는 동안 이 성가신 버그를 만난다면 다음을 사용하십시오. closeCursor() 쿼리 실행 후 메서드.

다른 사람에게 문제가 있는 경우 정보를 제공하기 위한 것입니다.임베디드 SQL이 포함된 ODBC를 통해 SQLEXPRESS에서 Fujitsu의 NetCobol을 통해 연결을 시도했고 문제를 해결하기 위해 레지스트리의 값을 변경해야 했습니다.

\HKLM\Software\ODBC\ODBC.INI\MyDSN

MyDSN을 문자열 값으로 사용:

Name - MARS_Connection
Value - Yes

도움이 된다면 여기에 정보를 올려 놓겠습니다.

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