JacORB does not release idle memory buffers
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.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
