我开启了分析和监控,现在我可以看到有些请求被卡住并且不能被CF监视器终止;有些超过200k秒。
我知道我可以增加同时请求的数量,但我想解决潜在的问题。当我读到这些“僵尸请求”的堆栈痕迹时,他们会陷入困境,有些人会进入,但有些人却没有。我在我的oracle客户端运行查询,他们立即解决。
有没有办法终止这些请求或阻止这种情况发生?
编辑:服务器监视器不会将这些请求视为缓慢或挂起,警报不会触发任何这些请求。老实说,他们应该不断考虑其中有多少。
此外,执行时间仅为.003秒,所以发生了什么?为什么ColdFusion不知道这个?
的有效查询答案 0 :(得分:1)
我们有一个类似的情况,使用不同的数据库引擎 - redbrick,它在unix服务器上运行。我们解决了它如下。
我们在数据库服务器上设置一个cron作业,每5分钟运行一次。此作业使用unix和awk命令的组合。
此作业针对系统表运行查询,该查询查找已运行超过120秒的查询,其中数据库帐户是ColdFusion使用的帐户。记录输出到文件。像这样:
justify-content
$ 1来自查询,是我们想要停止的进程ID。
然后我们运行该文件,执行所有这些alter system命令。
使用不同的数据库引擎,以及数据库服务器可能的不同操作系统,细节会有所不同,但方法应该有效。
编辑从这里开始
要防止再次发生,请查看调用长时间运行查询的页面。如果不耐烦的用户能够反复点击某些内容,因为没有发生任何事情,请做一些事情。您可以使用javascript使链接/按钮消失。或者,您可以转到一个中间页面,其中包含用户的显示内容以及将它们传送到真实页面的内容。