sql1109n数据库管理器无法为db2 dsn加载gsk8ssl_64.dll sqlstate=42724

bweufnob  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(451)

我已经在我的windows机器(windowsserver2016,64位操作系统)中创建了一个db2(db2forz/os)dsn,我正试图通过提供ssl证书来使用ssl机制连接到它 SSLServerCertificate=\path\name.arm 以及 Security=SSL 连接字符串中的参数。
我得到以下错误: SQL1109N 由于无法加载数据库管理器,因此未处理该命令 gsk8ssl_64.dll SQLSTATE = 42724 .
db2diag.log文件:

2020-07-10-16.59.47.758000+000 I1F1065              LEVEL: Event
PID     : 6636                 TID : 7736           PROC : db2cli.exe
INSTANCE:                      NODE : 000
HOSTNAME: t-b252c140c5170
EDUID   : 7736
FUNCTION: DB2 UDB, RAS/PD component, pdLogInternal, probe:120
START   : New Diagnostic Log file
DATA #1 : Build Level, 240 bytes
Instance "" uses "64" bits and DB2 code release "SQL11054"
with level identifier "0605010F".
Informational tokens are "DB2 v11.5.4000.1449", "s2006161200", "DYN2006161200WIN64", Fix Pack "0".
DATA #2 : System Info, 1760 bytes
System: WIN32_NT t-b252c140c5170  10.0 AMD64 Family 6, model 79, stepping 1
CPU: total:4 online:4 Cores per socket:4 Threading degree per core:1 SIMD:Y CPU Features:SSE2,SSE3,SSSE3,SSE4,AVX2
CPU binding: not in use
Physical Memory(MB): total:14336 free:10165 available:10165
Virtual  Memory(MB): total:16512 free:12341
Swap     Memory(MB): total:2176 free:2176
Information in this record is only valid at the time when this file was
created (see this record's time stamp)

2020-07-10-16.59.48.289000+000 I1069F625            LEVEL: Error
PID     : 6636                 TID : 7736           PROC : db2cli.exe
INSTANCE:                      NODE : 000
HOSTNAME: t-b252c140c5170
EDUID   : 7736
FUNCTION: DB2 UDB, common communication, sqlccCreateDefaultKeyDB, probe:275
MESSAGE : ZRC=0x00000002=2
          SQL0002N  The bind file name is not valid.

          DIA8002C A deadlock has occurred, rolling back transaction.
DATA #1 : <preformatted>
GSKKM_StoreCACert: GSKit Error = 2,
KeyDB = ,
EncPassLen = 32, PwdLen = 1024, DefaultKeyDBUsed = 1,
ServerCert = C:\PPATrustStore\db2cert.arm.

2020-07-10-16.59.48.289000+000 I1696F434            LEVEL: Error
PID     : 6636                 TID : 7736           PROC : db2cli.exe
INSTANCE:                      NODE : 000
HOSTNAME: t-b252c140c5170
EDUID   : 7736
FUNCTION: DB2 UDB, common communication, sqlccMapSSLErrorToDB2Error, probe:275
MESSAGE : DIA3604E The SSL function "GSKKM_StoreCACert" failed with the return 
          code "2" in "sqlccCreateDefaultKeyDB".

2020-07-10-16.59.48.289000+000 I2132F553            LEVEL: Error
PID     : 6636                 TID : 7736           PROC : db2cli.exe
INSTANCE:                      NODE : 000
HOSTNAME: t-b252c140c5170
EDUID   : 7736
FUNCTION: DB2 UDB, common communication, sqlccLoadSSLLibrary, probe:310
RETCODE : ZRC=0x0000005B=91
          SQL0091W  Precompilation or binding was ended with "" errors and "" 
          warnings.

          DIA8102C Conversion table not loaded. Source code page "", Target 
          code page "", method "", handle "".

2020-07-10-16.59.48.289000+000 I2687F553            LEVEL: Error
PID     : 6636                 TID : 7736           PROC : db2cli.exe
INSTANCE:                      NODE : 000
HOSTNAME: t-b252c140c5170
EDUID   : 7736
FUNCTION: DB2 UDB, common communication, sqlccLoadSSLLibrary, probe:310
RETCODE : ZRC=0x0000005B=91
          SQL0091W  Precompilation or binding was ended with "" errors and "" 
          warnings.

          DIA8102C Conversion table not loaded. Source code page "", Target 
          code page "", method "", handle "".

2020-07-10-16.59.48.289000+000 I3242F355            LEVEL: Error
PID     : 6636                 TID : 7736           PROC : db2cli.exe
INSTANCE:                      NODE : 000
HOSTNAME: t-b252c140c5170
EDUID   : 7736
FUNCTION: DB2 UDB, common communication, sqlccLoadSSLLibrary, probe:998
MESSAGE : DIA3603E SSL was not setup. Return code = "91".

2020-07-10-16.59.48.305000+000 I3599F527            LEVEL: Severe
PID     : 6636                 TID : 7736           PROC : db2cli.exe
INSTANCE:                      NODE : 000
HOSTNAME: t-b252c140c5170
EDUID   : 7736
FUNCTION: DB2 UDB, DRDA Communication Manager, sqljcCommConnect, probe:10
MESSAGE : ZRC=0x8636000A=-2043281398=SQLZ_RC_FNEX, SQLT_SQLJC
          "File Does Not Exist"
          DIA8411C A file "" could not be found.
DATA #1 : String, 11 bytes
CCI Error: 
DATA #2 : unsigned integer, 8 bytes
91
lzfw57am

lzfw57am1#

库存windows server standard 2016映像将不包括 Microsoft Visual C++ redistributable 默认情况下为包。
ibm clidriver的一部分,由 odbcad32.exe 为了测试 Connect 依赖于这些可再发行文件,如果未安装这些软件包,则来自odbcad32的错误消息(未能加载模块gsk8ssl\u 64.dll或类似内容)可能不会显示错误的真正原因。
目前似乎存在对microsoft visual c++2012 DLL的依赖关系。
尽管相关DLL( msvc*.dll )默认情况下,存在于clidriver树中(取决于clidriver版本),但windows不在这些目录中搜索(例如,在clidriver v11.5.4.0下) clidriver\msg\en_US\amd64.VC12.CRT 对于64位版本。其他版本可能有不同的路径或不同的内容)。ms windows可能需要这些DLL存在于自己的system32和syswow64目录中。
似乎clidriver可以有更好的依赖性检查和更好的错误消息。
您可以从microsoft.com下载相关软件包(例如, vcredist_x64.exe 以及 vcredist.x64.exe ),或确保DLL clidriver\msg\en_US\amd64.VC12.CRT (取决于clidriver版本)位于系统路径上。
一个要求是 Db2 must be installed on a drive with short names enabled or a directory with no spaces such as E:\DB2\SQLLIB ,这里有记录。
除此之外,您可能还有其他依赖项,因为您的目标是将clidriver用于 certificate authentication 到db2-for-z/os。
对于ibm提供的驱动程序,从cli到db2-for-z/os的访问不是免费的,因此除非数据库由db2connectactivate配置,否则可能需要客户端的相关许可证。
如果一个连接需要多个证书文件,则需要安装gsk8,然后创建并填充密钥库和存储。对于具有正确权限的用户,可以从ibmfix central获得gsk8。
gsk8对于单证书用例不是必需的,例如在将tls与sslservercertificate一起使用时。
当您连接到db2-for-z/os时,该公司将有一份ibm支持合同,使您能够获得相关的软件和准确的配置细节,而文档可能还没有足够详细地介绍这些细节。

相关问题