2011-07-14 21 views
6
執行的代碼

我們有我們試圖找到一個錯誤發生的非確定性(當然,這是確定的,但我們只是不知道什麼實際造成它)只有和它每幾小時發生一次。Java的解決方案,以記錄/重放在JVM

我們閱讀了大量的網絡數據,我們有許多線程,所以有它來自的輸入,競爭條件,或組合的可能性,但在大多數情況下,不能再生。

我想知道是否有任何JVM記錄器/重放器可以存儲發生在JVM中的所有事件,以便我們可以逐步完成並重新創建異常步驟。

我發現之一。 (我不打算髮布它,所以人們不認爲我正在試圖宣傳產品),但我想知道是否有其他人,更重要的是,人們已經使用過的其他人,並且可以報告工作得很好。

編輯補充:

我發現Replay Solutions。我從來沒有用過它,我從來沒有聽說過它,所以我不知道它實際上有多好。

我們使用JProfiler的,但我不認爲它實際上有記錄/重放的一切支持。

+0

繼續併發布鏈接。如果這不是您公司的解決方案,並且即使這是您公司的解決方案,也可以添加像您一樣的免責聲明。 –

回答

8

我會建議使用Chronon它的工作很適合我,但我沒有用它廣泛呢。

+0

啊......這是我在幾個月前看過的那個。他們確實需要更新他們的SEO。我無法爲我的生活找到它。 –

+0

你知道它是否支持多線程嗎?按照意願它會保證每條指令(即使在不同的線程上)將按照原來的順序執行。 –

+0

我不知道這一點,我建議你與他們聯繫並討論你的問題,並承諾你的博客。他們仍然試圖增加他們的知名度;) –

0

這是不可能的(除非是微基準測試)來記錄,特別是因爲該線程的交錯的一切,:性能退化/衰退會很嚴重。如果你正試圖重現該問題是併發性錯誤,你可能想嘗試執行部分記錄系統,並採用SMT求解完成交織:

http://www.gsd.inesc-id.pt/~nmachado/software/Symbiosis_Tutorial.html

據我瞭解的情況,這是最最近的系統,並且可以使用開源(在java,c和C++中)。