public class OracleClusteredJobParametersTypeFixer extends Object
In the schema backports that enabled exports from JIRA Cloud to JIRA Server during the 7.0 development
period, the "clusteredjob" table's "parameters" column incorrectly got the type LONG RAW
instead
of BLOB
on Oracle. The result of this is that the column can be written to, but attempts to read
from it fail, which breaks the scheduler.
This attempts to detect the problem and correct it, either as a one-off or in reaction to an exception while
trying to read from the table. The column is modified from LONG RAW
to BLOB
, which Oracle
specifically allows because LONG RAW
is an older, deprecated format and BLOB
is preferred.
Unfortunately, this breaks all of the existing indexes on the table, and they must be rebuilt.
This is the kind of thing we would normally do in an upgrade task, but unfortunately that is way too late.
The startup checklist and the start()
method of the services container try to ensure that certain
scheduled jobs exist, which results in them trying to read from this table before the upgrade tasks have
run.
Constructor and Description |
---|
OracleClusteredJobParametersTypeFixer(DatabaseConfigurationManager dbConfigManager) |
Modifier and Type | Method and Description |
---|---|
StartupCheck |
asStartupCheck() |
boolean |
fix() |
public OracleClusteredJobParametersTypeFixer(DatabaseConfigurationManager dbConfigManager)
public boolean fix()
public StartupCheck asStartupCheck()
Copyright © 2002-2022 Atlassian. All Rights Reserved.