CICS dynamic routing

This section is an overview of the CICS® dynamic routing interface.

The information it contains is relevant to both CICS transaction routing and CICS distributed program link.

What is dynamic routing?

In a CICSplex, resources (for example, transactions or programs) required by one region can be owned by another region (the resource-owning region). For example, you might have a terminal-owning region that requires access to transactions owned by an application-owning region.

Static routing
Static routing means that the location of the remote resource is specified at design time. Requests for a particular resource are always routed to the same region. Typically, when static routing is used, the location of the resource is specified in the installed resource definition.
Dynamic routing
Dynamic routing means that the location of the remote resource is decided at run time. The decision is taken by a supplied user-replaceable routing program. The routing program can, at different times, route requests for a particular resource to different regions; for example, that if you have several cloned application-owning regions, your routing program could balance the workload across the regions dynamically.

What requests can be dynamically routed?

All the following requests can be dynamically routed:
  • Transactions started from terminals
  • Transactions invoked by a subset of EXEC CICS START commands
  • CICS-to-CICS distributed program link (DPL) requests
  • Program-link requests received from outside CICS; for example, External Call Interface (ECI) calls received from CICS clients
  • CICS business transaction services (BTS) processes and activities
  • Bridge 3270 transactions
  • CICS web service requests

What is required for dynamic routing?

Some further definitions are required:
Requesting region
The region in which a transaction or other request is issued. Here are some examples a requesting region:
  • For transactions started from terminals, it is the terminal-owning region (TOR).
  • For transactions started by EXEC CICS START commands, it is the region in which the START command is issued.
  • For “traditional” CICS-to-CICS DPL calls, it is the region in which the EXEC CICS LINK PROGRAM command is issued.
  • For program-link calls received from outside CICS, it is the CICS region which receives the call.
  • For BTS processes and activities, it is the region in which the EXEC CICS RUN ACTIVITY ASYNCHRONOUS command is issued.
Routing region
The region in which the routing program is invoked for route selection. With one exception, the requesting region and the routing region are always the same region. The exception is terminal-related START commands. A terminal-related START command is always executed in the terminal-owning region, the requesting region and the routing region may or may not be the same. (This is fully explained in Routing transactions invoked by START commands.) The routing region is always the TOR.
Target region
The region in which the routed transaction or request executes.