mysql maxstatements_mysql-如何确定c3p0 max_statements

我想知道如何正确确定c3p0 max_statements使用什么值.我经历了一些缓存死锁,这些死锁似乎可以根据我已阅读的所有SO Q& A指向我的max_statements配置.

我正在使用mysql,当我在有4个活动线程的情况下执行多线程时,似乎会发生死锁.

我的配置

org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider

10

50

50

1800

3600

例外

[WARN] async.ThreadPoolAsynchronousRunner com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@72df1587 -- APPARENT DEADLOCK!!! Complete Status:

Managed Threads: 3

Active Threads: 3

Active Tasks:

com.mchange.v2.c3p0.stmt.GooGooStatementCache$StatementDestructionManager$1UncheckedStatementCloseTask@e877a61

on thread: C3P0PooledConnectionPoolManager[identityToken->1hge0wd9a1o1iea71i8u346|1a799bb]-HelperThread-#2

com.mchange.v2.c3p0.stmt.GooGooStatementCache$StatementDestructionManager$1UncheckedStatementCloseTask@109b1150

on thread: C3P0PooledConnectionPoolManager[identityToken->1hge0wd9a1o1iea71i8u346|1a799bb]-HelperThread-#0

com.mchange.v2.c3p0.stmt.GooGooStatementCache$StatementDestructionManager$1UncheckedStatementCloseTask@3eb42946

on thread: C3P0PooledConnectionPoolManager[identityToken->1hge0wd9a1o1iea71i8u346|1a799bb]-HelperThread-#1

Pending Tasks:

com.mchange.v2.c3p0.stmt.GooGooStatementCache$1StmtAcquireTask@52729f95

Pool thread stack traces:

Thread[C3P0PooledConnectionPoolManager[identityToken->1hge0wd9a1o1iea71i8u346|1a799bb]-HelperThread-#0,5,main]

com.mysql.jdbc.PreparedStatement.realClose(PreparedStatement.java:2765)

com.mysql.jdbc.StatementImpl.close(StatementImpl.java:541)

com.mchange.v1.db.sql.StatementUtils.attemptClose(StatementUtils.java:53)

com.mchange.v2.c3p0.stmt.GooGooStatementCache$StatementDestructionManager$1UncheckedStatementCloseTask.run(GooGooStatementCache.java:938)

com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)

Thread[C3P0PooledConnectionPoolManager[identityToken->1hge0wd9a1o1iea71i8u346|1a799bb]-HelperThread-#1,5,main]

com.mysql.jdbc.PreparedStatement.realClose(PreparedStatement.java:2765)

com.mysql.jdbc.StatementImpl.close(StatementImpl.java:541)

com.mchange.v1.db.sql.StatementUtils.attemptClose(StatementUtils.java:53)

com.mchange.v2.c3p0.stmt.GooGooStatementCache$StatementDestructionManager$1UncheckedStatementCloseTask.run(GooGooStatementCache.java:938)

com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)

Thread[C3P0PooledConnectionPoolManager[identityToken->1hge0wd9a1o1iea71i8u346|1a799bb]-HelperThread-#2,5,main]

com.mysql.jdbc.PreparedStatement.realClose(PreparedStatement.java:2765)

com.mysql.jdbc.StatementImpl.close(StatementImpl.java:541)

com.mchange.v1.db.sql.StatementUtils.attemptClose(StatementUtils.java:53)

com.mchange.v2.c3p0.stmt.GooGooStatementCache$StatementDestructionManager$1UncheckedStatementCloseTask.run(GooGooStatementCache.java:938)

com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)

所以我的问题是如何确定这些值.我敢肯定,一定要有办法做到这一点.

我读过的文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值