OpenTP1 Version 7 TP1/Client User's Guide TP1/Client/W, TP1/Client/P
2.4.7 Notes on transaction control
- If a timeout occurs within the scope of the transaction, the next function may return with a DCCLTER_OLTF_NOT_UP or DCRPCER_OLTF_NOT_UP error. This phenomenon occurs when a timeout occurs on the client side while the server is executing the function, and the client is disconnected from the server.
This phenomenon does not occur when the value of DCWATCHTIM in the client environment definition is larger than the watch_time value of the transactional RPC executing process.
The method of specifying the watch_time value differs depending on the version of TP1/Server Base as shown below:
- TP1/Server Base 03-02 or earlier:
Use the watch_time operand in the system common definition or user service default definition.
- TP1/Server Base 03-03 or later:
Use the watch_time operand in the client service definition.
You can also prevent this phenomenon from occurring by specifying DCWATCHTIMINHERIT and DCCLTDELAY in the client environment definition.
- If a transaction is started from a CUP, always commit the transaction in the unchained mode or issue a rollback request before terminating the CUP. If you terminate the CUP without terminating the transaction, you cannot check the result of the transaction at a synchronous point. In this case, the transactional RPC executing process is placed in a running state until a timeout for the transaction branch or a timeout for transaction inquiry occurs. When a timeout occurs, the transaction is rolled back.
If you terminate the CUP or execute the dc_clt_cltout_s function without requesting a commit in the unchained mode or without requesting a rollback, a commit in the unchained mode is automatically performed. If this occurs, the CUP is not notified of the result at a synchronous point.
- After a timeout for real-time monitoring occurs, if you execute the dc_rpc_call_s function from a CUP, the function may return with a DCRPCER_SYSERR error.
- If any of the timers used for monitoring on the server side expires, the server may fail. If the server fails, a function issued by a CUP may be placed in a wait state until a timeout occurs (until the maximum time to wait for a response expires). This phenomenon occurs because the server cannot recognize the packets sent from the client. To prevent this phenomenon from occurring, set appropriate values in all the timers.
All Rights Reserved. Copyright (C) 2006, 2009, Hitachi, Ltd.