使用play-slick时使用heroku postgres的间歇性连接失败

时间:2018-03-26 19:15:17

标签: postgresql scala heroku playframework slick

我在heroku上有一个播放应用程序,通过play-slick连接到postgres实例。部署新应用程序的时间大约有30%我在日志中得到了这个:

java.sql.SQLTransientConnectionException: db - Connection is not available, request timed out after 1007ms. 

当我重新启动应用程序时,它通常会重新启动,但有时需要几次尝试。

我可以做些什么来调试这个?

2 个答案:

答案 0 :(得分:0)

最有可能的是,有一段时间旧应用和新应用都试图获得与数据库的连接,这意味着你有你最大允许连接活跃。

有两种解决方案:

  • 升级您的数据库计划以允许更多连接
  • 将最大数据库连接减少一半

play-slick uses HikariCP用于池连接,因此您可以使用maximumPoolSize配置最大连接数。

答案 1 :(得分:0)

我相信我已经弄清楚问题是什么。我使用默认的heroku play Procfile,其中包含-Ddb.default.url=${DATABASE_URL},另外还有我的conf中指定的slick db url。删除前者解决了这个问题。