• ベストアンサー

DBに接続する時のオープンとクローズについて

VB.NET+ACCESSでWEBアプリケーションを作っております。 開発は特に問題がないのですが、少し疑問に思ったことがありますので、どなたかご存知の方がおられましたら教えてください。 DBに接続するとき、接続をオープンします。 この後で接続をクローズせずにアプリケーションを閉じるとどのような影響があるのでしょうか? 書籍などには必ずクローズをするようにと書かれていますが、その理由がよくわかりません。 どなたかご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Java,OracleでWEB開発をしています。 >接続をクローズせずにアプリケーションを閉じるとどのような影響があるのでしょうか? 徐々にパフォーマンスが落ちてきたり、ある時DB接続できなくなったりします(実体験)DB接続のオープン、クローズだけでなく Java の場合は ResultSet, PreparedStatement のクローズも行わないと問題が発生します。 あと#1さんの >WEB系では、そのページでのDBへのコネクションは、ページが読み込み終了した時点でオブジェクトが解放されますので、自動的にクローズされていると思います。 Javaだとオブジェクト自体がガベージコレクションの対象になるだけで接続は保持されています。明示的にクローズしてやらないと最初に言ったような問題が発生します。 VB.NET+ACCESS の場合は実はボクはどうだか分かりません。(^^; 御参考までに。

TACT_SI
質問者

お礼

ご回答ありがとうございます。 実例をふまえた回答をいただき、とてもわかりやすかったです。 ありがとうございます。

その他の回答 (3)

  • RXC14024
  • ベストアンサー率0% (0/2)
回答No.4

DBに限らず常識的にオープンとクローズは対になっています。 通常プログラミング言語ではプログラムの終了と共に自動的にオープンされている全てのリソースをクローズするのが一般的ですがプログラミングスタイルからすると薦められません。 WEBアプリケーションは通常一画面終了と共にプログラムが終了します。 また、SpiralGalaxyさんの言うようにごみが残る場合もあります。 ですので、クローズするのが常識的だと理解してください。

回答No.2

試しにDBのオープンのみを延々とやってみては? そうしてみるとわかると思いますよ。

回答No.1

一般的に、DBへ接続したら明示的にクローズするのが基本ですので、そう書かれているのだと思います。 WEB系では、そのページでのDBへのコネクションは、ページが読み込み終了した時点でオブジェクトが解放されますので、自動的にクローズされていると思います。 テーブルのオープンも同様です。

関連するQ&A