Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
| Attribute | Valor |
|---|---|
| Produto | 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 servidor vinculado "%ls" relatou um erro.%ls |
Explanation
Este erro ocorre quando uma consulta de servidor vinculado falha devido a um erro que é 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ê recebe 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 utilizador
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 dentro do 7399 e como resolvê-lo:
IDBInitialize::Inicializar
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: ].
Esta mensagem de erro refere-se ao IDBInitialize::Initialize método. Ocorre se o tempo necessário para a consulta estabelecer uma conexão com o servidor remoto exceder o valor da opção de tempo limite de login remoto .
Para contornar esse erro, defina o valor de tempo limite de login 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 encerrada pelo provedor porque um limite de recursos foi atingido. [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.].
Esta mensagem de erro refere-se ao ICommandText::Execute método. Ele 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 padrão de tempo limite de consulta remota é 600 (10 minutos).
Para contornar esse erro, desative o tempo limite definindo o valor de tempo limite de consulta remota como 0 (espera infinita) executando o seguinte código:
sp_configure 'remote query timeout', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO