Understanding the Compiled Language Interception Processor (CLIP)

The Compiled Language Interception Processor intercepts DB2® calls so that you can use HCL OneTest™ API to record and virtualize Db2 on z/OS applications.

The Compiled Language Interception Processor has two software components that are used to intercept and examine calls made within applications. The components are a CLIP agent front-end and a CLIP agent back-end (probe), as shown in the following image.

A schematic overview of how CLIP intercepts Db2 calls within an application.

The CLIP agent front-end runs in an Eclipse environment and is supported on Windows and Linux platforms. A single instance of the CLIP agent front-end supports connections from multiple z/OS host computers, and can support connections from multiple users on each z/OS host. In addition, the CLIP agent front-end can connect to multiple instances of HCL OneTest™ API. The CLIP back-end probe running on the z/OS system is made up of a started task that is used to refresh an SVC routine, and programs that run within the address space of the program making the call to Db2.

Process flow

At z/OS IPL time (or at install time, if the CLIP agent back-end (probe) is installed without an IPL), the RITMGR started task is started. It refreshes the CLIP SVC routine. You start the CLIP agent front-end on the Windows or Linux system. The following diagram describes the flow of the request from the batch or CLIP application through CLIP and HCL OneTest™ API to Db2.

Process flow

  1. When an application is started with appropriate run-time options to indicate that HCL OneTest™ API should be used and that calls should be intercepted, a CLIP supplied version of the Language Environment (LE) CEEEVDBG exit running in the batch job or CICS address space will start the CLIP agent back-end (probe).
  2. The CLIP agent back-end (probe) notifies the CLIP agent front-end to record and virtualize events as directed by both HCL OneTest™ API and HCL Quality Server.
  3. HCL OneTest™ API interacts with Db2 by using JDBC.

When multiple HCL OneTest™ API instances share the same CLIP agent front-end, you can use the AQE_DBG_RIT_ID environment variable to determine which instance receives the events. This environment variable is defined on z/OS. For information about how to specify AQE_DBG_RIT_ID when testing a program running in CICS, see Setting up the CICS Db2 environment. For information about how to specify AQE_DBG_RIT_ID when testing an MVS Batch program, see Setting up the MVS Batch Db2 environment.

When AQE_DBG_RIT_ID is not specified, the following rules apply:
  • If all of the HCL OneTest™ API instances are recording or learning, the same events from the Db2 application will be sent to the user interface of the instances and all of them will perform learning.
  • If all the instances are simulating, one of the stubs will be selected to respond to the backend DB request.
  • If some instances are recording or learning and the others are simulating, a warning message is logged in the CLIP log, record and learning will be suppressed, and only one stub is selected to respond to the request.