- - PR -
データベースのユーザーセッションについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-07-31 10:05
いつもお世話になっております。
現在ASP.NET(VB.NET)とオラクルを使って開発をしているのですが、何回かデバッグをしているとユーザーの制限を越えたという意味合いのエラーが出てしまい、きちんとデータベースをクローズしていないのかと思ったのですが、きちんとしてありました。 そこでOleDBDataBaseConnectionを使用してボタンを押すとオープンしてもう一回押すとクローズするだけというサンプルを作ってみたのですが、Openでは接続ユーザーは増えるのですがCloseメソッドの時にユーザーが減りません。 きちんと切断するためにはCloseメソッドでは駄目なのでしょうか? ちなみにユーザー数の監視にはSELECT * FROM V$LICENSEを使っています。 |
|
投稿日時: 2003-08-05 08:37
こんにちは。
私の方はCPU数のライセンスなのですが。。。 OleDbConnection.Openだけが接続数…リソースと言い直します、を増やすものではありません。OleDbCommandやOleDbDataAdapterも、リソースを消費します。これらはCloseメソッドはありませんが、Disposeメソッドがあります。Disposeメソッドがあるものは、必ず必要がなくなった時点でDisposeしてください。これは、アンマネージなリソースを解放する処理で、C言語などでmallocした後にfreeするのと同様に必要な処理です。ただし、Closeメソッドがある場合はCloseメソッドを使用します(処理が等価になるように実装されている/実装しなければならない)。 私の方では、OleDbCommandをforループの中で大量に作りっぱなしにしたため、オープンできるカーソル数の上限に達してしまいました。 DisposeメソッドがあるクラスはDisposeするようにすると、大丈夫だと思うのですが…? |
1