0

Upgrading to >= V22.3.2 from V22.3.0 or V22.3.1 can potentially flood users' inboxes with previously orphaned Axiom reports

A bug was introduced in v22.3.0 which changed the naming convention of Axiom reports within the Axiom.sqlite database. Any previously configured reports became orphaned and no longer ran. This may have prompted users to recreate these reports.

When upgrading from v22.3.0 or v22.3.1 to v22.3.2+, these orphaned reports will be restored and backfill which may flood users' inboxes depending on the number of reports that were missed. If the user does not need to backfill these reports, the following steps can be taken prior to upgrading.

If upgrading from a version prior to 22.3.0 or the user does not use Automated Reports, no action is required.

If the following script is executed, the reports will need to be recreated, if they haven't been already. Otherwise, the reports will backfill and continue as normal.

  1. Stop the Axiom service
  2. Make a backup copy of the  Axiom database, C:\ProgramData\Canary\Axiom\Axiom.sqlite
  3. Navigate to C:\ProgramData\Canary\Shared\Utilities\SQLiteDatabaseBrowserPortable and open SQLiteDatabaseBrowserPortable.exe
  4. Browse and open Axiom.sqlite from step 2
  5. Select the "Execute SQL" tab and paste the following script into the window:
    BEGIN TRANSACTION;
    DELETE FROM QRTZ_LOCKS WHERE SCHED_NAME = 'QuartzScheduler';
    DELETE FROM QRTZ_FIRED_TRIGGERS WHERE SCHED_NAME = 'QuartzScheduler';
    DELETE FROM QRTZ_TRIGGERS WHERE SCHED_NAME = 'QuartzScheduler';
    DELETE FROM QRTZ_JOB_DETAILS WHERE SCHED_NAME = 'QuartzScheduler';
    COMMIT TRANSACTION;

  6. Select the "Play" button to execute the script.

  7. Close DB Browser. It will prompt you to save the file. Click "Disregard".

  8. Start the Axiom service.

If the user does not wish to execute the script prior to upgrading, the install will attempt to update the orphaned Axiom reports if any exist. If they do exist, a backup of the database will be created and users will receive any reports they missed since the bug was introduced.

1 reply

null
    • laruer
    • 1 yr ago
    • Reported - view

    Another option instead of deleting the old reports is to migrate them manually and set the PREV_FIRE_TIME to the value of DateTime.UtcNow.Ticks. That way, they won't try to backfill any old reports.

    PRAGMA FOREIGN_KEYS = 0;
    update QRTZ_TRIGGERS set PREV_FIRE_TIME = CAST((julianday('now') - julianday('0001-01-01 00:00:00')) * 864000000000 AS BIGINT) WHERE SCHED_NAME = 'QuartzScheduler';
    update QRTZ_JOB_DETAILS set SCHED_NAME = 'CanaryAxiom';
    update QRTZ_CRON_TRIGGERS set SCHED_NAME = 'CanaryAxiom';
    update QRTZ_TRIGGERS set SCHED_NAME = 'CanaryAxiom';
    PRAGMA FOREIGN_KEYS = 1;
    

Content aside

print this pagePrint this page
  • 1 yr agoLast active
  • 1Replies
  • 91Views
  • 2 Following