5

I am using Bonecp datasource with slick. And found that pool contains closed connection so I always encounter this exception

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]

Configuration:

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
}

Can somebody tell me what's wrong with bonecp or my configurations ?

om-nom-nom
  • 62,329
  • 13
  • 183
  • 228
pankajmi
  • 195
  • 1
  • 10
  • I have this issue when I am using play with slick while I am using threadlocalSession. Use ```db.withSession {implicit session => xxx}``` work around this issue. Hope this is helpful – jilen Dec 16 '13 at 09:18
  • I'm having same problem and I'm not using thread-local sessions. – arturaz Dec 18 '13 at 09:37

1 Answers1

0

I found that the latest BoneCP release had one or more bugs relating to closed connections, and I experienced similar exceptions. Try upgrading to the latest snapshot of BoneCP.

Robin Green
  • 32,079
  • 16
  • 104
  • 187