How Can We Help?
Tomcat command-line parametersTomcat command-line parameters
These parameters can be set on the command-line when running Tomcat to change configurations for Pure.
Java and Tomcat
Parameter | Command line | Description |
---|---|---|
Default options | -Xms5G -Xmx5G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/somewhere/with/a/lot/space |
These parameters should always be configured for a Tomcat running Pure.
We recommend using a 5 GB HEAP for most situations, please note that for more intensive use of the system a significantly larger HEAP may provide significant performance and stability improvements.
We strongly recommend that the HEAP dump on error options are configured, as they are essential for root cause analysis in the case of an out of memory error. |
G1 garbage collector | -XX:+UseG1GC -XX:MaxGCPauseMillis=200 |
The G1 garbage collector is the new standard garbage collector in Java and offers more predictable garbage collection pauses.
For Java 11 there is no reason to explicitly request the G1 garbage collector, and these values can safely be omitted. |
Multi-node option | -XX:+UseNUMA |
On systems with multiple nodes there may be a performance benefit if NUMA is enabled. |
SSL trust store | -Djavax.net.ssl.trustStore=/path/to/keystore.file -Djavax.net.ssl.trustStorePassword=password |
These are used if Pure should use a different trust store than that shipped with the Java Development Kit. This is usually done because a certificate issued by a small/non-standard certificate provider is used by a system that Pure needs to communicate with.
See the Oracle keytool documentation for how to work with certificates and java key stores. |
Proxy | -Dhttp.proxyHost=proxy.atira.dk -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.atira.dk -Dhttps.proxyPort=8081 |
If Pure is hosted behind a firewall that blocks outgoing requests, a proxy is required for Pure to connect to external systems. Pure uses the standard java proxy configuration parameters, see the Oracle documentation for a in-depth description. |
Database configuration | -Ddb.user=<database user> -Ddb.password=<password> -Ddb.url=<jdbc url to the database> -Ddb.maxActive=50 -Ddb.maxWait=60000 -DpropFile=/pack/scripts/startup.properties |
The first thing that Pure needs to be able to start up is a database. The three parameters (db.user, db.password and db.url) are required, Pure will not be able to connect to a database without them.
In addition to the database connection parameters other properties can be configured as well. The most important of these is the db.maxActive parameter which determines the maximum number of connections that is created by Pure. It is important that this number is greater than the number of Tomcat connector threads plus 5. These parameters can be specified either directly as parameters to the java VM or in the property file (propFile). The property file is recommended to keep the password from being visible to other users. |
Dspace | -Ddspace.performStatusCheckOnInitialization=<true|false> |
Determines if the DSpace collector should check it's configuration against the configured DSpace repository on startup. Defaults to true. |
File synchronisation | -DdisableFileSynchronization=true |
Disables synchronization of files between storages. See File storage for a description. |
File encoding | -Dfile.encoding=UTF-8 |
As of Pure 5.26.0, the required encoding is UTF-8 and Pure will not boot until it is met 09-Dec-2022 10:49:37.895 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [dk.atira.pure.server.lifecycle.web.LifecycleServletContextListener] java.lang.IllegalStateException: Invalid default charset. Default charset of Pure's Java VM must be UTF-8, but was windows-1252 The preferred way to change the default encoding used by the VM and the runtime UTF-8 in Windows (Windows Server 2019) is not a fully supported default encoding, it does exist in BETA. For Windows the file.encoding argument still works and is needed to get Pure to boot |
Pure
These parameters will override configuration in the database. These are mostly used when coping a production system into test, so you can override the production configuration.
Setting the parameters this way will disable the possibility to configure them from inside Pure, and if you change them on the command-line it requires a restart of Tomcat.
Parameter | Inside Pure | Command line | Description |
---|---|---|---|
Default URL |
|
-Dmount.points.defaultUrl=<url> |
Configuration of the default base url |
Module URL |
|
-Dmount.points.fullUrl.admin=<url> -Dmount.points.fullUrl.portal=<url> -Dmount.points.fullUrl.ws=<url> |
Configuration of each module URL. Mostly only the default URL is needed. |
|
-Dpure.mail.host=<smtp server> -Dpure.mail.port=<port> -Dpure.mail.reply-to=<email address> -Dpure.mail.forced-recipient-of-all-email=<email address> -Dpure.mail.from=<email address> -Dpure.mail.support-email-address=<email address> |
Configuration of mail server. The "Forced recipient of all email" setting is especially useful in a testing environment with production data, as all emails will be sent to this address instead of the email address for each user. |
|
File folders |
|
-Dcore.configuration.server_data_dir=<path> -Dcore.configuration.pure_index_folder=<path> -Dcore.configuration.pure_file_perm_folder=<path> |
The different folders where Pure stores files. |
Local file store | -Dcore.configuration.overwrite_store_mount_points=<path>
|
This parameter overwrites the mount points of all local file stores to the form: <path>/<storename> If more than one mount point exist on a store the subsequent mount points will be post-fixed with mount point index. ie. if local has 3 mount points they will be named: <path>/local <path>/local_1 <path>/local_2 |
|
File serving | -Dfile.servlet.disableASync=true |
By default Pure serves full text files asynchronous, to free up database connections and server threads while transferring file data. Some server setups seem to have problems reliably serving files this way, so this switch disables this functionality, and serves the files synchronously. | |
Development, Test, or Production mode | -Ddk.atira.pure.commons.shared.util.GlobalRuntimeInfo.environment=<test|dev> |
Set Pure to run in Test or Development mode. This is visual only See Development, Test, or Production mode for more information |
Updated at July 27, 2024