Я получаю сообщение об ошибке Connection Busy With Results From Another Command от драйвера собственного клиента SQLServer, когда запущен пакет SSIS. Только при разговоре с SQLServer 2000. Другая часть, которая общается с SQLServer 2005, кажется, всегда работает нормально. есть идеи?





Статья базы знаний Майкрософт 822668 актуален здесь:
FIX: "Connection is busy with results for another command" error message occurs when you run a linked server query
Symptoms
Under stress conditions, you may receive the following error message when you perform linked server activity:
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.Note The OLE DB source of the error may vary. However, all variations of the error message include the text "Connection is busy with results for another command".
Resolution
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000.
Как там отмечено, проблема была впервые исправлена в SQL Server 2000 с пакетом обновления 4 (SP4).
Это сообщение в блоге Марка Мейеровича, старшего инженера-программиста в RDA Corp., также дает некоторое представление (теперь заархивировано, потому что исходная ссылка не работает):
SQL Server service pack upgrade
A quick search on Google turns up the following article (http://support.microsoft.com/kb/822668): FIX: "Connection is busy with results for another command" error message occurs when you run a linked server query.
It basically implies the issue is a bug and recommends an upgrade to Service Pack 4. We have started out with SQL Server 2000 SP3 and we do have some linked servers in the equation, so we give it a try. After the upgrade to SP4 – same result.
Как я только что узнал, это может произойти и в SQL 2005, если у вас не включен режим MARS. Я даже не знал, что он отключен по умолчанию, но это так. И убедитесь, что вы используете Тип подключения «NATIVE OLEDB \ SQL Native Client». Если вы используете соединение типа «OLEDB.1» (или что-то еще ...), MARS даже не вариант, и вы получаете поведение SQL 2000, что неприятно.
Вы можете включить режим MARS, открыв свойства подключения, щелкнув «Все» и прокрутив страницу вниз в Management Studio.
Я знаю, что на ваш вопрос уже давно ответили, но я просто бросаю это следующему лоху вроде меня, которого это обожжет.
Если кто-то встретил эту досадную ошибку при использовании PHP PDO с ODBC, используйте метод closeCursor() после выполнения запроса.
Была эта ошибка сегодня с драйвером MS ODBC 11 для SQL Server для Linux для подключения к SQL Server. Хотел помочь следующему поисковику, учитывая, что это был первый результат поиска Google, когда я выполнял поиск.
Вам необходимо установить MARS_Connection в /etc/odbc.ini следующим образом:
[ConnName]
Driver=ODBC Driver 11 for SQL Server
Server=192.168.2.218,1433
Database=DBNameHere
MARS_Connection=yes
Говоря о драйвере MS ODBC Linux: это полная PITA, чтобы справиться с этим, но я настаивал на использовании собственного решения. Я испытал слишком много стен, особенно работая с ZF2, однако я могу сказать, что у каждой проблемы есть решение с драйвером. Просто чтобы побудить людей использовать его вместо того, чтобы быстро сдаться.
Просто для информации, если у кого-то есть проблема. Я попытался подключиться через NetCobol of Fujitsu на SQLEXPRESS через ODBC со встроенным sql, и для решения проблемы мне пришлось изменить значение в реестре, а именно
\HKLM\Software\ODBC\ODBC.INI\MyDSN
со строковым значением MyDSN:
Name - MARS_Connection
Value - Yes
Я просто поместил сюда информацию, если это может помочь.
Большое спасибо. У меня была эта проблема в Prolog, используя драйвер ODBC, и я не мог решить проблему, пока не прочитал ваш комментарий. Спасибо тебе друг.