Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调整IBM Cloud上Python Cloud Foundry应用程序的DB2 keepalive设置_Python_Db2_Ibm Cloud_Cloud Foundry_Tcp Keepalive - Fatal编程技术网

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

调整IBM Cloud上Python Cloud Foundry应用程序的DB2 keepalive设置,python,db2,ibm-cloud,cloud-foundry,tcp-keepalive,Python,Db2,Ibm Cloud,Cloud Foundry,Tcp Keepalive,我在Bluemix/ibmcloud上有一个运行良好的pythoncloudfoundry应用程序,该应用程序可以连接到Bluemix/ibmcloud上的一个db2on-Cloud实例,并且可以与之很好地协同工作 但是,经过很长的时间间隔(我无法测量时间),到DB2的连接关闭,我的查询失败。我可以修改我的代码来检查这一点,但如果能够调整TCP keepalive设置就太好了。类似于……的东西 非常感谢您的指点。我不确定如何在Python Cloud Foundry应用程序上调整客户端设置 干杯

我在Bluemix/ibmcloud上有一个运行良好的pythoncloudfoundry应用程序,该应用程序可以连接到Bluemix/ibmcloud上的一个db2on-Cloud实例,并且可以与之很好地协同工作

但是,经过很长的时间间隔(我无法测量时间),到DB2的连接关闭,我的查询失败。我可以修改我的代码来检查这一点,但如果能够调整TCP keepalive设置就太好了。类似于……的东西

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


干杯。

我尝试使用一个Python Flask Cloud Foundry应用程序和一个Db2 on Cloud Lite plan实例来重现这一点。我的关系似乎持续了几个小时。可能是您正在运行的python应用程序有某种超时。

我尝试使用PythonFlask Cloud Foundry应用程序和Db2 on Cloud Lite plan实例来复制这一点。我的关系似乎持续了几个小时。您正在运行的python应用程序可能有某种超时。

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

  • 这个问题很难复制
  • 该应用程序在本地主机上运行良好,但在部署时无法正常运行
  • 我确实有其他同时发生的CRUD操作,它们可能会以某种方式相互冲突。本地主机上可能存在某种永远不会发生的竞争条件
  • My flask应用程序是使用
    gunicorn
    部署的,它在30秒后终止了工作线程,因此数据库连接在查询过程中终止。我将超时时间调整为75秒,但随后查询在1秒内开始返回
现在,我已经切换到一个企业DB2计划,该应用程序运行良好。就@jackic23而言,这里(在我的应用程序代码中)可能仍有其他问题需要解决


现在,我要继续前进。谢谢@jackic23的关注

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

  • 这个问题很难复制
  • 该应用程序在本地主机上运行良好,但在部署时无法正常运行
  • 我确实有其他同时发生的CRUD操作,它们可能会以某种方式相互冲突。本地主机上可能存在某种永远不会发生的竞争条件
  • My flask应用程序是使用
    gunicorn
    部署的,它在30秒后终止了工作线程,因此数据库连接在查询过程中终止。我将超时时间调整为75秒,但随后查询在1秒内开始返回
现在,我已经切换到一个企业DB2计划,该应用程序运行良好。就@jackic23而言,这里(在我的应用程序代码中)可能仍有其他问题需要解决


现在,我要继续前进。谢谢@jackic23的关注

您使用的是显式事务还是自动提交?如果您正在使用自动提交(即不使用事务),您是否正在使用pconnect持久连接?您似乎看到一个池连接在重复使用时超时失败。隐马尔可夫模型。。Keepalive帮不了那些案子。问题是什么导致连接关闭?云上Db2没有任何空闲连接阈值。也许有防火墙在中间?另外,您是否正在使用云上Db2的免费层?这将有助于诊断,因为免费计划有不同的限制。@我昨天更改了代码,开始使用
ibm\u db.pconnect()
而不是
ibm\u db.connect()
。希望这会有帮助。我使用显式事务。我将在监视应用程序时向您发布消息。@SilentSteel是的,我确实在使用云上DB2的免费层。当我注意到这个超时行为时,我还将DB2实例绑定到我的CloudFoundry应用程序。不确定这是否有区别。如果使用显式事务,我认为pconnect不适合,请查看文档。您使用的是显式事务还是自动提交?如果您正在使用自动提交(即不使用事务),您是否正在使用pconnect持久连接?您似乎看到一个池连接在重复使用时超时失败。隐马尔可夫模型。。Keepalive帮不了那些案子。问题是什么导致连接关闭?云上Db2没有任何空闲连接阈值。也许有防火墙在中间?另外,您是否正在使用云上Db2的免费层?这将有助于诊断,因为免费计划有不同的限制。@我昨天更改了代码,开始使用
ibm\u db.pconnect()
而不是
ibm\u db.connect()
。希望这会有帮助。我使用显式事务。我将在监视应用程序时向您发布消息。@SilentSteel是的,我确实在使用云上DB2的免费层。当我注意到这个超时行为时,我还将DB2实例绑定到我的CloudFoundry应用程序。不确定这是否有区别。如果使用显式事务,我认为pconnect不适合,请查看文档。谢谢!是的,这一直是一个令人困惑的问题。一些观察:-较小的查询工作正常-来自本地运行的应用程序的长时间运行查询工作正常-来自Bluemix上运行的应用程序的相同长时间运行查询失败-针对不同db2实例(企业)的相同长时间运行查询工作正常我同意这里可能存在其他问题。例如,我有多个CRUD操作跨进程进行,这可能会产生一些影响。令人费解的是,它在本地运行良好,但在Bluemix上却不起作用。无论如何,我已经切换到DB2企业计划,到目前为止,这个问题还没有出现。谢谢!是的,这一直是一个令人费解的问题。一些观察结果:-较小的查询工作正常-从本地运行的应用程序长时间运行的查询工作正常-