アプリ版:「スタンプのみでお礼する」機能のリリースについて

JavaでDBにアクセスする為の勉強中です。

使用しているクラスは
Connection、Statement、ResultSet
でそれぞれfinallyの部分でclose()メソッドを呼んでいます

例えばこのときStatementのJavaDocでclose()メソッドの説明を読むと
>自動的にクローズされるときに Statement オブジェクトのデータベースと JDBC リソースが解放されるのを待つのではなく、ただちにそれらを解放します。

とあり、該当のメソッドを呼ばなくても、リソースは解放されるようですが、ただちに解放する必要性はどこにあるのでしょうか?
検索結果で表示されるサイト等も大半はclose()が書かれていますが、
おまじない的な話しか載ってるのを見る程度でした。

A 回答 (1件)

コネクションの場合明示的にCLOSEしない場合自動的にCLOSEする時間がくるまでCLOSEされなっかったりします。

(設定しない場合デフォルト値、1~3分くらい?)

例)
最大コネクション数が10、コネクション自動CLOSEまで180秒という設定のDBがあったとします。

この場合、3分間の間にあるユーザーが10回接続して来た場合コネクションが自動的にCLOSEされて開きが出るまで他のユーザーが使用できなくなります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!