// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= NetBeans IDEでのJMXモニタリングの開始
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans IDEでのJMXモニタリングの開始 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans IDEでのJMXモニタリングの開始

NetBeans JMXモジュールは、JMXテクノロジを直接、NetBeans IDEの対象ワークフローに統合します。このモジュールを使用すると、管理アプリケーションの迅速な開発、既存アプリケーションへの管理の追加、マネージャ・アプリケーションの開発、仮想マシンの状態のモニターが可能になります。

このドキュメントは、NetBeans IDE 6.5以降を対象とする、JDK 6またはJDK 7の最上部で実行中のJMXウィザード・モジュール・バージョン3.0のために更新されています。JMXモジュールは更新センターからダウンロードできます。

*注意:* このドキュメントはNetBeans IDE用のJMXモジュールの簡単な概要を示しています。より詳しい情報については、JMXモジュール・チュートリアルのlink:jmx-tutorial.html[+JavaアプリケーションへのJMXインストゥルメントの追加+]を参照してください。

この開始ドキュメントでは、次のようなJMXモジュール機能の概要を示します。

image::images/netbeans-stamp-80-74-73.png[title="このページの内容は、NetBeans IDE 7.2、7.3、7.4および8.0に適用されます"]

* JMX MBeansおよびマネージャを作成するためのウィザード。
* 属性および操作を追加し、 ``MBeanRegistration`` インタフェースまたは ``NotificationEmitter`` インタフェースを実装することで、既存のMBeansを更新するアクション。
* 既存のJavaクラスからのMBeanの生成。
* MBeansをJavaプラットフォームMBeanサーバー内に登録するアクション。
* Javaプラットフォーム管理コンソール(JConsole)を起動する機能。
* JConsoleを使用してアプリケーションを実行およびデバッグする機能。
* JMX機能のアプリケーションへの追加方法を示すAnagramゲームに基づくサンプル・アプリケーション。
* セキュアで管理可能なJVMの起動を可能にする、管理プロパティ・ファイルを生成するウィザード。
* オンライン・ヘルプ。
* link:../../index.html[+netbeans.org+]サイトからアクセス可能なチュートリアル。


== 前提条件

このチュートリアルは、次のテクノロジについて基本的な知識またはプログラミング経験を持つ読者を想定して書かれています。

* JMXテクノロジ: link:http://download.oracle.com/javase/6/docs/technotes/guides/jmx/index.html[+JMXオンライン・ドキュメント+]
* Javaテクノロジ: link:http://www.oracle.com/technetwork/java/javase/tech/index.html[+Java SEテクノロジ早見表+]
* NetBeans IDE

link:http://download.oracle.com/javase/6/docs/technotes/guides/management/index.html[+Javaプラットフォームのモニタリングおよび管理+]の内容が参考になる場合もあります。


== チュートリアルに必要なソフトウェア

このチュートリアルでは、コンピュータに次のソフトウェアをインストールしておく必要があります。

|===
|ソフトウェアまたはリソース |必須バージョン 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |7.2、7.3、7.4、8.0、Javaバンドル 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java Development Kit (JDK)+] |バージョン7または8 

|JMXプラグイン |NetBeans更新センターから入手可能 

|JConsoleプラグイン |NetBeans更新センターから入手可能 
|===

*JMX*および*JConsole*プラグインをインストールするには、「ツール」>「プラグイン」を選択してNetBeans更新センターからモジュールをダウンロードします。


== JMXウィザードへのアクセス

JMXプラグインをインストールし、プロジェクトが開いたら、「ファイル」>「新規ファイル」([Ctrl]+[N])を選択してJMXカテゴリを選択するとJMXウィザードにアクセスできます。次の中から選択できます。

* *管理構成ファイル。*JMX管理、特にリモート接続およびセキュリティのための構成を格納する標準のJavaプロパティ・ファイル。
* *各種のJMX MBeansタイプ。*MBeanは、管理対象となるデバイス、アプリケーションまたは任意のリソースを表示できます。MBeansは管理インタフェース、つまり読取りまたは書込み(あるいはその両方が)可能な一連の属性と、起動可能な一連の操作を、各説明とともに公開します。管理インタフェースは、MBeanインスタンスのライフサイクルを通して変更されません。MBeansは、特定の定義済イベントが発生したときに通知も送信できます。JMX MBeansはMBeanサーバー内に登録する必要があります。
* *JMXマネージャ。*JMXマネージャは、リモートJMX MBeanサーバーに接続する任意のアプリケーションです。
image::images/jmx-newfile.png[title="JMXカテゴリの新規ファイル・ウィザード"]


== MBeansの更新

ダイアログ・ボックスをポップアップするJMXコンテキスト・メニューのアクションで、MBeansに属性と操作を追加できます。MBeansで ``NotificationEmitter`` インタフェースを実装することもできます。

MBeanを更新するには、「プロジェクト」ツリーでMBeanクラスJavaファイルを選択し、ノードを右クリックしてJMXポップアップ・メニューにアクセスするか、単純にMBeanクラスJavaファイルが開かれているエディタ・ウィンドウ内を右クリックして、JMXポップアップ・メニューにアクセスします。

このアクションのデモは、link:jmx-tutorial.html#Exercise_3[+JavaアプリケーションへのJMXインストゥルメントの追加+]チュートリアルのエクササイズ3で示されています。


== MBeansの登録

MBeansにリモート接続してアプリケーションを管理するには、MBeansをMBeanサーバー内に登録する必要があります。

MBeanサーバーは、JMXテクノロジの中心的な部分です。このサーバーは、登録されたすべてのMBeanの参照を保持し、新しいMBeanの登録または削除の通知を送信し、登録されたMBeansの属性と操作を公開するためのリモート接続を受け入れることができます。MBeanサーバーの役割について詳しくない場合は、 ``link:http://download.oracle.com/javase/6/docs/api/javax/management/MBeanServer.html[+javax.management.MBeanServer+]``  APIのドキュメントを参照してください。

JDK 5から、JavaプラットフォームはデフォルトのMBeanサーバーである、プラットフォームMBeanサーバーを提供するようになりました。これによってJVMのモニターが可能になり、独自のMBeansの登録にも使用できます。JavaプラットフォームMBeanサーバーの詳細は、 ``link:http://download.oracle.com/javase/6/docs/api/java/lang/management/ManagementFactory.html[+java.lang.management.ManagementFactory+]``  APIのドキュメントを参照してください。

ロジックに応じて、通常はメイン・クラスの初期化フェーズで、アプリケーション・コード内でMBeansを登録する場所を決定します。エディタ・ウィンドウ内でMBeanの登録コードを生成する場所を右クリックして、JMXサブメニューを選択してから「MBean登録を生成...」アクションを選択します。

このアクションのデモは、link:jmx-tutorial.html#Exercise_5[+JavaアプリケーションへのJMXインストゥルメントの追加+]チュートリアルのエクササイズ5で示されています。


== 管理可能なアプリケーションの実装および実行

JConsoleは、Java仮想マシンをモニタリングするためのJMX準拠のグラフィカル・ツールです。JConsoleは、ローカルおよびリモートのJVMの両方をモニターすることが可能で、JMXアプリケーションのモニターおよび管理に使用できます。

一般的に、管理可能なアプリケーションの実装および実行のワークフローは次のようになります。

1. MBeansを生成します。
2. MBeansに実装を追加します。
3. MBeanの登録コードを生成します。
4. JConsoleを使用してプロジェクトを実行またはデバッグします。

JMXおよびJConsoleプラグインをインストールした後は、次のボタンがツールバーに追加されます。このアクションは、メイン・メニューの「デバッグ」メニュー項目下でもアクセスできます。

|===
|ボタン |説明 

|image::images/run-project24.png[title="モニタリングおよび管理によるメイン・プロジェクトの実行のボタン"] |モニタリングおよび管理によるメイン・プロジェクトの実行 

|image::images/debug-project24.png[title="モニタリングおよび管理によるメイン・プロジェクトのデバッグのボタン"] |モニタリングおよび管理によるメイン・プロジェクトのデバッグ 

|image::images/console24.png[title="JConsole管理コンソールの起動のボタン"] |JConsole管理コンソールの起動 
|===

*注意:*JConsoleは、Javaプラットフォームの一部であり、IDEから独立して使用できます。詳細は、次のリソースを参照してください。

* link:http://download.oracle.com/javase/6/docs/technotes/tools/share/jconsole.html[+ ``jconsole`` のマニュアル・ページ+]
* link:http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html[+JConsoleドキュメントの使用+]


== サンプル・アプリケーションの実行

JMXモジュールには、JMXモニタリングが組み込まれたサンプル・アプリケーションが含まれます。

1. 「ファイル」>「新規プロジェクト」を選択します。
2. 「サンプル」でJMXカテゴリを選択します。
3. JMXで管理されたアナグラム・ゲーム・プロジェクトを選択します。
image::images/jmx-newproject.png[title="新規プロジェクト・ウィザードのJMXで管理されたアナグラム・ゲーム"]

[start=4]
. 「次」をクリックします。指定されているデフォルトのプロジェクト名や場所の値を変更する必要はありません。「メイン・プロジェクトとして設定」チェックボックスが選択されていることを確認します。「終了」をクリックします。

*注意:*JUnitプラグインを以前にインストールしていない場合、JUnitライブラリのインストールを求めるメッセージが表示されることがあります。「リソースの問題を解決」ダイアログ・ボックスで「解決」をクリックしてインストーラを起動し、JUnitプラグインをインストールできます。プラグイン・マネージャでJUnitプラグインをインストールすることもできます。


[start=5]
. プロジェクトを作成し、メイン・プロジェクトとして設定したら、モニタリングおよび管理によるメイン・プロジェクトの実行のJConsoleボタンをクリックして、JConsoleで実行します。

*注意:*コンソールからアナグラム・ゲーム・プロセスに接続しようとすると、Java Monitoring &amp; Management Consoleに「接続に失敗しました。」という警告が表示されることがあります。このチュートリアルでは、接続の認証を求めるメッセージが表示されたら、「非セキュア」をクリックできます。

このボタンをクリックすると、アナグラム・ゲームが起動されて表示されます。

image::images/jmx-anagram.png[title="アナグラム・ゲーム"]

JConsoleウィンドウも表示されます。


[start=6]
. JConsoleウィンドウで、「MBeans」タブを選択して、次に示すように、左側のツリー・レイアウトで ``anagrams.toy.com`` の下のすべてのノードを展開します。
image::images/jmx-jconsole1.png[title="JConsoleウィンドウ"]

[start=7]
. 「通知」ノードを選択し、下にある「サブスクライブ」ボタンをクリックして、アナグラムが解決されるたびにJConsoleが新規通知を受け取れるようにします。

[start=8]
. 「アナグラム・ゲーム」ウィンドウに移動し、最初の3つか4つのアナグラムを解きます(解答はWordLibraryクラス内にありますが、次のとおりです: abstraction、ambiguous、arithmetic、backslash、...)

[start=9]
. JConsoleに戻り、4つの通知を受信したことを確認します。

[start=10]
. 「属性」ノードをクリックし、属性値が更新されていることを確認します。
image::images/jmx-jconsole2.png[title="更新された値を示すJConsoleウィンドウ"]
link:/about/contact_form.html?to=3&subject=Feedback:%20Getting%20Started%20with%20JMX%20Monitoring[+このチュートリアルに関するご意見をお寄せください+]



== 関連項目

このドキュメントではNetBeans IDE用のJMXモジュールの簡単な概要を示しました。より詳しい情報については、次のJMXモジュール・チュートリアルを参照してください。

* link:jmx-tutorial.html[+JavaアプリケーションへのJMXインストゥルメントの追加+]
