这个问题我实在是为整个 springsource 的员工蒙羞 如果大家使用 spring 控制事务,使用 Open Session In View 模式, com
mchange
resourcepool
TimeoutException: A client timed out while waiting to acquire a resource from com
mchange
resourcepool
BasicResourcePool-- timeout at awaitAvailable() com
mchange
ThreadPoolAsynchronousRunner$DeadlockDetector -- APPARENT DEADLOCK
还有诸如之类的若干 c3p0 报出的错误,对于流量稍大一点的网站,一般都会出现 当然,我确切的知道其原因是什么
我只是想知道这个巨大的问题为什么这么多年过去了,仍旧在反复的不断地恼人的无解的一再发生
我花了些时间 google 了一下,发现搜索 "com
mchange
resourcepool
TimeoutException" 这个字符串,前 5 页都没有给出正确答案
有一些解决方案,我称为workaround,并不是solution,例如 workaround1: workaround2: 是Spring 中配置c3p0 的时候,有一个配置属性是checkoutTimeout,把这个配置属性去掉就正常了
好了,我来评价下这两种 w orkaround 第一种:这么搞下去,你的数据库连接数迟早会用光,到时结果是一样的,好比得了癌症这样做只是让你晚死几年
第二种:很可笑,数据库死锁已经发生了,只不过牺牲掉等待的线程罢了,好比说有人在排队等饭吃,但永远等不到,你跟他说说