Nonstop Database, HiRDB Version 9 System Operation Guide
You can use the transaction queuing facility while using the standby-less system switchover facility.
When a system switchover occurs in a unit for a back-end server or dictionary server, the back-end server or dictionary server cannot accept any transactions until the system switchover is complete. This means that any transaction to be processed by the back-end server or dictionary server while the system switchover is in progress results in an error.
The function called the transactions queuing facility queues transactions on the front-end server until an ongoing system switchover is complete, without causing errors for these transactions. This makes it possible to reduce the number of transaction errors occurring during a system switchover. The following figure provides an overview of the transaction queuing facility.
Figure 26-99 Overview of the transaction queuing facility
To use the transaction queuing facility, specify the operands listed in the following table.
Table 26-51 Operands to specify in order to use the transaction queuing facility
Operand | Description |
---|---|
pd_ha_agent | Specify this operand if you are using the rapid system switchover facility, the standby-less system switchover (1:1) facility, or the standby-less system switchover (effects distributed) facility. standbyunit: Uses the rapid system switchover facility. server: Uses the standby-less system switchover (1:1) facility. activeunits: Uses the standby-less system switchover (effects distributed) facility. |
pd_ha_transaction | Specifies that the transaction queuing facility is to be used. When NO is specified in the PDHATRNQUEUING operand in the client environment definition, the UAP executed by the HiRDB client is not subject to the transaction queuing facility. For details about the PDHATRNQUEUING operand, see the HiRDB Version 9 UAP Development Guide. |
pd_ha_trn_queuing_wait_time | Specifies the queuing wait time for transactions. If the standby system unit is not activated before the wait time specified in this operand expires, transactions currently being queued result in an error. Any subsequent transactions result in an error and are not queued. |
pd_ha_trn_restart_retry_time | If a system switchover occurs while the transaction queuing facility is being used, transactions are queued on the front-end server. However, the front-end server cannot detect the system switchover until the standby system unit restarts. During the time from when the system switchover occurs until the time the standby system unit restarts, the front-end server continues to request that the running system unit start transactions. However, such transaction startup requests result in errors because the running system unit has already terminated abnormally. The front-end server retries the transaction startup requests repeatedly. A maximum retry time value is specified in this operand. If the standby system unit has not restarted by the time the value specified in this operand is reached, transactions currently being retried result in an error. All subsequent transactions result in an error also and are not retried. Figure 26-100 Relationship between the pd_ha_trn_queuing_wait_time operand and the pd_ha_trn_restart_retry_time operand shows the relationship between the pd_ha_trn_queuing_wait_time operand and the pd_ha_trn_restart_retry_time operand. |
Figure 26-100 Relationship between the pd_ha_trn_queuing_wait_time operand and the pd_ha_trn_restart_retry_time operand
Transactions generated by an SQL extension are subject to queuing. However, transactions generated by definition SQL and transactions using the holdable cursor facility are not subject to queuing. The following transactions are not subject to queuing:
However, depending on the timing, some of these transactions might be queued.
The transaction queuing time is the maximum value that is equal to the sum of the value of the pd_ha_trn_queuing_wait_time operand (default: 180 seconds) and the value of the pd_ha_trn_restart_retry_time operand (default: 60 seconds). Therefore, be sure to take careful note of the values for the following operands:
The time required to perform a system switchover is determined by calculating the difference between the time the cluster software outputs the system switchover startup message to the syslogfile and the time it outputs the system switchover completion message to the syslogfile. One of the following messages is output when a system switchover starts:
The KAMN311-I message is output when a system switchover is complete.
Caution is urged if a system switchover occurs while a search using a list is underway. A list created by a unit before a system switchover occurs is deleted when a system switchover occurs on a back-end server or a dictionary server. Therefore, a search that uses a list (queued transactions) will result in an error after a system switchover occurs. In such a case, either delete or re-create the list.
Because a larger number of users than usual are waiting to perform processing while transactions are being queued, the maximum number of concurrent connections (value of the pd_max_users operand) might be exceeded. If this happens, no additional users will be able to connect to the front-end server, and processes for connecting to the front-end server will be retried. These processes will be retried only for the amount of time equal to the sum of the values specified in the pd_ha_trn_queuing_wait_time and pd_ha_trn_restart_retry_time operands.
UAPs cannot connect to HiRDB during a system switchover in the following situations:
In these cases, the UAP uses the automatic reconnect facility to retry connecting to HiRDB. If the system switchover is completed during the retry interval, the UAP will connect successfully to HiRDB. For details about the automatic reconnect facility, see the HiRDB Version 9 UAP Development Guide.
For notes on using the BES connection holding facility, see E.1(3)(c) Setting the maximum client wait time.
All Rights Reserved. Copyright (C) 2011, 2015, Hitachi, Ltd.