![]() ![]() ![]() ![]() |
この節では、Management Console の [Plugins] メニューに表示する独自のユーザ アクションを作成する方法について説明します。Management Console では、デフォルトのユーザ アクションが 2 つ用意されています。その 1 つの jrarecording
は、接続されている JRockit で JRA 記録を開始するユーザ アクション、もう 1 つの ctrlbreak
は、接続されている JRockit に対して ctrl-break シグナルを送信するユーザ アクションです。
特定のユーザ アクションに固有のパラメータは、GUI を使用するか、または Management Console の設定ファイルを編集することによってコンフィグレーションできます (この設定ファイルの詳細については、「コンソール設定ファイル」を参照してください)。
独自のユーザ アクションを記述することは非常に簡単です。まず、AbstractUserAction
のサブクラスを作成し (コード リスト 7-1 を参照)、続いて、consolesettings.xml
ファイル内にデプロイメント記述子を追加します (コード リスト 7-2 を参照)。
コード リスト 7-1 では、例として、接続されているすべての JRockit からスレッド スタック ダンプを取得するユーザ アクションの作成方法を示しています。
package com.example.useractions;
import java.io.IOException;
import java.util.*;
import com.jrockit.console.rjmx.CommonRJMXNames;
import com.jrockit.console.rjmx.RJMXConnectorModel;
import com.jrockit.console.useractions.AbstractUserAction;
/**
* JRockit に対してスタック ダンプを要求するテスト アクション
* (あくまでも一例であり、エラー処理や回復処理は未実装)
*
* @author Marcus Hirt
*/
public class StackDumpAction extends AbstractUserAction {
/**
* @see com.jrockit.console.useractions.UserAction#executeAction(List)
*/
public void executeAction(List connections) {
if (connections.size() > 0) {
Iterator iter = connections.iterator();
while (iter.hasNext()) {
RJMXConnectorModel cm = (RJMXConnectorModel) iter.next();
if (cm.isConnected()) {
try
{
System.out.println(CommonRJMXNames.getThreadMXBean(cm).getThreadStackDump());
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
ユーザ アクションの作成が完了したら、consolesettings.xml
ファイルの user_actions
要素の下に次のようなデプロイメント記述子を記述する必要があります。この作業により、作成したユーザ アクションが [Plugins] メニューに表示されるようになります。
<user_action>
<user_action_class>com.example.useractions.StackDumpAction</user_action_class>
<user_action_name>mystackdump</user_action_name>
<user_action_menu_name>My Stack Dump Action</user_action_menu_name>
<user_action_description>Example. Gets a stackdump from every connected JRockit and prints it to stdout.</user_action_description>
</user_action>
![]() ![]() ![]() |