IIB - 通过 mqsicvp 连接到 DB2 ODBC DSN 时出现 DLL 初始化错误

Posted

技术标签:

【中文标题】IIB - 通过 mqsicvp 连接到 DB2 ODBC DSN 时出现 DLL 初始化错误【英文标题】:IIB - DLL Initialization Error in Connecting to DB2 ODBC DSN via mqsicvp 【发布时间】: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 会失败并显示架构不匹配的错误。

【问题讨论】:

你检查过www-01.ibm.com/support/docview.wss?uid=swg21384435 @mao 我刚才查了一下,但是没有用。我正在创建一个 64 位 DSN,它应该可以工作。该路径已经存在于 PATH 中。 mqsicvp 的位数是多少? @mao 使用 64 位版本的 IIB 开发者版,其中包括 mqsicvp。 检查www-01.ibm.com/support/docview.wss?uid=swg1IT23069。尽管 APAR 声明了什么,但其他应用程序也会出现此症状,看起来 IBM 已修复。 【参考方案1】:

建议您从 IBM 下载错误 IT23069 的修复程序。它可以(间接地)从this page 获得,最终重定向到 IBM 修复中心。为我工作。

【讨论】:

【参考方案2】:

最新的开发者版工具包 10.0.0.12 似乎已经解决了这个问题。

【讨论】:

以上是关于IIB - 通过 mqsicvp 连接到 DB2 ODBC DSN 时出现 DLL 初始化错误的主要内容,如果未能解决你的问题,请参考以下文章

通过 JDBC 连接到远程 db2 数据库失败

通过SSL将IBM DB2 JDBC连接到编目数据库

通过 SQOOP 连接到 DB2 时出现连接管理器错误

将 IBM Db2 连接到 Watson Assistant

在 AIX7.1 上通过 Apache 使用 PHP 连接到 DB2

远程 db2 服务器连接到 R studio