对于ldap请求,Coldfusion请求永远不会超时!

时间:2011-02-23 07:08:02

标签: performance coldfusion settings administration

我有一个在CF8中运行的应用程序,它经常调用外部系统,如搜索引擎和ldaps。但有时某些请求永远不会得到响应,并且始终显示在活动请求列表中。

即使在管理中设置了请求超时,也不会应用于这些方案。

我还有大约5个请求仍在等待最后20小时完成!!!

My server settings are as below

Timeout Requests after ( seconds) : 300 sec

Max no of simultaneous requests : 20

Maximum number of running JRun threads : 50

Maximum number of running JRun threads  : 1000

Timeout requests waiting in queue after 300 seconds 

我阅读了一些文章,发现有些情况下线程永远不会被响应或被杀死。但我没有一个可靠的解决方案,我怎么能超时或自动杀死

非常感谢你们对此有所了解:)

3 个答案:

答案 0 :(得分:2)

ColdFusion超时不适用于“第三方”连接。

例如,长时间运行的LDAP查询将占用所需的时间。当调用模板从查询中获取结果时,将应用超时。

这通常会导致混淆解释错误。您将收到一条错误消息,指出在长时间运行请求之后中的任何一个函数都会导致超时。

Further reading available here

答案 1 :(得分:2)

您可以(也可能应该)在CFLDAP呼叫本身上设置超时。 http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f97.html

答案 2 :(得分:1)

感谢Antony推荐我的博客文章CF911: Lies, Damned Lies, and CF Request Timeouts...What You May Not Realize。请求在预期时没有超时的问题可能非常麻烦,并且对大多数人来说都是一个惊喜。

但Anooj虽然至少解释了为什么他们不会死(并且你不能在CF中杀死他们),但要考虑的一件事是你可以在被调用的REMOTE服务器中杀死他们。你的情况,LDAP服务器。

您可以转到该服务器的管理员,并向他们展示CF有长时间运行的请求,他们可能能够发现并解决问题。如果他们可以,可以释放与CF的连接,然后您的请求将停止。

我刚刚在博客条目的底部添加了一个关于这个想法的新章节,因为“那么,对于挂起的请求,我真的无能为力吗?”

希望有所帮助。