Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
| Attribute | Värde |
|---|---|
| Produkt | SQL Server |
| Händelse-ID | 7399 |
| Händelsekälla | MSSQLSERVER |
| Komponent | SQLEngine |
| Symboliskt namn | RMT_HRESULT_FAIL |
| Meddelandetext | OLE DB-providern "%ls" för den länkade servern "%ls" rapporterade ett fel.%ls |
Explanation
Det här felet uppstår när en länkad serverfråga misslyckas på grund av ett fel som genereras på fjärrservern.
Fel 7399 är ett allmänt felmeddelande från providern. I vissa fall kan du aktivera spårningsflagga 7300 för att få ett mer detaljerat felmeddelande från providern. Om du får mer information beror på den OLE DB-provider (objektlänkning och inbäddning, databas) som du använder. Om du vill aktivera spårningsflaggan kör du följande kommando innan du kör frågan som orsakar felet:
DBCC TRACEON (7300, 3604);
Användaråtgärd
Även om fel 7399 är ett allmänt fel som innehåller ett mer specifikt meddelande i det, är ett vanligt observerat specifikt fel "Tidsgränsen har upphört att gälla". Det finns två konfigurerbara timeout-alternativ som påverkar fjärrfrågor: timeout-alternativ för fjärrinloggning och timeout-alternativ för fjärrfrågor . Här är exempel på hur du kan se timeout-felet som uppstod inom 7399 och hur du åtgärdar det:
IDBInitialize::Initiera
Server: Msg 7399, Level 16, State 1, Line 1 OLE DB provider "SQLOLEDB" rapporterade ett fel. [OLE/DB-providern returnerade meddelandet: Tidsgränsen har upphört att gälla] OLE DB-felspårning [OLE/DB Provider 'SQLOLEDB' IDBInitialize::Initialize returned 0x80004005: ].
Det här felmeddelandet gäller metoden IDBInitialize::Initialize . Det inträffar om den tid det tar för frågan att upprätta en anslutning till fjärrservern överskrider tidsgränsen för fjärrinloggning .
Om du vill undvika det här felet anger du tidsgränsvärdet för fjärrinloggning till 30 sekunder genom att köra följande kod:
sp_configure 'remote login timeout', 30;
GO
RECONFIGURE WITH OVERRIDE;
GO
ICommandText::Execute
Server: Msg 7399, Level 16, State 1, Line 1 OLE DB provider "SQLOLEDB" rapporterade ett fel. Körningen avslutades av providern eftersom en resursgräns uppnåddes. [OLE/DB-providern returnerade meddelandet: Tidsgränsen har upphört att gälla] OLE DB-felspårning [OLE/DB-providern "SQLOLEDB" ICommandText::Execute returned 0x80040e31: Körningen avslutades av providern eftersom en resursgräns uppnåddes.].
Det här felmeddelandet gäller metoden ICommandText::Execute . Det anger att frågan tog längre tid att bearbeta än den tid som angavs i konfigurationsinställningen för tidsgräns för fjärrfråga .
Standardvärdet för tidsgränsen för fjärrfrågor är 600 (10 minuter).
Om du vill undvika det här felet inaktiverar du tidsgränsen genom att ange tidsgränsvärdet för fjärrfrågor till (oändlig väntan) genom att 0 köra följande kod:
sp_configure 'remote query timeout', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO