2010-02-19 114 views
3

我們的Tomcat服務器意外終止。 (它作爲Windows服務運行;系統事件日誌顯示錯誤:事件ID 7034)。Tomcat或JVM崩潰轉儲文件?

我在哪裏可以找到JVM崩潰的轉儲,或者爲什麼Tomcat服務實際停止運行的某些指示?

我在我們的應用程序日誌(我們的Web框架中,Wicket由於NotSerializableException而無法將我們的某些頁面序列化到磁盤)中看到了一些異常。我猜測這些是試圖關閉服務的副作用(因爲我們的頁面中有不可序列化的對象)。我不清楚是什麼引發了服務關閉。

我檢查以下幾個地方:

  • 應用程序日誌
  • 訪問日誌
  • 標準輸出日誌
  • 標準錯誤日誌
  • tomcat.log
  • jakarta_service登錄

我沒有看到任何表示Tomcat正在關閉或發生虛擬機錯誤的內容。我在Windows應用程序事件中看到一些與SQL Server相關的網絡錯誤,但這些事件發生在將近20分鐘後。

任何提示?

+1

提出這一問題的社區維基,以便其他人可以做出改變,因爲我沒有在這個問題上的工作就在此刻。 – RMorrisey 2010-04-22 17:21:27

回答

0

我有同樣的問題。當對本地代碼進行jni調用並遇到錯誤時(例如非法訪問內存或分段錯誤),您將得到一個hs_err文件。我們沒有找到hs_err文件,也沒有像在正常情況下那樣向stderr顯示錯誤。我們知道Tomcat進程的退出狀態是134(x86),我相信這表示中止信號。如果您在代碼中調用stdlib'abort()'方法,就會發生這種情況。我相信在我們的jni本地代碼中,我們稱之爲'abort()'。不幸的是,似乎沒有找到位置的好方法。如果我可以在Tomcat退出時生成一個核心轉儲文件,我可以繼續下去。

拋出的Java異常不太可能導致Tomcat關閉。你有任何的JNI代碼,並且你有可能調用abort()嗎?另外,是否有可能在System.exit()的某個地方有Java調用?

0

確保您的tomcat未在調試模式下運行。 如果是這樣,你必須禁用調試來停止你的tomcat服務。

你可以在你的tomcat6.conf中看到。 您發表評論類似這樣的行:

#JAVA_OPTS="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4142,suspend=n" 

的,你可以stop/restart你的Tomcat。

再見