Краткий обзор Java Контроль SE и управление
Эта глава представляет функции и утилиты, которые обеспечивают контроль и службы управления на Платформу Java, Standard Edition (Java платформа SE). На функциях, представленных здесь, подробно остановятся в следующих главах этого руководства.
Ключевой Контроль и Функции управления
Java платформа SE включает существенный контроль и функции управления. Эти функции попадают в четыре широких категории.
-
Инструментарий для виртуальной машины Java (Java VM).
-
Контроль и прикладные программные интерфейсы управления (API).
-
Контроль и Инструменты управления.
-
Расширения управления Java (JMX) технология.
Эти категории контроля и функций управления представляются далее в следующих разделах.
Java Инструментарий VM
VM Java инструментуется для контроля и управления, включая встроенному (или "из поля") возможности управления, к которым можно получить доступ и удаленно и локально. Для получения дополнительной информации см. Главу 2, Контроль и управление Используя Технологию JMX и Главу 5, Контроль SNMP и управление.
VM Java включает платформу сервер MBean и платформа MBeans для использования приложениями управления, которые соответствуют спецификации JMX. Они - реализации контроля и API управления, описанного в следующем разделе. Платформа MXBeans и серверы MBean представляется в Платформе MXBeans и Платформа Сервер MBean.
Пример кода обеспечивается в каталоге JDK_HOME/demo/management, где JDK_HOME является каталогом, в котором устанавливается Комплект разработчика для Java (JDK).
Контроль и API управления
Пакет java.lang.management обеспечивает интерфейс для контроля и управления Java VM. Этот API обеспечивает доступ к следующим типам информации.
-
Число классов загружалось и выполнение потоков.
-
Java время работы VM, системные свойства, и входные параметры VM.
-
Состояние потока, статистика конкуренции потока, и трассировка стека живых потоков.
-
Потребление памяти.
-
Статистика сборки "мусора".
-
Низкое обнаружение памяти.
-
По требованию обнаружение мертвой блокировки.
-
Информация об операционной системе.
В дополнение к API java.lang.management обеспечивает API java.util.logging.LoggingMXBean, позволяет Вам выполнять контроль и управление журналированием.
Контроль и Инструменты управления
Java платформа SE обеспечивает графический контрольный инструмент под названием JConsole. JConsole реализует API JMX и позволяет Вам контролировать производительность Java VM и любые инструментованные приложения, предоставляя информацию, чтобы помочь Вам оптимизировать производительность. Представленный в платформе J2SE 5.0, JConsole стал официально поддерживавшей функцией платформы в Java платформа SE, версия 6.
Некоторые из улучшений, которые были сделаны к JConsole между этими двумя выпусками Java платформой SE, следующие.
-
Поддержка Плагина JConsole, которая позволяет Вам создавать свои собственные плагины, чтобы работать с JConsole, например, добавить пользовательскую вкладку для того, чтобы получить доступ к MBeans Ваших приложений.
-
Динамичный присоединяют возможность, разрешая Вам соединить JConsole с любым приложением, которое поддерживает Присоединить API, который был добавлен к Java платформа SE, версия 6.
-
Улучшенный пользовательский интерфейс, который делает данные более легкодоступными.
-
Новый Краткий обзор и Сводные вкладки VM, для лучшего представления общей информации о Вашем Java VM.
-
MBean Диагностики HotSpot, который обеспечивает API, чтобы запросить дамп "кучи" во времени выполнения и также изменить настройки определенных опций VM.
-
Улучшенное представление MBeans, чтобы облегчить получать доступ к операциям Ваших MBEAN и атрибутам.
JConsole представляется полностью в Главе 3, Используя JConsole.
Другие инструменты командной строки также предоставляются Java платформа SE. См.
Расширения управления Java (JMX) Технология
Java платформа SE, версия 6 включает спецификацию JMX, версию 1.4. API JMX позволяет Вам инструментальным приложениям для контроля и управления. Соединитель RMI позволяет этому инструментарию быть удаленно доступным, например JConsole.
Для получения дополнительной информации см.
Каков MBeans?
Технологические MBeans JMX являются управляемыми бобами, а именно, объекты Java, которые представляют ресурсы, которые будут управляемы. У MBean есть интерфейс управления, состоящий из следующего.
-
Названный и введенные атрибуты, которые могут быть считаны и записаны.
-
Названный и введенные операции, которые могут быть вызваны.
-
Введенные уведомления, которые могут быть испущены MBean.
Например, у MBean представление конфигурации приложения могли быть атрибуты, представляющие различные параметры конфигурации, такие как размер кэша. Чтение атрибута CacheSize возвратило бы текущий размер кэша. Запись CacheSize обновила бы размер кэша, потенциально изменяя поведение рабочего приложения. Работа, такая как save могла постоянно хранить текущую конфигурацию. MBean мог отправить уведомление, такое как ConfigurationChangedNotification когда изменения конфигурации.
MBeans может быть стандартным или динамичным. Стандартные MBeans являются объектами Java, которые соответствуют шаблонам разработки, полученным из компонентной модели JavaBeans. Динамические MBeans определяют свой интерфейс управления во времени выполнения. Позже, дополнительный тип MBean, названного MXBean, был также добавлен к платформе Java.
-
Стандартный MBean представляет ресурс, который будет управляем непосредственно через его атрибуты и операции. Атрибуты представляются через методы "метода get" и "метода set". Операции являются другими методами class, которые доступны менеджерам. Все эти методы определяются статически в MBean, взаимодействуют через интерфейс и видимы к агенту JMX через самоанализ. Это - самый прямой способ сделать новый ресурс управляемым.
-
Динамический MBean является MBean, который определяет его интерфейс управления во времени выполнения. Например, конфигурация, MBean мог определить имена и типы атрибутов, которые он представляет, анализируя XML-файл.
-
MXBean является новым типом MBean, который обеспечивает простой способ кодировать MBean, который только ссылается на предопределенный набор типов. Таким образом можно убедиться, что Ваш MBean будет применим любым клиентом, включая удаленные клиенты, без любого требования, чтобы у клиента был доступ к специфичным для модели классам, представляющим типы Вашего MBeans. Платформа MBeans, представленный ниже, является всем MXBeans.
Сервер MBean
Чтобы быть полезным, MBean должен быть зарегистрирован в сервере MBean. Сервер MBean является репозитарием MBeans. Каждый MBean регистрируется в уникальном имени в пределах сервера MBean. Обычно единственный доступ к MBeans через сервер MBean. Другими словами код не получает доступ к MBean непосредственно, а скорее получает доступ к MBean по имени через сервер MBean.
Java платформа SE включает встроенную платформу сервер MBean. Для получения дополнительной информации см. Главу 4, Используя Платформу Сервер MBean и Платформа MXBeans.
Создание и Регистрация MBeans
Есть два способа создать MBean. Нужно создать объект Java, который будет MBean, затем использовать метод registerMBean, чтобы зарегистрировать это в Сервере MBean. Другой должен создать и зарегистрировать MBean в единственной работе, используя один из методов createMBean.
Метод registerMBean более прост для локального использования, но не может использоваться удаленно. Метод createMBean может использоваться удаленно, но иногда требует внимания к проблемам загрузки class. MBean может выполнить действия, когда он регистрируется в или незарегистрированное от Сервера MBean, если он реализует интерфейс MBeanRegistration.
Инструментование Приложений
Общие инструкции по тому, как инструментовать Ваши приложения для управления API JMX, выходят за рамки этого документа. См. документацию для
Платформа MXBeans
Платформа MXBean является MBean для контроля и управления Java VM и другие компоненты среды выполнения Java (JRE). Каждый MXBean инкапсулирует часть функциональности VM, такой как система загрузки class, своевременная (JIT) система компиляции, сборщик "мусора", и так далее.
Таблица 1-1 перечисляет всю платформу MXBeans и аспект VM, которым они управляют. У каждой платформы MXBean есть уникальный javax.management.ObjectName для регистрации в платформе сервер MBean. У Java VM может быть нуль, один, или больше чем один экземпляр каждого MXBean, в зависимости от его функции, как показано в таблице.
Табличная 1-1 Платформа MXBeans
Интерфейс | Часть Управляемого VM | Имя объекта | Экземпляры на VM |
---|---|---|---|
ClassLoadingMXBean |
Система загрузки класса |
java.lang:type= ClassLoading |
Один |
CompilationMXBean |
Система компиляции |
java.lang:type= Compilation |
Нуль или один |
GarbageCollectorMXBean |
Сборщик "мусора" |
java.lang:type= GarbageCollector, name=collectorName |
Один или больше |
LoggingMXBean |
Журналирование системы |
java.util.logging:type =Logging |
Один |
MemoryManagerMXBean (подинтерфейс GarbageCollectorMXBean) |
Пул памяти |
java.lang: typeMemoryManager, name=managerName |
Один или больше |
MemoryPoolMXBean |
Память |
java.lang: type= MemoryPool, name=poolName |
Один или больше |
MemoryMXBean |
Система памяти |
java.lang:type= Memory |
Один |
OperatingSystemMXBean |
Базовая операционная система |
java.lang:type= OperatingSystem |
Один |
RuntimeMXBean |
Система времени выполнения |
java.lang:type= Runtime |
Один |
ThreadMXBean |
Система потока |
java.lang:type= Threading |
Один |
См. описание пакета в ссылке API для
Платформа Сервер MBean
Платформа Сервер MBean может быть совместно использована различными управляемыми компонентами, работающими в пределах того же самого Java VM. Можно получить доступ к платформе Сервер MBean с методом ManagementFactory.getPlatformMBeanServer(). Первый звонок в этот метод, создает платформу сервер MBean и регистрирует платформу MXBeans использование их уникальных имен объектов. Впоследствии, это возвращает первоначально создаваемую платформу экземпляр MBeanServer.
MXBeans, которые создаются и уничтожаются динамически (например, пулы памяти и менеджеры) будут автоматически зарегистрированы и незарегистрированы в платформе сервер MBean. Если системное свойство javax.management.builder.initial будет установлено, платформа, то сервер MBean будет создаваться указанным MBeanServerBuilder.
Можно использовать платформу сервер MBean, чтобы зарегистрировать другой MBeans помимо платформы MXBeans. Это позволяет всему MBeans быть опубликованным через тот же самый сервер MBean и делает сетевую публикацию и открытие легче.