How it works: the CICS-MQ bridge

The CICS®-MQ bridge enables an application that is not running in a CICS environment to use IBM® MQ messages to run a program or transaction on CICS and get a response.

A non-CICS application can use the CICS-MQ bridge from any environment that has access to a IBM MQ network that encompasses IBM MQ for z/OS®. The non-CICS application may wait for a response to come back before it runs the next CICS program (synchronous processing), or it may request one or more CICS programs to run, but not wait for a response (asynchronous processing).

When you use the CICS-MQ bridge to run a program or transaction on CICS, the CICS program contains no IBM MQ calls, because the bridge enables implicit Message Queue Interface (MQI) support. You can therefore re-engineer legacy CICS applications to be controlled from other platforms by IBM MQ messages, without having to rewrite, recompile, or relink them. The IBM MQ messages include the IBM MQ CICS information header (the MQCIH structure) to supply control options for the CICS applications.

The following types of CICS application are suitable for use with the CICS-MQ bridge:
  • CICS programs that are called using the EXEC CICS LINK command, known as DPL programs. The programs must conform to the DPL subset of the CICS API; that is, they must not use CICS terminal or sync point facilities. You can use the CICS-MQ bridge to run a single CICS program, or a set of CICS programs that form a unit of work.
  • CICS transactions that were designed to be run from a 3270 terminal, known as 3270 transactions. The transactions can use Basic Mapping Support (BMS) or terminal control commands. They can be conversational or part of a pseudoconversation. They are permitted to issue sync points.
Typically, more complex application programming is required to run a 3270 transaction through the CICS-MQ bridge, because the non-CICS application must interact with the internal logic and flow of control in the CICS transaction. It is preferable to run a DPL program that contains the business logic of the CICS application. However, some CICS applications are not structured with the business logic of the application separated from the presentation logic, so the CICS-MQ bridge lets you communicate with either type of application.

The CICS-MQ bridge uses standard CICS and IBM MQ security features. You can configure it to authenticate, trust, or ignore the user ID of the requestor. The MQCIH structure in the IBM MQ messages provides data for security checking.

The CICS-MQ bridge uses a bridge monitor, which is a transaction with the default name CKBR, to browse a IBM MQ request queue for new requests to run CICS applications. The request queue must reside on the local z/OS queue manager that is connected to the CICS-MQ adapter. The CICS-MQ bridge tasks typically run in the same CICS region as the bridge monitor. The user programs can be in the same or a different CICS region, using CICS transaction routing as necessary. If you need a request to be processed by a specific CICS region, you can name the CICS region in the MQCIH header.