MS SQLエラー:リンクサーバーのOLEDBプロバイダー 'SQLNCLI10'が原因で、操作を実行できませんでした。



Ms Sql Error Operation Could Not Be Performed Because Ole Db Providersqlncli10for Linked Server



リンクサーバーテストを介してテストサーバー(システム:Windows 2008 R2標準データベース:SQL SERVER 2008 R2)で分散トランザクションテストを使用しているときに、同僚がエラーを起こしました。エラーメッセージは次のとおりです。

xact_abortをオンに設定します



トランを開始

test.mydb.dbo.test_oneを更新します。setname= 'test' where id = 3



コミット

リンクサーバーのOLEDBプロバイダー 'SQLNCLI10'テスト 'がメッセージを返しました'トランザクションマネージャーがリモート/ネットワークトランザクションのサポートを無効にしました。

メッセージ7391、レベル16、状態2、行5



リンクサーバー 'test'のOLEDBプロバイダー 'SQLNCLI10'が分散トランザクションを開始できなかったため、操作を実行できませんでした。

このエラーは、サーバーまたはサーバーにリンクされているサーバーがMS DTC(Microsoft Distributed Transaction Coordinator)で構成されていないために発生します。

まず、「リモートアクセス」、「リモート管理者接続」、および「リモートプロシージャトランス」のオプションが有効になっていることを確認します。

コードスニペット
  1. exec sp_configure '高度なオプションを表示'1
  2. 行く
  3. 再構成
  4. 行く
  5. exec sp_configure 'リモートアクセス'1
  6. 行く
  7. 再構成
  8. 行く
  9. exec sp_configure 「リモート管理者接続」1
  10. 行く
  11. 再構成
  12. 行く
  13. exec sp_configure 「リモートプロシージャトランス」1
  14. 行く
  15. 再構成
  16. 行く

DTCステップを構成する

ステップ1: 開始(開く)-コントロールパネル(コントロールパネル)-システムとセキュリティ(システムとセキュリティ)-管理ツール-コンポーネントサービス(コンポーネントサービス)(または実行-> dcomcnfgがコンポーネントサービスから直接ジャンプします)。

インターフェイスに入り、([コンソールルート]-> [コンポーネントサービス]-> [コンピューター]-> [マイコンピューター]-> [ローカルDTC])をクリックします。

クリップボード

ステップ2:「ローカルDTC」のプロパティを右クリックすると、「トレース」、「ロギング」、「セキュリティ」の3つのパネルが表示されます。プロパティの設定について。下の[これらのプロパティの設定の詳細]をクリックできます

クリップボード[1]

クリップボード[2]

以下に示すように、通常は「セキュリティ」の下にプロパティを設定するだけで済みます。特定の条件については、実際の状況に応じて構成してください。次の「ローカルDTCプロパティページ」を参照できます。「セキュリティオプション」カードの説明

クリップボード[3]

クリップボード[4]

画像

注:サーバーでファイアウォールがオンになっている場合は、ファイアウォールでポート135が開いていることを確認する必要があります(つまり、分散トランザクションコーディネータープログラムがファイアウォールを通過できるようにします)。