Ask the Community
Groups
JMS (ActiveMQ) heap memory exception - Connect IT Community | Kaseya
<main> <article class="userContent"> <p><strong>PROBLEM</strong></p> <p>The Internal Communication Bus (aka JMS) component terminates with a heap memory exception.</p> <p> </p> <p><strong>CAUSE</strong></p> <p>Typically occurs when Traverse grows to more than 25 servers (BVE, DGEs, extensions).</p> <p><strong>RESOLUTION</strong></p> <p><strong>Do not implement the following changes unless instructed to do so via a ticket by Kaseya Support. These changes apply only to the 'Internal Communication Bus' component (a.k.a. JMS) on the BVE.</strong></p> <p> </p> <p>'TRAVERSE_HOME' should be replaced by the actual Traverse installation location in the paths below.</p> <p> </p> <p><strong>To increase the heap memory utilized by JMS/ActiveMQ on a Linux BVE:</strong></p> <ul><li>Install the 64bit Java 1.6 (Java 6 is a requirement) on the Traverse BVE, if not already present:</li> </ul><p><code class="code codeInline" spellcheck="false" tabindex="0">yum install java-1.6.0-openjdk </code></p> <ul><li>Stop all Traverse BVE components</li> </ul><p><code class="code codeInline" spellcheck="false" tabindex="0">cd TRAVERSE_HOME/etc ./traverse.init stop</code></p> <ul><li>Modify 'TRAVERSE_HOME/etc/jms.init' to use the 64bit Java Virtual Machine, instead of the 32bit version included with Traverse. For example if the 64bit Java is installed under '/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.34.x86_64/jre', then insert this line above 'JAVACMD=' in order to utilize the 64bit JVM:</li> </ul><p><code class="code codeInline" spellcheck="false" tabindex="0">JAVA_HOME="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.34.x86_64/jre" </code></p> <ul><li>In the same file, increase the maximum heap memory allocated from '512m' to '1536m' :</li> </ul><p><code class="code codeInline" spellcheck="false" tabindex="0">## Increase max memory to 1536</code></p> <p><code class="code codeInline" spellcheck="false" tabindex="0">JAVACMD="${JAVA_HOME}/bin/java -Xmx1536m -Xss256k -Djava.ext.dirs=${JAVALIB}"</code></p> <ul><li>Start the JMS component and ensure that it remains running:</li> </ul><p><code class="code codeInline" spellcheck="false" tabindex="0">./jms.init start </code></p> <ul><li>Then start the remaining Traverse components:</li> </ul><p><code class="code codeInline" spellcheck="false" tabindex="0">./traverse.init start<br></code></p> <p> </p> <p><strong>To increase the heap memory utilized by JMS/ActiveMQ on a Windows BVE:</strong></p> <ul><li>Install the 64bit Java 1.6 JRE from the Oracle web site (Java 6 is a requirement) on the Traverse BVE, if not already present</li> <li>Stop all Traverse BVE components via the Traverse Service Controller</li> <li>Modify 'TRAVERSE_HOME\bin\jms.lax' to use the 64bit Java instead of the 32bit version included with Traverse. For example, if the 64bit Java binary is installed under 'C:\Program Files\Java\jre6', then change this line to reference the 64bit JVM:<br><br><code class="code codeInline" spellcheck="false" tabindex="0">lax.nl.current.vm=C:\\Program Files\\Java\\jre6\\bin\\java.exe<br></code> </li> <li>Also increase the maximum heap memory allocated from '512m' to '1536m' :<br><br><code class="code codeInline" spellcheck="false" tabindex="0">lax.nl.java.option.additional=-Xmx1536m -Xss256k ....</code> <br><br></li> <li>Start only the 'Internal Communication Bus' component using the 'Traverse Service Controller' and ensure that this component remains running</li> <li>Start the remaining Traverse components via 'Traverse Service Controller'</li> </ul><p> </p> <p> </p> <p><strong>APPLIES TO </strong></p> <p>All versions of Traverse.</p> <p> </p> <p><strong>REFERENCE </strong></p> <p>None.</p> </article> </main>