Wrapper を使う Java アプリケーションをデバッグする

Wrapper はシンプルな機能をいくつか提供しており、それを使うことで、アプリケーションで遭遇しそうな、いかなる問題も追究することができるよう援助します。

スレッドダンプを要求する

Wrapper には、JVM がその現在の状況のダンプを吐くというリクエストのサポート機能が含まれています。 情報の正確な内容は、JVM の動作次第で変化します。

Oracle の JVM は、実行中のスレッドの全てを スタックトレースをコンソールへ表示します。

IBM の JVM は、もっと役に立つ情報を提供しています。 オブジェクトモニタリング状況同様に、全スレッドの スタックトレース が、コンソールへダンプされます。 それに加えて、ファイルが、カレントディレクトリーに作成され、コンソールに表示される情報に加えて、環境変数の全てを含むシステムについての有効な情報が含まれています。

スレッドダンプを要求するには、 Windows システム上では、[CTRL]+[BREAK]、 Linux システム上では、[CTRL]+[\] のキー操作で要求できます。 スレッドダンプを呼び出すことは、JVM には影響を及ぼさず、通常どおりに動作を継続します。

Wrapper がインストールされた状態では、Linux や Solaris のスタートアップで、バックグランドスレッドで Wrapper を起動します。 それらのスクリプトを使ってスレッドダンプを要求するには、『dump』 パラメータで指定されたスクリプトを単純に再始動してください。

デバッグログを有効にする

wrapper.debug] プロパティを「TRUE」に設定すると、デバッグのログ出力を素早く有効にすることができます。

多くのコンフィギュレーション問題は、コンソール出力のログレベル を [DEBUG] に設定すると、素早く解決することができます。 実行中の JVM のバージョン情報同様に、Java を起動するために使われる完全なコマンドは、コンソールに表示されます。 さらに詳しくは、ログ化コンフィギュレーションプロパティ をご覧ください。

コンフィギュレーションファイルで、 インクルードファイル(カスケード形式)を利用している場合には、 「デバッグメッセージを有効」にしてください。 もしライセンスに関する問題に遭遇した場合には、 [wrapper.license.debug] プロパティを 「TRUE」 に設定して、 インクルードファイル(カスケード形式)のデバッグを有効にしてください。 併用することで、ほとんどのコンフィギュレーション問題が明らかになります。

デバッグ作業を検知する

wrapper.java.detect_debug_jvm] プロパティを 「TRUE」 に設定して 「デバッグ検知」 が有効になっている間、 一部のタイムアウトを無視します。