OpenTP1 Version 7 Programming Guide

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

2.3.8 Notes on transaction processing

Organization of this subsection
(1) Relationship between transaction processing and the user service definition
(2) Time monitoring of transaction processing

(1) Relationship between transaction processing and the user service definition

Note the following points when requesting a service for which the transaction attribute is defined (atomic_update=Y specified) from a service that is being executed as a transaction:

  1. Specify a sufficient number of processes for the maximum number of processes (parallel_count) in the user service definition of the server UAP. Even after server UAP processing terminates, no service is provided to another client UAP until synchronization point processing of the global transaction is completed (unless the optimizing transaction is enabled). If a transaction continues for a long time in such a situation, processes are occupied which are equivalent to different client UAPs that requested services during the transaction. As a result, transaction performance might decline.
  2. Depending on the value given to balance_count (the number of remaining service requests) in the user service definition, even a user server which uses the multiserver facility may encounter a RPC timeout without any increase in the number of nonresident processes. Specify in the operand balance_count the most suitable value considering the load on the server UAP.
    In the following cases, be sure to specify 0 in the balance_count operand:
    • A recursive call is used with a user server comprising only nonresident processes (e.g., when parallel_count = 0 or 2).
    • A recursive call is used with a server comprising one resident process and nonresident processes (e.g., when parallel_count = 1 or 2).

(2) Time monitoring of transaction processing

As for time monitoring from the transaction start to synchronization point processing, you can specify whether to include the time until the function dc_rpc_call() called in the transaction returns. Define this specification with trn_expiration_time_suspend of the user service definition, the user service default definition, and the transaction service definition.

For details on the value to be assigned to trn_expiration_time_suspend and transaction time monitoring, see the manual OpenTP1 System Definition.