小编典典

Heroku / Play / BoneCp连接问题

java

我在heroku上有一个使用游戏的应用程序。最长的时间它运行良好,但是最近我开始得到这个:

Caused by: java.sql.SQLException: Timed out waiting for a free available connection.
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169) ~[hibernate-core-4.1.9.Final.jar:4.1.9.Final]
at com.jolbox.bonecp.BoneCP.getConnection(BoneCP.java:503) ~[bonecp-0.7.1.RELEASE.jar:0.7.1.RELEASE]

这是由于

org.postgresql.util.PSQLException: FATAL: too many connections for role "ejmatdbwywaugk"

现在这显然是一个连接泄漏,除了我使用的是JPA.em()。Play示例永远不会关闭这样获得的实体管理器。我尝试关闭它,但随后应用程序爆炸,说实体管理器已关闭。

有任何想法吗?


阅读 215

收藏
2020-10-15

共1个答案

小编典典

尝试使用BoneCP 0.8.0-rc1并使用以下配置:

db.default.idleMaxAge=10 minutes
db.default.idleConnectionTestPeriod=30 seconds
db.default.connectionTimeout=20 second
db.default.connectionTestStatement="SELECT 1"
db.default.maxConnectionAge=30 minutes
2020-10-15