MSSQL Standard EditionRVER_7399

適用対象:SQL Server

属性 Value
Product SQL Server
イベント ID 7399
イベント ソース MSSQLSERVER
コンポーネント SQLEngine
シンボル名 RMT_HRESULT_FAIL
メッセージ テキスト リンク サーバー "%ls" の OLE DB プロバイダー "%ls" でエラーが報告されました。%ls

説明

このエラーは、リモート サーバーで生成されたエラーが原因でリンク サーバー クエリが失敗した場合に発生します。

エラー 7399 は、プロバイダーからの一般的なエラー メッセージです。 場合によっては、プロバイダーからより詳細なエラー メッセージを取得するために、トレース フラグ 7300 を有効にすることができます。 詳細情報を受け取るかどうかは、使用する OLE DB (オブジェクト リンクと埋め込み、データベース) プロバイダーによって異なります。 トレース フラグを有効にするには、エラーの原因となるクエリを実行する前に、次のコマンドを実行します。

DBCC TRACEON (7300, 3604);

ユーザー アクション

エラー 7399 は、より具体的なメッセージを含む一般的なエラーですが、一般的に観察される特定のエラーは "タイムアウト期限切れ" です。リモート クエリ に影響する 2 つの構成可能なタイムアウト オプションがあります。リモート ログイン タイムアウト オプションと リモート クエリ タイムアウト オプションです。 7399 内で発生したタイムアウト エラーとその対処方法の例を次に示します。

IDBInitialize::Initialize

サーバー: メッセージ 7399、レベル 16、状態 1、1 行目の OLE DB プロバイダー 'SQLOLEDB' がエラーを報告しました。 [OLE/DB プロバイダーから返されたメッセージ: タイムアウトの有効期限が切れています]OLE DB エラー トレース [OLE/DB Provider 'SQLOLEDB' IDBInitialize::Initialize returned 0x80004005: ]。

このエラー メッセージはメソッドに IDBInitialize::Initialize 関連します。 これは、リモート サーバーへの接続を確立するためにクエリが要した時間が、リモート ログイン タイムアウト オプションの値を超えた場合に発生します。

このエラーを回避するには、次のコードを 実行して、リモート ログインのタイムアウト 値を 30 秒に設定します。

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

ICommandText::Execute

サーバー: メッセージ 7399、レベル 16、状態 1、1 行目の OLE DB プロバイダー 'SQLOLEDB' がエラーを報告しました。 リソースの上限に達したので、プロバイダーが実行を終了しました。 [OLE/DB プロバイダーから返されたメッセージ: タイムアウトの有効期限が切れています]OLE DB エラー トレース [OLE/DB Provider 'SQLOLEDB' ICommandText::Execute returned 0x80040e31: リソース制限に達したため、プロバイダーによって実行が終了しました。]

このエラー メッセージはメソッドに ICommandText::Execute 関連します。 これは、リモート クエリ タイムアウト構成設定で指定された時間よりもクエリの処理に時間がかかったことを示します。

既定 のリモート クエリ タイムアウト600 (10 分) です。

このエラーを回避するには、次のコードを実行して、リモート クエリのタイムアウト値を (無限待機) に0設定してタイムアウトを無効にします。

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