IBM Support

Conifguring Db2 instance for SSL support fails with gsk8capicmd_64 symbol error

Troubleshooting


Problem

Db2 instances come preinstalled with the gsk8capicmd_64 utility, which resides in the ~/sqllib/gskit/bin folder of the Db2 instance owner's home folder. When a user configures a Db2 instance for SSL support, the gsk8capicmd_64 utility is used to create a keystore.

Execution of the gsk8capicmd_64 utility might fail with symbol resolution errors similar to the following:
 
rtld: 0712-001 Symbol _ct_13GSKASNCBufferFv was referenced
      from module gsk8capicmd_64(), but a runtime definition
            of the symbol was not found.
rtld: 0712-001 Symbol __ct__19GSKP12DataStoreImplFRC9GSKBufferPCcb was referenced
   from module gsk8capicmd_64(), but a runtime definition
      of the symbol was not found.

Cause

If another installation of GSKit exists on the system, such as a global install in /usr/bin, the instance owner's profile might be configured such that there is a mismatch:
 
  • gsk8capicmd_64 is chosen from the Db2 installation directory, and the GSKit libraries are chosen from the global installation
  • gsk8capicmd_64 is chosen from the global installation, and the GSKit libraries are chosen from the Db2 installation

Any mismatch of gsk8capicmd_64 and GSKit libraries can cause the symbol resolution errors.

Diagnosing The Problem

1. Verify exactly which version of gsk8capicmd_64 is being used:
$ which gsk8capicmd_64

2. Verify exactly which version of libraries are being loaded when your gsk8capicmd_64 is executed:

$ ldd <full path of gsk8capicmd_64>

Resolving The Problem

To resolve the problem, the instance owner's shell profile must be corrected to ensure the version of gsk8capicmd_64 chosen match the GSKit libraries. The content of the corrections depends on the operating environment.

AIX environments
  • If the instance owner's shell is KSH, add the lines for your environment to the end of ~/.kshrc
  • If the instance owner's shell is Bash, add the lines to the end of ~/.bashrc
export PATH=$HOME/sqllib/gskit/bin:$PATH
export LIBPATH=$HOME/sqllib/lib64/gskit:$LIBPATH

Linux environments
  • If the instance owner's shell is KSH, add the following lines to the end of ~/.kshrc
  • If the instance owner's shell is Bash, add the following lines to the end of ~/.bashrc
export LD_LIBRARY_PATH=$HOME/sqllib/lib64/gskit:$LIBPATH
export PATH=$HOME/sqllib/gskit/bin:$PATH

Once the changes are made, close the shell and create a new session to use the corrected environment.

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PkuAAE","label":"Security and Plug-Ins"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"All Versions"}]

Document Information

Modified date:
20 December 2021

UID

swg21650305