System Properties

Table of Contents

Properties

Start your application server with the system property"system.properties.load" set to true to load the external file calledsystem.properties. This is given as a convenient way to ensure all propertiesare set for deployment. When the server starts, the portal will loadsystem.properties and then system-ext.properties.

Start your application server with the system property"system.properties.final" set to true if the properties of system.propertiesoverride all similar command line properties. If set to false, the propertiesof system.properties will be set if and only if those properties are notcurrently set.

Some application servers require you to set the "file.encoding" and"user.timezone" on startup regardless of system.properties because theapplication server reads these properties before system.properties is everloaded.


Top of Page

Java


The file encoding must be set to UTF-8 in order for the internationalization to work correctly.

Defaults:

    file.encoding=UTF-8


Java uses the underlying operating system to generate images. If you are using Unix and do not start the portal in a X Windows session, then Java will not know how to generate images and you'll get lots of nasty exceptions. Setting this property to true will fix that. Sometimes this property cannot be set dynamically when the server starts and you'll need to edit your start script to include this as a system property.

Defaults:

    java.awt.headless=true


Set the default locale used by Liferay. This locale is no longer set at the VM level. See LEP-2584.

Defaults:

    user.country=US
    user.language=en


Set the default time zone used by Liferay. This time zone is no longer set at the VM level. See LEP-2584.

Defaults:

    user.timezone=UTC


Top of Page

Java Advanced Imaging


JAI relies upon native acceleration to improve performance. To use native acceleration, you must install the appropriate native libraries and set this property to false. Setting this to false without installing the proper native libraries will result in warnings.

Defaults:

    com.sun.media.jai.disableMediaLib=true


Top of Page

Logging


Set any logger that implements org.apache.commons.logging.Log.

Examples:

    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger


Set this to true if Log4j complains that it was not properly configured.

Defaults:

    log4j.configure.on.startup=true


Top of Page

Stream

Defaults:

    com.liferay.portal.kernel.util.StreamUtil.buffer.size=8192


Set this to true when doing large file transfers on a 32-bit JVM to prevent running out of memory. This worsens performance but increases stability for older environments.

Defaults:

    com.liferay.portal.kernel.util.StreamUtil.force.tio=false


Top of Page

String Bundler


Set this property to tell StringBundler when to use a recycled char[] to do an unsafe String creation. The newly created String's immutable property is only maintained during current request scope so that the char[] could be reused by other Strings. This means the old String's content will change. This is safe as long as the old Strings die before the request finishes. This feature introduces risky conditions, so please use it with caution. The benefit is that it can improve GC significantly by reducing large char[] creation.

For example, the contents of a page are ultimately represented by a String's char[] which could be several hundred KBs. This can be a heavy burden for the GC. The String is also guaranteed to be freed before the request finishes processing. These Strings are perfect for using this feature to gain performance improvements.

Set a value larger than 0 to enable this feature when using StringBundler with an output length longer than the specified value. A reasonable value is 32768 (32 kb) or 65536 (64 kb). The best value depends on how the portal is used.

Defaults:

    com.liferay.portal.kernel.util.StringBundler.unsafe.create.limit=0


Set this property to tell StringBundler when to use a ThreadLocal buffer to build the output its String. The buffer is referred by SoftReference, so it will be forcibly removed by the GC when memory is nearly exhausted. It should be set to a high value so that the accessing to ThreadLocal is balanced by the savings in garbage collection. Setting it to too low of a value may actually do more harm than good.

Set a value larger than 0 to enable this feature when using StringBundler with an output length longer than the specified value. A reasonable value is 8192 (8 kb) or 16384 (16 kb). The best value depends on how the portal is used.

Defaults:

    com.liferay.portal.kernel.util.StringBundler.threadlocal.buffer.limit=0


Top of Page

Encryptor


Set the security provider class.

Defaults:

    com.liferay.util.Encryptor.provider.class=com.sun.crypto.provider.SunJCE


Top of Page

HTTP


See portal.properties for more HTTP settings.


Set the location of the HTTP proxy that the portal will use to fetch external content.

Set http.nonProxyHosts for hosts that will not be proxied. This is useful for proxied environments where you need direct access to internal servers. This should follow the same semantics as the java.net package.

Examples:

    http.proxyHost=192.168.0.200
    http.proxyPort=4480
    http.nonProxyHosts=192.168.0.250


Top of Page

Axis


Urls that match the specified pattern will use the SimpleHTTPSender. Urls that do not match the specified pattern will use Axis' default HTTPSender.

Defaults:

    com.liferay.util.axis.SimpleHTTPSender.regexp.pattern=.*mappoint\.net.*


Top of Page

Session Parameters


Encrypt session parameters so that browsers cannot remember them.

Defaults:

    com.liferay.util.servlet.SessionParameters=false


Top of Page

Ehcache


Set this to true to skip the update check.

Defaults:

    net.sf.ehcache.skipUpdateCheck=true


Top of Page

iCal4j


Set this to true to enable compatibility with Outlook generated ICS files.

Defaults:

    ical4j.compatibility.outlook=true


Set this to true to enable relaxed parsing of ICS files during import.

Defaults:

    ical4j.parsing.relaxed=true


Set this to true to enable relaxed unfolding of ICS files during import.

Defaults:

    ical4j.unfolding.relaxed=true


Set this to true to enable relaxed validation of ICS files during import.

Defaults:

    ical4j.validation.relaxed=true


Top of Page

JRuby


Set this to true to enable native extensions (like JNA for non-Java APIs).

Defaults:

    jruby.native.enabled=false


Top of Page

Lucene


Set a timeout to avoid lock errors.

Examples:

    org.apache.lucene.writeLockTimeout=30000


Top of Page

Quartz


Make threads daemon so the JVM exits cleanly.

Defaults:

    org.quartz.threadPool.makeThreadsDaemons=true


Turn off the update check for performance/security.

Defaults:

    org.terracotta.quartz.skipUpdateCheck=true