3. “Routing bridge requests dynamically” on page 603
4. “Routing by user ID” on page 607
5. “Parameters passed to the dynamic routing program” on page 607
6. “Naming your dynamic routing program” on page 621
7. “Testing your dynamic routing program” on page 621
8. “Dynamic transaction routing sample programs” on page 622.
Routing transactions dynamically
This section refers to the dynamic routing of transactions initiated from user
terminals or by eligible terminal-related EXEC CICS START commands.
When you define transactions to CICS, you can describe them as “remote” or
“local”. Local transactions are always executed in the terminal-owning region;
remote transactions can be routed to other regions connected to the
terminal-owning region by MRO or APPC (LUTYPE6.2) ISC links.
You can select both the system to which the transaction is to be routed and the
transaction’s remote name dynamically, rather than when the transaction is defined
to CICS. To do this you must use a dynamic routing program. The CICS-supplied
default routing program is called DFHDYP. Its source-level code is supplied in
assembler-language, COBOL, PL/I, and C versions. You can write your own
program in any of these languages, using the default program as a model.
Dynamic transactions
When you want to route transactions dynamically, you must define them with the
value DYNAMIC(YES). (The default value is DYNAMIC(NO).) You must also supply
values for both the remote and the local options. This allows CICS to select the
appropriate values when the transaction is routed, and to ignore those values that
are not needed. For information about defining transactions for dynamic transaction
routing, see Defining transactions for transaction routing, in the CICS
Intercommunication Guide.
When the dynamic routing program is invoked
For transactions initiated from user terminals or by eligible terminal-related EXEC
CICS START commands, CICS invokes the dynamic routing program as follows:
v When a transaction defined as DYNAMIC(YES) is initiated.
Note:
1. If a transaction definition is not found, CICS uses the common
transaction definition specified on the DTRTRAN system initialization
parameter. (For information about DTRTRAN, see DTRTRAN, in the
CICS System Definition Guide.)
2. If a transaction defined as DYNAMIC(YES) and initiated by a
terminal-related EXEC CICS START command is ineligible for dynamic
routing, the routing program is invoked for notification only—it cannot
route the transaction.
v If an error occurs in route selection—for example, if the target region returned by
the routing program on its initial (route selection) call is unavailable. This gives
the routing program an opportunity to specify an alternate target. This process
iterates until the routing program selects a target that is available or sets a
non-zero return code.
590 Customization Guide