1

データベース接続の中断を監視する方法はありますか?アプリケーション間で1つの接続を共有していますが、一部のオブジェクトは接続の中断に反応する必要があります。

理想的にはイベントである必要があります。私が見つけたのは接続例外だけですが、ローカルで発生します(例外をリッスンしています)。

DbConnectionこのオブジェクトの例外を継承してリッスンし(メソッドをオーバーロード)、接続エラー例外のシグナルを(関連コードによって)発生させることを考えています。しかし、おそらく最も簡単な方法があります。

アイデアありがとうございます。

4

1 に答える 1

7

単一の接続を共有することは決して良いことではなく悪い習慣です。主な理由は実際にはあなたの問題です。設計を少し変更して (大したことではありません)、ADO.NET接続プールに依存することをお勧めします。特にマルチスレッドの状況で、あらゆる種類のボトルネックに遭遇したくない場合に備えて、これは必須です。

これは、すべての接続が一時的であり、データベースにアクセスする必要がある場合にのみ接続を作成することを意味します。

詳細については、こちら を参照してください。ここでは、使用方法のサンプルも見つけることができます。それについて知っておくべき主なことは、それが Disposable パターンを使用していることです。

//Notice the **using ** block
using(SqlConnection conn = new SqlConnection(connString)) 
{
  conn.Open();
  //do something with the connection.
  //as soon as the using block ends, the managed connection is disposed and released in the pool
}
于 2012-06-20T17:16:13.417 に答える