Javaアプリケーションを作成するためにPlay2.0.2を使用しています。数日間、問題が発生しています。〜100の要求の後、サーバーはこの例外のスローを開始します。
[[SQLException:利用可能な無料の接続を待機してタイムアウトしました。]]
Connection
withの新しいインスタンスを作成しますDB.getConnection()
。各リクエストのインスタンスは1つしかないため、インスタンスを閉じません。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]