集成C3P0连接池后控制台狂抛com.mchange.v2.c3p0.SQLWarnings错误解决方案

      在sqlserver2008集成C3P0连接池时,很多朋友添加网上下载的sqlserver驱动jar包后,会报如下的SQLWarning,原因是因为jar包的原因,网上很多下载下来的都是四个jar文件的,但是如果你都添加上去,C3P0默认会去找低版本支持的jar包,但是sqlserver2008官方驱动jar包其实就一个,微软在sqlserver2008之后就对其进行了优化,并且链接url、驱动名称也做了相应的改动,如果你的运行环境是jdk版本是5或者以上,你只需要添加一个jar包即可,控制台便不会出现如下的SQLWarning信息,jar名称为sqljdbc4.jar,附上驱动名称:com.microsoft.sqlserver.jdbc.SQLServerDriver, JDBC_URL:jdbc:sqlserver://192.168.50.88:1433;DatabaseName=xxxx,方便注册驱动不成的朋友对号入座


 2014-11-27 16:15:33,531 INFO [com.mchange.v2.c3p0.SQLWarnings] - [Microsoft][SQLServer 2000 Driver for JDBC]Database changed to oa11
 java.sql.SQLWarning: [Microsoft][SQLServer 2000 Driver for JDBC]Database changed to oa11
at com.microsoft.jdbc.base.BaseWarnings.createSQLWarning(Unknown Source)
at com.microsoft.jdbc.base.BaseWarnings.get(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getWarnings(Unknown Source)
at com.mchange.v2.c3p0.impl.NewProxyConnection.getWarnings(NewProxyConnection.java:907)
at com.mchange.v2.c3p0.SQLWarnings.logAndClearWarnings(SQLWarnings.java:42)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:187)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
 2014-11-27 16:15:33,531 INFO [com.mchange.v2.c3p0.SQLWarnings] - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将数据库上下文改为 'oa11'。
 java.sql.SQLWarning: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将数据库上下文改为 'oa11'。
at com.microsoft.jdbc.base.BaseWarnings.createSQLWarning(Unknown Source)
at com.microsoft.jdbc.base.BaseWarnings.createSQLWarning(Unknown Source)
at com.microsoft.jdbc.base.BaseWarnings.get(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getWarnings(Unknown Source)
at com.mchange.v2.c3p0.impl.NewProxyConnection.getWarnings(NewProxyConnection.java:907)
at com.mchange.v2.c3p0.SQLWarnings.logAndClearWarnings(SQLWarnings.java:42)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:187)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
2014-11-27 16:15:33,546 INFO [com.mchange.v2.c3p0.SQLWarnings] - [Microsoft][SQLServer 2000 Driver for JDBC]Language changed to 简体中文
 java.sql.SQLWarning: [Microsoft][SQLServer 2000 Driver for JDBC]Language changed to 简体中文
at com.microsoft.jdbc.base.BaseWarnings.createSQLWarning(Unknown Source)
at com.microsoft.jdbc.base.BaseWarnings.createSQLWarning(Unknown Source)
at com.microsoft.jdbc.base.BaseWarnings.createSQLWarning(Unknown Source)
at com.microsoft.jdbc.base.BaseWarnings.get(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getWarnings(Unknown Source)
at com.mchange.v2.c3p0.impl.NewProxyConnection.getWarnings(NewProxyConnection.java:907)
at com.mchange.v2.c3p0.SQLWarnings.logAndClearWarnings(SQLWarnings.java:42)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:187)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 c3p0 数据库连接池时,如果出现 com.mchange.v2.resourcepool.TimeoutException 异常,一般是因为连接池中的连接已经全部被占用,无法为新的连接请求提供连接。 解决方法如下: 1. 增加连接池大小 可以通过增加连接池大小来解决该问题,可以在 c3p0 配置文件中修改 maxPoolSize 属性,例如将其从默认值 15 增加到 30。 2. 减少连接占用时间 如果连接池中的连接被占用的时间比较长,也容易出现该异常。可以尝试通过优化 SQL 查询语句、减少事务处理时间等方式来减少连接占用时间。 3. 调整超时时间 可以通过修改 c3p0 配置文件中的 checkoutTimeout 属性来调整连接超时时间,默认值为 0,表示无限制等待连接。可以将其设置为一个较短的时间,例如 1000ms。 4. 关闭不必要的连接 在使用连接池时,需要注意及时关闭不必要的连接,避免连接占用过多的资源,导致连接池无法为新的连接请求提供连接。可以通过在 finally 块中关闭连接来解决该问题,例如: ``` Connection conn = null; try { conn = c3p0.getConnection(); // 执行 SQL 查询操作 } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 通过以上几种方式,可以有效解决 c3p0 数据库连接池出现 com.mchange.v2.resourcepool.TimeoutException 异常的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值