blob: 28cbd64efd2dd3e36a0f46530b25e20f75d35686 [file] [log] [blame]
//
// 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 中的工作流。此模块允许您快速开发管理应用程序,向现有应用程序添加管理,开发管理器应用程序,以及监视虚拟机的状态。
本文档已针对 JMX 向导模块版本 3.0NetBeans IDE 6.5 及更新版本进行更新,且运行于 JDK 6 JDK 7 之上。可以从更新中心下载 JMX 模块。
*注:*此文档简短快速地介绍了 NetBeans IDE JMX 模块。有关更详细信息,请完成 JMX 模块教程link:jmx-tutorial.html[+将 JMX 分析添加到 Java 应用程序中+]。
本入门文档概述了 JMX 模块功能:
image::images/netbeans-stamp-80-74-73.png[title="此页上的内容适用于 NetBeans IDE 7.2、7.3、7.4 和 8.0"]
* 用于创建 JMX MBean 和管理器的向导。
* 通过添加属性和操作,实现 ``MBeanRegistration`` 接口或实现 ``NotificationEmitter`` 接口更新现有 MBean 的操作。
* 根据现有 Java 类的 MBean 生成。
* 用于将 MBean 注册到 Java 平台 MBean 服务器的操作。
* 启动 Java 平台管理控制台 (JConsole) 的功能。
* 使用 JConsole 运行和调试应用程序的功能。
* 向您演示如何将 JMX 功能添加到应用程序的基于 Anagram Game 的样例应用程序。
* 用于生成管理属性文件以允许您启动可管理的安全 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 开发工具包 (JDK)+] |版本 7 或 8
|JMX 插件 |可从 NetBeans 更新中心获得
|JConsole 插件 |可从 NetBeans 更新中心获得
|===
要安装 *JMX* *JConsole* 插件,请选择“工具”>“插件”,然后从 NetBeans 更新中心下载相应模块。
== 访问 JMX 向导
在安装 JMX 插件并打开您的项目之后,可以通过选择 "File"(文件)> "New File"(新建文件)(Ctrl-N 组合键)并选择 "JMX" 类别来访问 JMX 向导。然后可以从以下项中选择:
* *管理配置文件*。用于存储 JMX 管理(特别是远程连接和安全)的配置的标准 Java 属性文件。
* *几种类型的 JMX MBean*。MBean 可以表示一个设备、一个应用程序或需要托管的任何资源。MBean 公开管理界面:一组可读和/或可写属性和一组可调用操作以及自我描述。在 MBean 实例的整个生命周期内,该管理界面都不会更改。MBean 还会在发生某些定义的事件时发出通知。JMX MBean 需要注册到 MBean 服务器。
* *JMX 管理器*。JMX 管理器是连接到远程 JMX MBean 服务器的任何应用程序。
image::images/jmx-newfile.png[title="JMX 类别中的新建文件向导"]
== 更新 MBean
可以使用 JMX 上下文菜单操作(将弹出一个对话框)来向 MBean 添加属性和操作。也可以让 MBean 实现 ``NotificationEmitter`` 接口。
要更新 MBean,请在 "Project"(项目)树中选择 MBean Java 文件并通过右键单击相应节点来访问 JMX 弹出菜单,或者在打开了 MBean Java 文件的编辑器窗口中简单右键单击并访问 JMX 弹出菜单。
link:jmx-tutorial.html#Exercise_3[+将 JMX 分析添加到 Java 应用程序中+]教程的练习 3 中演示了这些操作。
== 注册 MBean
要远程连接到 MBean 并管理您的应用程序,需要将 MBean 注册到 MBean 服务器中。
MBean 服务器是 JMX 技术的主要的核心部分。该服务器保持引用注册到其中的所有 MBean,可以发送有关新 MBean 注册或删除操作的通知,并且可以接受远程连接以公开其注册的 MBean 的属性和操作。如果您不熟悉 MBean 服务器角色,请阅读 `` link:http://download.oracle.com/javase/6/docs/api/javax/management/MBeanServer.html[+javax.management.MBeanServer+]`` API 文档。
JDK 5 开始,Java 平台提供一个称为“平台 MBean 服务器”的默认 MBean 服务器。使用该服务器,您可以监视 JVM,也可以将您自己的 MBean 注册到其中。有关 Java 平台 MBean 服务器的详细信息,请阅读 `` link:http://download.oracle.com/javase/6/docs/api/java/lang/management/ManagementFactory.html[+java.lang.management.ManagementFactory +]`` API 文档。
根据逻辑,确定希望将 MBean 注册到的应用程序代码位置,通常是在主类的初始化阶段。在编辑器窗口中右键单击希望生成 MBean 注册代码的位置,选择 "JMX" 子菜单,然后选择 "Generate MBean Registration..."(生成 MBean 注册...)操作。
link:jmx-tutorial.html#Exercise_5[+将 JMX 分析添加到 Java 应用程序中+]教程的练习 5 中演示了此操作。
== 实现并执行可管理的应用程序
JConsole JMX 兼容的图形工具,用于监视 Java 虚拟机。JConsole 可以监视本地和远程 JVM,并且可以用于监视和管理 JMX 应用程序。
通常,实现并执行可管理的应用程序的工作流如下所示:
1. 生成 MBean
2. MBean 添加实现
3. 生成 MBean 的注册代码。
4. 使用 JConsole 运行或调试项目。
安装 JMX JConsole 插件后,您将会看到工具栏上添加了以下按钮。也可以在主菜单中的 "Debug"(调试)菜单项下访问这些操作。
|===
|按钮 |描述
|image::images/run-project24.png[title=""Run Main Project with Monitoring and Management"(通过监视和管理运行主项目)按钮"] |通过监视和管理运行主项目
|image::images/debug-project24.png[title=""Debug Main Project with Monitoring and Management"(通过监视和管理调试主项目)按钮"] |通过监视和管理调试主项目
|image::images/console24.png[title=""Start JConsole Management Console"(启动 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. 选择 "File"(文件)> "New Project"(新建项目)。
2. "Samples"(样例)中,选择 "JMX" 类别。
3. 选择 "Anagram Game Managed with JMX"(使用 JMX 管理的 Anagram Game)项目。
image::images/jmx-newproject.png[title=""New Project"(新建项目)向导中的 "Anagram Game Managed with JMX"(使用 JMX 管理的 Anagram Game)"]
. 单击 "Next"(下一步)。无需更改提供的默认项目名称或位置值。确认 "Set as Main Project"(设置为主项目)复选框处于选中状态。单击 "Finish"(完成)。
*注:*如果您以前未安装 JUnit 插件,则 IDE 可能会提示您安装 JUnit 库。您可以单击 "Resolve Resource Problems"(解决资源问题)对话框中的 "Resolve"(解决)启动安装程序来安装 JUnit 插件。或者,您也可以在插件管理器中安装 JUnit 插件。
. 创建项目并将其设置为主项目之后,通过单击 "Run Main Project with Monitoring and Management"(通过监视和管理运行主项目)JConsole 按钮使用 JConsole 运行该项目。
*注:*当 Java 监视和管理控制台尝试连接到 Anagram Game 进程时,您可能会在此控制台中看到 "Connection Failed"(连接失败)警告。对于本教程,当系统提示您授权连接时,您可以单击 "Insecure"(不安全)。
单击此按钮将启动并显示 Anagram Game
image::images/jmx-anagram.png[title="Anagram Game"]
也将显示 "JConsole" 窗口。
. "JConsole" 窗口中,选择 "MBean" 标签,然后在左侧的树布局中向下打开 ``anagrams.toy.com`` 下的所有节点,如下所示。
image::images/jmx-jconsole1.png[title=""JConsole" 窗口"]
. 选择 "Notifications"(通知)节点,然后单击底部的 "Subscribe"(订阅)按钮,这样在 Anagram 每次得到解决时 JConsole 都将会收到新通知。
. 现在转到 "Anagrams Game" 窗口,然后解决前三个或前四个 Anagram(答案位于 WordLibrary 类中,而此处它们是:abstractionambiguousarithmeticbackslash...)
. 返回 JConsole,注意它收到了四个通知。
. 单击 "Attributes"(属性)节点,可以看到更新了属性值:
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[+将 JMX 分析添加到 Java 应用程序中+]