为 IBM Cloud 上的 Python Cloud Foundry 应用调整 DB2 keepalive 设置

Adjust DB2 keepalive settings for a Python Cloud Foundry app on IBM Cloud

我在 Bluemix/IBM Cloud 上有一个可用的 Python Cloud Foundry 应用程序,它连接到 Bluemix/IBM Cloud 上的 DB2 on Cloud 实例,并且可以很好地与 DB2 on Cloud 实例配合使用。

但是,经过很长一段时间后(我无法测量时间),与 DB2 的连接关闭,我的查询失败了。我可以修改我的代码来检查这一点,但是能够调整 TCP keepalive 设置会很棒。类似于 this.

非常感谢任何指点。我不确定如何调整 Python Cloud Foundry 应用程序的客户端设置。

干杯。

我尝试使用 Python Flask Cloud Foundry 应用程序和 Db2 on Cloud Lite 计划实例重现此内容。我的连接似乎可以保持几个小时。可能是您 运行 的 python 应用程序有某种超时。

我找不到满意的解决方案。就像提到的 @jackic23 一样,可能还有其他因素在起作用。几件事:

  • 这个问题很难复制
  • 该应用程序在本地主机上运行良好,但在部署时却无法运行
  • 我确实同时发生了其他 CRUD 操作,这可能会以某种方式发生潜在冲突。可能存在以某种方式永远不会在本地主机上发生的竞争条件。
  • 我的 Flask 应用程序是使用 gunicorn 部署的,它会在 30 秒后终止工作线程,因此数据库连接终止 mid-query。我将超时调整为 75 秒,但随后查询在 1 秒内开始返回。

此时,我已切换到 Enterprise DB2 计划,应用程序运行良好。对于 @jackic23 的观点,这里(在我的应用程序的代码中)可能还有其他事情可能最终需要弄清楚。

现在,我继续前进。感谢@jackic23 对此进行调查!