如何在春季测试中使用 liquibase 解决“已经有太多客户”的问题?
Posted
技术标签:
【中文标题】如何在春季测试中使用 liquibase 解决“已经有太多客户”的问题?【英文标题】:How to resolve problem "too many clients already" with liquibase in spring tests? 【发布时间】:2019-07-08 05:19:26 【问题描述】:在我的 spring-boot 应用程序中运行所有测试时,我得到 liquibase.exception.DatabaseException: org.postgresql.util.PSQLException: FATAL: 抱歉,客户端已经太多了。此异常在最后几个测试中引发 也许有人知道如何在不创建池的情况下管理 liquibase 中的连接? 项目中没有配置池。 通过“扩展 CrudRepository”对数据库的所有查询
liquibase.exception.DatabaseException: org.postgresql.util.PSQLException:致命:对不起,客户端太多 已经。
【问题讨论】:
【参考方案1】:AFAIK Liquibase 使用一个连接。可能还有另一个问题。您的 postgresql 数据库设置是什么?
尝试选择所有活动连接并查看它们的来源:
SELECT * FROM pg_stat_activity
显示最大连接数
SELECT * FROM pg_settings WHERE name = 'max_connections';
或
SHOW max_connections;
如果太低,可以在postgresql.conf
增加,然后重启db
【讨论】:
我已经做了好几次了。这是没有出路的。谢谢。 所以你的测试中可能存在连接泄漏 不应该。看起来对于每个测试,连接都会创建,但不会关闭。以上是关于如何在春季测试中使用 liquibase 解决“已经有太多客户”的问题?的主要内容,如果未能解决你的问题,请参考以下文章
Liquibase 无法找到用于 4.0 及更高版本的集成测试的更改日志文件
如何使用@WebMvcTest 春季测试在模拟服务中注入模拟的restTemplate
使用 H2 数据库和 Liquibase 配置 Spring Boot