2013-10-11 35 views
1

在延續這個Websphere hangs due to c3p0問題C3P0掛起 - Java的1,6

我們的JSP應用程序本身是遺留代碼(書面約500年前),我們需要保持它今後3年。隨着Oracle &的更新,現有代碼變得不穩定。由於成本因素,重寫不是一種選擇

其中一個這樣的problem來到我們不得不遷移到Oracle 11之後。經過一些研究後,我發現連接池將有所幫助。正確的解決方法是對代碼進行更改,但成本會降低。

使用連接pooing了一段時間後,現在我們發現,在WebSphere中的JSP應用程序掛往往比正常的引入C3P0後。但是引入C3P0解決的一個問題Max cursors reached error in JSP + Hibernate

的先決條件在http://www.mchange.com/projects/c3p0/說C3P0與Java 1.4和Java 1.5

效果很好,我們使用的是Java 1.6.x的

有沒有人曾在越來越C3P0工作的任何成功與Java 1.6?

是否有任何提示/微調,我可以做,使C3P0處理Java 1.6?

我C3P0設置

<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 
    <property name="hibernate.c3p0.min_size">2</property> 
    <property name="hibernate.c3p0.max_size">40</property> 
    <property name="hibernate.c3p0.timeout">350</property> 
    <property name="hibernate.c3p0.idle_test_period">300</property> 
    <property name="hibernate.c3p0.max_statements">0</property> 
    <property name="hibernate.c3p0.acquire_increment">1</property> 
    <property name="hibernate.c3p0.unreturnedConnectionTimeout">60</property> 
    <property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property> 

回答

1

C3P0一般正常工作與Java 1.6或更高版本。

你可能想升級到C3P0 0.9.2.1或最新的0.9.5搶鮮如果你還沒有(儘管早期版本在1.6+做的工作)。

你需要弄清楚爲什麼你的應用程序掛。一般來說,在掛起期間,您應該轉儲您的線程並檢查堆棧跟蹤以瞭解發生了什麼。如果線程正在等待來自c3p0的連接(即在awaitAvailable()方法中),那麼您可能會遇到連接泄漏,並且會像在previous hang thread you reference中那樣調試它。

+0

感謝'@ steve-waldman'的答案。我已經升級到0.9.5前4,有趣的是,在啓動期間出現的錯誤不再出現,但不幸的是,該錯誤超過了0.9.2.1。我知道我們的應用程序編碼非常糟糕,但我的任務是讓它「以某種方式」運行。所以c3p0是我唯一的選擇,因爲我們可以通過configure c3p0來使用hte應用程序。這個網絡應用程序如此老舊,而且很難在短時間內改變。 – KK99

+0

關於掛起的好處是它們是可調試的。讓您的應用程序進入掛起狀態,然後讓JVM轉儲線程堆棧跟蹤(例如,通過ctrl- \或kill -QUIT或Windows上的ctrl-break)。當線程掛起時線程是什麼?如果他們在C3P0的awaitAvailable(),那麼你可能有一個連接泄漏,您可以調試按http://stackoverflow.com/questions/17272141/websphere-hangs-due-to-c3p0如果不是,那麼,你至少要弄清楚你需要解決的問題! –

+0

謝謝。我配置了日誌,我看到這個'2013-10-14 10:32:03,191警告[ActiveManagementCoordinator]:C3P0Registry mbean已經註冊。這可能意味着使用c3p0的應用程序已取消部署,但並非所有PooledDataSources在取消部署之前都已關閉。這可能會導致資源泄漏。請注意關閉所有PooledDataSources.'不知道這意味着什麼? – KK99