MSSQLSERVER_7399
Aplica-se a:SQL Server
Atributo | Valor |
---|---|
Product | SQL Server |
ID do evento | 7399 |
Origem do Evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbólico | RMT_HRESULT_FAIL |
Texto da mensagem | O provedor OLE DB "%ls" para o servidor vinculado "%ls" relatou um erro.%ls |
Explicação
Esse erro ocorre quando uma consulta de servidor vinculado falha devido a um erro gerado no servidor remoto.
O erro 7399 é uma mensagem de erro genérica do provedor. Em alguns casos, você pode habilitar o Sinalizador de Rastreamento 7300 para obter uma mensagem de erro mais detalhada do provedor. Se você receber mais informações depende do provedor OLE DB (Object Linking and Embedding, Database) que você usa. Para habilitar o sinalizador de rastreamento, execute o seguinte comando antes de executar a consulta que causa o erro:
DBCC TRACEON (7300, 3604);
Ação do usuário
Embora o erro 7399 seja um erro genérico que inclui uma mensagem mais específica dentro dele, um erro específico comumente observado é "Tempo limite expirado". Há duas opções de tempo limite configuráveis que afetam as consultas remotas: opção de tempo limite de login remoto e opção de tempo limite de consulta remota. Aqui estão exemplos de como você pode ver o erro de tempo limite gerado no 7399 e como resolvê-lo:
IDBInitialize::Initialize
Servidor: Msg 7399, Nível 16, Estado 1, Linha 1 O provedor OLE DB 'SQLOLEDB' relatou um erro. [Mensagem retornada do provedor OLE/DB: Tempo limite expirado] Rastreamento de erro OLE DB [OLE/DB Provider 'SQLOLEDB' IDBInitialize::Initialize retornou 0x80004005: ].
Essa mensagem de erro pertence ao IDBInitialize::Initialize
método. Isso ocorrerá se o tempo necessário pela consulta para estabelecer uma conexão com o servidor remoto exceder o valor da opção de tempo limite de logon remoto.
Para contornar esse erro, defina o valor de tempo limite de logon remoto para 30 segundos executando o seguinte código:
sp_configure 'remote login timeout', 30;
GO
RECONFIGURE WITH OVERRIDE;
GO
ICommandText::Executar
Servidor: Msg 7399, Nível 16, Estado 1, Linha 1 O provedor OLE DB 'SQLOLEDB' relatou um erro. Execução finalizada pelo provedor porque foi atingido o limite de um recurso. [Mensagem retornada do provedor OLE/DB: Tempo limite expirado] Rastreamento de erro OLE DB [OLE/DB Provider 'SQLOLEDB' ICommandText::Execute retornou 0x80040e31: Execução encerrada pelo provedor porque um limite de recursos foi atingido.].
Essa mensagem de erro pertence ao ICommandText::Execute
método. Isso indica que a consulta levou mais tempo para ser processada do que o tempo especificado na definição de configuração de tempo limite de consulta remota.
O valor de tempo limite de consulta remota padrão é 600
(10 minutos).
Para contornar esse erro, desative o tempo limite definindo o valor de tempo limite de consulta remota para 0
(espera infinita) executando o seguinte código:
sp_configure 'remote query timeout', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários