Setting properties and options on startup
Linux
To configure system properties in Linux Installations:
- From
<jira-install>/bin
, open setenv.sh. - Find the section JVM_SUPPORT_RECOMMENDED_ARGS=
- Refer to the list of parameters below.
Add all parameters in a space-separated list, inside the quotations.
Windows (starting from .bat file)
To configure system properties in Windows Installations when starting from the .bat file:
- From
<jira-install>/bin
, open setenv.bat. - Find the section set JVM_SUPPORT_RECOMMENDED_ARGS=
- Refer to the list of parameters below.
Add all parameters in a space-separated list, inside the quotations.
Windows service
There are two ways to configure system properties when starting Running Jira as a Windows service, either via command line or in the Windows registry.
Setting properties for Windows Services via command line
To set properties for Windows Services via command line:
Identify the name of the service that Jira is installed as in Windows (
Control Panel > Administrative Tools > Services
):In the above example, the SERVICENAME is:
JIRA231112155942
- Open the command window from
Start >> Run >> type in 'cmd' >> Enter
cd
to thebin
directory of your Jira application installation directory.Run the following command:
For Jira 8:
tomcat8w //ES//%SERVICENAME%
.For Jira 9:
tomcat9w //ES//%SERVICENAME%
.In this example, it would be:
tomcat8w //ES//JIRA231112155942
- Click on the
Java
tab to see the list of current start-up options: - Append any new option on its own new line by adding to the end of the existing Java options. Refer to the list of parameters below.
Setting properties for Windows services via the Windows registry
In some versions of Windows, there is no option to add Java variables to the service. In these cases, you must add the properties by viewing the option list in the registry.
To set properties for Windows Services via Windows Registry:
- Go to
Start >> Run
, and run "regedit32.exe". - Find the Services entry:
32-bit:HKEY_LOCAL_MACHINE >> SOFTWARE >> Apache Software Foundation >> Procrun 2.0 >> JIRA
64-bit:HKEY_LOCAL_MACHINE >> SOFTWARE >> Wow6432Node >> Apache Software Foundation >> Procrun 2.0 >> JIRA
- To change existing properties, especially increasing Xmx memory, double-click the appropriate value.
- To change additional properties, double-click options.
- Refer to the list of parameters below. Enter each on a separate line.
Docker
To configure system properties in Docker, add the environment variable JVM_SUPPORT_RECOMMENDED_ARGS
. For example:
docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 atlassian/jira-software
For more information, check out the Docker repo documentation for Jira.
Kubernetes (DC Helm Charts)
To configure system properties in Kubernetes, use the additionalJvmArgs
segment from the values.yaml
file. For example:
additionalJvmArgs:
- -Dcom.sun.management.jmxremote
- -Dcom.sun.management.jmxremote.port=8099
- -Dcom.sun.management.jmxremote.ssl=false
- -Dcom.sun.management.jmxremote.authenticate=false
- -Dcom.sun.management.jmxremote.rmi.port=8099
- -Djava.rmi.server.hostname=127.0.0.1
Verifying your settings
To verify what settings are in place, check the <jira-home>/logs/atlassian-jira.log
or catalina.out
file. A section in the startup appears like this:
JVM Input Arguments : -Djava.util.logging.config.file=/usr/local/jira/conf/logging.properties -XX:MaxPermSize=256m -Xms256m -Xmx384m -Djava.awt.headless=true -Datlassian.standalone=JIRA -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/jira/endorsed -Dcatalina.base=/usr/local/jira -Dcatalina.home=/usr/local/jira -Djava.io.tmpdir=/usr/local/jira/temp
This display is also available by viewing your system information.
List of startup parameters
Memory property | Notes | Related pages |
---|---|---|
-Xmx | These properties are pre-existing. See related pages for instructions. | |
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCCause -Xloggc:C:\Program Files\Atlassian\Application Data\JIRA\log\atlassian-jira-gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M | These properties are pre-existing, and are used for Garbage Collection tuning. | Using Garbage Collection Logs to Analyze Jira Application Performance |
-agentlib:yjpagent=onexit=memory,dir=/path/to/write/snapshots | ||
-XX:InitialCodeCacheSize=32m -XX:ReservedCodeCacheSize=512m | These properties are pre-existing, and are used to configure the size of the JVM code cache. A high value of reserved size allows Jira to load more installed apps. The default configuration should be optimal for most Jira instances and solve any problems with the code cache getting full. | KB article: Jira crashes due to the CodeCache |
Mail property | Notes | Related pages |
-Datlassian.mail.senddisabled | Set to 'true' to disable mail. In Linux setenv.sh, there is a pre-existing flag to uncomment. | Migrating Jira to another server |
-Dmail.debug | If set to "true", logs statements related to mail | Configuring Jira's SMTP mail server to send notifications |
-Dmail.mime.decodetext.strict | Unable to Decode Mail Subject or Body when Creating Issue From Email | |
-Dmail.imap.auth.plain.disable | IMAP setup fails with AUTHENTICATE Failed error in logs in Jira server when using OAuth | |
-Dmail.imap.starttls.enable | Jira server unable to retrieve messages from IMAP server with No login methods supported error | |
-Dmail.mime.decodeparameters | Sets mail handler to work correctly with emails from RFC 2231-compliant mail clients. | |
-Dmail.smtp.localhost | Problems Sending Email from Jira - EHLO requires domain address | |
Encoding property | Notes | Related pages |
-Dfile.encoding -Dsun.jnu.encoding | Set to utf-8 for encoding consistency | Characters Not Supported by ASCII are Being Displayed as Question Marks |
Other Properties | Notes | Related pages |
-Duser.timezone | ||
-Dsvnkit.http.methods | Values include Basic,Digest,Negotiate,NTLM | Jira Startup Fails Due to 'java.lang.SecurityException Unable to locate a login configuration' |
-Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER | true | |
-ea/-da | Enable/Disable assertions | |
-Djava.net.preferIPv4Stack | SocketException to Announce 'Invalid argument' for an Available Port | |
-Djavax.net.ssl.trustStore | Unable to Send Email 'javax.net.ssl.SSLException' Due to SMTP Server via SSL | |
-Djava.awt.headless | Ships with true by default. Allows thumbnail generation. | |
-Dhttp.proxyHost -Dhttp.proxyPort -Dhttps.proxyHost -Dhttps.proxyPort | Outbound Proxy Server hostname and port | How to Configure an Outbound HTTP and HTTPS Proxy for Jira applications |
-Dorg.apache.catalina.SESSION_COOKIE_NAME | Logging into another Atlassian application logs me out of Confluence | |
-Datlassian.plugins.enable.wait | Time Jira waits for apps to load. | Jira System Plugin Timeout While Waiting for Plugins to Enable |
-Datlassian.plugins.startup.options="--disable-all-addons --disable-addons=com.atlassian.test.plugin" | Allows Jira to start with all user installed or specific user installed apps disabled. For more information on manual start up and specifying apps, see Start and Stop Jira applications. | Start and Stop Jira applications |
-Dhide.system.error.details | Hides the details of errors that are displayed after starting Jira. The page (johnson) where these are displayed will still notify you about the errors. | |
-Djira.startup.warnings.disable | Disables the page (johnson) that displays errors after starting Jira if there are only dismissible warnings. The page will appear if there are any important errors. | |
-Dcom.atlassian.streams.internal.LocalActivityProviders.allowed.wallclock.percentage | ||
Specifies the percentage of CPU time assigned to Activity Stream requests. Set the value to to an integer from 0 to 100. The default value is 10. | Jira Core 8.19.x upgrade notes |
Auditing properties
These properties control the auditing feature, determining the number of audit entries logged, or stored in the database, and the size of those entries. Changing these settings will only affect new audit entries.
Increasing the amount of auditing done may have an adverse effect on performance.
Default value | Description |
---|---|
plugin.audit.search.max.concurrent.nontext.requests | |
10 | Maximum number of concurrent non-freetext search requests allowed, defaults to 10 per node |
plugin.audit.search.max.concurrent.text.requests | |
5 | Maximum number of concurrent freetext search requests allowed, defaults to 5 per node |
plugin.audit.search.query.timeout | |
30 | Timeout in seconds for a queued search request, defaults to 30 seconds |
plugin.audit.db.limit.rows | |
10000000 | Maximum number of audit event rows stored in DB, events exceeding the limit get deleted in time order, defaults to 10M checked on hourly basis |
plugin.audit.db.limit.buffer.rows | |
1000 | Buffer to accommodate new audit events, defaults to 1000 rows |
plugin.audit.db.delete.batch.limit | |
10000 | maximum number of events to be deleted per database transaction used when enforcing retention limits, defaults to 10,000 rows |
plugin.audit.schedule.db.limiter.interval.mins | |
60 | Database size check, running every 60 minutes |
plugin.audit.broker.exception.loggedCount | |
3 | Maximum number of audit events written to system log file in case of error, defaults to 3 |
plugin.audit.retention.interval.hours | |
24 | Database retention check, which deletes events exceeding retention period, running every 24 hours |
plugin.audit.file.max.file.size | |
100 | Size limit in megabytes for individual audit file, file rotates when limit is reached, defaults to 100MB |
plugin.audit.file.max.file.count | |
100 | Maximum number of audit files, the earliest file will be deleted when limit is reached, defaults to 100 |
plugin.audit.consumer.buffer.size | |
10000 | Maximum number of audit events kept in buffer waiting to be consumed, defaults to 10,000 |
plugin.audit.broker.default.batch.size | |
3000 | Maximum number of audit events dispatched to consumer, defaults to 3,000 per batch |
plugin.audit.coverage.cache.read.expiration.seconds | |
30 | How long the coverage cache is valid, defaults to 30 seconds |
plugin.lighthouse.disabled.alert.types | |
- | Used only by the Security monitoring and alerts admin feature. Defines the alert types to be considered inactive. This is a comma-delimited list of alert type IDs. The Security monitoring and alerts feature will ignore any alerts included in this list, and it will no longer detect or send alerts about the activities associated with those alerts. Example:
|
plugin.lighthouse.security.group.name | |
- | Used only by the Security monitoring and alerts admin feature. Defines the name of a single security group that Security monitoring and alerts will use to send security alerts to all members. If you don’t add your own group name to this property, the system will look for any users added to the default recipient group, |
Custom fields
Default value | Description |
---|---|
jira.custom.field.indexing.batch.size | |
50 | To decrease reindex time and improve overall performance, custom field values are fetched in batches of 50. This speeds up time-consuming operations such as database search. Currently the property works only with Jira built-in custom fields. To disable the property, change the default to 1. Changing the property values, and getting the property to work for the first time requires full reindex. |