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.