在 Scala play 和 slick 和 SQLTransientConnectionException (timeout)

问题描述

尽管付出了巨大的努力,但我们在超时/sqlTransientConnectionException 方面没有取得任何进展。

播放:2.8.7 玩滑头:5.0.0

在 AWS 上部署时,我们很快就会遇到 slick/hikari 在尝试分配可用数据库连接之一时超时的情况。我假设他们当时都在使用中,Hikari 调试日志似乎证实了这一点。

该服务混合运行较长的后台事务,将多个 DBIO 与间歇性非数据库操作(例如 Web 服务调用)和短期事务(http 客户端请求)相结合,仅执行 1 次或几次数据库调用

已经尝试了 slick.dbs.default.db.maxConnectionsslick.dbs.default.db.numThreads 的多种值组合,但似乎没有太大区别。在 AWS 上很快就会抛出超时。它永远不会在本地发生,至少在 maxConnection 大于 numThreads 时不会发生。将它们设置为相等确实会使在本地测试时也会出现超时。

此外,我们在网上找到的信息令人困惑/矛盾。

一个地方 (A case when Slick uses more connections than threads),它说连接数比配置的线程数多,但在其他地方,它说线程应该等于连接数(https://github.com/akka/akka-persistence-jdbc/issues/177)(我猜可能与版本有关)。

我们或多或少没有灵感了,因此所有指向某个方向以继续尝试查明并解决此问题的原因的提示肯定会受到赞赏。

预先感谢!

彼得

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)