0

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

然而,在很长一段时间后(我无法测量时间),与 DB2 的连接关闭,我的查询失败。我可以修改我的代码来检查这一点,但能够调整 TCP keepalive 设置会很棒。类似这样的东西。

将不胜感激任何指针。我不确定如何调整 Python Cloud Foundry 应用程序的客户端设置。

干杯。

4

2 回答 2

1

我尝试使用 Python Flask Cloud Foundry 应用程序和 Db2 on Cloud Lite 计划实例来重现此内容。我的联系似乎可以存活数小时。可能是您正在运行的 python 应用程序有某种超时。

于 2018-04-06T14:42:28.527 回答
1

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

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

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

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

于 2018-04-06T18:00:03.017 回答