Oracle.Jdbc.Driver.T4cconnection And Oracle.Jdbc.Driver.T4cpreparedstatement Building Up Memory Causing java.lang.OutOfMemoryError in B2B Application (Doc ID 1414025.1)

Last updated on MARCH 08, 2017

Applies to:

JDBC - Version 10.1.0.5 and later
Information in this document applies to any platform.
***Checked for relevance on 29-Aug-2013***

Symptoms


B2B application running on Oracle Application Server 10.1.2.3 on AIX is frequently failing with java.lang.OutOfMemoryError:


--------
11/09/18 12:36:48 Start process
--------
11/09/18 12:36:54 Oracle Application Server Containers for J2EE 10g (10.1.2.3.0) initialized
11/09/19 17:44:14 java.lang.OutOfMemoryError: JVMCI015:OutOfMemoryError, cannot create anymore threads due to memory or resource constraints <- next day
11/09/19 17:44:15 at java.lang.Thread.start(Native Method)
11/09/19 17:44:15 at com.evermind.util.ReleasableResourcePooledExecutor.addThread(ReleasableResourcePooledExecutor.java:121)
11/09/19 17:44:15 at EDU.oswego.cs.dl.util.concurrent.PooledExecutor.execute(PooledExecutor.java(Compiled Code))
11/09/19 17:44:15 at com.evermind.util.ThreadPool.launch(ThreadPool.java(Compiled Code))
11/09/19 17:44:15 at com.evermind.server.http.AJPConnectionListener.run(AJPConnectionListener.java(Compiled Code))
11/09/19 17:44:15 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
11/09/19 17:44:15 at java.lang.Thread.run(Thread.java:570)

--------
11/09/19 17:45:24 Stop process
--------
JVMDBG001: malloc failed to allocate 100016 bytes, time: Mon Sep 19 17:45:31 2011

**Out of memory, aborting**

*** panic: JVMCL052: Cannot allocate memory in initializeHeap for heap segment
JVMDG217: Dump Handler is Processing Signal 6 - Please Wait.
JVMDBG001: malloc failed to allocate 2621440 bytes, time: Mon Sep 19 17:45:31 2011

JVMDBG001: malloc failed to allocate 2097152 bytes, time: Mon Sep 19 17:45:31 2011

JVMDBG001: malloc failed to allocate 1572864 bytes, time: Mon Sep 19 17:45:31 2011

JVMDBG001: malloc failed to allocate 1048576 bytes, time: Mon Sep 19 17:45:31 2011

JVMDBG001: malloc failed to allocate 524288 bytes, time: Mon Sep 19 17:45:31 2011

JVMDG305: Java core not written, unable to allocate memory for print buffer.
JVMDG215: Dump Handler has Processed Error Signal 6.
Error: IOException communicating with the remote server: Disconnected



It is found that there are two classes, oracle.jdbc.driver.T4CConnection and oracle.jdbc.driver.T4CPreparedStatement that are building up memory over a period of time and not releasing the same and causing heap dumps.

There is the need to bounce the container to recover every time this happens.

Cause

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms