指定されたネットワーク名は使用できなくなりました


10

データベースにアクセスするアプリケーションがあります(SQL Server 2014 Enterprise Edition)。アプリケーションは、データベースにアクセスするためのストアドプロシージャを呼び出します。最近、次のエラーの送信を開始してアプリケーションを停止するまで、すべてが正常に機能していました。アプリを再起動すると問題が一時的に解決しますが、同じエラーが発生します。

エラー:サーバーから結果を受信するときに、トランスポートレベルのエラーが発生しました。(プロバイダー:TCPプロバイダー、エラー:0-指定されたネットワーク名は使用できません。)

私は多くの調査を行いましたが、それらのほとんどはネットワークの問題として指摘していますが、実際に問題を解決するためのものが見つかりませんでした。この問題を解決するためにデータベース側で行う必要がある変更を誰かが知っていますか?私は提案を高く評価します。

回答:


8

DNSの解決に問題があるか、クエリが長時間実行されているようです。

DNSトラブルシューティング用

バンドエイドとトラブルシューティングの補助として、c:\ windows \ system32 \ drivers \ etcにあるアプリサーバー(SQL Serverではない)のhostsファイルにエントリを追加します。

SQLServerIPAddress SQLServerName

例:

172.16.0.5 ProductionSQLBox

このようにして、名前解決で何が起こっているかについての実際の問題が見つかるまで、SQL Serverの名前はhostsファイルによって解決されます。

コマンドラインを介してアプリサーバーからSQLボックスにpingを実行し、hostsファイルを確認してテストします。または、代わりに、コントロールパネル内のODBCアドミニストレーターでDSNを作成し、そこで接続をテストします。

長時間実行されるクエリの場合

SQL Serverに接続するアプリケーション接続文字列に、より長いコマンドタイムアウト値を実装します。

<connectionStrings> 
    <add name="webconfigconnectionString" connectionString="server=SQLServerName;database=dbName;uid=u‌​serName;password=ABC‌​123;Timeout=120" />
</connectionStrings>

6

これはデータベースの問題ではありません。この問題を解決できるデータベース側の変更はありません。このエラーは、高いネットワーク帯域幅またはアプリケーションのエラーが原因で発生します。このエラーを会社のWintel / Networkチームに転送することをお勧めします。このエラーを停止するために、ネットワークスイッチを変更したり、ネットワーク帯域幅を管理したりできます。


3

これはアプリケーションの問題のようです。

私の意見では、アプリケーションはSQL接続が常に利用可能である(コマンドを実行する前にチェックやテストを行わない)ことを前提としているため、回線がダウンしたり、何かが接続をドロップしたり閉じたりすると、メッセージが表示されます。

再現するには、SQLサーバー上のSQLセッションを終了するだけで、 まったく同じ 同様のメッセージ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.