Java Memory Heap settings are ignored

  • 7023608
  • 31-Dec-2018
  • 31-Dec-2018

Environment

eDirectory
Identity Manager
SUSE Linux Enterprise Server 12 (SLES 12)
Red Hat Enterprise Linux 7 (RHEL 7)

Situation

  • Out of memory
  • IDM Errors; e.g.
    • Message:  Code(-9076) Unhandled error in event loop: GC overhead limit exceeded
    • Error generating trace message: java.lang.OutOfMemoryError: GC overhead limit exceeded
    • Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-nnnnn"
  • Heap settings are ignored
    • DHOST_JVM_INITIAL_HEAP
    • DHOST_JVM_MAX_HEAP
    • DHOST_JVM_OPTIONS
  • Configuration files are ignored
    • /opt/novell/eDirectory/sbin/pre_ndsd_start_custom
    • /opt/novell/eDirectory/sbin/pre_ndsd_start
    • /etc/init.d/ndsd

Resolution

There are two options

1.  Set the heap size using iManager
Administration -> Identity Manager Overview -> [Edit Driver Set] -> Misc -> Java Environment Parameters
2.  Add Java Heap configuration to /etc/opt/novell/eDirectory/conf/env_idm
e.g.
# cat /etc/opt/novell/eDirectory/conf/env_idm
LD_LIBRARY_PATH=//opt/novell/eDirectory/lib64/nds-modules/jre/lib/amd64://opt/novell/eDirectory/lib64/nds-modules/jre/lib/amd64/server://opt/novell/eDirectory/lib64/nds-modules/jre/lib/amd64/native_threads::$LD_LIBRARY_PATH:/opt/novell/eDirectory/lib64/apr:/opt/novell/eDirectory/lib64:/opt/novell/eDirectory/../lib64:/opt/novell/eDirectory/lib64/nds-modules:$LD_LIBRARY_PATH
NDSD_TRY_NMASLOGIN_FIRST=true
DHOST_JVM_INITIAL_HEAP=134217728
DHOST_JVM_MAX_HEAP=3246391296

Option 2 has the advantage that if incorrect values are entered and eDirectory fails to start, the values can be more easily corrected.

Cause

Systemd systems such as SLES 12 and RHEL 7 are configured differently to older SysVinit systems

Additional Information