2013-07-09 33 views
0

我有一個調度器運行不同線程的應用程序。 應用程序可能會加載新的Runnable類並運行它們。 當前應用程序正在生產中,即它正在遠程服務器上運行。具有不同調試器的遠程調試線程

我的團隊由3人開發Runnable類組成。 當課程準備就緒時,它會上傳到服務器並加載到調度程序中。

我想給我的團隊調試特定線程的能力。 即:人A可以調試Runnable A,B-B等的線程。

讓他們完全訪問遠程JVM不是一個解決方案,因爲 開發人員不允許看到系統核心和其他解決方案。

所以我的問題是:如何允許多個遠程調試與線程特定的連接?

優選的IDE:Eclipse的

編輯:

有可能與加多寶 http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html

這裏遠程連接到特定的線程是一個例子:http://www.itec.uni-klu.ac.at/~harald/CSE/Content/debugging.html
1)找到與你的線程jdb線程
2)放置斷點並輸入想要的線程

仍存在安全問題。 一個解決方案是編譯沒有調試符號的受保護代碼,但它只會保護核心,允許看到彼此的線程。
那麼,下一步 - 挖掘安全管理器。也許有特權層適合我的情況。

+0

在服務器系統中創建一個簡單的Web應用程序,使用簡單的文件上傳,下載 – 2013-07-09 07:03:13

+0

這些功能已經作爲服務器系統的一部分實現。 – AndreyP

回答

0

我不知道我對你的問題有一個很好的答案,但讓我們看看它是如何消除的。

據我所知,你希望允許不同的開發人員單獨調試他們的類,他們的類作爲一個線程作爲單個Java進程的一部分運行。

面對這種情況,與調試的本質背道而馳,通常情況下,您可以訪問過程中的所有內容。我不認爲Java在這方面與其他語言有什麼不同(我不是Java程序員)。

那麼如何在不同的Java進程中運行類。這樣,我認爲標準的Eclipse工具將允許每個開發人員遠程附加和調試他們的類。

但是我認爲這些類需要以某種方式與對方進行交互,否則你首先不會問你的問題。就交互而言,在單獨的進程(JVM)中運行每個類似乎是一件壞事。

那麼在不同類型的過程邊界不同的情況下,不同的交互形式怎麼樣?你可以看看使用JCSP,據我所知,它並不關心兩個線程是否在同一個進程中。

這是一個完全不同的交互模型,完全基於同步消息傳遞。你會得到一些不錯的附帶利益 - 可伸縮性突然不再是一個大問題,它可以避免通常與多線程程序(死鎖等)相關的許多缺陷。但是,如果您已經編寫了大量的代碼,那麼採用JCSP可能是一個重要的重寫。

這是在標記附近嗎?祝你好運。

+0

如上所述,當前分割系統需要時間。 但我想告訴你:謝謝!下次我會考慮你的答案。 – AndreyP