上面配置中最重要的就是hibernate.c3p0.testConnectionOnCheckout這個(gè)屬性,它保證了我們前面說(shuō)的每次取出連接時(shí)會(huì)檢查該連接是否被關(guān)閉了。不過(guò)這個(gè)屬性會(huì)對(duì)性能有一些損耗,引用我參考的博客上得話:程序能用是第一,之后才是它的性能(又不是不能容忍)。
當(dāng)然,c3p0自帶類似于select 1這樣的check機(jī)制,但是就像我說(shuō)的,除非你將check機(jī)制的間隔時(shí)間把握的非常好,否則,問(wèn)題是沒(méi)有解決的。
好了,至此,困擾我的問(wèn)題解決完了。希望上面的這些整理可以為我以后碰到類似的問(wèn)題留個(gè)思路,也可以為正在被此問(wèn)題困擾的人提供一絲幫助。
最后補(bǔ)充點(diǎn)東西:
1,一些c3p0的屬性方法總結(jié):
datasource.c3p0.acquireIncrement=10當(dāng)連接池中的連接用完時(shí),C3P0一次性創(chuàng)建新連接的數(shù)目;
datasource.c3p0.minPoolSize=50連接池中保留的最小連接數(shù)。默認(rèn)為15
datasource.c3p0.maxPoolSize=400連接池中保留的最大連接數(shù)。默認(rèn)為15;
datasource.c3p0.initialPoolSize=50初始化時(shí)創(chuàng)建的連接數(shù),應(yīng)在minPoolSize與maxPoolSize之間取值。默認(rèn)為3;
datasource.c3p0.maxIdleTime=1800最大空閑時(shí)間,超過(guò)空閑時(shí)間的連接將被丟棄。為0或負(fù)數(shù)則永不丟棄。默認(rèn)為0;
datasource.c3p0.acquireRetryAttempts=100定義在從數(shù)據(jù)庫(kù)獲取新連接失敗后重復(fù)嘗試獲取的次數(shù),默認(rèn)為30;
datasource.c3p0.acquireRetryDelay=20兩次連接中間隔時(shí)間,單位毫秒,默認(rèn)為1000;
datasource.c3p0.debugUnreturnedConnectionStackTraces=true
datasource.c3p0.maxStatements=0JDBC的標(biāo)準(zhǔn)參數(shù),用以控制數(shù)據(jù)源內(nèi)加載的PreparedStatement數(shù)量。但由于預(yù)緩存的Statement屬 于單個(gè)Connection而不是整個(gè)連接池。所以設(shè)置這個(gè)參數(shù)需要考慮到多方面的因素,如果maxStatements與 maxStatementsPerConnection均為0,則緩存被關(guān)閉。默認(rèn)為0;
datasource.c3p0.idleConnectionTestPeriod=1800隔多少秒檢查所有連接池中的空閑連接,默認(rèn)為0表示不檢查;
datasource.c3p0.breakAfterAcquireFailure=true獲取連接失敗將會(huì)引起所有等待獲取連接的線程拋出異常。但是數(shù)據(jù)源仍有效保留,并在下次調(diào) 用getConnection()的時(shí)候繼續(xù)嘗試獲取連接。如果設(shè)為true,那么在嘗試獲取連接失敗后該數(shù)據(jù)源將申明已斷開(kāi)并永久關(guān)閉。默認(rèn)為 false;
datasource.c3p0.testConnectionOnCheckout=false因性能消耗大請(qǐng)只在需要的時(shí)候使用它。如果設(shè)為true那么在每個(gè)connection提交的時(shí)候都 將校驗(yàn)其有效性。建議使用idleConnectionTestPeriod或automaticTestTable
datasource.c3p0.autoCommitOnClose=true連接關(guān)閉時(shí)默認(rèn)將所有未提交的操作回滾。默認(rèn)為false;
datasource.c3p0.maxStatementsPerConnection=100連接池內(nèi)單個(gè)連接所擁有的最大緩存Statement數(shù)。默認(rèn)為0;
2,本問(wèn)題中,再多加入
3,記得添加兩個(gè)jar包:我添加的版本是c3p0-0.9.2.1.jar和mchange-commons-java-0.2.3.4.jar
若后面有新的問(wèn)題 隨時(shí)補(bǔ)充.
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com