c3p0引起的死鎖如何解決

代碼測試本地無誤,于是放到外網(wǎng)服務器測試,出現(xiàn)了這樣的錯誤

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!

看到這個頭都大了,怎么辦呢?為什么出現(xiàn)這樣的情況?

我的答案是:

因為數(shù)據(jù)庫的連接數(shù)是有限的,每次應用啟動C3p0都會占用數(shù)據(jù)庫的連接來填充C3p0的連接池,而當數(shù)據(jù)庫的資源被占光時就會因為無法獲得共享資源而報死鎖。

更改對應配置文件里面的最大連接數(shù)和初始化連接數(shù):

未改前:

<property></property>??  <property></property>

修改之后:

<property></property>??  <property></property>

重新部署運行,ok!

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享