Statically routing DPL requests

Static routing means that the location of the server program is specified at design time, rather than at run time. DPL requests for a particular remote program are always routed to the same server region. Typically, when static routing is used, the location of the server program is specified in the PROGRAM resource.

The program resource definition can also specify the name of the server program as it is known on the resource system, if it is different from the name by which it is known locally. When the server program is requested by its local name, CICS® substitutes the remote name before sending the request. This facility is useful when a server program exists with the same name on more than one system, but performs different functions depending on the system on which it is located.

Consider, for example, a local system CICA and two remote systems CICB and CICC. A program named PG1 resides in both CICB and CICC. These two programs are defined in CICA, but, because they have the same name, a local alias and a REMOTENAME must be defined for at least one of the programs. For example:
  • Definition of program PG1 in system CICB:
    PROGRAM(PG1)
    REMOTESYSTEM(CICB)
  • Definition of program PG1 in system CICC, that uses a local alias of PG99 and the REMOTENAME attribute:
    PROGRAM(PG99)
    REMOTENAME(PG1)
    REMOTESYSTEM(CICC)
Note: Although doing so can limit the independence of the client program, the client program can name the remote system explicitly by using the SYSID option on the LINK command. If this option names a remote system, CICS routes the request to that system unconditionally. If the value of the SYSID option is “hard-coded”, that is, it is not deduced from a range of possibilities at run time, this method is another form of static routing.

The local system can also be specified on the SYSID option. This means that the decision whether to link to a remote server program or a local one can be taken at run time. This approach is a simple form of dynamic routing.

In the client region (CICA in Figure 1), the command-level EXEC interface program determines that the requested server program is on another system (CICB in the example). It therefore calls the transformer program to transform the request into a form suitable for transmission (in the example, line (2) indicates this). As indicated by line (3) in the example, the EXEC interface program then calls on the intercommunication component to send the transformed request to the appropriate connected system.