Dynatrace 6.1 and 6.2


The following error is shown in the server logging:

Data integrity violation occurred see attached message for details : SQL Operation: Cannot insert duplicate key row in object 'dbo.dynamic_measure' with unique index 'uk_dynamic_measure'. 

If this error message is shown in the logs, please double check the following conditions:

  • There are no BTs that have very long names for BT splittings (e.g. a URL), where several splittings have the same first 600 chars.
    -> If a BT has very long splitting names, please change the BT configuration.
  • Only one Dynatrace server is connected to the database instance.
    -> If multiple DT server are connected to one PWH, change this to one PWH per DT server.
  • The main reason for this error message is indicated by the three following issues
    • MS SQLServer is used as DB system
    • Dynatrace 6.1 or 6.2 is used
    • The affected index is 'uk_dynamic_measure'
  • If these three issues are fulfilled, then the solution below will solve the problem

For 6.1

  • Deactivate application auto detection
  • Remove application with the same name but different case writing from the application names list

For 6.2

  • Update to 6.2.2 or higher
  • Set the server debug flag com.dynatrace.diagnostics.analyzers.realtimeapplicationautodetectionpreanalyzer.tolowercase to true and restart the Dynatrace server processes.
Root Cause

The SQLServer in combination with the JDBC driver does not take care about upper and lower cases for names, but the Dynatrace server does. If an application is using the same name, only distinguishable by an upper/lower case letter, the mentioned exception will be triggered by the database. This is because a measure with the upper case writing and a measure with lower case writing should be inserted into the dynamic_measure table. If the DB-system cannot distinguish between upper and lower case writing, an already inserted measure definition should be inserted again.

The same application name with different case can be caused either by a manual setup or by the application auto detection.