java - 使用jpa hibernate高并发会无法获取JDBC Connection

标签 java hibernate jpa concurrency

jpa hibernate时遇到高并发时,项目运行一段时间后会报“Unable to acquire JDBC Connection”错误 但是我添加hikari数据库连接池后,问题就解决了。为什么会出现这种情况或者没有其他方法可以解决?

最佳答案

这取决于您之前使用的池。

HikariCP-maxLifeTime 默认值为 30 分钟。此后,连接将返回给 DBMS,这通常会限制最大连接数。

DBCP默认没有限制。

如果您没有使用池,那么如果您自己不这样做,就没有人会关闭连接。

这可能就是您不再遇到异常的原因。但请注意,可能会留下内存泄漏。这意味着代码中的任何位置可能存储有 hibernate session ,这些 session 永远不会被使用,也永远不会被关闭。

关于java - 使用jpa hibernate高并发会无法获取JDBC Connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58724575/

相关文章:

java - 多对多关系中 @JoinTable 和共享 key 的异常

java - Android - 从 MainActivity 调用方法到 Fragment

java - Hibernate + Oracle IN 子句限制,如何解决?

java - 在 JodaTime 中使用 Hibernate 注释的问题

java - 使用 JPA 和 Spring 时如何更改 java.lang.Enum 的序数?

java - JPA:更新祖父实体时如何更新孙子实体?

java - JPA 与可连接的一对多映射问题

java - 使用连接池

java - 如何在排序结束时始终有空值

hibernate - 为 hibernate 中的唯一约束添加自定义消息