无法连接到 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;
无法从本地实例上的 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;