4. “Naming your dynamic routing program” on page 573
5. “Testing your dynamic routing program” on page 573
6. “Dynamic transaction routing sample programs” on page 574.
Dynamic transaction routing
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 links, or to other systems that are connected by
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 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.
Notes:
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 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.
v After the routed transaction has completed, if the routing program has requested
to be reinvoked at termination.
the dynamic routing program
550
CICS TS for OS/390: CICS Customization Guide
|
|
|
|
|
|
|
|
|
|
|
|
|
|