gpt4 book ai didi

java - 部署在 Tomcat 上的 DBCP 中的死锁问题

转载 作者:IT老高 更新时间:2023-10-28 13:52:13 24 4
gpt4 key购买 nike

我在 Spring 配置中使用 DBCP 数据源(使用默认配置)来管理与数据库的连接,当客户端数量增加时,我会遇到死锁情况。

我发现我正在使用的 DBCP 1.2.1 中存在死锁问题,应该在 1.4 中解决。于是我升级到1.4,但问题依旧。

在线程转储中,有许多线程被阻塞,顶部有以下堆栈跟踪:

   java.lang.Thread.State: WAITING on org.apache.commons.pool.impl.GenericObjectPool$Latch@b6b09e
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1104)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:200)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:350)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:261)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:631)

欢迎提出任何建议!

最佳答案

我切换到 c3p0 ,几年前。你可以试试。我相信你不需要改变太多,这只是一个配置游戏。

有点相关的话题,Connection pooling options with JDBC: DBCP vs C3P0 .好吧,实际上我把它联系起来了。

[已编辑,2012 年 10 月 19 日]

Tomcat 7 有一个不错的连接池,The Tomcat JDBC Connection Pool .

关于java - 部署在 Tomcat 上的 DBCP 中的死锁问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5714511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com