10.1.4 Recovery-unnecessary front-end server

If the unit containing the front-end server terminates abnormally due to an error, the transaction that was being executed from that front-end server may be placed in uncompleted status. Because uncompleted transactions lock the database, some database referencing or updating may be limited. To resolve an uncompleted transaction, normally the front-end server must be recovered from the error and then restarted. If the abnormally terminated front-end server is a recovery-unnecessary front-end server, HiRDB automatically resolves the uncompleted transaction. This enables you to use another front-end or back-end server to restart database update processing. A unit that contains a recovery-unnecessary front-end server is called a recovery-unnecessary front-end server unit. Figure 10-3 shows the operation depending on whether or not a recovery-unnecessary front-end server is used.

Figure 10-3 Operation based on whether or not a recovery-unnecessary front-end server is used

[Figure]

Note that HiRDB Non Recover FES is required in order to use recovery-unnecessary front-end servers.

Advantages
You can continue online operation using the remaining front-end servers without having to restart the erroneous front-end server.
Criteria
We recommend that you use recovery-unnecessary front-end servers in a system that requires non-stop operation 24 hours a day.
Relationship with other front-end servers
  • Place a recovery-unnecessary front-end server on an independent unit.
  • A recovery-unnecessary front-end server cannot support a UAP that uses the X/Open XA interface for connection. Specify PDFESHOST and PDSERVICEGRP in the client environment definition and connect such a UAP to a non-recovery-unnecessary front-end server.
  • You can execute the pdrplstart and pdrplstop commands even when the recovery-unnecessary front-end server and recovery-unnecessary front-end server unit are inactive.
Figure 10-4 shows an example of a system configuration using a recovery-unnecessary front-end server.

Figure 10-4 Example of a system configuration using a recovery-unnecessary front-end server

[Figure]
  • A recovery-unnecessary front-end server cannot execute import processing using the two-phase commitment method for the synchronization point processing method (enabled when fxa_sqle is specified in the import system definition commitment_method operand) of the target Datareplicator. To use the two-phase commitment method for the synchronization point processing method of the target Datareplicator, you need to place one or more front-end servers other than the recovery-unnecessary front-end server at the target HiRDB. You also need to set the client environment variables PDFESHOST and PDSERVICEGRP at the target Datareplicator to connect to a front-end server other than a recovery-unnecessary front-end server.
Relation with other facilities
  • Recovery-unnecessary front-end servers cannot use the system switchover facility. To use the system switchover facility with the system, you must specify nouse in the pd_ha_unit operand in the unit control information definitions of the recovery-unnecessary front-end server unit.
Organization of this subsection
(1) Setup method
(2) Notes

(1) Setup method

To use a recovery-unnecessary front-end server, specify stls in the -k option of the pdstart operand.

(2) Notes

  1. If the recovery-unnecessary front-end server does not start during HiRDB startup, HiRDB continues startup processing excluding the corresponding unit, regardless of the value specified in the pd_start_level operand. If all front-end servers in use are recovery-unnecessary front-end servers, HiRDB system startup cannot be completed unless at least one front-end server starts successfully.
  2. Recovery-unnecessary front-end servers are independently subject to reduced activation. HiRDB ignores the name of a recovery-unnecessary front-end server in the pd_start_skip_unit operand, if specified.
  3. If a recovery-unnecessary front-end server terminates abnormally, the status information for the front-end server and unit is STOP(A). Unlike the normal STOP(A), this status allows the pdstop command to perform normal termination or planned termination on HiRDB's system manager and other units. If a recovery-unnecessary front-end server is terminated forcibly, the status information for the front-end server and unit is STOP(F). However, this status allows the pdstop command to perform normal termination or planned termination on HiRDB's system manager and other units.
  4. A recovery-unnecessary front-end server always starts the unit normally except in the following case:
    • The unit was terminated by a method other than normal termination, and stls was not specified in the -k option of the pdstart operand during the previous session.
  5. If the status information for a recovery-unnecessary front-end server is STOP(A), HiRDB stops accepting SQL requests from a UAP that has established connection with that recovery-unnecessary front-end server. In this case, the KFPS01820-E message displays c800 as the process termination status of the recovery-unnecessary front-end server. For the back-end server or dictionary server that contains the data whose manipulation was attempted by the SQL request, c900 may be displayed as the process termination status in the KFPS01820-E message. If the KFPS01820-E message is displayed, use pdstop -z to terminate the unit containing the front-end server whose process termination status is c800, eliminate the cause of the status STOP(A), and then restart.
  6. If the status information for a recovery-unnecessary front-end server unit is STOP(A) due to a network error even though the unit is not running, the system manager automatically terminates that unit forcibly and then restarts it once the error has been recovered and the system manager can communicate with the unit. If the unit is terminated before communication between the system manager and the unit becomes available, the system manager does not attempt forced termination nor does it restart the unit. If necessary, use the pdstart command to start the unit. In the following cases, take appropriate action depending on the situation:
    • When an error message has been displayed for the applicable unit
      Before starting the unit, check the message to determine the cause of the error and then take appropriate action. If the unit is stopped, the KFPS01841-I or KFPS01821-E message is displayed in the syslogfile. The KFPS01853-W, KFPS01863-E, or KFPS05619-E message is not displayed when the pdstart command is executed.
    • When the system manager's attempt to restart the unit failed and the unit remained in terminated status
      Check the message to determine the cause of the start error, and take appropriate action. After that, start the applicable unit with the pdstart command, if necessary.
  7. For a transaction that is processed at the back-end server or dictionary server branched out from the recovery-unnecessary front-end server, its completion is synchronized with the target back-end server or dictionary server when the transaction is committed. If the target back-end server or dictionary server cannot execute transaction processing at the time of synchronization (because system switchover is underway, the server is stopped, the server is not ready for start, or the server is not ready for termination), processing may be queued with the first transaction status set to READY or COMMIT. If this happens, check the server to determine the cause of the queuing of transaction processing and take appropriate action so that the transaction resolution processing can be resumed.
  8. You may not be able to use the pdcmt, pdrbk, or pdfgt command to forcefully terminate a transaction for which processing was performed by connection to a front-end server that uses the recovery-unnecessary FES facility, regardless of whether the transaction is in first or second status. In such a case, see Forcing determination of uncompleted transactions in the manual HiRDB Version 8 System Operation Guide for details about how to automatically resolve an uncompleted transaction.