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.