· Jan 28, 2023 3m read

Using Ompare to compare CPF configuration and Scheduled Tasks between IRIS instances

Some Usage cases

1. A deployment may consist of two high availability instances and two disaster recovery instances in a different data center.

The corresponding UAT environment could replicate this giving a total of 8 instances. How do you confirm CPF and Scheduled task alignment across ALL instances.

2. Another team (possibly in anther organization) makes changes to an IRIS instance to correct a problem, improve security, or modify shared system task configuration. Capture the CPF before and after to see what was done across instances. Was the modification also consistently applied to Backup or DR node?

3. An upgrade was applied. Did this modify or introduce new defaults to CPF or Task configuration


ZPM>install alwo-ompare



Example - Profile, Change something, Profile again, See Report

Step 1 - Profile the system with manual schedule

Demonstrates the process can be scripted for automation


DiscardProfileData=0  means for the example we retain the local generated data for reporting.

Normally it would be exported to file and then re-imported to a central reporting instance.

set tBASE=##class(ompare.Schedule).%New()
set tBASE.Environment="LIVE_DC1_N1"
set tBASE.Namespaces="%SYS"
set tBASE.RunSourceHandlers=1
set tBASE.ExportToFile=0
set tBASE.ExportDirectory="C:\tmp\Export\"
set tBASE.ExportCompression=0
set tBASE.RetainExportDays=100
set tBASE.IncludeSourceCode=1
set tBASE.EnableLogging=0
set tBASE.RetainSigSrcHistoricVersions=-1
set tBASE.Debug=0
set tBASE.DiscardProfileData=0
set tSC1=tBASE.OnTask()

Step 2 - Change some things

For SQL modifying some settings

Step 3 -Scheduled Tasks - Created new on demand Task

Demonstrates automated profiling.


  • Pick a filepath useful for your system.
  • The Environment name is different from earlier to give an example of comparing systems.


Make a change to an existing task of choice to explore reporting.

Step 4 - Run the new Schedule

Create Report View for CPF and Scheduled Tasks

Step 1 - Launch Main page


Step 2 - Create CPF Report

After saving. Some new report configurations appear.

Scroll to the bottom of the page and enable viewing of CPF collected information.


Exclude: "*" means exclude everything

Include: "Config.*" means but then include back in any SQL profiled data from Table or alias prefixed with "Config."

Step 3 - Create a Scheduled Task report

View the HTML Report version

Step 1- View CPF Report Summary

Note: Though there are only 2 "instances" included for this example, the reporting can happily show 10 or 15 instances for side-by-side comparison.

Step 2 - Drilldown detail

Click on the "differences" link for Config.SQL

Expand the browser window to full-screen.

By default only the columns that are different are displayed.

Step 3 - Show Columns with same content

Click on the "Show same Cols" checkbox to display all columns.

When one panel scrolls it synchronizes the other panel to scoll the same amount.

Step 4 - View the Task Report

View newly created  "Task Report" summary from earlier

Step 5 - Drilldown detail


There is a placeholder row to indicate a gap where a task was missing in the first profile.

Step 6 - Show Rows with same content

Enable "Show same Rows"

Make a portable Excel Report to share findings

Step 1 - Create a new Excel Report configuration

Step 2 - Download the Excel report

Step 3 - Open the Excel Report

The cover page includes details of the report and where and when it was generated.

Each subsequent tab represents an included report summary.

Generated cell heights have been pre-expanded for easy viewing of information.

The information for Classes and Routines provides more detail (Properties, Methods etc.)

The SQL Table is a generic mechanism for reporting any differences in SQL viewable data across instances.

Possibly an enhancement can be made either generically or as an "Opt-In" at report level to give break down of difference count against "Column" name.


Hope this gave a useful taster into the abilities of ompare, and stimulated some ideas on how it might be useful for your deployment and support of products leveraging IRIS.

For more information please head over to the Open Exchange at

Discussion (2)3
Log in or sign up to continue