无法连接到Informix db2

时间:2018-03-20 06:06:22

标签: c# .net db2 informix fluent-migrator

无法从本地实例上的Fluent Migrator(.net / c#)连接到Informix db2。 (在AWS EC2上运行的Windows 10)

在调用迁移器可执行文件后获取此信息:

[+]开始交易

!!!错误[HY011] [IBM] CLI0126E此时操作无效。 SQLSTATE = HY011

我可以通过dbaccess cli实用程序连接到db实例。 我还尝试从迁移解决方案中删除所有实际的迁移sql语句和脚本,如果尝试运行完全空的迁移,则会发生同样的错误,因此问题很可能是连接或事务问题。

任何想法将不胜感激。感谢。

__

根据回复要求提供更多详情:

连接信息是:

<add 
    name="Integration" 
    connectionString="Database=int_db; 
                      Server=service_144345.int.cloud:49005; 
                      User ID=int_db_user; 
                      Password=xxxxxxxx;" 
    providerName="IBM.Data.DB2"
/>

数据库和连接到它的应用程序都位于AWS上托管的同一台计算机上。因此,它试图建立的连接是同一个盒子上的数据库。

3 个答案:

答案 0 :(得分:1)

然后您正在使用的驱动程序是一个DB2.NET驱动程序,它可以使用DRDA协议连接到Informix服务器。请确保您使用的端口号是Informix的SQLHOST文件中指定的DRDA端口。除非您正在使用实体框架,我鼓励使用Informix本机.NET驱动程序。当您使用Informix本机驱动程序时,它使用Informix本机协议,即SQLI。与DRDA驱动程序相比,本机驱动程序效率更高,支持更好。当您使用本机驱动程序时,请确保为SQLI配置了要连接的端口。

答案 1 :(得分:0)

Informix DB2是什么意思,Informix和DB2是两个独立的数据库服务器。来自错误文本片段的信息我假设您正在使用具有DRDA协议的驱动程序(可能是IBM DB2 .NET或DB2 CLI)。如果确保您已在Informix服务器上启用DRDA端口并连接到该端口。如果是Informix服务器您使用的是从AWS配置,它只允许安全/加密连接。然后,您可能需要在SSL设置后使用基于SSL的连接。如果你正在使用DRDA协议,你是如何让DBACCESS工作的,这里有很多混乱

答案 2 :(得分:0)

在调用应用程序中放入大量日志记录后,问题被缩小为BeginTaansaction调用。该错误是由数据库上缺少事务日志记录引起的。

通过将事务日志记录添加到数据库定义,例如

,解决了该问题
CREATE DATABASE %database% WITH BUFFERED LOG;