我在使用informix的常见.net驱动程序连接到另一台机器上的informix服务器时遇到问题。当我运行testconn40_32时,它失败并出现错误08001.奇怪的是主机说它正在监听指定的端口。
主机中的sqlhosts文件有一行指定drda连接,如下所示:
dr_informix1210 drsoctcp localhost dr_informix1210
我还在主机的onconfig文件中为该主机指定了DBSERVERALIASES名称:DBSERVERALIASES dr_informix1210, lo_informix1210
我还设置了所有环境变量,包括PATH,INFORMIXDIR,INFORMIXSERVER,ONCONFIG和INFORMIXSQLHOSTS。
我的服务文件有一行代表该服务:
dr_informix1210 9089/tcp
我添加了一条规则,允许该端口上的连接到防火墙
/ etc / hosts中的我的主机文件也列出了这样的服务器:
127.0.0.1 localhost
我的连接字符串如下:Database=sigac_historico;Server=(ip adress:port);UserID=(userid);Password=(password)
所以我想知道我是否错过任何一步。我知道错误意味着某种方式drda未启用,因为主机拒绝连接。 主机运行Ubuntu,我的程序是用.NET运行的,从windows运行。
我还要提一下,如果我对该服务器执行telnet,则会抛出错误,指出无法打开连接。
还有一个问题:我看到IBM有一个名为DB2的不同产品,¿这是唯一支持ADO.NET的产品吗?目前我正在尝试连接到Informix Server
感谢。
答案 0 :(得分:2)
要添加到Pradeep所说的内容,您还可以将“* hostname”放在SQLHOSTS文件(服务器端)的第3列中,这样它就会为侦听器提供所有网络接口(如果是,localhost等)。
关于客户端,是的IBM有一个很大的思考调用DB2(我会尽量避免使用它;)
要从.Net连接Informix数据库,您有两种选择: 1.连接到DRDA别名的IBM Data Server Client(您当前拥有的) 2. Informix .Net Provider(包含在'Informix CSDK'中)
后者是“本机/经典”.Net Provider,使用标准SQLI协议(类似于所有Informix客户端)并支持比DRDA更多的Informix功能,但目前缺少一些“新的”.Net功能(像EF /实体模型这样的东西。)
看看Informix Developers Handbook它解释了两个提供商,并提供了一些如何使用它们的好样本。