当我使用cfdocument时,ColdFusion挂起

时间:2016-10-17 15:14:50

标签: java performance coldfusion

今天早上我使用cfdocument标签遇到了一些问题。当用户运行报表时,报表只会挂起。该报告已经运行多年,没有任何问题。我甚至把所有代码都拿出来放在下面。

<cfdocument format="PDF">this is a test</cfdocument>

浏览器仍然挂起,没有错误,CPU也没有跳转。我不知道为什么这不起作用。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

已知Adobe ColdFusion存在错误,其中app.js内的代码中的错误(例如,未正确嵌套的HTML标记未关闭,数据库查询错误,无效变量)可以在不显示异常的情况下无声地失败。发生这种情况时,所有其他<cfdocument></cfdocument>请求将堆积在后面。即使其他页面(不使用cfdocument)完成正常,也会发生这种情况 如您所见,重新启动CF服务也会重新启动PDF服务并清除“堆积”。

解决方案是调试cfdocument标记内的代码,以便它不会抛出异常。由于您的问题听起来很间歇,因此调试起来非常困难。您可以将所有放在cfdocumentcfdocument内,然后cftry任何例外情况,然后通过电子邮件发送给自己。

答案 1 :(得分:1)

我有一堆程序在cfdocument标签中包含file:///。 我曾经认为文件引用会更有效率,但是在2016年的coldfusion期间,它导致了偶尔的,无法预测的服务器挂起。 cfdocument进程将所有必需的文件移动到工作文件夹中,然后生成pdf。

在CF 2016中,有一个设置(在(分钟)之后在CFaaS期间创建的清除临时文件,默认情况下清除超过30分钟的工作文件。 但是,如果您使用file:///,则不会重置该文件的创建日期,并且当该进程运行时,它将立即删除该文件 - 它总是超过30分钟。

如果cfdocument进程处于处理的一半,并且它与Clear Temp File进程发生冲突,则所需文件将消失,cfdocument将挂起。

然后调用cfdocument的后续程序也会挂起,因为任何时候都只允许执行一个程序。

然后这最终会填满所有的cf处理槽,并且需要重新启动cf以使事情再次发生。