MSSQLSERVER_7399

Se aplica a:SQL Server

Attribute Value
Producto SQL Server
Id. de evento 7399
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico RMT_HRESULT_FAIL
Texto del mensaje El proveedor OLE DB "%ls" del servidor vinculado "%ls" notificó un error.%ls

Explicación

Este error se produce cuando se produce un error en una consulta del servidor vinculado debido a un error generado en el servidor remoto.

El error 7399 es un mensaje de error genérico del proveedor. En algunos casos, puede habilitar la marca de seguimiento 7300 para obtener un mensaje de error más detallado del proveedor. Si recibe más información depende del proveedor OLE DB (Vinculación de objetos e inserción, base de datos) que use. Para habilitar la marca de seguimiento, ejecute el siguiente comando antes de ejecutar la consulta que produce el error:

DBCC TRACEON (7300, 3604);

Acción del usuario

Aunque el error 7399 es un error genérico que incluye un mensaje más específico dentro de él, un error específico observado habitualmente es "Tiempo de espera expirado". Hay dos opciones de tiempo de espera configurables que afectan a las consultas remotas: opción de tiempo de espera de inicio de sesión remoto y opción de tiempo de espera de consulta remota. Estos son ejemplos de cómo puede ver el error de tiempo de espera generado en 7399 y cómo solucionarlo:

IDBInitialize::Initialize

Servidor: msg 7399, nivel 16, estado 1, proveedor OLE DB de línea 1 "SQLOLEDB" notificó un error. [Mensaje devuelto por el proveedor OLE/DB: Tiempo de espera expirado] Seguimiento de errores de OLE DB [PROVEEDOR OLE/DB 'SQLOLEDB' IDBInitialize::Initialize devuelto 0x80004005: ].

Este mensaje de error pertenece al IDBInitialize::Initialize método . Se produce si el tiempo que tarda la consulta en establecer una conexión con el servidor remoto supera el valor de la opción de tiempo de espera de inicio de sesión remoto.

Para solucionar este error, establezca el valor de tiempo de espera de inicio de sesión remoto en 30 segundos ejecutando el código siguiente:

sp_configure 'remote login timeout', 30;
GO
RECONFIGURE WITH OVERRIDE;
GO

ICommandText::Execute

Servidor: msg 7399, nivel 16, estado 1, proveedor OLE DB de línea 1 "SQLOLEDB" notificó un error. Ejecución terminada por el proveedor al alcanzarse el límite de recursos. [Mensaje devuelto por el proveedor OLE/DB: Tiempo de espera expirado] Seguimiento de errores de OLE DB [PROVEEDOR OLE/DB 'SQLOLEDB' ICommandText::Execute devuelto 0x80040e31: Ejecución finalizada por el proveedor porque se alcanzó un límite de recursos.].

Este mensaje de error pertenece al ICommandText::Execute método . Indica que la consulta tardó más tiempo en procesarse que el tiempo especificado en la configuración de tiempo de espera de consulta remota.

El valor predeterminado del tiempo de espera de consulta remota es 600 (10 minutos).

Para solucionar este error, deshabilite el tiempo de espera estableciendo el valor de tiempo de espera de consulta remota en 0 (espera infinita) ejecutando el código siguiente:

sp_configure 'remote query timeout', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO