2011-06-03 37 views
3

我們有一個在Tomcat 7上運行的Web應用程序,它加載了一個由C++編碼並由第三方開發的JNI庫模塊。基本上,這個圖書館提供生物識別技術到我們的網絡應用程序。我們不能爲此使用全部Java解決方案,除了使用該JNI庫模塊之外別無選擇。當加載的JNI庫損壞內存時,有沒有辦法阻止Tomcat崩潰?

問題是,有時,JNI庫模塊崩潰是因爲它執行了分段錯誤並損壞了內存。當發生這種情況時,它會使Tomcat完全崩潰而不會發出警告。

有沒有辦法來防止加載的JNI庫模塊崩潰時,tomcat完全崩潰?理想情況下,當JNI庫模塊崩潰時,我們希望得到通知並有機會重新加載Web應用程序/模塊。那可能嗎?

感謝您的幫助。

回答

5

您可以啓動另一個加載JNI庫的JVM。當JVM死亡時,您可以重新啓動它從Tomcat啓動它。

+1

可能你想完成你的答案:你還必須在JVM之間建立某種通信。無論如何,我喜歡你的想法 – 2011-06-03 14:41:06

+0

很可能,無論std in/out可能已經足夠,並且是由Process給你的。 – 2011-06-03 14:42:32

+0

現在我們使用第二個JVM來監視Tomcat。當Tomcat崩潰時,監控應用程序會自動重新啓動它。這並不理想,但在原始網絡應用程序中不需要更改代碼。我意識到,JVM之間的通信要優雅得多,但也涉及更多。 – 2011-06-03 15:00:30

相關問題