Configuring global Jira settings

Global Jira settings for Assets include configuration for the Assets app itself, rather than object schemes, object types, or even objects. Here you can configure log settings, date and time, Assets reindexing, and so on. Read on for more details on available settings.

On this page:

Accessing global Jira settings

To access global Jira settings for Assets:

  1. Go to Administration > Manage apps.
  2. Look for pages in the Assets section.

General configuration

To open general configuration, select Assets configuration.

SettingDescription
User interaction

Attribute default label

The text type attribute to be used as default label for every object type. You can change this on the specific object type configuration too.

Note that this affects only for those object types that are created after this setting has changed.

Attribute default description

The description for the default label attribute. You can change this on the specific object type configuration too.

Open Object dialog event

Determines if the object dialog should open when a user selects an object link or when the user hovers with the mouse over an object link.

This will also apply when you view Assets object fields while you view a Jira issue.

Default number of objects fetched in custom fields

This indicates the number of objects that Assets will fetch in custom fields for each request. The default value is set to 25.

Once the user starts to search any objects on the custom field, more objects matching the search criteria are fetched from server asynchronously. Hence, the default limit of 25 is recommended and should be enough.

If you increase this number, it will affect the performance since more objects would then have to be fetched on every request.

General configuration

Assets Audit Log enabled

If you check this checkbox, it is ensured that all Assets object events are logged to an audit log file.

Include attribute values in audit log

This checkbox is enabled only if the above "Assets Audit Log enabled" is checked.

If checked, this will include all attribute values of an object in the audit log.

Restore Assets index from file

This will ensure that on start up, Assets index will be restored from a file. This will help decrease the startup time. 

Assets will perform a consistency check of the file against the database on startup and recreate the index if they mismatch.

If you uncheck this, you may experience a slower start up time. However, it could remove the risk of a potential corrupted index file which may cause data inconsistency.

By default, this is checked. The file is located at {$JIRA_HOME/caches/assets_indexes}

 E.g, path of the file on MacOS will be {/var/atlassian/application-data/jira/caches/assets_indexes} 

Store cache on shutdown

This indicates that the Assets index should be persisted to a file on Assets shutdown (e.g, in cases of a plugin upgrade, Jira restart, Assets disable etc).

It is recommended that if "Restore Assets index from file" is checked, this property should be switched on too.

Restrict Assets Cache

This helps to limit the amount of objects allowed to be stored in Assets. This will subsequently limit the memory footprint by allowing only a limited number of objects to reside in the cache.

The default and recommended way to use Assets is to not restrict objects in cache. The limit will have negative performance impact.

Number of objects allowed in cache

This is enabled only if "Restrict Assets Cache" is checked.

This property indicates the number of Assets objects that will be be stored in the cache.

The recommended way is to not limit objects in cache.

Maximum File upload size

The maximum file upload size in bytes when uploading files, images, attachments into Assets. 

Assets parallelism

This is number of threads that Assets will spawn to perform parallel tasks, e.g, importing data, re-indexing etc.

If this number is set to a lower value, Assets will put less strain on Jira. However, it will come at the cost of a low performance speed.

Process data sources via temp files during imports

Temporarily store data on disk when using the import modules to reduce memory footprint during import.

Use a custom locale for Assets

This is used to indicate if the data stored in Assets should be sorted by a locale other than Jira's default one.

Fetching of objects may be slower if this option is switched on. Hence, by default, this is disabled to avoid performance issues.

The locale for Assets

This is enabled only if "Use a custom locale for Assets" is checked.

This determines the language Assets should use when sorting data.

Import temp file buffer size

The maximum number of items stored in memory when processing data sources through temp files

Import temp file alternative directory

Alternative directory for storing temp files on disk during an import if enabled. Restart your instance for changes to this config to take effect.

Maximum parallel imports

The number of parallel imports that can run across your cluster. Learn how to configure parallel imports

Jira Service Management portal search text (single)

Placeholder for the Assets field on the Jira Service Desk portals (Single fields)

Jira Service Management portal search text (multiple)

Placeholder for the Assets field on the Jira Service Desk portals (Multiple fields)

Clustered Data Center
Dedicated scheduling and import node

This setting is available only if you have a multi-node Data Center set up.

This node will be the dedicated node to execute Assets scheduling tasks, such as Importers, Automation, manual imports etc.

Note that, if a node was selected as the dedicated scheduling node and happens to be unavailable at the time of running a scheduled task, then that task will not run.

Frequency of updates for the status of an action in progress

Configure frequency of updates for the Process results tab

Object index replication
Object load retry attempts

The number of attempts to load the object from the database.

Object load retry interval (ms)

The interval between object load attempts.

Sender queue size

The size of the work queue for replication messages. Restart your instance for changes to this configuration to take effect.

Sender threads

The number of threads for batching and sending replication messages. Restart your instance for changes to this configuration to take effect.

Maximum batch size

The maximum number of changes that will be batched together into one message.

Batching delay (ms)

The delay to wait for changes to arrive before batching and sending from the work queue.

Receiver queue size

The size of the queue for receiving replication messages. Restart your instance for changes to this configuration to take effect.

Receiver threads

The number of threads reading from the receiver's queue. Restart your instance for changes to this configuration to take effect.

Retry queue threads

The number of threads polling the retry queue. Restart your instance for changes to this configuration to take effect.

Retry attempts

The number of retry attempts from the retry queue when an object is not ready to be read from the database when the notification is first received.

Retry queue interval (ms)

The interval to wait between retrying messages from the retry queue.

Dead-letter queue logging interval (ms)

The interval between checking the contents of the dead-letter queue and logging an error if anything was found on the queue.

Date settings

All dates in Assets use the Jira administrator settings, and can be changed under the following URL:

https://host:port/secure/admin/AdvancedApplicationProperties.jspa

Log files

Logs are located in the following directory:

<Jira-shared-home>/log

Attachments

Assets attachments are stored accordingly in subfolders named avatars, files, icons, and objects in the following directory:

<Jira_home>/data/attachments/assets

Indexing

To open indexing configuration, select Indexing Assets.

You can select from the following options for indexing:

  • Clean re-index
    A clean re-index means that all objects will be removed from the index across all nodes, and then will be indexed again. This is recommended if you want to have a fresh state of the index. Once the indexing is in progress, you won't be able to cancel it or search for objects or filter them.

  • Re-index
    A re-index means that all objects will stay in the index during the process, and Assets will index them again. You can search for objects during the process.

  • Persist Assets index to file
    You can manually persist (copy) the index on your disk. This is useful if you have a big Assets environment with a large number of objects and are planning to reinstall the app. With the index on your disk, Assets won't have to recreate it from scratch.

Testing Groovy scripts

To test Groovy scripts, select Assets script console. It gives you a quick and easy way to test Groovy scripts that you want to use in Assets automation or post-functions.

Syncing reports

To open reports syncing configuration, select Assets reports. Here you can set up a cron schedule, which syncs the data in your reports.

Analytics

To open analytics configuration, select Mindville analytics.

Additional Data Center configuration

Configure data retention period for clustermessage table 

Configuring the data retention period helps you avoid performance issues that might result from overloading the clustermessage table. If you import large data sets to Assets in a short period of time, the clustermessage table will be filled with information and can cause performance issues.

To configure the data retention period, complete the following steps:

  1. Go to Administration System.
  2. Scroll down to the Advanced section and select Services.
  3. Under Add Service, under Class, select Build-in services.
  4. Select Cluster messaging flush service.
  5. Enter the following information:
    1. Name - Cluster Messaging Flush Service
    2. Class  - com.atlassian.jira.service.services.cluster.ClusterMessageCleaningService
    3. Schedule  - 0 0 4/12 * * ?
  6. Select Add Service.
  7. Enter the following for Retention Period  - 2880m
  8. Select Update

Configure frequency of updates for the Process results tab

This setting is available only if you have a multi-node Data Center set up.

The progression of imports is shared across your database for the number of executed units of work that you can set in the Assets configuration. A unit of work quantifies the frequency of updates to the database for an operation in progress. We recommend changing this value only if you notice any user experience performance issues.

For example, in the case of a CSV import, a unit of work represents a single row in the CSV file where a row is an Assets object. For the interval of 100 units of work, the status of the import operation will be updated in the database every time 100 new objects are imported.

The default number of units of work is 100. To change this value:

  1. Go to Administration > Manage apps.
  2. In the left-side panel, select Assets configuration.
  3. Select Edit settings.
  4. In the Data Center section, edit the value of Frequency of updates for the status of an action in progress.
  5. Select Save.

Assets index validation properties

The following properties control the Assets indexing process.

Default value

Reloads at runtime

Description

Why you might change this

Sender queue sizecom.atlassian.assets.replication.work.queue.size

10000

No

The CacheMessage work queue determines the maximum size for adding messages to be processed on the sending nodes.

Set this value large enough to ensure saving object isn’t blocked and to keep the queue drained by the threads. If you see that the queue is getting close to its maximum capacity, increasing its size can help reduce the strain on the parts of the system that send data into the queue.

Increasing the queue size might require additional JVM memory, depending on its current availability.

Sender threads: com.atlassian.assets.replication.sender.threads

5

No

Specifies the number of sender threads polling the CacheMessage work queue and determines the number of instances of CacheMessageWorkQueuePoller. Worker threads batch multiple cache messages into a single replication message.

This property is used with the Sender queue size (com.atlassian.assets.replication.work.queue.size) property to increase the throughput by adding more threads to drain the queue faster.

If your instance is handling large imports and bulk changes, increasing this value can help process messages faster. This helps to reduce the work queue size quicker.

However, setting the value too high will result in smaller batches and negate the effect of delaying and batching updates into a single message. For more details, check the Maximum batch size and Batching delay properties.

Maximum batch sizecom.atlassian.assets.replication.batch.size

1000

Yes

Determines the maximum number of object IDs added to AssetsBatchReplicationMessage. The value includes both batch updates and batch creations.

You can observe batch sizes in the logs and Java Management Extensions (JMX). For example, in the debug log for io.riada.insight.index.replication.poller.CacheMessageWorkQueuePoller, you might find entries like:

  • Took {} ms to batch {} cache messages and send a single replication message with ID {}.

  • Creating batch message from {} cache messages.

Additionally, the debug logs for io.riada.insight.index.replication.poller.AssetsBatchReplicationMessageWorkQueuePoller show:

  • Processing {} creates for message with ID {}.

  • Processing {} deletes for message with ID {}.

  • Processing {} updates for message with ID {}.

If all messages consistently reach the current maximum batch size, it means that replication is struggling to keep up. However, we don't recommend setting this value above 1000 because some databases, like Oracle, have update limits.


Batching delay: com.atlassian.assets.replication.batch.delay

400 ms

Yes

Specifies the delay between when an item becomes available on a work queue and when the queue is processed. This delay allows the queue to populate, optimizing the batch for bulk creates, updates, and deletes.

Increasing the delay can create larger batches but also increase the time it takes for updates to appear on other nodes in the cluster.

If you notice that batches are small, you can increase the delay to allow more time for larger batches to form.

If batches are nearing the maximum size set in com.atlassian.assets.replication.batch.size, you might consider decreasing the delay.

Object load retry attempts: com.atlassian.assets.index.object.load.attempts

200

Yes

Specifies the number of attempts to check the database for an object during its creation if the message is processed before the database transaction is completed. This applies to both additions and updates within the object index when rendering the object.

If you receive messages before they exist in the database and they end up in the dead-letter queue (DLQ), you can increase this setting along with the delay set in com.atlassian.assets.index.object.load.interval to extend the time spent attempting to load objects.

Object load retry interval: com.atlassian.assets.index.object.load.interval

100 ms

Yes

Determines the delay between attempts to load objects for adds and updates in the object index.

Use this property together with com.atlassian.assets.index.object.load.attempts to adjust the delay between the attempts to load objects from the database.

We don’t recommend reducing this value below 100 ms because it’ll increase the database querying load.

Receiver queue size: com.atlassian.assets.replication.receiver.queue.size

10000

No

Specifies the maximum size of the work queue for adding messages to be processed on the receiving nodes. The changes are batched into a single AssetsBatchReplicationMessage.


If you allow the queue to fill up for too long, it can block TCP connections from the Atlassian cache, slowing down other operations, such as index replication. On the other hand, if the queue is unbounded, it can consume excessive memory.

Receiver threads: com.atlassian.assets.replication.receiver.threads

5



No

Specifies the number of threads polling the AssetsBatchReplicationMessage queue for processing and determines the number of instances of AssetsBatchReplicationMessageWorkQueuePoller.

If you have enough computing resources available, you can increase this value to enhance the processing of the queue that contains received messages. This will unblock Jira TCP threads quicker.

Retry queue threads: com.atlassian.assets.replication.retry.queue.threads

2

No

Specifies the number of threads polling the retry queue in AssetsReplicationRetryQueuePoller.


If your instance handles a high number of failures, consider increasing this value. Failures might happen because the database doesn't update as quickly as the replication process, causing the retry queue to drain slowly.

Retry attempts: com.atlassian.assets.replication.retry.queue.attempts

10

Yes

Specifies the number of retry attempts from the retry queue. This determines how many times a failed message is placed back onto the retry queue before it’s moved to the dead-letter queue (DLQ).

Increase this value if you think more retry attempts could lead to successful message processing, such as when you expect database delays.

Retry queue interval: com.atlassian.assets.replication.retry.queue.interval

60000 ms (1 min)

Yes

Specifies the interval between retry attempts for a message after its last retry. A delay ensures there's enough time for the system to catch up with database updates.

During each retry attempt, the object index enters a retry cycle according to the values set for the com.atlassian.assets.index.object.load.interval and com.atlassian.assets.index.object.load.attempts properties.

Use this property together with com.atlassian.assets.replication.retry.queue.attempts to adjust the time between the retry attempts.

Dead-letter queue (DLQ) logging interval: com.atlassian.assets.replication.dlq.logger.interval

300000 ms (5 min)

Yes

Specifies the interval at which the DLQ is checked for items and a warning is logged. If debug logging is enabled on io.riada.insight.index.replication.poller.AssetsReplicationLogger and the queue isn’t empty, then the queue content will also be logged.

If you need to see the DLQ changes faster, decrease the interval.

Last modified on Jan 7, 2025

Was this helpful?

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