Delen via


MSSQLSERVER_7399

Van toepassing op:SQL Server

Attribute Waarde
Product SQL Server
Gebeurtenis-id 7399
Bron van gebeurtenis MSSQLSERVER
Onderdeel SQLEngine
Symbolische naam RMT_HRESULT_FAIL
Berichttekst Er is een fout gerapporteerd door de OLE DB-provider%lsvoor gekoppelde server%ls.%ls

Explanation

Deze fout treedt op wanneer een gekoppelde serverquery mislukt vanwege een fout die wordt gegenereerd op de externe server.

Fout 7399 is een algemeen foutbericht van de provider. In sommige gevallen kunt u traceringsvlag 7300 inschakelen om een gedetailleerder foutbericht van de provider te krijgen. Of u meer informatie ontvangt, is afhankelijk van de OLE DB-provider (Object Linking and Embedding, Database) die u gebruikt. Als u de traceringsvlag wilt inschakelen, voert u de volgende opdracht uit voordat u de query uitvoert die de fout veroorzaakt:

DBCC TRACEON (7300, 3604);

Gebruikersactie

Hoewel fout 7399 een algemene fout is die een specifieker bericht bevat, is een veelvoorkomende specifieke fout 'Time-out verlopen'. Er zijn twee configureerbare time-outopties die van invloed zijn op externe query's: time-outoptie voor externe aanmelding en time-outoptie voor externe query's . Hier volgen enkele voorbeelden van hoe u de time-outfout in 7399 kunt zien en hoe u dit kunt oplossen:

IDBInitialize::Initialiseren

Server: Msg 7399, Niveau 16, Status 1, Regel 1 OLE DB-provider 'SQLOLEDB' heeft een fout gerapporteerd. [OLE/DB-provider geretourneerd bericht: Time-out verlopen] OLE DB-fouttracering [OLE/DB-provider 'SQLOLEDB' IDBInitialize::Initialize geretourneerd 0x80004005: ].

Dit foutbericht heeft betrekking op de IDBInitialize::Initialize methode. Dit gebeurt als de tijd die de query nodig heeft om een verbinding met de externe server tot stand te brengen, de time-outoptiewaarde voor externe aanmelding overschrijdt.

Als u deze fout wilt omzeilen, stelt u de time-outwaarde voor externe aanmelding in op 30 seconden door de volgende code uit te voeren:

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

ICommandText::Execute

Server: Msg 7399, Niveau 16, Status 1, Regel 1 OLE DB-provider 'SQLOLEDB' heeft een fout gerapporteerd. De uitvoering is beƫindigd door de provider omdat er een resourcelimiet is bereikt. [OLE/DB-provider geretourneerd bericht: Time-out verlopen] OLE DB-fouttracering [OLE/DB-provider 'SQLOLEDB' ICommandText::Execute geretourneerd 0x80040e31: Uitvoering beƫindigd door de provider omdat er een resourcelimiet is bereikt.].

Dit foutbericht heeft betrekking op de ICommandText::Execute methode. Hiermee wordt aangegeven dat de query langer duurde dan de tijd die is opgegeven in de configuratie-instelling voor time-outconfiguratie voor externe query's .

De standaardwaarde voor time-outs voor externe query's is 600 (10 minuten).

Als u deze fout wilt omzeilen, schakelt u de time-out uit door de time-outwaarde van de externe query in te 0 stellen op (oneindig wachten) door de volgende code uit te voeren:

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