My Oracle Support Banner

Frequent OOM Pointing To Hibernate StatefulPersistenceContext (Doc ID 2584811.1)

Last updated on MAY 02, 2024

Applies to:

Oracle WebLogic Server - Version and later
Information in this document applies to any platform.


On WLS12. with JDK1.8.u101, the customer app has been working fine for years and its data layer is based on Hibernate.

The day after a new version of customer app was released, the WebLogic instances slowed down and out of memory exceptions appeared in log files.
The WLS instance was restarted, but the event repeated every 2-3 hours.
Even when the heap was increased in 2G, the event continued occuring.
The previous version of customer app was reinstalled, but the issue continued.

Support recommended to start the problematic instances with the JVM options to collect a GC log file and heap dump file under OOM condition, modifying the <DOMAIN>/bin/ file:

1- to get a GC log file:
-Xloggc:gclog_${SERVER_NAME}.txt -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -verbose:gc
2- to create a heap dump file under OOM condition:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=HeapDumpOOMR_${SERVER_NAME}.hprof

As a result, the final JVM options included:

Initial suspects pointed to the customer app and how it was handling the Hibernate API, but customer insisted there was no change on handling Hibernate between the last 2 versions of their app.

On the other hand the GC log file showed peaks every 20 minutes, matching with performance issues seen by final clients.

Eventually one of these peaks matched with an OOM event.


No known changed, hence the conditions that triggered this issue in a stable system running for years, are unknown.


To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.