2.3.7 Operands related to transaction decision processing

36) pd_trn_rerun_branch_auto_decide = Y | N
This operand is applicable to a HiRDB/Parallel Server.
Specifies whether or not an undecided transaction that has branched from a transaction is to be decided automatically when a unit is restarted. An undecided transaction occurs when a unit terminates abnormally while the latter transaction's first phase of COMMIT is incomplete.
Y:
Decide undecided transactions automatically.
N:
Do not decide undecided transactions automatically. In this case, the HiRDB administrator must make the decision for an undecided transaction. For details about how to decide an undecided transaction, see the HiRDB Version 8 System Operation Guide.
Notes
The following should be noted when Y is specified or when specification of this operand is omitted:
  • If the reduced activation facility is used, transactions on a unit that is not running at the time of reduced activation are not subject to automatic decision. Therefore, when you restart a unit that was not running during reduced activation, such as after error recovery, check for any undecided transactions. Any undecided transactions that exist must be decided. For details about how to check for undecided transactions and how to decide them, see the HiRDB Version 8 System Operation Guide.
  • The volume of system log information at the server where the branching-source transaction resides will increase.
  • While an undecided transaction is being decided, write-protection is applied to the system log at the server where the branching-source transaction resides.
37) pd_trn_send_decision_intval_sec = transmission-retry-interval-in-seconds-for-automatic-transaction-decision
[Figure]<unsigned integer>((0-65535)) <<15>> (seconds)
This operand is applicable only to HiRDB/Parallel Server.
Specifies the interval (in seconds) for sending an automatic decision instruction to a branched transaction when the previous send operation has failed for some reason.
Condition
Y must be specified in the pd_trn_rerun_branch_auto_decide operand, or the pd_trn_rerun_branch_auto_decide operand must be omitted.
Notes
Specifying 0 increases the communication workload, because the decision instruction is resent continuously.
Relationships to other operands
This operand has the following relationships with the pd_trn_send_decision_interval operand:
  • To specify the time before re-transmission in seconds, use the pd_trn_send_decision_intval_sec operand; to specify it in minutes, use the pd_trn_send_decision_interval operand.
  • If the pd_trn_send_decision_intval_sec and the pd_trn_send_decision_interval operands are both specified, the pd_trn_send_decision_intval_sec operand takes precedence.
  • If the pd_trn_send_decision_intval_sec and the pd_trn_send_decision_interval operands are both omitted, the following value is assumed depending on the pd_sysdef_default_option operand value:
    pd_sysdef_default_option operand valueDefault value
    recommendableDefault value of the pd_trn_send_decision_intval_sec operand (15 seconds)
    v6compatible or v7compatibleDefault value of the pd_trn_send_decision_interval operand (5 minutes)
38) pd_trn_send_decision_interval = transmission-retry-interval-in-minutes-for-automatic-transaction-decision
[Figure]<unsigned integer>((0-65535)) (minutes)
This operand is applicable only to HiRDB/Parallel Server.
Specifies the interval (in minutes) for sending an automatic decision instruction to a branched transaction when the previous send operation has failed for some reason. Normally, you will specify the pd_trn_send_decision_intval_sec operand and omit this operand.
Condition
Y must be specified in the pd_trn_rerun_branch_auto_decide operand, or the pd_trn_rerun_branch_auto_decide operand must be omitted.
Notes
Specifying 0 increases the communication workload, because the decision instruction is resent continuously.
Relationships to other operands
If v6compatible or v7compatible is specified in the pd_sysdef_default_option operand, the default value for this operand is 5.
This operand has the following relationships with the pd_trn_send_decision_interval operand:
  • To specify the time before re-transmission in seconds, use the pd_trn_send_decision_intval_sec operand; to specify it in minutes, use the pd_trn_send_decision_interval operand.
  • If the pd_trn_send_decision_intval_sec and the pd_trn_send_decision_interval operands are both specified, the pd_trn_send_decision_intval_sec operand takes precedence.
  • If the pd_trn_send_decision_intval_sec and the pd_trn_send_decision_interval operands are both omitted, the following value is assumed depending on the pd_sysdef_default_option operand value:
    pd_sysdef_default_option operand valueDefault value
    recommendableDefault value of the pd_trn_send_decision_intval_sec operand (15 seconds)
    v6compatible or v7compatibleDefault value of the pd_trn_send_decision_interval operand (5 minutes)
39) pd_trn_send_decision_retry_time = maximum-wait-time-for-transaction-auto-decision
[Figure]<unsigned integer>((0-65535)) <<360>> (minutes)
This operand is applicable to a HiRDB/Parallel Server.
Specifies the maximum amount of time to wait for a decision completion notice to be returned after an automatic decision instruction has been sent to a branched transaction. If no decision completion notice is returned within the amount of time specified here, a communication error is considered to have occurred, the decision instruction to the branched transaction is canceled, and the branching-source transaction is decided.
When 0 is specified for this operand, time monitoring is not performed.
Notes
Y must be specified in the pd_trn_rerun_branch_auto_decide operand, or the pd_trn_rerun_branch_auto_decide operand must be omitted.
40) pd_trn_watch_time = maximum-communication-wait-time-during-transaction-synchronization-point-processing
[Figure]<unsigned integer>((0, 300-65535)) <<3600>> (seconds)
This operand is specific to a HiRDB/Parallel Server.
Specifies the maximum amount of time to wait for receiving communication (prepare, commit instruction, or response) between transaction branches during transaction synchronization point processing executed in the HiRDB server process. If no instruction or response is received within the specified time, the applicable transaction is rolled back if it has not completed the first phase of a two-phase commit. If the first phase has already been completed, the transaction is completed as specified.
Advantage
Even when a HiRDB client halts the transaction determination instruction (by forcibly terminating a client process, for example), the transaction execution continues unless it is stopped by the HiRDB server. Consequently, locked resources in a database, for example, may be monopolized for a long time. Specifying this operand can shorten the time during which locked resources are monopolized.
Specification guidelines
Normally, you need not specify this operand. Specify it in the following cases:
  • The KFPA11989-E or KFPA11722-E message is output during commit.
  • Processing of a COMMIT statement takes a long time, even though the number of database updates in the transaction is small.
Operand rules
  • If 0 is specified, the receiving wait time is not monitored.
  • If a value between 1 and 299 is specified, it is rounded up to 300.
Note
For the commit instruction in the second phase of a two-phase commit, or for a response, the specification value of this operand is valid only when pd_dbsync_point=commit is specified.
41) pd_trn_commit_optimize = ONEPHASE | NOUSE
This operand applies only to a HiRDB/Parallel Server.
Specifies whether to use one-phase commit in a HiRDB/Parallel Server's commitment control. For details about one-phase commitment, see the manual HiRDB Version 8 Description.
ONEPHASE:
Uses one-phase commit for commitment control when the number of branches to be updated within a transaction is one (the number of servers to be updated by one transaction is one). Note that using one-phase commit in commitment control is called one-phase optimization.
NOUSE:
Uses two-phase commit for commitment control. One-phase commit is not used.
Notes
  1. Specification of this operand is invalid if an OLTP system has specified two-phase commit.
  2. The default value of this operand is NOUSE if v6compatible is specified for the pd_sysdef_default_option operand.The default value of this operand is ONEPHASE if recommendable or v7compatible is specified for the pd_sysdef_default_option operand.
  3. If a recovery-unnecessary front-end server is used, the restrictions on this front-end server takes precedence over the specification for this operand. These restrictions are described below.
    The log to be output to a front-end server is suppressed.
    In a recovery-unnecessary front-end server, a UAP that uses the X/Open XA interface to make connection cannot be executed.