The Tomcat bundle comes pre-configured with default memory usage settings. While the defaults are sufficient for initial usage, as your forms, business logic and submissions grow, so will the memory needs of the server.
The first important step is to ensure that is installed on a machine with sufficient cpu and ram. "Sufficient" depends on your usage (number of users, number of forms/flows in use, number of submissions per day, etc.)
After making memory configuration changes you must restart the server.
You will know when you need to increase allocated memory when you see two common errors appear in the Tomcat logfiles <frevvo-home>/tomcat/logs. You can tune the frevvo/tomcat installation by editing <frevvo-home>/tomcat/bin/setenv.bat on Windows and setenv.sh on Unix.
You'll see something like this in setenv.[bat,sh]:
set CATALINA_OPTS=%CATALINA_OPTS% -Xms256m -Xmx1024m
If you are running as a Windows service, you will have to edit frevvo/tomcat/bin/service.bat line to increase the Java Heap and Permgen spaces. Here is an example of the line you need to edit in that file:
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-XX:+UseConcMarkSweepGC;-XX:+CMSClassUnloadingEnabled;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;- Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;-Dfile.encoding=UTF-8;-Djava.awt.headless=true;-Dspring.config.location=file:///%CATALINA_BASE%/conf/,file:///%CATALINA_BASE%/conf/frevvo-config.properties;- Dderby.stream.error.file=%CATALINA_BASE%/logs/derby.log" --JvmMs 256 --JvmMx 1024
See the Apache documentation on Tomcat Windows Service for more details.
After making these modifications to the service.bat file, you must Remove/Reinstall Live Forms as a Windows service for the changes to take effect.
By default, the <frevvo-home>\solr-x.x.x\bin\solr (replace "x.x.x" with the version number) script sets the maximum Java heap size to 512M (-Xmx512m). This may not be sufficient especially when reporting on/indexing a large number of submissions. It may cause "out of memory" exceptions in the <frevvo-home>solr-x.x.x\server\logs\solr.log file. The JVM heap size can be increased to resolve this. Make sure that the machine where the Insight Server is installed has enough memory to accommodate your changes.
Follow these steps:
REM Increase Java Min/Max Heap as needed to support your indexing / query needs set SOLR_JAVA_MEM=-Xms512m -Xmx512m
You must size your hardware platform to your specific form usage characteristics. As the number of concurrent users and forms/flows increases so must the system memory. For a medium use production server consider increasing the JVM RAM allocation to 6 or 8 gigabytes. Refer to the memory configuration topics below for the details
For issues related to Memory or Performance, frevvo recommends the following:
Add the following properties to the file and save the changes.
frevvo.threadpool.coresize=40 frevvo.threadpool.maxsize=400 org.quartz.threadPool.threadCount=1
Solutions for memory errors are discussed below.
If you see "Out of Memory" errors in the <frevvo-home>\tomcat\logs\frevvo.log, implement the solutions listed here:
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: Java heap space
To solve this, refer to this documentation to increase the minimum and maximum heap size via the parameters: -Xmx and -Xms.
For example: -Xms512m to -Xmx1g. Make sure also that the machine where is installed has enough memory. If you change -Xmx to 1g your machine will need more then 1g ram.
If you are running as a Windows service, refer to this documentation to increase the memory settings.
The insight server has its own log file under <frevvo-home>solr-x.x.x\server\logs. If you see an Out of Memory exception in this log, review Insight Server Memory Settings to change the Insight Server heap size.
This is independent of which has its own log and its own heap size.