In the context of high availability, a collision is a clash of data that occurs when a target object and a source object are both updated at the same time. When the change to the source object is replicated to the target object, the data does not match and the collision is detected.
With MIMIX user journal replication, the definition of a collision is expanded to include any condition where the status of a file or a record is not what MIMIX determines it should be when MIMIX applies a journal transaction. Examples of these detected conditions include the following:
-
Updating a record that does not exist
-
Deleting a record that does not exist
-
Writing to a record that already exists
-
Updating a record for which the current record information does not match the before image
The database apply process contains 12 collision points at which MIMIX can attempt to resolve a collision.
When a collision is detected, by default the file is placed on hold due to an error (*HLDERR) and user action is needed to synchronize the files. MIMIX provides additional ways to automatically resolve detected collisions without user intervention. This process is called collision resolution. With collision resolution, you can specify different resolution methods to handle these different types of collisions. If a collision does occur, MIMIX attempts the specified collision resolution methods until either the collision is resolved or the file is placed on hold.
You can specify collision resolution methods for a data group or for individual data group file entries. If you specify *AUTOSYNC for the collision resolution element of the file entry options, MIMIX attempts to fix any problems it detects by synchronizing the file.
You can also specify a named collision resolution class. A collision resolution class allows you to define what type of resolution to use at each of the collision points. Collision resolution classes allow you to specify several methods of resolution to try for each collision point and support the use of an exit program. These additional choices for resolving collisions allow customized solutions for resolving collisions without requiring user action. For more information, see Collision resolution.