My Oracle Support Banner

Primary Note on Troubleshooting Tuxedo Memory Leaks (Doc ID 1225079.1)

Last updated on JULY 26, 2023

Applies to:

Oracle Tuxedo - Version 6.5 to 12.1.1
Information in this document applies to any platform.


Problem Description

Memory leaks are often thought of as failures to release unused memory by a computer program. Strictly speaking, that behavior is just more memory consumption.  A memory leak occurs when the program loses the ability to free the memory.  The behavior diminishes the performance of the computer, as it becomes unable to use all its available memory.

Memory leak is a common error in programming, especially when programming in languages that do not have garbage collection (GC), like C and C++, which deeply rely on pointer operations.

The main issue is that it is normally a component of the operating system which is responsible for managing memory, and so the result of a memory leak is that over time more memory is used by the system as a whole, not just by the process or program.  This leads to the point where too much of the available system memory is allocated and the system or critical subsystems can cease to function.

Some languages provide automatic GC, such as Java, C#, and LISP.  Note that in these languages, there can be memory leaks too.  The memory management does not free an object that is still referenced by other objects. For example, store an object in a Vector object in Java, but later lose or forget about the index.  The developer is responsible for cleaning up references after use.  Nevertheless, automatic memory management is more convenient for developers, as they do not need to implement freeing routines or worry about the sequence in which cleanup is performed.  This garbage collection does impact the performance of the application due to the extra checks that the application has to make.

The purpose of this knowledge article is to identify how memory leaks, and look at some tools and techniques for tracking them down.

Troubleshooting Steps

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
 Problem Description
Troubleshooting Steps
 Problem Troubleshooting
 Quick Links
 Understanding Memory Leaks
 Difference between process address space and physical memory
 Why does the problem occur?
 Problem Investigation
 Monitor Process Virtual Memory Size
 Windows Task Manager
 Windows Performance Monitor
 Isolating Application Components to Track Leaks
 Isolating Application Services
 Isolating Application Foundation Libraries/Code
 Memory Profiling Tools
 Memory Profile Tool Links
 Common Memory Leak Causes
 Unpaired tpalloc()/malloc() with tpfree()/free()
 Overwritten pointers
 C library function bug

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