播放2.4 / Slick 3.1:数据库演进连接泄漏

时间:2015-12-09 11:57:07

标签: scala playframework slick playframework-2.4 hikaricp

我有Play 2.4和Slick 3.1的默认设置,我正在使用数据库演进(我的数据库是PostgreSQL)。似乎进化会造成连接泄漏。

我正在连接两个数据库(prod和test):

slick.dbs.default.driver = "slick.driver.PostgresDriver$"
slick.dbs.default.db.driver = "org.postgresql.Driver"
slick.dbs.default.db.url = "jdbc:postgresql://localhost:5432/et"
slick.dbs.default.db.user = "postgres"
slick.dbs.default.db.password = "postgres"

slick.dbs.test.driver = "slick.driver.PostgresDriver$"
slick.dbs.test.db.driver = "org.postgresql.Driver"
slick.dbs.test.db.url = "jdbc:postgresql://localhost:5432/et_test"
slick.dbs.test.db.user = "postgres"
slick.dbs.test.db.password = "postgres"

这是应用程序启动前的连接计数:

et=# select count(*) from pg_stat_activity;
 count 
-------
     3
(1 row)

这是应用程序启动后的连接数:

et=# select count(*) from pg_stat_activity;
 count 
-------
    45
(1 row)

似乎每个数据库分配21个连接 - 总共42个,足够公平。

这是点击“apply evolutions”后的连接数:

et=# select count(*) from pg_stat_activity;
 count 
-------
    87
(1 row)

似乎evolutions每个数据库分配21个连接,所以另外42个。

应用程序运行10分钟后空闲:

et=# select count(*) from pg_stat_activity;
 count 
-------
    87
(1 row)

这看起来像是由演变产生的明显的连接泄漏,不是吗?如我错了请纠正我。关于如何解决这个问题的任何想法?

0 个答案:

没有答案