Database Isolation health check fails in Jira server
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
This health check verifies the isolation level for SQL Server databases is as expected. If it is not using the expected isolation level a critical error will be reported as it can cause JIRA to not operate as expected. This includes encountering critical problems with the application such that it will fail to work in a stable manner. For example, it can deadlock as per Jira server functionality fails when using MS-SQL and READ_COMMITTED_SNAPSHOT is not set, experience performance problems and various operations can fail in JIRA.
Diagnosis
The database isolation level of READ_COMMITTED_SNAPSHOT is ON which is supported by JIRA.
The isolation is supported! All is well.
The database isolation level of READ_COMMITTED_SNAPSHOT is OFF which is not supported by JIRA.
level The JIRA instance is using an unsupported isolation and must be fixed.
Resolution
This can be resolved by setting the isolation level as expected, as per the below steps:
- Stop JIRA, as if it is still running it will block any change of the isolation level.
Execute the below query, replacing
JIRA-DATABASE
with the database name to update the isolation level.ALTER DATABASE [JIRA-DATABASE] SET READ_COMMITTED_SNAPSHOT ON;
Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.
Verify the below SQL returns 1, which is the expected isolation level.
SELECT is_read_committed_snapshot_on FROM sys.databases WHERE name = '<JIRA-DATABASE>';
- Start JIRA, the isolation health check will now pass.