【发布时间】:2010-10-24 13:14:35
【问题描述】:
有没有人有任何信息比较不同 ConnectionPool 实现的性能特征?
背景:我有一个应用程序在后台线程中运行数据库更新到同一个盒子上的 mysql 实例。使用数据源 com.mchange.v2.c3p0.ComboPooledDataSource 会给我们偶尔的 SocketExceptions: com.mysql.jdbc.CommunicationsException:由于底层异常导致通信链接失败:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: Broken pipe
STACKTRACE:
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
增加 mysql 连接超时会增加这些错误的频率。
这些错误在切换到不同的连接池(com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource)时消失了;但是性能可能更差,内存配置文件也明显如此(我们得到的 GC 比 c3p0 池少得多,而且大得多)。
【问题讨论】:
标签: java performance jdbc connection-pooling