diff --git a/assembly/src/release/bin/activemq b/assembly/src/release/bin/activemq index 9aa1eeeeb16..bc167975a30 100755 --- a/assembly/src/release/bin/activemq +++ b/assembly/src/release/bin/activemq @@ -198,8 +198,12 @@ if [ "$CONFIG_LOAD" != "yes" ];then echo fi +if [ -z "$ACTIVEMQ_OOM_OPTS" ] ; then + ACTIVEMQ_OOM_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=\"$ACTIVEMQ_DATA\" -XX:+ExitOnOutOfMemoryError" +fi + if [ -z "$ACTIVEMQ_OPTS" ] ; then - ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=\"$ACTIVEMQ_CONF\"/login.config" + ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY $ACTIVEMQ_OOM_OPTS -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=\"$ACTIVEMQ_CONF\"/login.config" fi diff --git a/assembly/src/release/bin/setenv b/assembly/src/release/bin/setenv index 799b640bc45..6c8ccadd470 100644 --- a/assembly/src/release/bin/setenv +++ b/assembly/src/release/bin/setenv @@ -31,10 +31,17 @@ # Set jvm memory configuration (minimal/maximum amount of memory) if [ -z "$ACTIVEMQ_OPTS_MEMORY" ] ; then - ACTIVEMQ_OPTS_MEMORY="-Xms64M -Xmx1G" + ACTIVEMQ_OPTS_MEMORY="-Xms512M -Xmx2G" fi + +# Dump the heap and terminate the JVM on OutOfMemoryError so the failure is +# captured for postmortem and the broker is not left running in a degraded state. +if [ -z "$ACTIVEMQ_OOM_OPTS" ] ; then + ACTIVEMQ_OOM_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$ACTIVEMQ_DATA -XX:+ExitOnOutOfMemoryError" +fi + if [ -z "$ACTIVEMQ_OPTS" ] ; then - ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config" + ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY $ACTIVEMQ_OOM_OPTS -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config" fi if [ -z "$ACTIVEMQ_OUT" ]; then