Two routing programs
CICS provides two user-replaceable programs for dynamic routing: the dynamic routing program and the distributed routing program. If you are using CICSPlex® SM to manage your CICS environment, you can use the EYU9XLOP routing program instead.
You can use the dynamic routing program, DFHDYP, to route the following requests:
- Transactions started from terminals
- Transactions started by terminal-related START commands
- CICS-to-CICS DPL requests
- Program-link requests received from outside CICS
- Bridge 3270 requests
You can use the distributed routing program, DFHDSRP, to route the following requests:
- CICS® business transaction services processes and activities
- Non-terminal-related START requests
- CICS web service requests
The two routing programs are specified on different system initialization parameters. You specify the name of the dynamic routing program on the DTRPGM system initialization parameter. You specify the name of the distributed routing program on the DSRTPGM system initialization parameter. The distributed routing program must be specified in the routing and target CICS regions.
The programs are passed the same communications area. However, certain fields that are meaningful to one program are not meaningful to the other. The programs are also called at similar points; for example, for route selection, route selection error, and optionally at termination of the routed transaction or program-link request.
- Use different user-written programs for dynamic routing and distributed routing.
- Use the same user-written program for both dynamic routing and distributed routing.
- Use a user-written program for dynamic routing and the CICSPlex SM routing program for distributed routing, or vice versa.
- The dynamic routing program and the distributed routing program are called if the resource (the transaction or program) is defined as DYNAMIC(YES). However, in the case of BTS activities that are run asynchronously, the distributed routing program is called even if the associated transaction is defined as DYNAMIC(NO). In this situation, the distributed routing program cannot route the request, but it can monitor the effect of the request on workloads, or perform other activities. This difference means that you can use the distributed routing program to monitor the effect of statically-routed requests on the relative workloads of the target regions.
- The dynamic routing program uses the hierarchical hub routing model, where one routing program controls access to resources
on several target regions. The routing program that is called at termination
of a routed request is the same program that was invoked for route
selection.
The distributed routing program uses the distributed model, which is a peer-to-peer system; the routing program itself is distributed. The routing program that is invoked at initiation or termination of a routed transaction is not the same program that was invoked for route selection. It is the routing program on the target region. You must ensure that a distributed routing program is specified in all the target regions in addition to the routing region.