SSIS部署至SQL Server后无法连接DB2:ERROR [IM004]错误求助
问题排查与解决方案
1. 确认目标服务器安装匹配的32位IBM DB2 ODBC驱动
- 目标服务器必须安装版本11.01.00.1527的32位IBM DB2 ODBC驱动(因包以32位模式运行),开发机驱动无法直接复用,需在目标服务器单独部署。
- 验证方法:运行
%windir%\SysWOW64\odbcad32.exe打开32位ODBC数据源管理器,查看驱动列表中是否存在对应版本的IBM DB2驱动。
2. 检查目标服务器上的DSN配置有效性
- 在32位ODBC数据源管理器中,找到或创建
<Dsn-name>对应的系统DSN(优先系统DSN,避免用户权限限制):- 点击“测试连接”,确认能正常连接到DB2数据库,排除账号、数据库地址等基础配置错误。
- 若使用用户DSN,需确保执行SSIS包的账号能访问该DSN。
3. 验证执行账号的权限
- SSIS包在SQL Server上运行时,执行账号(SQL Server Agent服务账号或代理账号)需满足:
- 对IBM DB2 ODBC驱动的安装目录(例:
C:\Program Files (x86)\IBM\IBM DATA SERVER DRIVER)有读取权限。 - 能访问DB2数据库的网络端口(默认50000),可通过
telnet <DB2服务器IP> 50000测试连通性。
- 对IBM DB2 ODBC驱动的安装目录(例:
4. 确认密码参数传递正确
- 当前连接字符串仅包含
Dsn=<Dsn-name>;uid=<Username>,密码通过项目参数传入,需:- 在SQL Server Integration Services目录中,验证项目参数的密码值是否正确配置。
- 可临时修改连接字符串为
Dsn=<Dsn-name>;uid=<Username>;pwd=<密码>测试,排除参数传递问题后再改回参数方式。
5. 检查DB2相关环境变量
- IBM DB2 ODBC驱动依赖
DB2HOME、DB2INSTANCE等环境变量,需在目标服务器的系统变量中配置:DB2HOME:设为驱动安装根目录(如C:\Program Files (x86)\IBM\IBM DATA SERVER DRIVER)DB2INSTANCE:设为对应的DB2实例名
- 配置后需重启SQL Server Agent服务,确保环境变量生效。
6. 确认32位运行模式配置正确
- 若通过SQL Server Agent执行包,需在作业步骤的“执行选项”中勾选使用32位运行时。
- 若直接通过SSIS目录执行包,需在执行配置中指定32位运行环境。
内容的提问来源于stack exchange,提问作者JoeFoster
相关产品推荐
相关产品推荐

