IBM Support

"The registry does not exist" error messages in db2diag.log for file global.reg

Troubleshooting


Problem

DB2 will try to open the global.reg file but will fail with "The registry does not exist" when it doesn't exist in the specific path.

Symptom

The following message can be seen repeating in the db2diag.log when DB2 attempts to access global.reg:


2013-12-12-00.02.31.523981-300 I3654A4191 LEVEL: Error
PID : 13367 TID : 4 PROC : db2acd 0
INSTANCE: db2inst1 NODE : 000
EDUID : 4 EDUNAME: db2acd 0
FUNCTION: DB2 Common, Generic Registry, GenRegFile::OpenReg, probe:8
MESSAGE : ECF=0x900001C0=-1879047744=ECF_GENREG_OPEN_OUTPUT_FILE_FAILED
Failed to open the output registry
CALLED : OS, -, fopen
RETCODE : ECF=0x90000513=-1879046893=ECF_GENREG_REGISTRY_DOESNT_EXIST
The registry does not exist.
DATA #1 : String, 44 bytes
/home/db2inst1/sqllib/global.reg
CALLSTCK:
[0] 0xFFFFFFFF7CDA06EC ossLogRC + 0x3E4
[1] 0xFFFFFFFF7B413558 __1cKGenRegFileHOpenReg6ML_I_ + 0x9A0
[2] 0xFFFFFFFF7B40A160 __1cJGenRegBinDGet6MLpv1_I_ + 0x4C8
[3] 0xFFFFFFFF7B42C648
__1cSossGetInstanceInfo6FpcL0pnROSSInstanceInfo_t__I_ + 0x178
[4] 0xFFFFFFFF7B6061E0 getDASInstallInfo + 0xE8
[5] 0xFFFFFFFF74E24ED8 buildDasPaths + 0xB8
[6] 0xFFFFFFFF74E274E4 getDasConfigFile + 0x5C
[7] 0xFFFFFFFF74E2CB5C __1cUdb2dasReadConfigFile6FpnLdasCfgParam_L_i_
+ 0x64
[8] 0xFFFFFFFF74E2FD8C readLocalDasCfg + 0x54
[9] 0xFFFFFFFF74E318F4 db2DasCfgGet + 0xDC

2013-12-12-00.02.31.524563-300 I4636A1533 LEVEL: Error
PID : 13367 TID : 4 PROC : db2acd 0
INSTANCE: db2inst1 NODE : 000
EDUID : 4 EDUNAME: db2acd 0
FUNCTION: DB2 Common, Generic Registry, ossGetInstanceInfo, probe:20
MESSAGE : ECF=0x90000268=-
1879047576=ECF_GENREG_FAILED_TO_GET_INSTANCE_INFO
Failed to get instance info
CALLED : DB2 Common, Generic Registry, GenRegBin::Get
RETCODE : ECF=0x90000513=-1879046893=ECF_GENREG_REGISTRY_DOESNT_EXIST
The registry does not exist.
CALLSTCK:
[0] 0xFFFFFFFF7CDA0C14 ossLogSysRC + 0x508
[1] 0xFFFFFFFF7CDA03B0 ossLogRC + 0xA8
[2] 0xFFFFFFFF7B42C7DC
__1cSossGetInstanceInfo6FpcL0pnROSSInstanceInfo_t__I_ + 0x30C
[3] 0xFFFFFFFF7B6061E0 getDASInstallInfo + 0xE8
[4] 0xFFFFFFFF74E24ED8 buildDasPaths + 0xB8
[5] 0xFFFFFFFF74E274E4 getDasConfigFile + 0x5C
[6] 0xFFFFFFFF74E2CB5C __1cUdb2dasReadConfigFile6FpnLdasCfgParam_L_i_
+ 0x64
[7] 0xFFFFFFFF74E2FD8C readLocalDasCfg + 0x54
[8] 0xFFFFFFFF74E318F4 db2DasCfgGet + 0xDC
[9] 0xFFFFFFFF7550B228 __1cNhiAlertCfgMgrHrefresh6Mb_i_ + 0x218

Cause

If DB2 was originally installed as root then you will not find the global.reg file in $HOME/sqllib. This problem usually happens when a DB2 fixpack update is applied as a non-root user after the base install.

For non-root install global.reg would be found in $HOME/sqllib. For root install it would be in /var/db2 (/var/opt/db2 for HP-UX).

Diagnosing The Problem

A quick way to check where DB2 looks for global.reg file is to run db2greg -g.

eg.

db2greg -g


/home/db2inst1/sqllib/global.reg

Resolving The Problem

If the base install of DB2 was indeed run as root, running db2iupdt on the instance should fix the problem. This will require the instance to be brought down first.

db2stop


<db2_install_dir>/instance/db2iupdt <instance>
db2start

eg.

/opt/ibm/db2/V9.7/instance/db2iupdt db2inst1

This will update the location of global.reg file back to /var/db2 path. You can confirm by running db2greg -g:

eg.

db2greg -g
/var/opt/db2/global.reg

Related Information

[{"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"DB2 Tools - Troubleshooting","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"9.7;9.5;10.1;10.5","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
16 June 2018

UID

swg21667500