- PR -

SQLServerとの接続時間

1
投稿者投稿内容
ねねお
会議室デビュー日: 2003/10/30
投稿数: 2
投稿日時: 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側の設定かはっきりしませんが、
ご存知の方がいらっしゃいましたら、どうぞご教授宜しくお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-10-30 13:55
引用:

ねねおさんの書き込み (2003-10-30 12:42) より:

ウインドウズアプリケーションからADO.netでSQLServer2000にアクセスしています。
接続後、数時間から十数時間経過すると、自動的に接続が切れてしまいます。


回答ではありません。

 データベースとの接続は貴重な資源です。普通、接続回数は少なめに、接続時間を短く設計します。
 例えば、セッションが張られると、自動的にトランザクションが開始されます。明示的にコミット、またはロールバックしなければ、いつまでも変更が反映されません。DBMSによって、接続そのものを拒否したり、テーブルにロックをかけて読み取り不可にしたり、ダーティーな値を返したり・・・いろいろな害が発生します。
ねねお
会議室デビュー日: 2003/10/30
投稿数: 2
投稿日時: 2003-10-30 19:25
Jittaさん、ありがとうございます。
ADO.netは、Jittaさんのおっしゃるとおり、
必要なときに最小限の接続でデータを取得する為に設計されているようですね。
実は昔のプログラムを.netへ置き換えていたのですが。
(リクエスタがexeのデータベースからSQLServerへ変更)
この際、都度SQLServerへ接続するように変更することにしました。
接続のスピードもぜんぜん問題ないようなので。


[ メッセージ編集済み 編集者: ねねお 編集日時 2003-10-30 19:27 ]
Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-10-31 01:53
ADO.NET はコネクションプーリングをするので、こまめにクローズするのが
良いでしょう。
たしかオートコミットがデフォルトだと思うので、明示的なコミットは
必要ないはずです。
1

スキルアップ/キャリアアップ(JOB@IT)