BoneCp池具有已关闭的连接

时间:2013-11-06 13:09:29

标签: scala bonecp

我正在使用带有光滑的Bonecp数据源。并发现池包含已关闭的连接,因此我总是遇到此异常

java.sql.SQLException: Connection is closed!
    at com.jolbox.bonecp.ConnectionHandle.checkClosed(ConnectionHandle.java:459) ~[bonecp-0.8.0-rc3.jar:na]
    at com.jolbox.bonecp.ConnectionHandle.prepareStatement(ConnectionHandle.java:1180) ~[bonecp-0.8.0-rc3.jar:na]
    at scala.slick.session.Session$class.prepareStatement(Session.scala:29) ~[slick_2.10-1.0.1.jar:1.0.1]
    at scala.slick.session.BaseSession.prepareStatement(Session.scala:201) ~[slick_2.10-1.0.1.jar:1.0.1]
    at scala.slick.jdbc.StatementInvoker.results(StatementInvoker.scala:29) ~[slick_2.10-1.0.1.jar:1.0.1]
    at scala.slick.jdbc.StatementInvoker.elementsTo(StatementInvoker.scala:17) ~[slick_2.10-1.0.1.jar:1.0.1]
    at scala.slick.jdbc.Invoker$class.elements(Invoker.scala:20) ~[slick_2.10-1.0.1.jar:1.0.1]
    at scala.slick.jdbc.StatementInvoker.elements(StatementInvoker.scala:10) ~[slick_2.10-1.0.1.jar:1.0.1]
    at scala.slick.jdbc.Invoker$class.execute(Invoker.scala:33) ~[slick_2.10-1.0.1.jar:1.0.1]
    at scala.slick.jdbc.StatementInvoker.execute(StatementInvoker.scala:10) ~[slick_2.10-1.0.1.jar:1.0.1]
    at scala.slick.jdbc.UnitInvoker$class.execute(Invoker.scala:158) ~[slick_2.10-1.0.1.jar:1.0.1]
    at scala.slick.jdbc.StaticQuery0.execute(StaticQuery.scala:95) ~[slick_2.10-1.0.1.jar:1.0.1]
    at com.livestream.sql.table.MySqlTable.replace(MySqlTable.scala:31) ~[util-core_2.10-1.0.0.jar:1.0.0]
    at com.livestream.isilon.crawler.IsilonAssetCrawler$$anonfun$run$3.apply(IsilonAssetCrawler.scala:245) ~[isilon-asset-cleanup_2.10-1.0.0.jar:1.0.0]
    at com.livestream.isilon.crawler.IsilonAssetCrawler$$anonfun$run$3.apply(IsilonAssetCrawler.scala:244) ~[isilon-asset-cleanup_2.10-1.0.0.jar:1.0.0]
    at scala.slick.session.Database.withSession(Database.scala:38) ~[slick_2.10-1.0.1.jar:1.0.1]
    at com.livestream.isilon.crawler.IsilonAssetCrawler.run(IsilonAssetCrawler.scala:244) ~[isilon-asset-cleanup_2.10-1.0.0.jar:1.0.0]
    at com.livestream.isilon.crawler.IsilonAssetCrawler.run(IsilonAssetCrawler.scala:31) ~[isilon-asset-cleanup_2.10-1.0.0.jar:1.0.0]
    at com.livestream.util.task.TaskHttpApi$$anon$1$$anonfun$1$$anonfun$apply$1.apply(TaskHttpApi.scala:49) ~[workflow-core_2.10-1.0.0.jar:1.0.0]
    at com.livestream.util.task.TaskHttpApi$$anon$1$$anonfun$1$$anonfun$apply$1.apply(TaskHttpApi.scala:47) ~[workflow-core_2.10-1.0.0.jar:1.0.0]
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) ~[scala-library-2.10.3.jar:na]
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) ~[scala-library-2.10.3.jar:na]
    at scala.concurrent.impl.ExecutionContextImpl$$anon$3.exec(ExecutionContextImpl.scala:107) ~[scala-library-2.10.3.jar:na]
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) ~[scala-library-2.10.3.jar:na]
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) ~[scala-library-2.10.3.jar:na]
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [scala-library-2.10.3.jar:na]
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [scala-library-2.10.3.jar:na]

配置:

datasource {
  driver-class = "com.mysql.jdbc.Driver"
  partition-count = 2
  min-connections-per-partition = 8
  max-connections-per-partition = 16
  connection-timeout = 5s
  connection-test-statement = "select 1"
  query-execute-time-for-log = 2s
  default-auto-commit = true
  acquire-increment = 1
  acquire-retry-attempts = 10
  acquire-retry-delay = 1s
  idle-max-age = 10minutes
  max-connection-age = 1h
}

有人可以告诉我bonecp或我的配置有什么问题吗?

1 个答案:

答案 0 :(得分:0)

我发现最新的BoneCP版本有一个或多个与封闭连接相关的错误,我遇到了类似的例外情况。尝试升级到BoneCP的最新快照。