2011-02-23 31 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中斷開連接,然後您的請求就會停止。

我剛剛在該博客文章的底部添加了一個關於此想法的新部分,因爲「那麼對於掛起的請求,我真的無能爲力嗎?」

希望有所幫助。