6

.Net アプリの実行中に常に SqlConnection (または別のコンポーネントを使用) を開いた (接続された) 状態に保つにはどうすればよいですか?

アプリがこのコマンドを使用して検出する必要があるため、これが必要です

 exec sp_who2 

アクセスを制限するために、mydatabase に接続されているアプリのインスタンスの数 (ライセンス制御)。

A) location1から実行されたアプリ

  1. を使用して、SQLサーバーに接続されているアプリの数を確認してくださいexec sp_who2
  2. アプリケーションの数< MaxLicencesConnectedの場合、アプリを起動して sqlconnection を開きます

B) location2から実行された私のアプリ

  1. を使用して、SQLサーバーに接続されているアプリの数を確認してくださいexec sp_who2
  2. アプリケーションの数>= MaxLicencesConnectedの場合、アプリケーションを閉じます

私の英語でごめんなさい。

前もって感謝します。

4

4 に答える 4

3

プログラムの開始時にレコードを追加し、プログラムの終了時にレコードを削除する単純なテーブルを作成する方が簡単ではないでしょうか? SQL Server への接続を常に開いたままにしておくと、非常にコストがかかります。

技術的には、誰かがレコードを削除して新しいインスタンスを開始する可能性がありますが、明らかにそうすると、最初のインスタンスは機能しなくなります (それ自体のレコードの存在を時々チェックすると仮定します)。

于 2010-03-16T03:33:50.920 に答える
2

接続プーリングは接続を維持します。

http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx

于 2010-03-16T03:48:45.757 に答える
1

接続プーリングを使用します。接続文字列で最大プール サイズ最小プール サイズプーリングを設定します。

于 2010-03-16T07:22:11.727 に答える
0

接続オブジェクトを設定して開き、グローバル(静的)変数に保存することができます。接続のタイムアウトも設定する必要があると思います。そうしないと、アイドル状態にすると自動的に閉じられます。

率直に言って、接続を開いたままにしておくのは良い考えではないと思います。それらは高価だからです。

于 2010-03-16T03:34:18.880 に答える