Modifying dynamic routing

You can customize CICSPlex® SM workload management processing by modifying the module EYU9WRAM.

EYU9WRAM uses the CICSPlex SM dynamic routing application programming interface (API), which is a special-purpose, call-level interface that provides the mechanism needed to request workload management actions. All calls are constructed using standard CALL statements. The CALL statement generates the linkage between the EYU9WRAM module and the CICSPlex SM Workload Manager component. The format of the CALL statement is shown here:
   CALL WAPIENPT(DA_TOKEN,function)
where:
DA_TOKEN
Identifies the dynamic routing API token supplied via the EYURWCOM communication area. This token is used by EYU9WAPI and must not be altered.
function
Is the function to be performed, specified as:
SM_SCOPE
Returns a list of eligible target regions.
SM_BALANCE
Selects a target region from the list of eligible target regions.
SM_ROUTE
Routes a transaction to a specific target region.
SM_CREAFF
Creates an affinity.
SM_DELAFF
Deletes an active affinity.

You can use SM_SCOPE and SM_BALANCE together to obtain a list of target regions and then select the target region to which a transaction is to be routed.

If you know that a transaction is always to be directed to a specific target region, you can use just SM_ROUTE.

As distributed, EYU9WRAM issues SM_SCOPE and SM_BALANCE calls. It does not include any SM_ROUTE calls. It includes unexecuted calls to SM_CREAFF and SM_DELAFF. You can modify the program to issue these calls.

Although all the examples use the assembler language form of the dynamic routing API verbs, you can also use these verbs in programs written in C, COBOL, and PL/I. Sample programs distributed with CICSPlex SM contain examples of the CALL statements for each of these languages.
Note: If you are modifying dynamic routing, be aware that:
  • If they are not set, the values for application context are either zero (for the version) or nulls/low-values (for platform, application, and operation).
  • String fields are padded with nulls, not spaces.
Important: As distributed, EYU9WRAM handles the workload routing and separation established via the workload management definitions by using the API verbs. Any changes you make to EYU9WRAM, therefore, might adversely impact the CICSPlex SM workload management facilities. For example, if you do not use SM_SCOPE, SM_BALANCE, or SM_ROUTE, each transaction occurrence is routed to the default target region identified when the transaction was defined to CICS®. Thus, all CICSPlex SM workload management definitions are bypassed.