Here are the recommended hardware and memory requirements for your in-house server.
Hardware Requirements
The minimum recommended hardware configuration for your Live Forms server is:
- 2 gigahertz (GHz) 64-bit (x64) processor with 4 cores
- 5 gigabyte (GB) of system memory
- 100 GB hard drive
However 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 topic below.
Memory Configuration
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 JAVA_OPTS=-Xms128m -Xmx512m -Djava.awt.headless=true -Dfrevvo.users.path="%CATALINA_HOME%\..\data\users"
Insight Server Memory Settings
By default, the <frevvo-home>\solr-5.4.1\bin\solr 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-5.4.1\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:
- Stop the Insight Server.
- Uncomment the SOLR_JAVA_MEM parameter in the OS specific solr.in.* file (cmd for windows, sh for linux).
- Change the value.
For example, to increase the max heap size to 1G use: -Xms512m –Xmx1g. Make sure SOLR_HEAP is commented out. - Restart the Insight Server.
# Increase Java Heap as needed to support your indexing / query needs #SOLR_HEAP="512m" # Expert: If you want finer control over memory options, specify them directly # Comment out SOLR_HEAP if you are using this though, that takes precedence SOLR_JAVA_MEM="-Xms512m -Xmx1g"
Troubleshooting
Solutions for memory errors are discussed below.
Out of Memory Errors in frevvo.log
If you see "Out of Memory" errors in the <frevvo-home>\tomcat\logs\frevvo.log, implement the solutions listed here:
OutOfMemoryError: Java heap space
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: Java heap space
To solve this edit setenv.[bat,sh] 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 installed. If you change -Xmx to 1g your machine will need more then 1g ram.
OutOfMemoryError: PermGen space
MemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space
Java has a fixed space allocated for classes and other statics that is usually enough in normal cases, but could be quickly filled up if there is on the fly code generation, significant business logic in your forms or if and the Insight server are running on the same machine.
To solve this edit setenv.[bat,sh] increase the maximum perm size via the paramenter: -XX:MaxPermSize
For example: -XX:MaxPermSize=128M
Out of Memory Errors in the Insight Server log:
The insight server has its own log file under <frevvo-home>solr-5.4.1\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.