由于 org.postgresql.core.Field 导致的 OOM(Java 堆)错误

问题描述 投票:0回答:1

我有一个使用 Hibernate 连接到 PostgreSQL 后端的 Java 应用程序。经常收到 java.lang.OutOfMemoryError: Java 堆空间错误。在分析 OOM 上的堆转储并将其与正常运行期间获取的堆转储进行比较后,我注意到 org.postgresql.core.Field 对象显着增加。造成这种情况的潜在原因是什么?难道是Hibernate不正确关闭数据库连接造成的?

Jdk:18

数据库:Postgresql (42.3.5)

Hikaricp:4.0.3

春季启动:v2.7.0

java hibernate out-of-memory heap-dump oom
1个回答
0
投票

org.postgresql.core.Field
是 postgresql 驱动程序中的一个类。如果您有这些实例,那么您似乎没有释放 jdbc 资源。

在普通 jdbc 中,如果您不调用

ResultSet.close()
Connection.close()
,则可能会发生这种情况。

使用休眠,这些是通过休眠包装的

Session
所以你需要确保你正确地调用
Session.close()

你如何管理你的冬眠

Session
s?

© www.soinside.com 2019 - 2024. All rights reserved.