2013-08-26 88 views
2

我正在使用Spring/JPA創建獨立應用程序,並試圖正確釋放所使用的數據庫資源。在獨立應用程序中釋放數據庫連接

在一個使用tomcat的Web應用程序中,我們關閉了服務器,這樣我們讓Tomcat管理資源。

但正如我在一個獨立的應用程序,我得把這個護理,我使用調用Runtime.getRuntime()。addShutdownHook「捕捉」關閉事件,並呼籲((ClassPathXmlApplicationContext的)上下文).close ();,這樣的事情:

Runtime.getRuntime().addShutdownHook(new Thread() { 
    @Override 
    public void run() { 
     ((ClassPathXmlApplicationContext) context).close(); 
    } 

它的工作原理,但在堆棧跟蹤異常,如果一個線程使用的連接。 我想知道是否有另一種選擇?也許得到一個打開的交易列表並強制他們回滾?

+0

你沒有指定你使用的Spring版本,但也許這可能有助於http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans。 HTML#豆工廠停產 –

回答

0

我相信你需要實現類似this的東西,並且在你的銷燬方法中,你將檢索你的數據源並調用關閉方法或類似的東西。我還假設你關閉應用程序時有幾件事要做。

我不能完全幫助正確的方法名稱,因爲我不知道您用於數據源的是什麼。

相關問題