2011-02-14 62 views
0

我從java-hibernate應用程序中打開了一些Oracle會話。當關閉我的java-hibernate時,oracle會話保持打開狀態,即使java進程沒有被視爲運行「ps -fea | grep java」。java hibernate oracle會話永遠不會關閉

的問題是,這個預言會話從未死,他們留在那裏,並殺死他們的唯一方法是手動殺Oracle進程,或重新啓動Oracle實例或重新啓動了Oracle所在的UNIX盒。

我的java/hibernate應用程序總是關閉會話並在源代碼中包含最終語句,無論如何。

謝謝先進。

回答

2

沒有更多的信息很難幫助你,但我可以猜到的東西。當您使用休眠打開或關閉會話時,您可能不打開真正的Oracle會話。 Hibernate可以在打開或不打開實際會話時使用池或控件。所以,你的問題不是在每個語句之後關閉你的java會話,而是在殺死你的應用程序之前正確關閉並完成hibernate的池或其他任何東西。

請發佈更多信息,我不必猜測:)

+0

感謝您的幫助。 我使用C3P0作爲連接管理器。使用的設置是非常標準的,我只能修改連接和超時數量: c3p0.initialPoolSize = 30 c3p0.minPoolSize = 30 c3p0.maxPoolSize = 70 c3p0.acquireIncrement = 1 #關閉連接池是#半小時以上未使用 c3p0.maxIdleTime = 1800 所以,我真的不會改變C3P0的功能。有一件有趣的事情是,我的應用程序通常部署在MySQL中,並且它始終正常工作,但Oracle有時會出現意外的行爲。 – RGB 2011-02-14 16:18:07