¿Cómo solucionar el error del cliente nativo 'La conexión está ocupada con los resultados de otro comando'?

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

  •  09-06-2019
  •  | 
  •  

Pregunta

estoy recibiendo un Connection Busy With Results From Another Command Error de un controlador SQLServer Native Client cuando se ejecuta un paquete SSIS.Sólo cuando se habla con SQLServer 2000.Una parte diferente que habla de SQLServer 2005 parece funcionar siempre bien.¿Alguna idea?

¿Fue útil?

Solución

Artículo 822668 de la base de conocimientos de Microsoft es relevante aquí:

ARREGLAR:Aparece el mensaje de error "La conexión está ocupada con los resultados de otro comando" cuando ejecuta una consulta de servidor vinculado

Síntomas

En condiciones de estrés, puede recibir el siguiente mensaje de error cuando realiza la actividad del servidor vinculado:

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.

Nota La fuente OLE DB del error puede variar.Sin embargo, todas las variaciones del mensaje de error incluyen el texto "La conexión está ocupada con resultados para otro comando".

Resolución

Para resolver este problema, obtenga el último service pack para Microsoft SQL Server 2000.

Como se indicó allí, el problema se corrigió por primera vez en SQL Server 2000 Service Pack 4.

Esta publicación de blog por Mark Meyerovich, ingeniero de software sénior de RDA Corp, también proporciona información (ahora archivada, porque el enlace original desapareció):

Actualización del paquete de servicio de SQL Server

Una búsqueda rápida en Google muestra el siguiente artículo (http://support.microsoft.com/kb/822668):ARREGLAR:El mensaje de error "La conexión está ocupada con los resultados de otro comando" aparece cuando ejecuta una consulta de servidor vinculado.

Básicamente implica que el problema es un error y recomienda una actualización al Service Pack 4.Comenzamos con SQL Server 2000 SP3 y tenemos algunos servidores vinculados en la ecuación, así que lo intentamos.Después de la actualización a SP4, el mismo resultado.

Otros consejos

Como acabo de descubrir, esto también puede suceder en SQL 2005 si no tienes habilitado MARS.Ni siquiera sabía que estaba deshabilitado de forma predeterminada, pero lo está.Y asegúrese de estar utilizando el tipo de conexión "Native OLEDB SQL Native Client".Si estás usando la conexión de tipo "OLEDB.1" (o lo que sea...) MARS ni siquiera es una opción, y obtienes el comportamiento de SQL 2000, lo cual es desagradable.

Puede habilitar MARS abriendo las propiedades de conexión, haciendo clic en "Todos" y desplazándose hacia abajo en Management Studio.

Sé que tu pregunta ya ha sido respondida hace mucho tiempo, pero solo estoy lanzando esto para el próximo tonto como yo que se queme con esto.

Tuve este error hoy con el controlador MS ODBC 11 para SQL Server para Linux a la conexión de SQL Server.Quería ayudar al siguiente buscador considerando que este era el primer resultado de búsqueda de Google cuando hice la búsqueda.

Debe configurar MARS_Connection en /etc/odbc.ini de la siguiente manera:

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

Hablando del controlador MS ODBC Linux:Es un PITA completo para solucionarlo, pero insistí en usar una solución nativa.Experimenté demasiados obstáculos, especialmente trabajando con ZF2, sin embargo, puedo decir que cada problema tiene una solución con el controlador.Solo para alentar a las personas que lo usan a darse por vencidos rápidamente.

Si alguien encontró este molesto error mientras usaba PHP PDO con ODBC, entonces use closeCursor() método después de la ejecución de la consulta.

Sólo para información si alguien más tiene el problema.Intenté conectarme a través de NetCobol de Fujitsu en un SQLEXPRESS a través de ODBC con SQL incorporado y para resolver el problema tuve que cambiar un valor en el registro, a saber

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

con MyDSN como valor de cadena:

Name - MARS_Connection
Value - Yes

Acabo de poner la información aquí por si puede ayudar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top