- - PR -
SQLServerとの接続時間
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-10-30 12:42
はじめまして。お世話になっております。
ウインドウズアプリケーションからADO.netでSQLServer2000にアクセスしています。 接続後、数時間から十数時間経過すると、自動的に接続が切れてしまいます。 接続方法は、SQLConnectionオブジェクトのConnectionStringプロパティを設定し、 Openメソッドで接続しています。 ConnectionStringの内容は、 user id=xxx;password=xxx;initial catalog=xxx;data source=xxx で設定しています。 Data Provider側の設定かSQLServer側の設定かはっきりしませんが、 ご存知の方がいらっしゃいましたら、どうぞご教授宜しくお願いいたします。 | ||||
|
投稿日時: 2003-10-30 13:55
回答ではありません。 データベースとの接続は貴重な資源です。普通、接続回数は少なめに、接続時間を短く設計します。 例えば、セッションが張られると、自動的にトランザクションが開始されます。明示的にコミット、またはロールバックしなければ、いつまでも変更が反映されません。DBMSによって、接続そのものを拒否したり、テーブルにロックをかけて読み取り不可にしたり、ダーティーな値を返したり・・・いろいろな害が発生します。 | ||||
|
投稿日時: 2003-10-30 19:25
Jittaさん、ありがとうございます。
ADO.netは、Jittaさんのおっしゃるとおり、 必要なときに最小限の接続でデータを取得する為に設計されているようですね。 実は昔のプログラムを.netへ置き換えていたのですが。 (リクエスタがexeのデータベースからSQLServerへ変更) この際、都度SQLServerへ接続するように変更することにしました。 接続のスピードもぜんぜん問題ないようなので。 [ メッセージ編集済み 編集者: ねねお 編集日時 2003-10-30 19:27 ] | ||||
|
投稿日時: 2003-10-31 01:53
ADO.NET はコネクションプーリングをするので、こまめにクローズするのが
良いでしょう。 たしかオートコミットがデフォルトだと思うので、明示的なコミットは 必要ないはずです。 |
1