【发布时间】:2019-03-20 08:36:04
【问题描述】:
我已经检查了 max available connection 应该是 97,因为我的 max_connection 是 100 而 superuser_reserved_connections 默认是 3。
我正在使用hibernate-envers 5.2.3.Final 和Spring Boot 1.5.2.RELEASE 来管理数据库操作。
我正在使用@Autowired 连接存储库并将其传递给数百个线程,这些线程将从数据库中搜索并保存到。
连接异常提示我,但是当我通过pgAdmin4检查连接时
问题
- 为什么连接如此之高,而idle几乎占据了整个连接?
- 是不是在Hibernate中的每一个操作,我都会创建一个连接?有没有官方文档来详细说明这个设计?
- 在 Hibernate 中有什么方法可以释放空闲的吗?
- 或者实际上我应该研究另一个地方来代替 Hibernate?
更新
我通过缓存 java 代码中的数据以避免频繁搜索和保存解决了这个问题,但上面的问题仍然存在。
任何帮助将不胜感激;)
【问题讨论】:
-
空闲连接是您的连接池创建并保留以供重复使用的连接。如果您发现它们没有被重复使用但总是创建新连接,则您的应用程序中存在错误并且您的代码无法正确返回不再使用的连接到连接池。
-
感谢帮助 :) 但问题是我没有看到周围的连接池....太尴尬了,我只是直接使用休眠和 Spring Boot 并连接到本地数据库。跨度>
-
哇,看起来很棒,我明天回到办公室时会检查一下。非常感谢!
标签: hibernate spring-boot jpa postgresql-9.4