【问题标题】:Connecting to DB2 (DB2/400) database running on an iSeries AS400 via Linux/OSX通过 Linux/OSX 连接到运行在 iSeries AS400 上的 DB2 (DB2/400) 数据库
【发布时间】:2015-04-17 18:54:09
【问题描述】:

我的要求很简单:我有一个 Rails Web 应用程序,它需要从运行在 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:

[FAILED]: [IBM][CLI Driver] SQL1598N An attempt to connect to the database server failed because of a licensing problem. SQLSTATE=42968

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

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

SO 社区中是否有人在这类事情上遇到过运气或经验?

【问题讨论】:

  • 嗯,您是否尝试过驱动程序的 JDBC (java) 变体。我想你可以将它与 jruby 一起使用。我还没有看到这种连接类型的许可证限制。并且您可以使用JTopen400 可免费分发的驱动程序版本。
  • @eckes,没有。由于在我的解决方案中使用了其他 gem,JRuby 真的不是我的选择。我可以使用 iSeries Access 库 Linux 包,但遗憾的是在开发过程中没有可以利用的 Mac OSX 变体。
  • 这可能无济于事,但有一个新的客户端解决方案“IBM iAccess 客户端解决方案”可以在 Windows 和 Linux 上运行。它是基于 java 的,包括一个单独的 OS 特定包和 ODBC 驱动程序等。 www-03.ibm.com/systems/power/software/i/access/solutions.html
  • 你看过RubyJavaBridge吗?不是我所在的地区,但也许它可以让您使用 JTopen?
  • @Charles,是的,目前 iSeries Access 是我的后备方案。遗憾的是没有包含 ODBC 驱动程序的 OSX 版本。

标签: ruby linux macos db2-400


【解决方案1】:

对于到 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 许可供您在开发中使用。

【讨论】:

    猜你喜欢
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    相关资源
    最近更新 更多