web-dev-qa-db-ja.com

通信リンク障害の根本原因を特定する方法TCPプロバイダー:指定されたネットワーク名は使用できなくなりましたか?

この質問を修正するための私の最新の取り組みは次のとおりです。しかし、今回は、Odedの記事で与えられた良い助言に従うようにしています StackOverflowで良い答えを得る

次のエラーの根本原因を特定する方法を見つける必要があります。

通信リンク障害

TCPプロバイダー:指定されたネットワーク名は使用できなくなりました

SSISパッケージのセットを実行すると、時々このエラーが表示されます。このエラーは、1つ以上のパッケージが次の場所から実行されたときに発生する可能性があります。

  1. SQL Serverエージェントジョブ
  2. バッチファイル
  3. BIDSからのデバッグモード

表示される完全なエラーメッセージは次のとおりです。

SSISエラーコードDTS_E_OLEDBERROR。 OLE DBエラーが発生しました。エラーコード:0x80004005。 OLE DBレコードが利用可能です。ソース:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005説明:「通信リンク障害」。 OLE DBレコードが利用可能です。ソース:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005説明:「TCPプロバイダー:指定されたネットワーク名は使用できなくなりました。」.

SSISエラーコードDTS_E_OLEDBERROR。 OLE DBエラーが発生しました。エラーコード:0x80004005。 OLE DBレコードが利用可能です。ソース:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005説明:「TDSストリームのプロトコルエラー」。 OLE DBレコードが利用可能です。ソース:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005説明:「通信リンク障害」。 OLE DBレコードが利用可能です。ソース: "Microsoft SQL Server Native Client 10.0" Hresult:0x80004005説明: "TCPプロバイダー:既存の接続はリモートホストによって強制的に閉じられました。"

これは、ETLプロセスの設計方法の概要です。

  • 2台のサーバー
  • 両方とも仮想マシンです
  • SSISパッケージはアプリケーションサーバーで実行されます
  • SQL Serverデータベースはデータベースサーバー上に存在します

OLE DB接続マネージャーを使用して、アプリケーションサーバー上のSSISパッケージからデータベースサーバー上のSQL Serverデータベースに接続します。

パッケージは、データベースサーバー上のデータベース展開としてではなく、アプリケーションサーバー上のファイルシステム展開として実行されます。

これの主な理由は、ETLが、データベースサーバーに見つからないドライブやデータベースサーバーにアクセスできないドライブのセットと統合されていることです。これらのツールには、Apex Data Loader for SalesforceおよびpgAdmin IIIが含まれます。

これまでのところ、このエラーを一貫して再現することはできません。ただし、これは私が観察したことです:

  • 通常の営業時間内に故障がより頻繁に発生する
  • 営業時間外の故障の頻度は少ない

金曜日の朝に約2時間、特定のパッケージでエラーを正常に再現できました。

このエラーは、大きなデータフローの前にある子パッケージ呼び出しが有効になっている場合に、大きなデータフロー中に発生しました。

大きなデータフローに先行する子パッケージ呼び出しが無効になっている場合、同じ大きなデータフロー中にエラーは発生しませんでした。

問題の子パッケージはデータベースにコールバックして、電子メール本文で使用するわずかな情報を取得し、電子メールを送信します。

リソースの制限を超えているように感じますか?

おそらく接続制限ですか?

エラーの根本原因を特定するためにどのツールを使用する必要があるのか​​疑問に思っています。

関連する2つのサーバーに関する技術的な詳細を以下に示します。

SQL Serverおよびデータベースサーバー情報:
Microsoft SQL Server 2008 R2(SP1)-10.50.2500.0(X64)2011年6月17日00:54:03 Copyright(c)Microsoft Corporation Enterprise Edition(64ビット)on Windows NT 6.1(Build 7601:Serviceパック1)(ハイパーバイザー)

SSIS情報:
Microsoft Visual Studio 2008バージョン9.0.30729.1 SP Microsoft .NET Frameworkバージョン3.5 SP1

アプリケーションサーバー情報:
OS名:Microsoft Windows Server 2008 R2標準バージョン:6.1.7601 Service Pack 1ビルド7601

私はオンラインでエラーメッセージを調査し、これらを見つけましたが、先に進む前に専門家の洞察を得たいと思っています:

どんな助けも大歓迎です。

ありがとう

UPDATE:

SQL Server Management Studioを使用する場合、同じエラーが同じ割合で見られるため、さらにテストを行うと、これは「SSISの問題」ではないことがわかります。クエリが複雑であっても、エラーの可能性は多少なりとも変わりません。解決しようとして、1つの修正を試みました(以下)。

これが私たちの最初の試みでした。 TCP Chimneyは、アプリケーションサーバーとデータベースサーバーで無効になりました。テストでは、同じエラーが同じレートで発生することが示されています。

それでは、ここからどこへ行くのでしょうか?正直なところわからない。一見良いオプションが残っています:

  • アプリケーションサーバーとデータベースサーバーのSQL Serverインストールが完全に一致しない
  • アプリケーションサーバー= SQL Server 2008(SP1)-10.0.2531.0(X64)
  • データベースサーバー= SQL Server 2008 R2(SP1)-10.50.2500.0(X64)

計画では、アプリケーションサーバー上のSQL Serverインストールをアップグレードします。一種のヒットと希望ですが、現時点ではこれが最良の選択肢のようです。私の頭の中の何かは、これはハードウェアの問題を修正することで解決できるかもしれないことを教えてくれます(つまり、修理または交換を意味します)。

ただし、根本的な原因を特定する方法はまだわかりません。根本原因を診断するためにどのツールを使用する必要があるのか​​、まだ疑問に思っています。

25
Jon Jaussi

Application Server側にAVソフトウェアがありますか?はいの場合は、AVを無効にしてみてください-AVがTCP/IPトラフィックをブロックすることがあります。ここでAVを無効にすることで、「指定されたネットワーク名は使用できなくなりました」という問題は解決されました: https://community.spiceworks.com/topic/239423-the-specified-network-name-is-no-longer -available-while-writing-to-shared-dir

1
Serge

エラーメッセージは、接続が強制的に閉じられたことを示します。これは、多くのジョブを実行するときに発生することにも言及しています。ネットワークファイアウォールが原因である可能性があります。ファイアウォールが接続を閉じたかどうかを確認するために、ファイアウォール管理者に連絡してログを調査する必要があります。この場合、次の2つの解決策が考えられます。

  1. トリガーされているファイアウォールルールに例外を追加し、接続を閉じます。
  2. 非常に多くのジョブの同時実行を停止します。これらを順番に実行することを検討する必要があります。これは、優れたネットワーク市民であるという考えにも準拠しています。
1
J Weezy
  1. まず、nicの大きな送信オフロード設定を削除しようとしましたか?
  2. 2番目のポイントは、エラーを再現できる場合、wiresharkを実行してパケットをキャプチャできますか?
  3. 3番目に、vnicをVMから変更しようとしましたか?モデルによっては問題が発生する可能性があります(vmxnet3を使用する場合、e1000などを試してください。)
  4. 最後に、それらの間にvswitchがありますか?それらは同じホスト上にあり、物理的なスイッチなどです...ホスト内で同じホストと同じvswitchが最適なテストである場合、不適切に構成されたスイッチはトラフィックをドロップできますトラフィックがサーバーを離れることはありません。
0
yagmoth555