Handling dynamic collisions

Dynamic collisions only occur on secondary nodes. A dynamic collision occurs when a schema change is committed on a table, procedure, function, or view while a secondary server is querying the same object. The collision results from the TLV replay of shared IQ object schema updates.

In an interactive setting, a dynamic collision results in a forced disconnect of a user connection to a secondary node. To resolve a dynamic collision during DDL execution, the secondary server finds the connections responsible and disconnects them. The disconnect is logged in the .iqmsg file. Here is an example of a message that appears in the .iqmsg file when a dynamic collision occurs:

Shared IQ Store update DDL statement:
drop table DBA.gtt44
Disposition: SQLSTATE:42W21 --
dropped 1 connection(s) for table:
DBA.gtt44 Retry successful

To avoid dynamic collisions that can disrupt queries and disconnect users, schedule schema changes when the multiplex is not heavily loaded. This will result in the least disruption to query operations on secondary servers.