pdconfchk (Check system definitions)

Function

Checks the contents of system definitions that are required in order to start HiRDB.

If there is an error in the system definitions, the command displays the erroneous definition along with the details.

Executor

HiRDB administrator

Format

pdconfchk [-d subdirectory-name] [-n] [-l]

Option

Specifies the subdirectory that contains the HiRDB system definition file to be checked, expressed as a path name relative to $PDDIR/conf or $PDCONFPATH. $PDDIR/conf is the directory that contains unit control information definition files. $PDCONFPATH is the directory that contains other HiRDB system definition files.

The following table shows the locations of the HiRDB system definition files that can be checked:

Type of HiRDB system definition file-d option specified-d option omitted
Unit control information definition file$PDDIR/conf/$PDDIR/conf/subdirectory/
Other file$PDCONFPATH/$PDCONFPATH/subdirectory/
Criteria
Before changing the HiRDB system definitions for the current environment, you should save the new HiRDB system definitions in a subdirectory and check them. This enables you to check the modified HiRDB system definitions before proceeding.
Rules
  1. Create in advance the subdirectory that will be specified.
  2. Store in the subdirectory not only the modified HiRDB system definition file but all HiRDB system definition files.
  3. For a HiRDB/Single Server, the same path name is set in $PDDIR/conf and $PDCONFPATH.
  4. For a HiRDB/Parallel Server, the path name pointed to by $PDDIR/conf and $PDCONFPATH may be different (for example, when the HiRDB system definition file is shared). In this case, create a subdirectory with the same name on both paths.
    If the $PDDIR/conf and $PDCONFPATH settings are different for each unit, create the subdirectory under $PDDIR/conf and $PDCONFPATH and then store the HiRDB system definition files in the subdirectories.
  5. The maximum lengths of $PDDIR/conf/subdirectory and $PDCONFPATH/subdirectory are 220 bytes. Make sure that the name does not exceed 220 bytes.
  6. To check the system definitions that are to be changed by the pdchgconf command, store the new system definition files in $PDDIR/conf/chgconf and then specify -d chgconf when you execute the pdconfchk command.

Specifies that checking of the system files and access permissions is to be skipped. Use this option when the system files have not been created by the pdfmkfs or pdloginit command.

When Real Time SAN Replication based on the log-only synchronous method is used, this option specifies that the status file for log application processing and the synchronization point dump file for log application processing, which are required for log application processing, are to be included as targets for system file checking as well as for access privilege checking.

The -l option can be specified only when all of the conditions listed below are satisfied; if any of these conditions is not satisfied, the pdconfchk command terminates with an error:

Information subject to checking

The command checks for any system log file, synchronization point dump file, or status file.

The command checks to see if the HiRDB administrator can access HiRDB files.

The command checks the system log files, synchronization point dump files, and status files for any duplication.

The command checks to see if the host names are specified in the HOSTS file.

The command checks between server machines based on the system manager's server machine.

For details about the operands in the system definition that can be checked by the pdconfchk command, see Operands Checked by the pdconfchk Command in the manual HiRDB Version 8 System Definition.

Rules

  1. You can execute the pdconfchk command whether or not HiRDB is active.
  2. You can execute the pdconfchk command on the server machine containing the single server or the server machine where the system manager is located.

Notes

  1. If the command does not detect any error in the system definitions, it displays KFPS05007-I return code=0 and terminates itself. If the command detects an error, it displays KFPS05007-I return code=8 and terminates itself.
  2. During checking between server machines, the command ignores any comment section (any text following *) or any comment line.
  3. If the command detects an error during checking between server machines, check the contents of the system definitions in the server machine where the system manager is located. There may be an error in the system definitions in this server machine.
  4. During checking between server machines, the command ignores any tab or space that follows a definition statement. Tabs and spaces preceding a definition statement are subject to checking.
  5. During checking between server machines, if the order of definitions does not match between system manager definitions and other definitions, the command treats some of the definitions with a wrong sequence as errors.
    Example:
    System manager definitions Other definitions
    A B
    B A
    The command treats system manager definition B and other definition B as different definitions.
  6. Return code 0 for the pdconfchk command indicates normal termination, and return code 8 indicates abnormal termination (such as an invalid argument or a pdconfchk command execution error).
  7. If the pdconfchk command displays the KFPY01012-E message, the command may terminate with KFPS05007-I return code=0. In this case, eliminate the cause of the error.
  8. When execution of the pdconfchk command results in the KFPS05062-W message, the pdconfchk command terminates with KFPS05007-I (return code=0).
  9. Even when the pdconfchk command's execution was successful, the KFPO00107-E message may be displayed. To determine the result of definition checking by the pdconfchk command, check the KFPS05007-I message.

Output format

<Checking for system files or access privilege>
[aa...a]
 bbbb    cc...c    dd...d    ee...e
<Checking for duplicate system files>
[aa...a]
 bbbb    cc...c    dd...d    ee...e
 bbbb    cc...c    dd...d    ee...e
<Checking for hosts>
[aa...a]
 bbbb    cc...c    dd...d    ff...f
<Checking between server machines (applicable to HiRDB/Parallel Server)>
[aa...a]
<gggg:hhhh>
 gggg;  cc...c;  line = iii <- hhhh;  cc...c;  nothing
 gggg;  cc...c;  nothing  -> hhhh;  cc...c;  line = iii

Explanation
aa...a
Type of error detected in the checked item:
File not found
File was not found. Possible reasons:
  • The specified path name contains invalid characters.
  • The HiRDB file name is too long (more than 30 characters).
File invalid
File is invalid.
No Permission
There is no permission.
Duplicate filename
File name is duplicated.
Hosts name not matched
Host name does not match.
Different definition
Definitions do not match between the system manager unit and non-system manager unit.
bbbb
Unit identifier
cc...c
Name of the system definition file
dd...d
Operand specification
ee...e
File name specified in the operand shown as dd...d (absolute pathname)
ff...f
Defined host name if dd...d is pdstart, pdunit, or pd_hostname
gggg
Identifier of the unit that contains the system manager
hhhh
Identifier of the unit that contains other than the system manager
iii
Line number in the system definition file

Output example

[File not found]
unt1   pdutsys   pd_syssts_file_name_1
       /dev/rdsys011/ut1sts1a                   ...1
[File invalid]
unt1   pdutsys   pd_syssts_file_name_3
       /users/yyy/pddir                         ...2
[No permission]
unt1   bes1   pd_sts_file_name_1
       /dev/rdsys011/bes1sts1a                  ...3
[Duplicate filename]
unt1   fes1   pdlogadpf -d sys -g fes1log1 -a
       /dev/rdsys011/fes1log1                   ...4
unt1   fes1   pdlogadpf -d sys -g fes1log1 -b
       /dev/rdsys011/fes1log1                   ...4
unt1   bes1   pdlogadpf -d spd -g bes1spd1 -a
       /dev/rdsys011/fes1log1                   ...4
[Hosts name not matched]
unt1   pdsys     pdstart -x
       dcm3500                                  ...5
[Different definition]
<unt1:unt2>
unt1   pdsys    line = 2   -> unt2   pdsys
     nothing                                    ...6
unt1   pdsys    nothing    <- unt2   pdsys
     line = 5                                   ...7

Explanation
  1. The file that was specified in the pd_syssts_file_name_1 operand for pdutsys on unt1 was not found.
  2. The file specified in the pd_syssts_file_name_3 operand for pdutsys on unt1 is invalid.
  3. There is no access privilege for the file specified in the pd_sts_file_name_1 operand for bes1 on unt1.
  4. The file name specified in the pdlogadpf -d sys -g fes1log1 -a operand for fes1 on unt1 is the same as the following file names:
    • File name specified in the pdlogadpf -d sys -g fes1log1 -b operand for fes1 on unt1
    • File name specified in the pdlogadpf -d spd -g bes1spd1 -a operand for bes1 on unt1
  5. Host name for unt1 does not match the host name specified in the pdstart -x dcm3500 operand for pdsys on unt1.
  6. Definition in line 2 for pdsys on unt1 is not found in pdsys on unt2.
  7. Definition in line 5 for pdsys on unt1 is not found in pdsys on unt1.

Examples

This example changes system definitions of the current HiRDB/Parallel Server (consisting of units 1 and 2). The HiRDB system definition file to be changed is pdsvrc on unit 1.

  1. Creates the subdirectory chk under $PDDIR/conf and $PDCONFPATH on units 1 and 2.
  2. Copies pdutsys from $PDDIR/conf to $PDDIR/conf/chk/ on each unit.
  3. Copies the HiRDB system definition files from $PDCONFPATH to $PDCONFPATH/chk/ on each unit.
  4. Changes the definitions in $PDCONFPATH/chk/pdsvrc on unit 1.
  5. Executes pdconfchk -d chk.*
  6. Assuming there are no problems with the definitions, this example uses the pdstop command to execute normal termination or planned termination of HiRDB. Note that in the case of planned termination, some definitions cannot be changed.
  7. Uses the pdlogunld command to unload the system log file in unload wait status.
  8. Copies the HiRDB system definition file changed in step 4 to $PDCONFPATH.
  9. Uses the pdstart command to start HiRDB normally.
* During execution of pdconfchk -d chk, the HiRDB system definition files are checked at the following locations:
[Figure]