JacORB does not release idle memory buffers

Solution Unverified - Updated -

Environment

  • JBoss Enterprise Application Platform (EAP) 5.1.2

Issue

Our system is running out of memory when exchanging large objects via Corba. After analyzing the heap dump we could track down this problem to the buffer management withing jacorb.

Resolution

In $PROFILE/conf/jacorb.properties change "jacorb.bufferManagerMaxFlush=-1" to a value greater than 0, for example 3600000.

Root Cause

In your $PROFILE/conf/jacorb.properties file there will be a "jacorb.bufferManagerMaxFlush=-1" line. If set to a number greater than zero, that is the number of miliseconds between reaper collections. If you set it to 3600000, it would clean up old large buffers once an hour.

The EAP version of JacORB also has a "jacorb.maxManagedBufSize" property, which controls what is considered large. "large" is anything that is (2 ^ maxManagedBufSize) bytes, with the default being 18 (256kb). You probably don't need to change it, but the setting is there.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.