2017-08-13 4 views
2

データベースに接続していくつかのパケットをデータベースに送信し、そのデータをデータベースに格納するためのC#プログラムを開発しています。 C#プログラムとSQL Serverは2つの別々のコンピュータにあり、C#プログラムとSQL Server間の接続が常に確立されていることを確認します。この接続が壊れている場合は、SQL Serverへの接続を再試行する必要があります。クライアント側のSQL Server 2012で壊れた接続を検出します

しかし、我々はいくつかの問題を抱えて:私たちは、SQL Serverを停止した場合、接続を確立した後

  1. は、クライアント側(C#プログラム)が閉じられた接続が通知されていません。クライアントからSQL Serverにパケットを送信した後、壊れた接続を検出します。 :我々は2台のコンピュータ間のイーサネットケーブルを抜いた場合は、我々はすべてのパケット

  2. を失うのが好きではありません、クライアント側では、約20秒後に、パケットを送信した後に切断された接続に気づく、とでますこの間隔でいくつかのパケットが失われる可能性があります。

SQL Serverで壊れた/閉じた接続を検出する方法がより迅速で信頼性が高い方法はありますか?

+0

編集のための@marc_sに感謝します。 – Safa

+0

アイデア(解決策)? – Safa

答えて

-1

この記事を読む。それはあなたのソリューションを実装する方法についての十分な情報を提供する必要があります。 https://blogs.msdn.microsoft.com/cesardelatorre/2017/03/26/using-resilient-entity-framework-core-sql-connections-and-transactions-retries-with-exponential-backoff/

編集:緩いパケットを望まないことに関しては、完全にあなたの実装に依存します。例外が発生した場合は、接続が再び復旧したときにデータを保持し、データの送信を再試行することができます。

+0

リンクと質問との関連は分かりません。 – Safa

+0

C#アプリケーションによって接続が確立され、何かがうまくいかない場合、例外が発生します。例外を適切に処理する必要があります。このリンクは、これを行うための1つの方法を示しています。 – vishalvatsal

関連する問題