2011-02-23 58 views
1

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

即使在管理中存在请求超时设置,它也没有应用于这些场景。

我有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 

我通读了一些文章,发现有些情况下,线程永远不会被响应或死亡。但我没有固溶我怎么能超时此或杀死这个自动

真的很感激,如果你们有这方面的一些想法:)

回答

2

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

例如,长时间运行的LDAP查询只要需要,就会花费很长时间。当调用模板从查询中获得结果时,超时将应用。

这经常会导致混淆解释错误。你会得到一个错误,说明在之后的那个函数长时间运行的请求会导致超时。

Further reading available here

1

谢谢安东尼推荐我的博客条目CF911: Lies, Damned Lies, and CF Request Timeouts...What You May Not Realize。这个要求不会在预期时间内超时的问题可能会非常麻烦,并且对大多数人来说都是一个惊喜。

但是Anooj至少解释了为什么他们没有死(而且你不能在CF内杀死它们),有一点需要考虑的是你可以在被调用的REMOTE服务器中杀死它们,在你的情况下,LDAP服务器。

您可能可以找到THAT服务器的管理员,并向他们显示CF有长时间运行的请求,他们可能能够发现并解决问题。如果他们可以的话,那可能会从CF中断开连接,然后您的请求就会停止。

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

希望有所帮助。