" Zombie Requests" CFQUERY标签卡住并且不可杀死

时间:2017-01-31 19:16:39

标签: coldfusion

  • Coldfusion 2016
  • Microsoft Server 2012
  • Oracle 12
  • ODBC连接

我开启了分析和监控,现在我可以看到有些请求被卡住并且不能被CF监视器终止;有些超过200k秒。

我知道我可以增加同时请求的数量,但我想解决潜在的问题。当我读到这些“僵尸请求”的堆栈痕迹时,他们会陷入困境,有些人会进入,但有些人却没有。我在我的oracle客户端运行查询,他们立即解决。

有没有办法终止这些请求或阻止这种情况发生?

编辑:服务器监视器不会将这些请求视为缓慢或挂起,警报不会触发任何这些请求。老实说,他们应该不断考虑其中有多少。

此外,执行时间仅为.003秒,所以发生了什么?为什么ColdFusion不知道这个?

" zombie" "zombie" 卡住stuck

的有效查询

1 个答案:

答案 0 :(得分:1)

我们有一个类似的情况,使用不同的数据库引擎 - redbrick,它在unix服务器上运行。我们解决了它如下。

我们在数据库服务器上设置一个cron作业,每5分钟运行一次。此作业使用unix和awk命令的组合。

此作业针对系统表运行查询,该查询查找已运行超过120秒的查询,其中数据库帐户是ColdFusion使用的帐户。记录输出到文件。像这样:

justify-content

$ 1来自查询,是我们想要停止的进程ID。

然后我们运行该文件,执行所有这些alter system命令。

使用不同的数据库引擎,以及数据库服务器可能的不同操作系统,细节会有所不同,但方法应该有效。

编辑从这里开始

要防止再次发生,请查看调用长时间运行查询的页面。如果不耐烦的用户能够反复点击某些内容,因为没有发生任何事情,请做一些事情。您可以使用javascript使链接/按钮消失。或者,您可以转到一个中间页面,其中包含用户的显示内容以及将它们传送到真实页面的内容。