Unique contraint violation in the Performance Warehouse

Environment

AppMon: 6.1+

Symptoms

A Performance Warehouse incident (and also the log) is showing an unique key constraint error for the table 'dynamic_measure' or an index of this table.

This means, a measure definition cannot be stored in the database and therefore, also no measurements can be stored to this measure.

Solution

This problem can be caused by several issues, these are the most commons and possible solutions:

  • Within a Business Transaction, a splitting criteria/name has more than 600 characters. Solution: change the splitting criteria
  • Only on SQL Server: measures or applications have the same name, but different upper/lower case writing, e.g. ResponseTimeIBM and ResponseTimeIbm. Solution: Rename one of the measures or remove one of the two measures.
  • Issue occurred the first time, after a measure has been renamed. Solution: disconnect and reconnect the Performance Warehouse.

Root cause

Depending on the issue, cause the problem, several root causes are possible:

  • The first 600 characters of a splitting criteria is used to calculate a unique hash string. If to splitting have the first 600 chars identical, the issue will occur.
  • The SQL Server cannot distinguish between upper and lower case writing, so the names must be different.
  • On very rare circumstances, a renaming operation can cause a mismatch in the measure center, which will be solved automatically after a reconnect of the Performance Warehouse.