OpenTP1 Version 7 Programming Guide

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

2.1.12 Notes on using a recursive call

The server UAP being executed can be requested by respecifying the same service group name and service name as specified for the service. This feature is called a recursive call. When a recursive call is used, a new process is necessary for executing the same service. Therefore, there might be no more processes to be executed upon service request specification when a recursive call is used. In this case, an RPC timeout occurs or the permanent wait state is placed if a wait time is not specified. Specify a sufficient number of processes when using a recursive call. Only queue-receiving servers can use recursive calls. Servers that receive requests from a socket cannot use recursive calls.

A recursive call can also be used in a transaction branch which is a component of the global transaction. However, even if the requested service belongs to the same service group as for the client UAP, the requested service is executed as another transaction branch in another process.

Organization of this subsection
(1) Relationship between a recursive call and the system definition

(1) Relationship between a recursive call and the system definition

Even if a recursive call is used, the number of processes does not increase depending on the value set in balance_count (service request remain value) of the user service definition. Consequently, a timeout occurs. Specify 0 as the balance_count value in the following cases:

The following services cannot use a recursive call:

Services belonging to the service group for which 1 is specified as the maximum number of processes in the user service definition (parallel_count = 1)