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
Format
pdconfchk [-d subdirectory-name] [-n] [-l]
Option
- -d subdirectory-name
<path name>
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
- Create in advance the subdirectory that will be specified.
- Store in the subdirectory not only the modified HiRDB system definition file but all HiRDB system definition files.
- For a HiRDB/Single Server, the same path name is set in $PDDIR/conf and $PDCONFPATH.
- 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.
- The maximum lengths of $PDDIR/conf/subdirectory and $PDCONFPATH/subdirectory are 220 bytes. Make sure that the name does not exceed 220 bytes.
- 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:
- Y is specified in the pd_rise_use operand in the system definition.
- syssync is specified in the pd_rise_pairvolume_combination operand in the system definition.
- data or never is specified in the pd_rise_fence_level operand in the system definition.
Information subject to checking
- Syntax checking
The command outputs the result of syntax checking to the standard output and standard error output.
- Checking for system files
The command checks for any system log file, synchronization point dump file, or status file.
- Checking for access privilege
The command checks to see if the HiRDB administrator can access HiRDB files.
- Checking for duplicated system 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.
- Checking between server machines (applicable to HiRDB/Parallel Server)
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
- You can execute the pdconfchk command whether or not HiRDB is active.
- 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
- 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.
- During checking between server machines, the command ignores any comment section (any text following *) or any comment line.
- 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.
- 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.
- 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.
- 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).
- 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.
- When execution of the pdconfchk command results in the KFPS05062-W message, the pdconfchk command terminates with KFPS05007-I (return code=0).
- 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
- The file that was specified in the pd_syssts_file_name_1 operand for pdutsys on unt1 was not found.
- The file specified in the pd_syssts_file_name_3 operand for pdutsys on unt1 is invalid.
- There is no access privilege for the file specified in the pd_sts_file_name_1 operand for bes1 on unt1.
- 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
- Host name for unt1 does not match the host name specified in the pdstart -x dcm3500 operand for pdsys on unt1.
- Definition in line 2 for pdsys on unt1 is not found in pdsys on unt2.
- 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.
- Creates the subdirectory chk under $PDDIR/conf and $PDCONFPATH on units 1 and 2.
- Copies pdutsys from $PDDIR/conf to $PDDIR/conf/chk/ on each unit.
- Copies the HiRDB system definition files from $PDCONFPATH to $PDCONFPATH/chk/ on each unit.
- Changes the definitions in $PDCONFPATH/chk/pdsvrc on unit 1.
- Executes pdconfchk -d chk.*
- 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.
- Uses the pdlogunld command to unload the system log file in unload wait status.
- Copies the HiRDB system definition file changed in step 4 to $PDCONFPATH.
- 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]](figure/zx020070.gif)