MSSQLSERVER_7399
適用対象: SQL サーバー
属性 | 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