Setting properties and options on startup

This page describes how to set Java properties and options on startup for Jira.

On this page:

Linux

To configure system properties in Linux Installations:

  1. From <jira-install>/bin, open setenv.sh.
  2. Find the section JVM_SUPPORT_RECOMMENDED_ARGS=
  3. 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:

  1. From <jira-install>/bin, open setenv.bat.
  2. Find the section set JVM_SUPPORT_RECOMMENDED_ARGS=
  3. 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:

  1. 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

  2. Open the command window from Start >> Run >> type in 'cmd' >> Enter
  3. cd to the bin directory of your Jira application installation directory.
  4. Run the following command:

    1. For Jira 8: tomcat8w //ES//%SERVICENAME%.

    2. For Jira 9: tomcat9w //ES//%SERVICENAME%

      In this example, it would be:

      tomcat8w //ES//JIRA231112155942

  5. Click on the Java tab to see the list of current start-up options:
  6. 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:

  1. Go to Start >> Run, and run "regedit32.exe".
  2. 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
  3. To change existing properties, especially increasing Xmx memory, double-click the appropriate value.
  4. To change additional properties, double-click options.
  5. 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
-Xms
XX:MaxPermSize

These properties are pre-existing. See related pages for instructions.

Increasing Jira memory

-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
Analyze OutofMemory errors in Jira Server and Data Center with heap dumps

-agentlib:yjpagent=onexit=memory,dir=/path/to/write/snapshots


[Archived] Profiling Memory and CPU Usage with YourKit

-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
-Datlassian.mail.fetchdisabled
-Datlassian.mail.popdisabled

Set to 'true' to disable mail. In Linux setenv.sh, there is a pre-existing flag to uncomment.

Migrating Jira to another server
Jira users get unexpected email notifications from incorrect Jira Issue keys or from automation rules that were disabled

-Dmail.debug

If set to "true", logs statements related to mail

Configuring Jira's SMTP mail server to send notifications
Creating issues and comments from email

-Dmail.mime.decodetext.strict


Unable to Decode Mail Subject or Body when Creating Issue From Email

-Dmail.imap.auth.plain.disable
-Dmail.imaps.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
Internationalization and Encoding Troubleshooting
SQL Exception while updating issues or importing data in Jira applications with MySQL due to encoding
International Characters in Notification Email Subject Lines Are Being Replaced with Question Mark

Other Properties

Notes

Related pages

-Duser.timezone


Incorrect Times Displayed in Jira

-Dsvnkit.http.methods

Values include Basic,Digest,Negotiate,NTLM

Jira Startup Fails Due to 'java.lang.SecurityException Unable to locate a login configuration'
Subversion Plugin Displays 'An unknown error occurred - actions == null' Due to SVN Authentication

-Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER

true

(Archived) OutOfMemory Due to Tomcat Memory Leak
JRA-10145

-ea/-da

Enable/Disable assertions

java.lang.AssertionError When Sending Mail Via SMTP

-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 portHow 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 valueDescription
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.disabled.alert.types=app-installed,admin-user-deleted would ignore the activities associated with the alerts for app-installed and admin-user-deleted.

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, security-monitoring-alerts. If that group has no members or if that group name does not exist, the system will send emails to all system admins.

Custom fields

Default valueDescription
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.

Last modified on Sep 22, 2023

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.