无法连接到 Informix db2

Unable to connect to Informix db2

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

调用迁移器可执行文件后得到:

[+] 开始交易

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

我能够通过 dbaccess cli 实用程序连接到数据库实例。 我还尝试从迁移解决方案中删除所有实际迁移 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 上。所以它试图建立的连接是到同一个盒子上的数据库。

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

那么您正在使用的驱动程序是一个 DB2.NET 驱动程序,可以使用 DRDA protocol.Make 连接到 Informix 服务器 protocol.Make 确定您正在使用的端口号是 [的 SQLHOST 文件中指定的 DRDA 端口=14=] 您正在使用 Entity Framework,我鼓励使用 Informix 本机 .NET 驱动程序。当您使用 Informix 本机驱动程序时,它使用 Informix 本机协议,即 SQLI。与 DRDA 相比,本机驱动程序效率更高且支持更好 one.When 您使用本机驱动程序确保您连接的端口已针对 SQLI 配置。

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

问题已通过向数据库定义添加事务日志记录解决,例如

CREATE DATABASE %database% WITH BUFFERED LOG;