Dela via


MSSQLSERVER_7399

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