Java settings for the application server
The following JAVA_OPTS
settings are used by default when setting up a new ConSol CM system.
Default memory configuration for JBoss 7.4 on Java 11 (Xms
and Xmx
should be set to the same value):
-Xms4g -Xmx4g
Explanation:
-Xms4G
: Start the application server with initial heap size of approx. 4GB.-Xmx4G
: The maximum heap size for the application sever is also approx. 4GB.
These parameters are starting parameters for production systems. Depending on the size of the system it might be necessary to adjust them. The following factors are important in this context:
- number of concurrent users
- amount of cases, contacts, resources
- amount and size of emails
- amount and size of attachments
- size of the index
As an administrator, you need to check the Java heap size and the garbage collection activity using tools like jconsole or jvisualvm. If the heap size is higher than 80 - 90% of the maximum value and the garbage collection runs frequently, you need to increase the memory allocation (Xmx
).
The list includes the officially supported default parameters for JBoss 6.4. They should be suitable for most installations.
- -verbose:gc
- -XX:+PrintGCDetails
- -XX:+PrintGCDateStamps
- -XX:+UseGCLogFileRotation
- -XX:NumberOfGCLogFiles=5
- -XX:GCLogFileSize=3M
- -XX:-TraceClassUnloading
- -XX:+UseCompressedOops
- -Djava.net.preferIPv4Stack=true
- -Djboss.modules.policy-permissions=true
- -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS
Depending on the individual usage of the ConSol CM system, some additional settings might be needed. The following list includes settings which are used on some systems. As these settings are not officially supported, please contact your ConSol CM consultant or the ConSol CM support before using them in your production environment.
- -server
- org.apache.tomcat.util.http.Parameters.MAX_COUNT=6000
- org.apache.coyote.http11.Http11Protocol.MAX_HEADER_SIZE=65535
- org.apache.tomcat.util.http.MimeHeaders.MAX_COUNT=200
- com.arjuna.ats.arjuna.allowMultipleLastResources=true
- -Dhttp://apache.org/xml/features/nonvalidating/load-external-dtd=false (prevent cross-scripting attacks)
- -Djboss.platform.mbeanserver (enable the JMX bean server)
- -Djgroups.marshalling.compatible=true (use old JGroups protocol instead of newer one)
- -Dorg.jboss.resolver.warning=true (warning when an XML entity is defined as SYSTEM and the protocol is not
file://
orvfsfile://
) - -Dserialization.jboss=false (disable JBoss serialization and use standard Java serialization instead)
- -Dsun.rmi.dgc.client.gcInterval=3600000
- -XX:+UseParallelOldGC (use the old garbage collection or any better matching garbage collection depending on your requirements)
- -XX:+HeapDumpOnOutOfMemoryError
- -XX:HeapDumpPath=/some/path (use a path, you cannot use a file here)
- -Xloggc:some/path/based/on/JbossRoot/log/gc-%t.log
- -XX:ReservedCodeCacheSize=150m
- -XX:CompressedClassSpaceSize=128m