· Apr 21, 2021

Tracking DAT / Database Changes Over Time, Similar to SQL ChangeLog


We have a need to track Database changes over time - down to the SQL level of granularity if possible. Such as: User xyz runs routine ^abc and we get something similar to a changelog that tells us: table A had this value updated, insert, update etc....

Is that possible using IRIS level tools (Audit Log, Journal File, etc...) , is there a way to convert the global sets and kills from the journals into SQL level changes?


I also found a third-party java-based tool named Liquibase , but it seems more oriented to tracking schema and table based changes or pre-defined definitions.





Product version: IRIS 2020.1
Discussion (3)2
Log in or sign up to continue


The system-provided audit events are documented here:

Check to see if these events will give you what you need:

  • %System/%DirectMode/DirectMode audits commands run at the IRIS terminal.
  • The events under %System/%SQL audit SQL commands.
  • %System/%System/OSCommand audits $ZF calls.

There are many others that track logins and system changes.



I assume you are looking for something like CDC (capture data changes) for .

The basic idea is to programmatically read journal files record by record and analyze the SET/KILL ones  (according to some dictionary you build to determine which globals or classes need the CDC capability). 

I have done something similar using the ^JRNUTIL