OpenTP1 Version 7 System Definition

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

Appendix A.2 Time monitoring for transactions

The processing time of transaction branch (processing time of synchronous-response-type RPC) executed by other process may or may not be included in the limit elapsed time between transaction start and synchronization point acquisition. The method of monitoring the limit elapsed time of transactions is specified with trn_expiration_time_suspend in the user service definition, user service default definition, and transaction service definition.

The following explains the relationship between specification of the trn_expiration_time_suspend operand and the value of each timer as it relates to operation of the facility for timer monitoring.

Organization of this subsection
(1) Relationship between the trn_expiration_time_suspend operand and each timer monitoring value
(2) Relationship between the trn_expiration_time_suspend operand and each timer monitoring value (when using chained RPC)
(3) Section monitored using the trn_completion_limit_time operand

(1) Relationship between the trn_expiration_time_suspend operand and each timer monitoring value

Figure A-1 shows the relationship between the value specified in the trn_expiration_time_suspend operand and each timer monitoring value.

Specify the trn_expiration_time_suspend operand on SPP1 shown in Figure A-1. You can specify this operand in the user service definition, user service default definition, or transaction service definition. The priority of the specified values is: (1>2>3).

  1. User service definition
  2. User service default definition
  3. Transaction service definition

Whether you specify Y for this operand or specify N or F for this operand determines whether the processing time of the RPC is included in the expiry time in the transaction branch (the monitored period indicated by t3 in Figure A-1).

Figure A-1 Relationship between the trn_expiration_time_suspend operand and each timer value

[Figure]

The following explains t1 to t10 that appear in Figure A-1.

t1: watch_time (maximum time to wait for a response)
The system monitors the time from issuance of the RPC to the return of a response.
If a timeout occurs, the function dc_rpc_call() returns with the error DCRPCER_TIMED_OUT (-307).
One of the following values becomes the maximum monitoring time:
  • Value specified in the watch_time operand of the user service definition of a SUP
  • Value specified in the watch_time operand of the user service default definition when the watch_time operand was omitted from the user service definition of a SUP
  • Value specified in the watch_time operand of the system common definition when the watch_time operand was omitted from the user service definition and user service default definition of a SUP
  • 180 seconds when the watch_time operand was omitted from all definitions

t2: service_expiration_time (execution monitoring time from start of a service function to its termination)
The system monitors the time from receipt of a RPC and start of a service function to termination of the service function.
If a timeout occurs, the KFCA00502-I message is output with type code = 3 and SPP1 shuts down.
One of the following values becomes the maximum monitoring time:
  • Value specified in the service_expiration_time operand of the user service definition of SPP1
  • Value specified in the service_expiration_time operand of the user service default definition when the service_expiration_time operand was omitted from the user service definition of SPP1
  • 0 when the service_expiration_time operand was omitted from all definitions (no time monitoring is performed)

t3: trn_expiration_time (expiry time in transaction branch)
The system monitors the time from start of the transaction to the start of synchronization point processing.
The period to be monitored depends on the value specified in the trn_expiration_time_suspend operand of SPP1. The monitored period is as follows:
When Y is specified for the trn_expiration_time_suspend operand:
Period indicated by t3(Y)
When N or F is specified for the trn_expiration_time_suspend operand:
Total of the periods indicated by t3(N1) and t3(N2)
If a timeout occurs, the KFCA00502-I message is output with type code = 1 and SPP1 shuts down.
One of the following values becomes the maximum monitoring time:
  • Value specified in the trn_expiration_time operand of the user service definition of SPP1
  • Value specified in the trn_expiration_time operand of the user service default definition when the trn_expiration_time operand was omitted from the user service definition of SPP1
  • Value specified in the trn_expiration_time operand of the transaction service definition when the trn_expiration_time operand was omitted from the user service definition and user service default definition of SPP1
  • 0 when the trn_expiration_time operand was omitted from all definitions (no time monitoring is performed)

t4: watch_time (maximum time to wait for a response)
The system monitors the time from issuance of the RPC to the return of a response.
If a timeout occurs, the function dc_rpc_call() returns with the error DCRPCER_TIMED_OUT (-307).
One of the following values becomes the maximum monitoring time:
  • Value specified in the watch_time operand of the user service definition of SPP1
  • Value specified in the watch_time operand of the user service default definition when the watch_time operand was omitted from the user service definition of SPP1
  • Value specified in the watch_time operand of the system common definition when the watch_time operand was omitted from the user service definition and user service default definition of SPP1
  • 180 seconds when the watch_time operand was omitted from all definitions

t5: service_expiration_time (execution monitoring time from start of a service function to its termination)
The system monitors the time from receipt of a RPC and start of a service function to termination of the service function.
If a timeout occurs, the KFCA00502-I message is output with type code = 3 and SPP2 shuts down.
One of the following values becomes the maximum monitoring time:
  • Value specified in the service_expiration_time operand of the user service definition of SPP2
  • Value specified in the service_expiration_time operand of the user service default definition when the service_expiration_time operand was omitted from the user service definition of SPP2
  • 0 when the service_expiration_time operand was omitted from all definitions (no time monitoring is performed)

t6: trn_expiration_time (expiry time in transaction branch)
The system monitors the time from start of the transaction to the start of synchronization point processing.
If a timeout occurs, the KFCA00502-I message is output with type code = 1 and SPP2 shuts down.
One of the following values becomes the maximum monitoring time:
  • Value specified in the trn_expiration_time operand of the user service definition of SPP2
  • Value specified in the trn_expiration_time operand of the user service default definition when the trn_expiration_time operand was omitted from the user service definition of SPP2
  • Value specified in the transaction service definition when the trn_expiration_time operand was omitted from the user service definition and user service default definition of SPP2
  • 0 when the trn_expiration_time operand was omitted from all definitions (no time monitoring is performed)

t7: trn_watch_time (maximum time to wait for communication at synchronization point processing of a transaction)
This is the time that the system is to wait to receive communication (prepare, commit, rollback instruction, or response) between transaction branches during synchronization point processing of a transaction.
One of the following values becomes the maximum wait time:
  • Value specified in the trn_watch_time operand of the user service definition of SPP1
  • Value specified in the trn_watch_time operand of the user service default definition when the trn_watch_time operand was omitted from the user service definition of SPP1
  • Value specified in the trn_watch_time operand of the transaction service definition when the trn_watch_time operand was omitted from the user service definition and user service default definition of SPP1
  • Value specified in the watch_time operand of SPP1 when the trn_watch_time operand was omitted from all definitions of SPP1

t8: trn_watch_time (maximum time to wait for communication at synchronization point processing of a transaction)
This is the time that the system is to wait to receive communication (prepare, commit, rollback instruction, or response) between transaction branches during synchronization point processing of a transaction.
One of the following values becomes the maximum wait time:
  • Value specified in the trn_watch_time operand of the user service definition of SPP2
  • Value specified in the trn_watch_time operand of the user service default definition when the trn_watch_time operand was omitted from the user service definition of SPP2
  • Value specified in the trn_watch_time operand of the transaction service definition when the trn_watch_time operand was omitted from the user service definition and user service default definition of SPP2
  • Value specified in the watch_time operand of SPP2 when the trn_watch_time operand was omitted from all definitions of SPP2

t9: trn_completion_limit_time (time limit for completing a transaction)
The system monitors the time from the start to the end of the transaction.
When the specified time expires before the transaction ends, the KFCA00502-I message with type=4 indicated is output, and SPP1 fails.
The expiration time for this monitoring is determined as follows:
  • If the trn_completion_limit_time operand is specified in the user service definition for SPP1, the value of the operand is used.
  • If the trn_completion_limit_time operand is not specified in the user service definition for SPP1, the value of the trn_completion_limit_time operand in the user service default definition for SPP1 is used.
  • If the trn_completion_limit_time operand is not specified in either the user service definition or the user service default definition, the value of the trn_completion_limit_time operand in the transaction service definition for SPP1 is used.
  • If the trn_completion_limit_time operand is not specified in any definitions for SPP1, 0 is assumed (the system does not monitor the time).

t10: trn_completion_limit_time (time limit for completing a transaction)
The system monitors the time from the start to the end of the transaction.
When the specified time expires before the transaction ends, the KFCA00502-I message with type=4 indicated is output, and SPP2 fails.
The expiration time for this monitoring is determined as follows:
  • If the trn_completion_limit_time operand is specified in the user service definition for SPP2, the value of the operand is used.
  • If the trn_completion_limit_time operand is not specified in the user service definition for SPP2, the value of the trn_completion_limit_time operand in the user service default definition for SPP2 is used.
  • If the trn_completion_limit_time operand is not specified in either the user service definition or the user service default definition, the value of the trn_completion_limit_time operand in the transaction service definition for SPP2 is used.
  • If the trn_completion_limit_time operand is not specified in any definitions for SPP2, 0 is assumed (the system does not monitor the time).

(2) Relationship between the trn_expiration_time_suspend operand and each timer monitoring value (when using chained RPC)

Figure A-2 shows the relationship between the value specified in the trn_expiration_time_suspend operand and each timer monitoring value when you use chained RPC.

Specify the trn_expiration_time_suspend operand on SPP1 shown in Figure A-2. You can specify this operand in the user service definition, user service default definition, or transaction service definition. The priority of specified values is: (1>2>3).

  1. User service definition
  2. User service default definition
  3. Transaction service definition

Whether you specify Y for this operand or specify N or F for this operand determines whether the processing time of the RPC is included in the expiry time in transaction branch (the monitored period indicated by t3 in Figure A-2).

Figure A-2 Relationship between the timer values when chained RPC is used (when chained RPC is used)

[Figure]

For details on t1, t2, and t4 to t10 given in Figure A-2, see the descriptions provided for Figure A-1. Descriptions of t3 and t11 are given below.

t3: trn_expiration_time (expiry time in transaction branch)
The system monitors the time from start of the transaction to commit.
The period to be monitored depends on the value specified in the trn_expiration_time_suspend operand of SPP1. The monitored period is as follows:
When Y is specified for the trn_expiration_time_suspend operand:
Period indicated by t3(Y)
When N or F is specified for the trn_expiration_time_suspend operand:
Total of the periods indicated by t3(N1), t3(N2), and t3(N3)
If a timeout occurs, the KFCA00502-I message is output with type code = 1 and SPP1 shuts down.
One of the following values becomes the maximum monitoring time:
  • Value specified in the trn_expiration_time operand of the user service definition of SPP1
  • Value specified in the trn_expiration_time operand of the user service default definition when the trn_expiration_time operand was omitted from the user service definition of SPP1
  • Value specified in the trn_expiration_time operand of the transaction service definition when the trn_expiration_time operand was omitted from the user service definition and user service default definition of SPP1
  • 0 when the trn_expiration_time operand was omitted from all definitions (no time monitoring is performed)

t11: watch_next_chain_time (monitoring time for chained RPC intervals)
The system monitors the time from return of a chained RPC response to arrival of the next request.
If a timeout occurs, the KFCA00315-E message is output and SPP2 shuts down.
One of the following values becomes the maximum monitoring time:
  • Value specified in the watch_next_chain_time operand of the user service default definition of SPP2
  • Value specified in the watch_next_chain_time operand of the user service default definition when the watch_next_chain_time operand was omitted from the user service default definition of SPP2
  • 180 seconds when the watch_next_chain_time operand was omitted from all definitions

(3) Section monitored using the trn_completion_limit_time operand

The section monitored using the trn_completion_limit_time operand includes the XA interface processing, the server UAP call processing, and all user processing. However, if the transaction is optimized (commit or prepare optimization), monitoring stops when the transaction being executed in the SPP process terminates. For details about optimization of transactions, see the OpenTP1 Programming Guide.

The following figure shows the difference between the sections monitored using the trn_expiration_time and trn_completion_limit_time operands.

Figure A-3 Difference between the sections monitored using the trn_expiration_time and trn_completion_limit_time operands

[Figure]

Tn and Nn are described below.

T1: Section monitored using the trn_expiration_time operand for the SUP (transaction branch expiration time)

T2: Section monitored using the trn_expiration_time operand for the SPP (transaction branch expiration time)

N1: Section monitored using the trn_completion_limit_time operand for the SUP (time limit for completing the transaction)

N2: Section monitored using the trn_completion_limit_time operand for the SPP (time limit for completing the transaction)
Monitoring starts when a service function of the SPP process starts and ends when the commit completion message is sent.

N2(a): Section monitored using the trn_completion_limit_time operand when commit optimization is performed (time limit for completing the transaction)
Monitoring starts when a service function of the SPP process starts and ends when the prepare completion message is sent.

N2(b): Section monitored using the trn_completion_limit_time operand when prepare optimization is performed (time limit for completing the transaction)
Monitoring starts when a service function of the SPP process starts and ends when completion of the service function is replied.