HiRDB Datareplicator Version 8 Description, User's Guide and Operator's Guide

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

9.2.2 Error handling methods

The table below shows the possible causes of errors in the target system and the handling methods for such errors. If an inconsistency has occurred between the source and target databases due to an error, the source and target Datareplicators must be initialized. For details about the initialization procedure, see 9.4 Initialization procedure during error recovery.

Table 9-3 Causes of errors and handling methods

Cause of error Error handling method
Memory shortage (local memory)
  • Terminate any unneeded processes.
  • Increase the memory size.
Memory shortage (shared memory)
  • Modify the defshmsize operand value in the import environment definition.
  • Terminate any unneeded processes that use the shared memory.
  • Increase the memory size.
Shortage of file descriptors
  • Close any unneeded files.
  • Modify the system parameters (maximum number of file descriptors).
Socket establishment failure Eliminate the cause of the error on the basis of the detail code from the system call.
Port check error Eliminate the cause of the error on the basis of the detail code.
Communication line failure Reconnect the communication line and restart the source system.
Data reception sequence error Contact the source system's customer engineer.
Insufficient file space Import information queue file Use the hdsstate command to see if all the update information in the import information queue file has been imported (all update information has been imported when the write position of COMMUNICATION INFORMATION is the same as the read position of REFLECTION INFORMATION). If all update information has been imported but the error status indicated by KFRB00005-E (insufficient queue file space) still remains, execute the hdsstop -t immediate or force command to terminate the target Datareplicator. Then increase the number of files or the file size and restart Datareplicator with the hdsstart -i command. The source Datareplicator automatically re-executes transmission processing; there is no need to take any special action.
Import status file After importing all update information in the import information queue file, terminate the target Datareplicator with the hdsstop command. Then increase the file size and restart Datareplicator with the hdsstart -i command.
Invalid update information Contact the customer support center.
Invalid definition information Correct the definitions for the source system or the target Datareplicator.
Invalid medium Import information queue file After correcting the error, synchronize the data linkage environments at the source and target, initialize them, then re-create the target database on the basis of the source database.
Import status file
Import master status file
SQL error Eliminate the cause of the error on the basis of the SQLCODE.
Error during update information input command processing

When an error occurs during extraction processing
Processing continues, because there is no effect on the update information input processing. You can restart extraction processing with the startup command (hdestart).

When an error occurs during the current import processing
Processing continues, because there is no effect on the update information input processing. You can restart the current import processing with the startup command (hdsrfctl).

When an error occurs during update information input processing
Import processing continues to input update information. To restart the update information input processing, execute the hdssamqin command with the -o option specified.
The -o option is applicable only in the event of an error. There is no need to execute this command in the case of abnormal termination that allows message output.

When an error occurs during import processing for update information input processing
Update information input processing continues. You can restart import processing with the startup command (hdsrfctl).
Internal conflict Contact the customer support center.
Machine power interrupt Restart the machine.
Bus error Contact the customer support center.
Invalid signal reception (sigkill)

UNIX edition of Datareplicator:
If the source Datareplicator received an invalid signal, execute the hdeshmclean command and restart the machine. If the target Datareplicator received an invalid signal, execute the hdsshmclean command and restart the machine.

Windows edition of Datareplicator:
Restart the machine.

Checking the transaction status when using the two-phase commit method for such errors

If the two-phase commit method is being used for synchronization point processing and an SQL error occurs while executing a synchronization point processing request, the status of the transaction that is being executed by Datareplicator's import facility is displayed as XID, which is displayed by executing HiRDB's pdls -d trn -a command. XID displays information about the transaction in the following format:

XID=aaaaaaaabbccdddd,eeeeeeeeffgghhhh

aaaaaaaa: Name of the executing process. If it is a UOC routine, hdsuocg is displayed; otherwise, hdssqle is displayed.

bb: Datareplicator identifier (00-ff)

cc: Data linkage identifier (00-ff)

dddd: 0000

eeeeeeee: Name of the import group

ff: Import group sequence number (sequential import group number assigned for each data linkage identifier)

gg: SQL process number (sequential SQL process number assigned for each import group)

hhhh: 0000

Transaction settlement when using the two-phase commit method

When synchronization point processing is performed using the two-phase commit method, do not use a command to settle a transaction except when canceling data linkage, and then executing an initial start. Normally, the target Datareplicator's transaction is settled automatically when the target Datareplicator starts. If the target Datareplicator terminates due to abnormal termination of the target HiRDB, a transaction might remain unsettled. In this case, restart the target Datareplicator with the procedure shown below.

To restart the target Datareplicator:

  1. Execute forced termination of the target Datareplicator with the hdsstop -t force command.
  2. Eliminate the cause of the abnormal termination and restart the target HiRDB.
  3. Execute the pdls -d trn -a command to obtain a list of unsettled transactions, and settle them on the basis of the displayed information. Then restart the target Datareplicator.

The following table shows the transaction information that is displayed and the action to be taken by the user:

Displayed information User's action
PROGRAM B-SVID STATUS
Other than hdssqle N/A N/A Because this is not a Datareplicator transaction, settle it on the basis of instructions provided by the program that generated the transaction.
hdssqle **...* N/A No user action is necessary, because all transactions whose TRNGID is shown as **...* are settled automatically when the target Datareplicator starts.
Other than **...* FORGETTING(?,w)
?: Any character
Use the pdfgt command to settle a transaction with this TRNGID.
Other than FORGETTING(?,w) Compare the XID of the transaction with this TRNGID with the XID in the KFRB3072-E message output to the error information file, then take one of the following actions:
There is a KFRB3072-E message with the same XID: Use the pdcmt command to settle the transaction.
There is no KFRB3072-E with the same XID: Use the pdrbk command to settle the transaction.