无法从本地实例上的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上托管的同一台计算机上。因此,它试图建立的连接是同一个盒子上的数据库。
答案 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;