2017-09-27 60 views
1

有時候我會在等待服務容器穩定性的300秒後超時。在JBoss啓動過程中出錯,之後JBoss停止。我發現這個「問題」的解決方案只是增加了JBoss配置中的超時。爲什麼JBoss啓動超時?

問題是:無論如何有這樣的超時是什麼原因?它解決了什麼問題?我相信最好是運行JBoss(可能需要一些時間才能啓動),而不是阻止JBoss和日誌中的錯誤。

+1

任何超時的目的是什麼?它可以防止進程無限期掛起,從而釋放資源,並可能重新嘗試操作。 –

+0

完全同意爲什麼需要超時。無法想象一個不支持它們的數據庫(或HTTP)客戶端。這種客戶可能需要經常重新啓動以釋放資源。但是,如果服務器啓動超時有用,您能舉一個實際的例子嗎?糾正我,如果我錯了,但是,例如,Tomcat沒有這樣的「功能」,它仍然可以使用它。 – yaskovdev

回答

1

除了明顯的自我控制原因之外,在HA場景下,當服務器組需要達到仲裁併同步其狀態時,它也是有用的。卡住的服務器進程會導致組中的不穩定。您還應該考慮,切斷啓動和部署通常是更大進程的一部分,例如CI構建,你應該明確說明,在這個步驟中應該阻塞執行器多久,直到你決定某些事情是錯誤的並釋放資源。此外,需要花費較長時間的部署可能表明您的應用程序存在問題,例如,如果將太多邏輯放入bean初始化中,或嘗試獲取套接字或連接等外部資源,或者主機操作系統性能出現問題。另一方面,300s的默認值只是一個適合大多數人的合理默認值,擴展該值以適應您的需求沒有任何問題。