无法将 zOS DB2 与 python ibm_db 连接

Posted

技术标签:

【中文标题】无法将 zOS DB2 与 python ibm_db 连接【英文标题】:Not able to connect zOS DB2 with python ibm_db 【发布时间】:2020-01-14 19:59:15 【问题描述】:

我无法使用 python ibm db 包连接到远程 zOS DB2。 连接时出现以下错误:

: [IBM][CLI Driver] SQL30081N  A communication error has been detected.
Communication protocol being used: "TCP/IP".
Communication API being use d: "SOCKETS".
Location where the be error was detected: "HOSTNAME".
Communication function detecting the error: "recv".
Protocol specific error code(s): "104", "*", "0".  SQLSTATE=08001`

我该如何解决这个错误?

只是添加防火墙是打开的。 Telnet 和 openssl 工作正常。

【问题讨论】:

你看过说明书吗?您尝试做什么来解决错误?这是您收到的实际信息,还是出于隐私目的更换了部分信息? 您是否设置了 SSL 通信并查看了 SQL30081N 的文档以及如何解决该错误的说明? 我已经阅读了同样的手册,但它没有帮助我,这是我得到的实际消息,唯一的变化是主机名是 zOS 服务器的 IP 地址。 我有 zOS DB2 的许可证文件,但我不确定我应该把这个 .lic 文件放在哪里。如果有人对此帮助工作将不胜感激.. 这不是许可证问题;这是一个不同的错误。我必须查看我的工作系统才能告诉您许可证的去向。 【参考方案1】:

我不明白你是如何连接的。请尝试以下方法来帮助我们了解您来自哪里:

import ibm_db
ibm_db.connect("DATABASE=;HOSTNAME=;PORT=;PROTOCOL=TCPIP;UID=;PWD=;", "", "")

【讨论】:

【参考方案2】:

我可以使用以下连接字符串连接到远程 zOS DB2:

导入 ibm_db

ibm_db.connect("Security=SSL;database=dbname;hostname=hostip;port=port;Protocol=TCPIP;SSLClientKeystoredb=keystoredbfile(文件扩展名.kdb)的路径;SSLClientKeystash=keystashfile(文件扩展名.sth)的路径;uid=用户名;pwd=密码", "", "")

另外,我必须将许可文件“db2consv_zs.lic”放到 ibm_db 的 LICENSE 文件夹中。

【讨论】:

以上是关于无法将 zOS DB2 与 python ibm_db 连接的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP Cloud Foundry 应用程序连接到 IBM zOS 系统/DB2 表

日期格式:DB2 _ SQL

如何在没有超时的情况下锁定 Ibm Db2 中的更新行?

是否可以将 DB2 Zos v8 表行值重新排序为列

Db2 9.1 zos 上的 SOAPHTTPNV

DB2 v10 zos:识别空闲索引值