OpenTP1 Version 7 TP1/Client User's Guide TP1/Client/W, TP1/Client/P

[Contents][Index][Back][Next]

2.3.9 RPC to servers other than OpenTP1

TP1/Client can issue an RPC to non-OpenTP1 servers such as DCCM3. To implement this feature, the server needs a function that interprets OpenTP1 RPC requests.

Organization of this subsection
(1) Specifying the remote server
(2) Address definition for the remote server
(3) RPC function overview
(4) Load distribution when executing an RPC for a DCCM3 logical terminal

(1) Specifying the remote server

For issuing an RPC, specify the remote server using the service group name and the service name in the same manner as RPCs for the OpenTP1 server. Since the client calls a server that is not controlled by the OpenTP1 name service, the client needs a feature that is equivalent to the name service for interpreting addresses.

(2) Address definition for the remote server

At the client side, create a text file for a list of RPC entry points (host computer names and port numbers) corresponding to the service group name. Declare this text file in DCCLTSERVICEGROUPLIST of the client environment definition.

At RPC execution, TP1/Client checks this list for the specified service group name. If a match is found, TP1/Client issues the RPC to the corresponding RPC entry point.

(3) RPC function overview

Available RPCs are of synchronous-response and non-response types. If an RPC is executed under transaction control, an OpenTP1 transaction does not process it. Because the service group name and the server makes a pair, the load distributing function is also unavailable. However, if you use a permanent connection to execute an RPC to a DCCM3 logical terminal, the load distributing function is available. For details on the load distribution when executing an RPC to a DCCM3 logical terminal, see (4).

When you issue an RPC to DCCM3, the service name is assumed to be a transaction name.

The following figure illustrates RPC processing for non-OpenTP1 server.

Figure 2-5 RPC processing for a non-OpenTP1 server

[Figure]

(4) Load distribution when executing an RPC for a DCCM3 logical terminal

When TP1/Client and the DCCM3 logical terminal use a permanent connection to execute an RPC, the load can be distributed to multiple DCCM3s. The system selects the connection destinations at random from the host names and port numbers of multiple DCCM3 logical terminals specified in the client environment definition, and the system attempts to connect the selected destinations. If an attempt to connect the selected DCCM3 logical terminals fails, those DCCM3 logical terminals are eliminated from the options. Then, the system re-selects some of the remaining DCCM3 logical terminals specified in the client environment definition at random, and the system attempts to connect the selected destinations. This step will be repeated. If all the attempts to connect the DCCM3 logical terminals specified in the definition fail, the system assumes an error.

The methods of communication possible between TP1/Client and the DCCM3 logical terminal are as follows. However, only methods 1 and 2 can perform load distribution since they use a permanent connection.

  1. Specify the host name of the DCCM3 logical terminal in the DCCLTDCCMHOST client environment definition and the port number of the DCCM3 logical terminal in DCCLTDCCMPORT. Specify DCCLT_DCCM3 in the flags argument of the dc_clt_connect_s function. A permanent connection is used in this case.
  2. Specify the host name and the port number of the DCCM3 logical terminal in the DCCLTRAPHOST client environment definition and DCNOFLAGS in the flags argument of the dc_clt_connect_s function. A permanent connection is used in this case.
  3. Specify the file that specifies the host name and the port number of the DCCM3 logical terminal for each service group in the DCCLTSERVICEGROUPLIST client environment definition. A permanent connection is not used in this case.