我寫了一個bash腳本來自動部署一個web應用程序到tomcat容器,只要它被觸發。這是很直接:自動檢測tomcat失敗啓動bash腳本
- 轉儲備份當前數據庫
- 關閉當前Tomcat進程
- 刪除Web應用程序文件夾
- 用新的 更換戰爭文件
- 再次啓動tomcat
但是,現在我想要一個後退。如果在啓動過程中出現問題,數據庫將恢復並重新部署舊的war文件。
我的問題是,我不知道何時web應用程序啓動失敗。我的一個實現是我會檢查我的Web應用程序的日誌文件的大小,如果過了一段時間它不會增加(這意味着沒有任何東西被寫入),那麼系統應該明白部署失敗了,我們應該恢復舊的Web應用程序。然而,這是一種很骯髒,我不知道如果我的日誌記錄文件在那時正確滾動會發生什麼。
tomcat是否有任何支持Web應用程序啓動失敗檢測的機制?
檢查http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#List_Currently_Deployed_Applications – home 2013-05-04 09:56:52
@home:感謝您的關注,但我想檢查部署的成功與否服務器機器,而不是通過網絡訪問。有什麼辦法可以在服務器上下文中檢索相同的信息,或者我真的需要用curl來獲取它? – 2013-05-04 10:06:57
AFAIK,服務器(OS +硬件)不知道應用程序狀態,因爲您的應用程序只是運行Tomcat的JVM實例的一部分以及您的應用程序(只是一個Java進程)。另一種方法是在你的應用程序中實現某種「探測」servlet。這使您不僅可以測試技術'活着'狀態(例如數據庫可用性)。 – home 2013-05-04 10:25:33