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