简介:面向Windows 32位平台开发者的Informix Client SDK 4.10客户端开发套件,适合需要基于C、C++、Java等语言连接IBM Informix数据库、构建企业级数据访问应用的开发者与运维人员。资源包共13个文件,约176.72MB,以6个txt说明文档、3个dll动态库、1个properties配置文件为主,另含pdf安装指南、html发行说明与exe安装程序,覆盖客户端安装、驱动接入与配置参考等环节。已有620人学习下载,可作为入门与查阅的实用资料。其中csdk.properties给出服务器地址、端口、数据库名等连接参数配置思路,JAB与JDBC相关内容便于Java应用对接数据库,Doc部分提供开发者指南与API参考,涉及错误处理、性能优化与安全设置,OAT服务说明则有助于数据库升级或迁移时的在线应用传输管理,方便读者快速搭建并维护与Informix交互的Windows应用。
1. 装 Informix Client SDK 4.10 之前,先把版本和位数对齐
上周帮一个做零售系统的朋友排查连接问题,应用端报-908连接失败,日志里翻来覆去就是一句「无法加载驱动」。折腾半天才发现,服务器上跑的是 64 位 Informix 实例,客户端却装了 32 位的 Client SDK,位数对不上,驱动加载直接翻车。这类问题在 Informix 环境里太常见了——Client SDK 4.10 是很多老系统的标配,但版本分支多、位数分得细,装错一个包,后面全是玄学问题。这篇笔记记录的是 Windows 平台上 Informix Client SDK 4.10 的完整安装落地过程,从版本选择、安装参数、环境变量配置到连接验证和排错,适合正在对接 Informix 数据库、需要在本机或应用服务器上装客户端的开发者照着走一遍。
2. 装前准备:版本分支、位数和依赖清单
2.1 先搞清楚 4.10 的几个版本分支
Informix Client SDK 4.10 不是一个单一安装包,它下面按用途和平台拆成了多个分支。Windows 平台上常见的有两类:一类是纯客户端运行环境(Client SDK),只包含连接数据库所需的驱动和库文件,体积小,适合部署在应用服务器上;另一类是带开发组件的版本(Client SDK with Open Admin Tool 或带 ESQL/C、ODBC 开发头文件的完整包),适合需要编译嵌入式 SQL 或开发 ODBC 应用的本机。
选哪个取决于你的场景:如果只是让某个应用连上 Informix,装纯客户端就够;如果要在本机写 C 程序调 ESQL/C,或者用 ODBC 做二次开发,就得装带开发组件的完整包。我一般会先问清楚「这台机器是跑应用还是做开发」,再决定装哪个分支,避免装多了占空间、装少了缺头文件。
位数是第二个关键点。4.10 时代 Windows 上 32 位和 64 位是分开的安装包,文件名里通常带32或64字样。判断依据很简单:看你要连接的应用是 32 位还是 64 位进程。32 位应用只能加载 32 位驱动,64 位应用只能加载 64 位驱动,混装必翻车。常见做法是先用任务管理器确认应用进程的位数,再对号入座选安装包。
2.2 环境要求和依赖对照
装之前把下面这张表过一遍,能省掉后面一半的排查时间。
| 项目 | 要求 | 说明 |
|---|---|---|
| 操作系统 | Windows 7 / Server 2008 R2 及以上 | 4.10 对 Win10 早期版本兼容,太新的系统建议先测 |
| 位数 | 32 位或 64 位,与应用进程一致 | 混装会导致驱动加载失败 |
| 磁盘空间 | 完整包约 500MB~1GB | 纯客户端分支更小 |
| 依赖运行库 | Visual C++ 运行库(对应版本) | 缺库会报找不到 DLL |
| 网络 | 能访问 Informix 实例的 9088/9089 等端口 | 端口以实例配置为准 |
| 权限 | 本机管理员 | 安装过程要写注册表和系统目录 |
依赖这块要特别提一句:4.10 是比较老的版本,它依赖的 Visual C++ 运行库版本也偏旧。如果目标机器是干净系统,装完 Client SDK 后应用仍报「找不到 xxx.dll」,大概率是缺对应版本的 VC 运行库。我一般会提前把运行库装好,再装 SDK,顺序反了容易在安装末尾报错。
2.3 安装前该备份和记录的东西
装之前先做两件事:一是记录当前系统的PATH环境变量,装完后 SDK 会往里追加路径,出问题时好对比回滚;二是如果机器上已经有旧版 Informix 客户端,先确认版本,4.10 覆盖安装旧版本可能残留注册表项,导致新版本行为异常。常见做法是先卸载旧客户端、重启,再装 4.10,别图省事直接覆盖。
3. 安装 Client SDK 4.10:从解压到参数选择
3.1 启动安装程序与安装类型选择
拿到安装包后先解压到一个不含中文和空格的路径,比如D:\install\informix_csdk410。中文路径在老版本安装器里是经典坑,解压到中文目录后安装中途报「无法写入文件」的情况我见过不止一次。
双击setup.exe启动后,安装向导第一步是欢迎页,直接下一步。接着会出现安装类型选择,通常有「典型」「自定义」「最小」几个选项。我的建议是选「自定义」,因为典型安装会把一些用不上的组件也装上,而自定义可以只勾选你需要的部分:
# 安装类型对应的组件取舍(在自定义界面勾选) # 必选: # Client SDK Core 核心驱动和连接库 # ODBC Driver ODBC 应用必需 # 按需: # ESQL/C 只有要编译嵌入式 SQL 才勾 # Global Language Support 需要多语言字符集时勾 # 不选: # 示例程序和文档 生产机不需要这段不是命令,是勾选清单的逻辑说明:核心和 ODBC 驱动是连接数据库的底线,ESQL/C 和语言支持按开发需求决定,示例和文档在生产机上纯占空间。选「自定义」的另一个好处是安装器会明确列出每个组件占多少空间,方便你判断装得对不对。
3.2 安装路径和实例注册参数
下一步是安装路径。默认路径通常是C:\Program Files\IBM\Informix\Client-SDK之类,我一般会改成D:\informix\csdk410,原因有两个:一是路径短,后面配环境变量和 ODBC 数据源时少打字符、少出错;二是避开Program Files里的空格,某些老应用在解析带空格的路径时会出问题。
安装器还会问是否注册到现有的 Informix 实例,或者创建一个新的连接配置。这一步如果填了实例信息(主机名、服务名、端口),安装器会帮你生成一份初始的sqlhosts配置。如果暂时不确定实例信息,可以先跳过,装完后手动配sqlhosts文件,位置一般在%INFORMIXDIR%\etc\sqlhosts。
# sqlhosts 文件典型内容(装完后手动维护) # 格式:实例名 协议类型 主机名 服务名/端口 demo_on onsoctcp 192.168.1.100 9088这里demo_on是实例别名,应用连接时用的就是这个名;onsoctcp是 TCP/IP 协议标识;后面是实例所在主机和端口。端口要和服务器端onconfig里配置的DBSERVERNAME和SERVICENAME对上,对不上就是连接超时。参数说明:协议类型在 Windows 上基本固定用onsoctcp,主机名建议写 IP 而不是主机名,避免 DNS 解析问题。
3.3 安装过程中的选项和完成确认
安装向导后面几步基本是确认信息,注意两个地方:一是「是否设置环境变量」,勾上后安装器会自动往系统PATH里加%INFORMIXDIR%\bin,省得手动配;二是「是否立即配置 ODBC 数据源」,如果这台机器要跑 ODBC 应用,可以勾上,安装完直接进 ODBC 配置界面。
安装进度条走完后别急着点完成,先看一眼安装日志。4.10 的安装器会在%TEMP%下留一份日志,文件名类似Informix_Client_SDK_Install.log。日志末尾如果有Installation completed successfully就说明装完了;如果有Warning或Error,哪怕界面显示成功,也要翻日志确认是哪个组件没装上。我踩过一次坑:界面显示完成,但 ODBC 驱动实际没注册,日志里一行Failed to register ODBC driver被忽略了,后面应用连库一直报驱动找不到。
4. 配置环境变量和 ODBC 数据源
4.1 环境变量的三个关键项
装完 SDK 后,环境变量是让应用能找到驱动的关键。除了安装器自动加的PATH,还有几个变量需要手动确认或补上:
# 系统环境变量(在「系统属性 -> 环境变量」里配置) INFORMIXDIR=D:\informix\csdk410 INFORMIXSERVER=demo_on PATH=%INFORMIXDIR%\bin;%PATH%INFORMIXDIR指向 SDK 安装根目录,很多 Informix 工具和驱动靠这个变量定位库文件;INFORMIXSERVER指定默认连接的实例别名,要和sqlhosts里的名字一致;PATH追加bin目录,让系统能找到dbaccess、setnet32这些命令行工具。三个变量里最容易漏的是INFORMIXSERVER,漏了之后应用连接时如果没显式指定实例名,就会报「未指定数据库服务器」。
配完环境变量要重启命令行窗口才生效,别在当前已经打开的 cmd 里测,测出来永远是旧值。这是新手最常犯的错之一。
4.2 用 setnet32 配置连接信息
Informix 在 Windows 上有个专门的连接配置工具setnet32,在%INFORMIXDIR%\bin下。它管理的是客户端侧的连接参数,包括主机、服务名、用户名等。命令行里直接敲setnet32会弹出图形界面,也可以在命令行里带参数批量配置:
# 查看当前连接配置 setnet32 -query # 设置实例对应的主机和服务名(图形界面里操作更直观) # HostName: 192.168.1.100 # ServiceName: 9088 # ServerName: demo_on图形界面里几个字段的含义:HostName填实例所在主机 IP;ServiceName填端口或服务名;ServerName填实例别名,和sqlhosts对应。配完后setnet32会把这些信息写进注册表,应用通过 ODBC 或 ESQL/C 连接时读的就是这里。常见做法是先用setnet32配好,再用dbaccess命令行测一下连通性,通了再配应用。
4.3 ODBC 数据源的建立和参数
如果应用走 ODBC,还要在「ODBC 数据源管理器」里建一个数据源。32 位和 64 位系统分别对应不同的 ODBC 管理器:32 位应用要用C:\Windows\SysWOW64\odbcad32.exe,64 位应用用C:\Windows\System32\odbcad32.exe。这一点极其容易搞混——在 64 位系统上打开默认的 ODBC 管理器建了数据源,结果 32 位应用死活看不到,就是因为进错了管理器。
建数据源时选「Informix ODBC Driver」,然后填这几项:
| 参数 | 填法 | 说明 |
|---|---|---|
| Data Source Name | 自定义,如demo_odbc | 应用连接串里用的名字 |
| Server Name | demo_on | 和 sqlhosts / setnet32 一致 |
| Host Name | 实例 IP | 不要填主机名,避免解析问题 |
| Service Name | 端口,如9088 | 与服务器端一致 |
| Database Name | 目标库名 | 可留空,连接时再指定 |
| User ID | 数据库用户 | 可留空,连接时输入 |
配完后点「Test Connection」,输入用户名密码测试。测试通过说明客户端到实例的网络和认证都通了;测试失败先看报错码,-908一般是网络或端口问题,-951一般是实例名或 sqlhosts 配置问题。
5. 避坑与排查:装完连不上时先看这几处
5.1 现象:应用报「找不到驱动」或「无法加载 DLL」
原因通常是位数不匹配或PATH没生效。32 位应用加载了 64 位驱动,或者反过来,系统会直接报 DLL 加载失败。解决方法是确认应用进程位数,重装对应位数的 SDK,并检查PATH里%INFORMIXDIR%\bin是否在正确位置。改完环境变量必须重启应用进程,光重启命令行不够。
5.2 现象:连接报-908超时
原因集中在网络层:端口不通、防火墙拦截、sqlhosts里的主机或端口写错。排查顺序是先telnet 实例IP 端口确认端口通不通,不通就查防火墙和实例监听配置;通了再核对sqlhosts和setnet32里的主机、端口是否一致。我遇到过sqlhosts里写的是主机名、而 DNS 解析到了错误 IP 的情况,改成 IP 后立刻通。
5.3 现象:ODBC 测试连接报「数据源未找到」
多半是 ODBC 管理器进错了位数。64 位系统上默认打开的是 64 位管理器,32 位应用的数据源要在SysWOW64下的管理器里建。确认方法:在 ODBC 管理器里建完数据源后,用对应位数的应用去连,连不上就换另一个管理器再建一遍。这个坑我见过太多次,血泪经验就是「先确认应用位数,再开对应管理器」。
5.4 现象:安装中途报错回滚
常见原因是安装路径含中文或空格、权限不足、旧版本残留。解决方法是换到纯英文短路径、用管理员身份运行安装程序、装前彻底卸载旧客户端并重启。如果回滚后系统里残留了半装的目录,手动删掉%INFORMIXDIR%再重装,别在残留基础上覆盖。
5.5 现象:dbaccess能连、应用连不上
说明客户端本身没问题,问题在应用的连接配置。检查应用的连接串里实例名、主机、端口是否和sqlhosts一致,以及应用进程的位数是否和驱动匹配。还有一种情况是应用用了自己的驱动副本(比如把旧版 DLL 打包在应用目录里),导致加载的不是新装的 SDK,这种要清理应用目录下的旧 DLL。
6. 装完怎么验证:三步确认环境真的跑通
装完不验证等于没装。我一般按三步走,从底层到应用层逐级确认。
第一步,命令行验证客户端工具。打开新的 cmd 窗口,敲dbaccess,如果能进入交互界面而不是报「不是内部或外部命令」,说明PATH和INFORMIXDIR配对了。接着在dbaccess里执行一条最简单的查询:
-- 在 dbaccess 里选择目标库后执行 SELECT FIRST 1 tabname FROM systables;能返回一行表名,说明客户端到实例的连接、认证、查询链路全通。这一步不通,后面配应用都是白搭。
第二步,ODBC 层验证。打开对应位数的 ODBC 管理器,找到建好的数据源,点「Test Connection」,输入账号密码。测试通过会弹「连接成功」;失败会给出具体错误码,按第 5 章的排查表对号入座。这一步的意义是把「命令行能连」和「ODBC 能连」分开确认,因为两者走的驱动路径不完全一样。
第三步,应用层验证。用实际要跑的应用做一次真实连接,比如启动应用、触发一次数据库查询,看日志里有没有连接相关报错。这一步最容易暴露位数和驱动副本问题——命令行和 ODBC 都通,应用却连不上,基本就是应用进程位数或自带旧 DLL 的锅。
验证时有个小技巧:把每一步的结果记下来,形成一张对照表。
| 验证层 | 命令/操作 | 通过标志 | 失败先查 |
|---|---|---|---|
| 客户端工具 | dbaccess+ 查询 | 返回查询结果 | PATH、INFORMIXDIR |
| ODBC | ODBC 管理器测试连接 | 弹连接成功 | 管理器位数、数据源参数 |
| 应用 | 启动应用触发查询 | 日志无连接报错 | 应用位数、自带 DLL |
这张表的好处是出问题时能快速定位是哪一层断了,不用从头猜。从那以后我每次装完 Informix 客户端,都强制把这三层验证走一遍,哪怕当时应用还没部署,也先把前两层跑通,省得后面应用上线时把客户端问题误判成应用 bug。希望帮到你。
本文还有配套的精品资源,点击获取