2

Weblogic 10(java 6)にデプロイされたJavaEEアプリケーションでメソッド呼び出しをプロファイリング/トレースするためのユーティリティ/ツールを構築しています。その目的は、巨大なエンタープライズアプリケーションのイベントの流れをすばやく理解することです。(コードを確認するのは面倒です)

jdk6にバンドルされている「Trace」デモアプリケーションに従って、バージョンをビルドしました。通常のデスクトップスタイルのアプリケーションに接続し、メソッド呼び出しを正常にトレースしている間、アプリケーションは正常に動作します。ただし、Weblogicの場合、EventQueue.removeはnullのEventSetを返します。weblogicVMへの接続が成功することに注意してください。ただし、接続されるとすぐに、デプロイされたWebアプリケーションでクリックまたはアクティビティが発生すると、ターゲットVMのスレッドがハングし、最終的にhttpリクエストがタイムアウトします。

weblogicの開始スクリプトに次のvm引数を使用しています。

-Xdebug -Xnoagent -Djava.compiler=NONE \
-Xrunjdwp:transport=dt_socket,server=y,address=9002,suspend=n

使用されているサンプルコードは、jdk1.6.0_13 \ demo \ jpda \ examples \ com \ sun \ tools \ example\traceからのものです。

誰かが同様のツールの経験があるか、または同様の問題に直面しましたか?Eclipseのリモートデバッグはどのように実装されているのだろうか。

ありがとう!

4

1 に答える 1

0

JDWP 層でログを記録することで、問題が何であるかを確認できる場合があります。OS の TCP パケット スニファを使用します。トラフィックをキャプチャするために、デバッガを別のマシンで実行する必要がある場合があります。JDWP 仕様を使用するだけで、パケットを簡単にデコードできます。分析だけでは役に立たない場合は、JDWP トラフィックを Eclipse または作業シナリオからのものと比較できます。アンロードされたクラス イベントで接続をあふれさせると、Eclipse デバッガーがハングしたように見えるのを見てきました。

于 2013-01-29T19:42:12.527 に答える