2008-10-09 41 views
2

我們正在運行在這個問題上。我們正在使用一個Web服務(使用soap4r)來運行某種搜索,當web服務服務器關閉並且我們的應用程序試圖連接它時,問題就會出現。 此時應用程序無法訪問,並且所有客戶都被阻止。Mongrel羣集和多應用程序問題

我們可以做些什麼來避免這種情況?是否有可能阻止路由到一個雜種,它被阻止? (我假設Apache的代理採用循環賽algohritm)

感謝 羅伯託

+0

您使用mod_proxy在Apache Mongrel服務器之間進行通信嗎? – glenatron 2008-10-09 11:20:00

回答

1

這聽起來好像它可能更多的是mod_proxy的問題,不是一個用雜種或Apache - 你設置代理超時如描述here

0

使用mod_rewrite重新創建對Web服務客戶端比Apache的代理超時錯誤更有用的錯誤頁面。例如,如果Apache配置存在,則該配置將呈現maintence.html。所以你所要做的就是放入文件,服務器自動進入主機模式。

# Check for maintenance file and redirect all requests 
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f 
RewriteCond %{SCRIPT_FILENAME} !maintenance.html 
RewriteRule ^.*$ /system/maintenance.html [L] 

你可以把它設置了相應的conent類型,使靜態文件看起來像基本上是「請等待10分鐘,然後再試一次」的網絡服務響應,可能與配置的等待一個XML文件時間。

Capistrano's web:禁用任務可能對您有所幫助,因爲它需要一個參數來指定網站將不可用的時間長度,並在生成maintence.html文件時將其放入HTML中。

0

您需要對您的Soap4R請求設置超時。將connect_timeout屬性設置爲相當小的東西。這應該會導致在您的代碼中處理異常,而不是讓請求掛起。

您還應該確保您的超時設置在您的mod_proxy_balancer配置中。