【发布时间】:2017-10-11 14:12:41
【问题描述】:
使用 mqsicvp 从 IBM Integration Console 测试与 ODBC 数据源的连接时出现以下错误。
C:\Program Files\IBM\IIB\10.0.0.9>mqsicvp DEFAULTBRK -n MSAPP -v
BIP8299I: User 'db2admin' from security resource name 'odbc::MSAPP' will be used for the connection to datasource 'MSAPP'.
BIP2393E: Database error: ODBC return code '-1' from data source ''MSAPP'' using ODBC driver manager ''odbc32.dll''.
The integration node received an error when processing a database operation. The ODBC return code was '-1'. See the following messages for information obtained from the database about this error.
Use the following messages to determine the cause of the error. Typical problems are an incorrect data source, or table names. Correct either the database or the integration node configuration. Use the mqsicvp command to test connectivity to this database.
BIP2322E: Database error: SQL State ''IM003''; Native Error Code '160'; Error Text ''Specified driver could not be loaded due to system error 1114: A dynamic link library (DLL) initialization routine failed. (IBM DB2 ODBC DRIVER - DB2COPY1, C:\PROGRA~1\IBM\SQLLIB\BIN\DB2CLIO.DLL).''.
The error has the following diagnostic information: SQL State ''IM003'' SQL Native Error Code '160' SQL Error Text ''Specified driver could not be loaded due to system error 1114: A dynamic link library (DLL) initialization routine failed. (IBM DB2 ODBC DRIVER - DB2COPY1, C:\PROGRA~1\IBM\SQLLIB\BIN\DB2CLIO.DLL).''
This message may be accompanied by other messages describing the effect on the integration node itself. Use the reason identified in this message with the accompanying messages to determine the cause of the error. Use the mqsicvp command to test connectivity to this database.
BIP8040E: Unable to connect to the database.
The database cannot be accessed with the specified user Id and password pair.
- Check that the database is running.
- Check that the database has an adequate number of database connections available for use.
- On Windows, check that an ODBC connection has been created.
- On systems that use $ODBCINI, check that the file pointed to by $ODBCINI has been correctly updated.
- On z/OS check the BIPDSNAO member of the component's dataset, and check the DB2 64bit ODBC driver (DSNAO64C) is in the STEPLIB.
- Use mqsisetdbparms to set the password to the correct value and try again.
软件:Windows 10 / IIB 10 / DB2 Server
重现步骤:
- 以系统 DSN 的形式设置与新 DB2 数据库的 ODBC(64 位)连接(使用 IBM DB2 ODBC 驱动程序版本 11.01.2020.1393)
- 通过 ODBC 数据源管理员应用测试连接是否正常
- 使用 IBM Integration Console 中的 mqsisetdbparms 设置用户和 密码
mqsisetdbparms DEFAULTBRK -n odbc::MSAPP -u uid -p pwd
- 停止并启动代理
- 使用 mqsicvp 测试连接性
mqsicvp DEFAULTBRK -n MSAPP
错误中提到的 DLL 位于 C:\PROGRA~1\IBM\SQLLIB\BIN 并且已经包含在 PATH 变量中。
我不确定为什么要使用驱动程序管理器 odbc32.dll - 我认为这是 32 位版本。但是,如果我尝试在 32 位 ODBC 数据源管理员应用程序中创建 DSN,mqsicvp 会失败并显示架构不匹配的错误。
【问题讨论】:
-
@mao 我刚才查了一下,但是没有用。我正在创建一个 64 位 DSN,它应该可以工作。该路径已经存在于 PATH 中。
-
mqsicvp 的位数是多少?
-
@mao 使用 64 位版本的 IIB 开发者版,其中包括 mqsicvp。
-
检查www-01.ibm.com/support/docview.wss?uid=swg1IT23069。尽管 APAR 声明了什么,但其他应用程序也会出现此症状,看起来 IBM 已修复。