解決spring配置c3p0鏈接池,tomcat沒法正常啓動

    今天下午收到一名網友的在線求助。先簡要描述一下問題的背景:java

    Windows平臺,tomcat應用服務器, Oracle數據庫,應用架構Spring使用c3p0數據源web

    問題現象:tomcat在啓動過程當中會堵塞8分鐘,而後報錯:spring

2014-1-5 20:44:10 org.hibernate.connection.ConnectionProviderFactory newConnectionProvider
信息: Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
2014-1-5 20:52:00 org.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 0, SQLState: null
2014-1-5 20:52:00 org.hibernate.util.JDBCExceptionReporter logExceptions
嚴重: Connections could not be acquired from the underlying database!
2014-1-5 20:52:00 org.hibernate.cfg.SettingsFactory buildSettings
警告: Could not obtain connection metadata
java.sql.SQLException: Connections could not be acquired from the underlying database!
//...省略棧信息
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.

    這個問題很常見,因此我給出瞭如下幾條解決思路:sql

    1. 檢查數據庫配置文件是否正確:驅動名 url 用戶名 口令 端口 數據庫
數據庫

    2. jdbc驅動包版本是否一致tomcat

    3. 數據庫服務是否正常啓動
服務器

    4. 用項目配置文件的配置,寫一個java程序可否正常鏈接架構

    經過第四步發現能夠正常鏈接,那就排除了前面3種可能。緊接着,我又細細的看了他spring的配置文件,發現也沒有什麼問題。這時候我又感受會不會是防火牆的因素,經過tomcat連數據庫時不容許,後來去看了他的防火牆,果真開着,而後我將全部的策略關閉後,再試,仍是不行。看來問題不在這裏。app

    如今惟一能確定的就是鏈接數據庫連不上,那問題出在哪裏呢?突然我想起來一個事情,你們平時都習慣了用MyEclipse,喜歡用MyEclipse部署本身的項目,那麼以前的項目部署後在不用的時候並無remove掉,因此啓動的時候頗有多是在加載另一個項目時堵塞,抱着試一試的心態,我將本項目remove掉,重啓tomcat,果真還卡在那裏,問題的緣由找到了。這樣致使tomcat沒法啓動,也沒有辦法經過登陸他的配置管理系統來中止其他的應用。最後只能將tomcat目錄下webapps下的項目都刪掉,而後啓動後在部署,運行正常!
webapp

相關文章
相關標籤/搜索