Hardware and Memory Requirements

Here are the recommended hardware and memory requirements for your in-house frevvo server.

Hardware Requirements

The minimum recommended hardware configuration for your frevvo server is:

  • 2 GHz 64-bit (x64) Quad core processor
  • 5 GB of system memory
  • 100 GB of storage

On This Page:

Memory Configuration

The frevvo 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 frevvo  server.

The first important step is to ensure that frevvo is installed on a machine with sufficient CPU and ram. "Sufficient" depends on your frevvo 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 frevvo server.

You will know when 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

frevvo as a Windows service

If you are running frevvo 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 frevvo as a Windows service for the changes to take effect.

Insight Server Memory Settings

By default, the <frevvo-home>\solr\bin\solr script sets the maximum Java heap size to 512M (-Xmx512m). This may not be sufficient, especially when reporting on/indexing many submissions. It may cause "out of memory" exceptions in the <frevvo-home>solr\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:

  1. Stop the Insight Server.
  2. Uncomment the set SOLR_JAVA_MEM statement in the OS-specific solr.in.* file (cmd for Windows, sh for Linux).
  3. Change the values.
    For example, to increase the max heap size to 1G use: -Xms512m –Xmx1g. For *nix OS, make sure SOLR_HEAP is commented out.
  4. Restart the Insight Server.
     
REM Increase Java Min/Max Heap as needed to support your indexing / query needs
set SOLR_JAVA_MEM=-Xms512m -Xmx512m

Memory/Performance

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:

  1. Increase memory allocations for the frevvo and Insight (Solr) servers. Please see the documentation below.
  2. Schedule a weekly restart of your frevvo and Insight (solr) servers. It usually takes a couple minutes to do this and is very helpful in preventing issues, memory leaks and potential server sluggishness and locks.
  3. If you are using a SQL Server database for frevvo, be sure to configure Snapshot Isolation for that database.
  4. Add thread count properties to the <frevvo-home>/tomcat/conf/frevvo-config.properties. These properties improve performance if you are experiencing slowness when using forms by increasing the CPU resources available to running form rules.

    Follow these steps:
    1. Stop frevvo.
    2. Navigate to <frevvo-home>/tomcat/conf.
    3. Edit the frevvo-config.properties file
    4. Add the following properties to the file and save the changes.

      frevvo.threadpool.coresize=40
      frevvo.threadpool.maxsize=400
      org.quartz.threadPool.threadCount=1

       

    5. Restart frevvo.

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, 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 frevvo is installed has enough memory. If you change -Xmx to 1g your machine will need more than 1g ram.

If you are running frevvo as a Windows service, refer to this documentation to increase the memory settings.

Out of Memory Errors in the Insight Server log:

The insight server has its own log file under <frevvo-home>solr\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 frevvo which has its own log and its own heap size.