c3p0引起的死鎖怎么處理
發(fā)表時(shí)間:2023-07-20 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:7
[摘要]代碼測(cè)試本地?zé)o誤,于是放到外網(wǎng)服務(wù)器測(cè)試,出現(xiàn)了這樣的錯(cuò)誤com.mchange.v2.async.ThreadPoolAsynchronousRunner -46651078 [Timer-18]...
代碼測(cè)試本地?zé)o誤,于是放到外網(wǎng)服務(wù)器測(cè)試,出現(xiàn)了這樣的錯(cuò)誤
com.mchange.v2.async.ThreadPoolAsynchronousRunner -466510
78 [Timer-18] WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1c17bd4 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
看到這個(gè)頭都大了,怎么辦呢?為什么出現(xiàn)這樣的情況?
我的答案是:
因?yàn)閿?shù)據(jù)庫(kù)的連接數(shù)是有限的,每次應(yīng)用啟動(dòng)C3p0都會(huì)占用數(shù)據(jù)庫(kù)的連接來(lái)填充C3p0的連接池,而當(dāng)數(shù)據(jù)庫(kù)的資源被占光時(shí)就會(huì)因?yàn)闊o(wú)法獲得共享資源而報(bào)死鎖。
更改對(duì)應(yīng)配置文件里面的最大連接數(shù)和初始化連接數(shù):
未改前:
<property name="maxPoolSize" value="100" />
<property name="initialPoolSize" value="2" />
修改之后:
<property name="maxPoolSize" value="1" />
<property name="initialPoolSize" value="1" />
重新部署運(yùn)行,ok!
以上就是c3p0引起的死鎖如何解決 的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。