MSSQLSERVER_7399

Применимо к:SQL Server

Атрибут Значение
Продукт SQL Server
ИД события 7399
Источник событий MSSQLSERVER
Компонент SQLEngine
Символическое имя RMT_HRESULT_FAIL
Текст сообщения Поставщик OLE DB "%ls" для связанного сервера "%ls" сообщил об ошибке.%ls

Описание

Эта ошибка возникает при сбое запроса связанного сервера из-за ошибки, созданной на удаленном сервере.

Ошибка 7399 — это универсальное сообщение об ошибке от поставщика. В некоторых случаях можно включить флаг трассировки 7300, чтобы получить более подробное сообщение об ошибке от поставщика. Получение дополнительных сведений зависит от используемого поставщика OLE DB (связывание объектов и внедрение, база данных). Чтобы включить флаг трассировки, выполните следующую команду перед выполнением запроса, вызвавшего ошибку:

DBCC TRACEON (7300, 3604);

Действие пользователя

Несмотря на то что ошибка 7399 является универсальной ошибкой, которая включает в себя более конкретное сообщение, обычно наблюдается определенная ошибка "Истекло время ожидания". Существует два настраиваемых параметра времени ожидания, влияющие на удаленные запросы: параметр времени ожидания удаленного входа и параметр времени ожидания удаленного запроса. Ниже приведены примеры того, как может появиться ошибка времени ожидания, возникаемая в течение 7399 г. и как устранить ее:

IDBInitialize::Initialize

Сервер: Msg 7399, Level 16, State 1, Line 1 OLE DB provider 'SQLOLEDB' сообщил об ошибке. [Поставщик OLE/DB вернул сообщение: истекло время ожидания] Трассировка ошибок OLE DB [поставщик OLE/DB "SQLOLEDB" IDBInitialize::Initialize возвращено 0x80004005: ].

Это сообщение об ошибке относится к методу IDBInitialize::Initialize . Это происходит, если время, затраченное запросом на установку подключения к удаленному серверу, превышает значение параметра времени ожидания удаленного входа.

Чтобы обойти эту ошибку, задайте для удаленного значения времени ожидания входа значение 30 секунд, выполнив следующий код:

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

ICommandText::Execute

Сервер: Msg 7399, Level 16, State 1, Line 1 OLE DB provider 'SQLOLEDB' сообщил об ошибке. Исполнение прервано поставщиком по причине достижения пределов ресурса. [Поставщик OLE/DB вернул сообщение: истекло время ожидания] Трассировка ошибок OLE DB [поставщик OLE/DB "SQLOLEDB" ICommandText::Execute возвращено 0x80040e31: выполнение завершается поставщиком, так как достигнуто ограничение ресурса.].

Это сообщение об ошибке относится к методу ICommandText::Execute . Он указывает, что запрос занимает больше времени, указанного в параметре конфигурации удаленного времени ожидания запроса.

Значение времени ожидания удаленного запроса по умолчанию 600 10 минут.

Чтобы обойти эту ошибку, отключите время ожидания, задав для удаленного значения времени ожидания запроса значение 0 (бесконечное ожидание), выполнив следующий код:

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