Est. 1996 Advanced

CONTROL-M/Analyzer

A rule-based data balancing and quality control tool for z/OS mainframes, using a declarative EXECUTE/ON/WHEN/DO scripting language to automate verification of batch job output.

Created by New Dimension Software (acquired by BMC Software in 1999)

Paradigm Rule-based, Declarative
Typing Untyped (domain-specific rule language)
First Appeared 1996
Latest Version 9.0.21.300 (2025)

CONTROL-M/Analyzer is a rule-based data balancing and quality control tool that runs on IBM z/OS mainframes. Part of BMC Software’s INCONTROL for z/OS product suite, it provides a domain-specific scripting language designed for automated verification of batch job output and data reconciliation. Originally developed by New Dimension Software in Israel around 1996 and maintained by BMC Software since their 1999 acquisition, CONTROL-M/Analyzer remains actively supported and in production use at enterprises running mainframe batch processing workloads.

History & Origins

New Dimension Software

CONTROL-M/Analyzer was created by New Dimension Software (formerly 4th Dimension Software), an Israeli company that developed the INCONTROL suite of mainframe workload automation tools. The INCONTROL suite included several products, each addressing a different aspect of mainframe operations: Control-M for job scheduling, Control-D for report distribution, Control-V for report archiving, and Control-M/Analyzer for data balancing and quality control.

The Analyzer component first appeared around 1996, building on New Dimension’s established presence in the mainframe automation market. Its internal utility prefix “CTB” – where “B” likely stands for “Balancing” – reflects its core purpose: automated verification and reconciliation of data produced by batch jobs.

BMC Software Acquisition

In 1999, BMC Software acquired New Dimension Software for approximately $675 million, bringing the entire INCONTROL suite under BMC’s ownership. BMC continued developing and supporting CONTROL-M/Analyzer as part of the INCONTROL for z/OS product line, integrating it more deeply with the IOA (Integrated Operations Architecture) framework that provides shared infrastructure across all INCONTROL products.

Under BMC, the Analyzer component has followed the version numbering of the broader INCONTROL suite, with documentation copyright notices spanning 2005 through 2024. The current documented version is 9.0.21.300, published in 2025.

Design Philosophy

The Data Balancing Problem

In mainframe batch processing environments, hundreds or thousands of jobs run daily, producing output files, reports, and database updates. Ensuring that these jobs have produced correct results – that transaction totals balance, that record counts match expectations, that values fall within acceptable ranges – is critical for data integrity. Historically, this verification was performed manually or through ad-hoc scripts, both of which are error-prone and difficult to maintain at scale.

CONTROL-M/Analyzer addresses this by providing a structured, declarative language specifically designed for expressing data verification rules. Rather than writing general-purpose programs to parse job output and check values, operations teams define rules that describe what to look for and what to do when conditions are met or violated.

Rule-Based Approach

The Analyzer’s scripting model is built around four core constructs:

  • EXECUTE: Initiates rule processing and specifies which input files or reports to examine
  • ON: Defines evaluation contexts and conditions; a single rule can contain multiple ON blocks for different balancing operations
  • WHEN: Specifies search criteria for locating specific data within files or reports
  • DO: Specifies actions to take based on the evaluation results

This structure separates the concerns of data location (EXECUTE/WHEN), evaluation logic (ON), and response actions (DO), making rules readable and maintainable by operations staff who may not be traditional programmers.

Key Features

Rule Language

The CONTROL-M/Analyzer rule language provides a set of DO verbs for different actions:

  • DO SET: Assign values to variables for tracking and comparison
  • DO COMMIT: Save variable values to the Analyzer database for cross-run comparison
  • DO PRINT: Output messages to the invocation report
  • DO EXTRACT: Extract specific data from files
  • DO SHOUT: Send alert messages to TSO users when problems are detected
  • DO TERMINAT: Terminate rule execution with a status code (OK or NOTOK)
  • DO REMARK: Insert information into the activity record for audit tracking
  • DO CALLUSER: Invoke user-written routines for custom processing
  • DO CTBRULE: Invoke additional balancing rules, enabling rule composition
  • DO BLOCK: Execute a block of actions as a unit

Database Variables

The Analyzer maintains a database of variables organized into functional groups. Each variable can store up to 1,000 generations (historical versions), allowing rules to compare current values against previous runs. This generational storage is central to the balancing concept – a rule can verify that today’s transaction total is within an expected range of yesterday’s total, or that a weekly aggregate matches the sum of daily values.

Balancing Missions

Rules are organized into balancing missions that group related rules with scheduling and execution criteria. Missions support:

  • Time-based scheduling (daily, weekly, monthly)
  • Condition-based prerequisites using IOA Conditions/Resources
  • Variable presetting before rule execution
  • Up to 50 arguments passed to rules via RARGnn system variables

Invocation Methods

CONTROL-M/Analyzer rules can be triggered in three ways:

  1. Direct call: Specifying the rule name from an application, job step, or another INCONTROL product
  2. Balancing mission: The system searches the Active Balancing file for mission entries matching scheduling criteria
  3. Event-driven: Rules triggered by job completion (OK or NOTOK status) via ON/DO actions in Control-M job definitions

Each rule execution produces an invocation report documenting which ON blocks executed, their success or failure status, and diagnostic information for debugging.

Operational Infrastructure

The Analyzer maintains its own operational environment:

  • New Day Procedure (CTBNDAY): An automated daily startup that reformats and compresses the Active Balancing file, places new balancing missions, and validates date controls
  • Active Balancing Environment: Real-time monitoring of active missions and rules, with filtering by group, rule name, or status
  • Rule Activity Facility: Execution history including timestamps, status codes (OK, NOTOK, in tolerance), affected variables, and log messages

Integration with BMC INCONTROL Suite

CONTROL-M/Analyzer integrates with other products in the INCONTROL suite through the shared IOA framework:

  • Control-M: Job scheduling integration – rules can be triggered by job completion events, and Analyzer results can set conditions that gate downstream job execution
  • Control-V: Report archiving integration – balancing operations can run on archived report pages via DO CTBRULE statements in report decollating missions
  • Control-D: Report distribution – shares the IOA infrastructure for coordinated operations
  • Control-M/Restart: Automatic rollback of database variables when jobs are restarted, via User Exit CTRX001Q
  • IOA Conditions/Resources: A shared cross-product condition mechanism that enables inter-product flow control – for example, preventing an accounts receivable update from running until invoice balancing has completed successfully

Current Relevance

CONTROL-M/Analyzer remains actively supported by BMC Software as part of the INCONTROL for z/OS suite. The current version (9.0.21.300) was published in 2025, and the broader Control-M suite continues to receive regular updates with version 9.0.22 also released in 2025. BMC’s end-of-life tracking shows Control-M 9.0.21 with full support through at least September 2026.

The tool occupies a specific niche: z/OS mainframe environments where batch processing integrity is critical. In industries like banking, insurance, and government – where mainframe batch processing remains central to daily operations – automated data balancing continues to be an essential operational requirement. CONTROL-M/Analyzer serves this need with a purpose-built rule language that operations teams can maintain without general-purpose programming expertise.

Why It Matters

CONTROL-M/Analyzer represents a class of domain-specific languages that are invisible outside their operational context but critical within it. Its significance lies in several areas:

  1. Domain-specific automation: The Analyzer demonstrates the value of purpose-built languages for specific operational domains. Rather than forcing operations teams to write general-purpose scripts for data verification, it provides a structured, declarative syntax designed specifically for the task.

  2. Enterprise data integrity: In environments where batch processing errors can have significant financial or regulatory consequences, automated verification is not optional. CONTROL-M/Analyzer has provided this capability on z/OS mainframes for approximately three decades.

  3. Longevity of mainframe tooling: The Analyzer’s continuous development from approximately 1996 through 2025 illustrates the long operational lifespans of mainframe software. Organizations that adopted it decades ago continue to rely on it, and BMC continues to maintain it alongside their broader Control-M modernization efforts.

  4. Rule-based paradigm in operations: The EXECUTE/ON/WHEN/DO structure represents a practical application of rule-based programming to operational concerns, making data verification logic accessible to operations staff rather than requiring dedicated developers.

Timeline

1996
CONTROL-M/Analyzer first released by New Dimension Software (Israel) as part of the INCONTROL product suite for z/OS
1999
BMC Software acquires New Dimension Software for approximately $675 million, bringing CONTROL-M/Analyzer and the entire INCONTROL suite under BMC ownership
2002
CONTROL-M/Analyzer integrated into BMC's unified INCONTROL for z/OS architecture with the IOA (Integrated Operations Architecture) framework
2010
Control-M 7 released, continuing the modernization of the broader Control-M product family including the z/OS Analyzer component
2012
Control-M 8 released with enhanced cross-platform capabilities for the broader suite
2025
CONTROL-M/Analyzer version 9.0.21.300 published, with the broader Control-M suite reaching version 9.0.22

Notable Uses & Legacy

Financial Services Batch Processing

Used in banking and financial institutions to verify the accuracy and completeness of daily batch processing runs, reconciling transaction totals across systems

U.S. Department of Veterans Affairs

The VA Office of Information and Technology lists BMC Control-M Mainframe Extension Package in their Technology Reference Model (TRM) for enterprise workload automation, though the entry has been marked for divestiture as of 2024

Enterprise Data Reconciliation

Deployed in large organizations running z/OS mainframes to automate verification of job output, comparing values across runs and flagging data inconsistencies before they propagate downstream

Running Today

Run examples using the official Docker image:

docker pull
Last updated: