Я использую Play 2.0.2 для создания приложения Java. На днях столкнулся с проблемой. После ~100 запросов сервер начинает выдавать это исключение:
[[SQLException: истекло время ожидания свободного доступного соединения.]]
Я создаю новый экземпляр Connection
с DB.getConnection()
. Я не закрываю экземпляры Connection
, потому что существует только один экземпляр каждого запроса, и, насколько я знаю, он автоматически закрывает экземпляры Connection
при закрытии активного TCP-соединения. Я попытался увеличить значение db.default.connectionTimeout
до 100 seconds
, но это не помогло решить проблему. Затем я проверил активные соединения Postgresql, и активного соединения не было. Также я перезапустил Postgresql, но это также не помогло решить проблему.
Единственным решением этой проблемы на данный момент является уничтожение экземпляра Play20 и запуск нового.
Вот журнал, созданный Play2.0:
! @6cg9il6ki - Internal server error, for request [GET [AN URL]] ->
play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[SQLException: Timed out waiting for a free available connection.]]
at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [play_2.9.1.jar:2.0.2]
at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [play_2.9.1.jar:2.0.2]
at akka.actor.Actor$class.apply(Actor.scala:318) [akka-actor.jar:2.0.2]
at play.core.ActionInvoker.apply(Invoker.scala:113) [play_2.9.1.jar:2.0.2]
at akka.actor.ActorCell.invoke(ActorCell.scala:626) [akka-actor.jar:2.0.2]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [akka-actor.jar:2.0.2]
Caused by: java.sql.SQLException: Timed out waiting for a free available connection.
at com.jolbox.bonecp.BoneCP.getConnection(BoneCP.java:503) ~[bonecp.jar:0.7.1.RELEASE]
at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:114) ~[bonecp.jar:0.7.1.RELEASE]
at play.api.db.DBApi$class.getConnection(DB.scala:64) ~[play_2.9.1.jar:2.0.2]
at play.api.db.BoneCPApi.getConnection(DB.scala:273) ~[play_2.9.1.jar:2.0.2]
at play.api.db.DB$$anonfun$getConnection$1.apply(DB.scala:129) ~[play_2.9.1.jar:2.0.2]
at play.api.db.DB$$anonfun$getConnection$1.apply(DB.scala:129) ~[play_2.9.1.jar:2.0.2]
finally
) - person ndeverge   schedule 02.12.2012