如何修复本机客户端错误'连接正忙于另一个命令的结果'?

时间:2008-09-02 16:18:37

标签: sql-server ssis connection

当SSIS包运行时,我从SQLServer Native Client驱动程序中收到 Connection Busy With Results From Another Command 错误。只有在与SQLServer 2000交谈时。与SQLServer 2005对话的另一个部分似乎总是正常运行。有什么想法吗?

5 个答案:

答案 0 :(得分:12)

正如我刚刚发现的,如果您没有启用MARS,这也可能发生在SQL 2005上。我甚至都不知道它默认是禁用的,但确实如此。并确保您使用的是 “NATIVE OLEDB \ SQL Native Client”连接类型。如果您正在使用“OLEDB.1”类型连接(或其他......)MARS甚至不是一个选项,并且您获得了SQL 2000行为,这是令人讨厌的。

您可以通过打开连接属性,然后单击“全部”并在Management Studio中进行搜索来启用MARS。

我知道你的问题早已得到解答,但我只是把它扔进了像我一样被我烧伤的下一个傻瓜。

答案 1 :(得分:5)

今天出现此错误,MS ODBC驱动程序11用于SQL Server for Linux to SQL Server连接。想要帮助下一个搜索者,考虑到这是我搜索时的第一个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 Driver:它是一个完整的PITA来处理它,但我坚持使用本机解决方案。我经历了太多的墙壁,特别是使用ZF2,但是,每个问题都有我能说的驱动程序的解决方案。只是鼓励人们使用它而不是快速放弃。

答案 2 :(得分:2)

如果有人在使用PHP PDO和ODBC时遇到这个烦人的错误,那么在查询执行后使用closeCursor()方法。

答案 3 :(得分:1)

Microsoft KB article 822668与此相关:

  

FIX:“连接正忙于另一个命令的结果”运行链接服务器查询时出现错误消息

     

症状

     

在压力条件下,执行链接服务器活动时可能会收到以下错误消息:

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 Service Pack。

如前所述,SQL Server 2000 Service Pack 4中首先纠正了该问题。

RDA Corp的高级软件工程师Mark Meyerovich的

This blog post也提供了一些见解(现已存档,因为原始链接已经死亡):

  

SQL Server Service Pack升级

     

在Google上进行快速搜索会显示以下文章(http://support.microsoft.com/kb/822668):   FIX:“连接忙于另一个命令的结果”运行链接服务器查询时出现错误消息。

     

它基本上意味着问题是一个错误,并建议升级到Service Pack 4.我们已经开始使用SQL Server 2000 SP3,并且我们在等式中确实有一些链接服务器,所以我们试一试。升级到SP4后 - 结果相同。

答案 4 :(得分:0)

如果其他人有问题,请提供相关信息。我尝试通过ODBC与嵌入式sql在SQLEXPRESS上通过富士通的NetCobol连接并解决我必须在注册表中更改值的问题

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

将MyDSN作为字符串值:

Name - MARS_Connection
Value - Yes

我只是把信息放在这里,如果有帮助的话。