我們有一個問題,我們的java進程永遠掛起, 除非發出Kill -9。在solaris上掛java進程
相同的過程在其他Solaris ENVS成功運行,
Java進程包括從日誌和數據開始,做一些處理在數據後結束,雖然單個線程,我們可以看到,代碼完全執行並處理所有數據。
但是如果我們做了JPS,我們將永遠看到該進程正在運行。 我們正在使用EHcache,用於緩存目的和UCP連接池。 在dB方面,我們有ORACLE RAC結構。
拿了幾個Jstacks,永遠不能看到過程粘在我的代碼。 雖然從線程轉儲可以看到有很多UCP線程掛在那裏。
還添加一個關閉掛鉤,並在最後刪除它,但有些原因似乎從來沒有調用shutdownhook。
由於項目限制,無法粘貼代碼。
任何人請幫助
我認爲你可以編輯代碼,使它看起來不再像代碼那樣,你仍然可以向我們展示你的意思。這將使它更清楚。 – Rob
另請注意,關閉掛接僅在JVM正常退出或因用戶輸入而中斷時才運行。 「掛起」和「殺死-9」都不是這些情況,所以你不會期望你的鉤子運行。 –
必須發出kill -9,因爲JVM永遠不會正常退出, –