我已经在我的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
1条答案
按热度按时间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
),或确保DLLclidriver\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支持合同,使您能够获得相关的软件和准确的配置细节,而文档可能还没有足够详细地介绍这些细节。