ruby - 通过 Linux/OSX 连接到在 iSeries AS400 上运行的 DB2 (DB2/400) 数据库

标签 ruby linux macos db2-400

我的要求很简单:我有一个 Rails 网络应用程序需要从运行在 iSeries AS400 上的 DB2 中读取一些数据。

在 ibm_db gem 维护者的难以置信帮助下,我相信我已经能够解决连接到 DB2 实例的技术障碍。

如果还有其他人正在寻求指导,背景故事就在这里:

https://github.com/ibmdb/ruby-ibmdb/issues/25

简要说明:

  1. 下载为 Linux/OSX 提供的 DB2 CLI/ODBC 包
  2. 设置一些环境变量和一些连接配置
  3. 尝试连接。
  4. 将 sequel gem 与 ibm_db gem 结合使用。
  5. 它应该有效!!

遗憾的是,我现在因为这个错误而无法访问 #3:

[失败]:[IBM][CLI 驱动程序] SQL1598N 由于许可问题,尝试连接到数据库服务器失败。 SQLSTATE=42968

我一直在与 IBM 的 3 个不同的人联系以试图解决这个问题,并且我经常被指向一篇关于 DB2 Connect 许可证的文章,其成本超过 10,000 美元。 iSeriesAccess(以前称为 ClientAccess)可用于 Windows/Linux,但它是一个沉重的包,并且没有对应的 OSX。

我确实找到了这个问题 ( License ERROR with DB2 driver on linux ),但我相信这是假设 DB2 在 Linux 而不是 OS400 上。

SO 社区中有没有人有过这种事情的运气或经验?

最佳答案

对于到 IBM i 数据库的 ODBC 连接,有两个选项:

  • 使用 DB2 Connect Unlimited Edition for System i(额外费用)
  • 使用 IBM i Access ODBC 驱动程序(包含在操作系统许可/SWMA 中)

IBM i Access ODBC 驱动程序随 Client Access iSeries Access IBM i Access for Windows 7.1 或 IBM i Access Client Solutions Application Packages 一起提供,目前只有适用于 Windows 和 Linux。如果人们对 IBM i Access ODBC 驱动程序的 Mac OS X 版本感兴趣,请对此投票 RFE .

对于与 IBM i 数据库的 ibm_db 连接,还有两个选项:

  • 在 Linux/Mac/Windows/... 上运行:使用 DB2 Connect Unlimited Edition for System i(额外费用)
  • 在 IBM i 上运行:使用原生 IBM i CLI(免费)

因此,如果您在 IBM i 上运行生产环境,即使我们为 Mac OS X 添加了 IBM i Access ODBC 驱动程序,它仍然无济于事,因为 ibm_db 驱动程序不适用于 IBM i Access ODBC 驱动程序。 :( 您可以在开发中使用 ruby​​-odbc,在生产中使用 ibm_db,但我猜您不想那样做。

现在,如果您没有在 IBM i 上运行生产环境,那么您必须在生产环境中使用 DB2 Connect,然后我会看看是否有更多的 DB2 Connect 许可证供您在开发环境中使用。

关于ruby - 通过 Linux/OSX 连接到在 iSeries AS400 上运行的 DB2 (DB2/400) 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29707290/

相关文章:

Laravel 黄昏 chrome 驱动程序超时

objective-c - 如何在 Cocoa 中通知 SD 卡被移除或重新插入

ruby - 未定义的方法 'each_pair' 与 openstruct

ruby - 这是什么角色? â\u0080\u0099

linux - 如何删除 Jenkins Maven 本地存储库中的旧 Artifact

linux - 将文件名插入 csv 文件的最后一列。

ios - 在没有Mac的情况下开发iOS应用

c - 修改 Ruby 源 - 无法修改方法

ruby-on-rails - 您将如何并行将文件写入 s3?即不一一序列化

PHP Exec : Without Waiting, 没有丢弃输出,没有 nohup