JDBCのStatementとResultSetを明示的にcloseしない時の動き
てっきりConnection、Statement、ResultSetって明示的にcloseしないときちんと解放される事が保障されないと思ってたんだけど、どうやらGC時に自動的に解放されるような記述を発見。
で、実際にSunのjavadocを見ると確かに書いてある。
オブジェクトは、ガベージコレクトされるときは自動的にクローズされます。
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/sql/Statement.html#close()
オブジェクトがガベージコレクトされるときにも自動的にクローズされます。
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/sql/ResultSet.html#close()
ということで、某サイトは幾らかConnectionの閉じ忘れがありそうなのも問題だけど、そもそもStatementとResultSetを明示的にcloseしていない為、GCが走っていると思われる時間帯が異常に重いのではないかと推測。
広範囲にわたる修正になりそうだ。。。