Attempts to upgrade IBM Rational Synergy results in the IBM Informix server failing to come online with the error "Open transaction detected when changing log versions".
online.log shows messages similar to the following:
10:00:15 Conversion from version 11.50 Started
10:00:16 RESTORE_POINT_DIR '/ccm/ccm_71/informix/tmp/1' contains old restore point files /ccm/ccm_71/informix/tmp/1/reserved_pages'
10:00:16 IBM Informix Dynamic Server Initialized -- Shared Memory Initialized.
10:00:16 Started 1 B-tree scanners.
10:00:16 B-tree scanner threshold set at 5000.
10:00:16 B-tree scanner range scan size set to -1.
10:00:16 B-tree scanner ALICE mode set to 6.
10:00:16 B-tree scanner index compression level set to med.
10:00:16 Physical Recovery Started at Page (1:2362).
10:00:16 Physical Recovery Complete: 0 Pages Examined, 0 Pages Restored.
10:00:16 Logical Recovery Started.
10:00:16 10 recovery worker threads will be started.
10:00:16 Open transaction detected when changing log versions.
10:00:17 Cannot Rollforward from Checkpoint.
10:00:18 oninit: Fatal error in shared memory initialization
10:00:18 IBM Informix Dynamic Server Stopped.
10:00:18 mt_shm_remove: WARNING: may not have removed all/correct segments
This happens when your Informix IDS server version is upgraded as part of Rational Synergy patch (for example Synergy 22.214.171.124) and not all transactions were closed before the original Informix instance was upgraded.
onrestorept failed, as the directory containing the backup files (
/tmp/0) was void of any data and no actual migration has taken place.
See Technote 1308083: Upgrade to IDS 11.50 fails with open transaction and rollfoward errors for additional information on the Informix error.
Diagnosing the problem
If your IDS instance fails to come online following a Rational Synergy patch installation, check your Informix
online.log for the following error messages:
Open transaction detected when changing log versions
Cannot Rollforward from Checkpoint
oninit: Fatal error in shared memory initialization"
If there errors are present then it seems likely that not all transactions were closed before the original instance was shut down. The upgrade of Informix IDS did not complete and the patch needs to be reapplied.
Resolving the problem
Resolve the existing problem:
If you have already encountered this problem then the only resolution is to return to a valid backup of your database by:
- Deleting the database and unpacking it again form a reliable backup
- Deleting the Informix part of the database and restoring just the Informix data from a reliable backup. Rational Client Support should be contacted to do this correctly.
Prevent the problem in future:
- Shutdown the Rational Synergy database.
To make sure to complete all Informix IDS transactions before attempting to apply any Rational Synergy patches which include an update for Informix IDS. You can do this by shutting down the database using the command
ccmdb shutdown <database path>before applying the patches or upgrades.
- Rollback any open Informix IDS transactions.
You can also use the following Informix command procedure to force the rollback of any open transactions.
See the following TechNotes for details on how to run
dbaccess for your specific environment:
How to run Informix SQL commands for a Rational Synergy database in a Microsoft Windows environment
How to run Informix SQL commands for your Rational Synergy database on a UNIX/Linux environment
Run these informix commands
onmode -suy # Go to quiescent mode and kill off any open tx's
onmode -l # Force a fresh logical log
onmode -c # Force a clean and entry checkpoint
onmode -kuy # Shutdown IDS