2016-12-07 8 views
0

コードレビューコミュニティに行って、作成したスニペットを見ました。彼らは特に、データベースとのネットワーク接続の問題がある場合にプログラムを実行し続けるために使用する方法に興味があるようです。私は下の質問へのリンクを掲載しました。 、データベースへの接続が失われている間に実行中のプログラムを維持するためのベストプラクティスは何君たちへネットワーク接続が失われたときのエラー状態からのプログラムの保護

Link to Code Review Question

私の質問はありますか?

private void ReestablishDatabaseConnection() 
     { 
      bool broken = true; 
      conn.ConnectionString = r.getSQLConnString(); 

      while (broken) 
      { 
       System.Threading.Thread.Sleep(30000); 
       try 
       { 
        conn.Open(); 
        conn.Close(); 
        broken = false; 
       } 
       catch (Exception){} 
      } 
     } 

答えて

0
質問で

コード

君たちへの私の質問です、何であるデータベースへの接続が失われている間に実行されている プログラムを維持するためのベストプラクティス?

アプリケーションの種類によって異なります。

現在のコードから、マシンがデータベースに接続できない場合、このメソッドを一度呼び出すと、ループ内で実行され続けます!

したがって、CPUサイクルを無駄にして生産性を向上させることはありません。

私はこのコードを捨てることをお勧めします。コード内の接続に関する問題はあまり気にしません。適切な例外ログを使用してそれらを処理します。また、アプリケーションの重大度に応じて、2〜3回以上接続を再試行することもできます。

ネットワークエラーまたはエラー/例外がある場合は、適切なロギングを行い、問題が適切に処理されていることを確認してください。

暗示的な部分については、例外が発生したためにコードが実行されない、または中断されないようにしてください。

ユーザーの観点から見ると、機能に不満を募らず、アプリケーションに対してコマンドを実行するようにアプリケーションを設計します。

+1

ありがとうございました!そしてはい、あなたは助けになります。 –

+0

@DavidRichards - 賛辞のおかげで、:) –

関連する問題