如何抓獲JVM crash的幕後黑手?(二)

2021-06-16 08:17:39 字數 1754 閱讀 2245

這裡apache通過接收請求**給jboss處理,從上面的日誌可以看出07:50:26的這個請求比較特殊,沒按時間先後排列,屬於「插隊」的請求。apache日誌中列印出的時間是接收到請求時的時間,但日誌是等到請求處理完後才列印,那麼這個請求從7:50:26秒進來,處理了2分多鐘,我們應該首先懷疑它;另外乙個值得注意的是請求的狀態,除了第乙個請求是200狀態外,其他都是503錯誤,這說明「插隊」的請求不是瞬間就讓應用crash的,上面列出的第乙個請求7:52:40進來的,還是可以正常執行完返回,同時這個「插隊」的請求在即將導致應用crash時,也會影響其他請求的處理,反映到apache日誌上就是503狀態(處於第乙個請求和「插隊」的請求之間的請求)。所以在apache日誌中找出應用crash時刻的所有請求,然後在其中查詢那個「插隊」比較明顯的請求(apache日誌總的來說是按時間先後順序排列的,也會有秒級別的差異,但像出現分鐘級別的順序錯亂就需要引起重視),同時結合業務日誌進一步確定**的執行順序,找出問題。     

總之,碰到這種應用意外終止的情況,需要根據日誌(記憶體日誌、apache日誌、應用日誌)找到蛛絲馬跡方能抓到幕後**。這貌似一句廢話

C 幕後的函式

乙個空類什麼時候不是空類?當c 編譯器通過它的時候。如果沒有宣告下列函式,體貼的編譯器會宣告它自己的版本。這些函式是 乙個拷貝建構函式,乙個賦值運算子,乙個析構函式,一對取址運算子。另外,如果你沒有宣告任何建構函式,它也將為你宣告乙個預設建構函式。所有這些函式都是公有的。換句話說,如果這麼寫 cla...

解密module init幕後的故事

在linux底下寫過driver模組的對這個巨集一定不會陌生。module init巨集在module巨集有沒有定義的情況下展開的內容是不同的,如果這個巨集沒有定義,基本上表明閣下的模組是要編譯進核心的 obj y 1.在module沒有定義這種情況下,module init定義如下 define ...

Windows Phone誕生的幕後故事

赫芬頓郵報 the huffington post 評價windows phone時說 太好了。網路雜誌 slate 認為,windows phone系統是智慧型手機系統中最漂亮的。而techcrunch則評價說 wp遠好於大多android手機。長久以來,微軟被視為缺乏創新的科技企業。科技部落格們...