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

时间:2015-04-17 18:54:09

标签: ruby linux macos db2-400

我的要求很简单:我有一个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. 将续集gem与ibm_db gem结合使用。
  5. 它应该工作!!
  6. 可悲的是,我现在因为这个错误而在#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许可证的文章,其成本超过1万美元。 iSeriesAccess(以前称为ClientAccess)可用于Windows / Linux,但是包装很重,并且没有OSX版本。

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

    SO社区中是否有人有这方面的运气或经验?

1 个答案:

答案 0 :(得分:2)

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

  • 使用DB2 Connect Unlimited Edition for System i(额外费用)
  • 使用IBM i Access ODBC驱动程序(OS许可证/ SWMA附带)

IBM i Access ODBC驱动程序随附客户端访问 iSeries Access IBM i Access for Windows 7.1或IBM i Access Client解决方案应用程序包,目前仅限适用于Windows和Linux。如果人们对Mac OS X版本的IBM i Access ODBC驱动程序感兴趣,请对此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许可证供您在开发中使用。