Spec-Zone .ru
спецификации, руководства, описания, API
|
Проблема наиболее вероятна, что Ваш Windows по умолчанию временный каталог находится на файловой системе FAT. Если Ваша файловая система TMP является NTFS, и JConsole не показывает Ваши процессы, проверяет Ваше имя пользователя как описано в FAQ #2.
Для соображений безопасности, локального контроля и управления только поддерживается, если Ваш Windows по умолчанию, временный каталог находится на файловой системе, которая поддерживает полномочия установки на файлах и каталоги (например на файловой системе NTFS). Это не поддерживается на файловой системе FAT, которые обеспечивают недостаточные средства управления доступом.
Потенциальное обходное решение для этой проблемы:
Установите переменную окружения TMP, чтобы сослаться на каталог на файловой системе NTFS, или любой файловой системе, которая поддерживает полномочия установки на файлах и каталоги прежде, чем Вы запустите свое приложение с локальным или удаленным включенным управлением. Отметьте, что эта файловая система должна быть локальной для машины. Установка этой опции для целевых приложений специализирована. Чтобы установить эту переменную в командной строке или в сценарии пакетной обработки, просто введите следующее:
набор TMP=path
Переменная окружения может быть установлена глобально, добавляя это к списку переменных окружения в Системных Свойствах (Панель управления-> Система, выберите вкладку "Advanced" и щелкните по кнопке "Environment Variables"). Через этот интерфейс можно хотеть устанавливать переменную для всех процессов, выполненных текущим пользователем или глобально как системная переменная для всех процессов, выполненных системой.
Это - известная проблема в JDK 5, что jconsole и jps команды не работают над Windows, если Ваше имя пользователя содержит '_' (подчеркивание). Ошибка
Пожалуйста, см., "Как защитить файл пароля на системном документе" Windows для деталей.
Это наиболее вероятно проблема конфигурации. Во-первых, удостоверьтесь, что Ваше приложение было запущено с удаленного включенного управления. (См. детали от "Контроля и управления, используя JMX" документ.) Второй, проверьте, позволяется ли SSL в свойствах управления включить удаленному управлению и если это конфигурируется должным образом.
SSL включается по умолчанию, когда удаленное управление включается. Можно отключить SSL свойством установки com.sun.management.jmxremote.ssl к false. Если Ваше приложение не будет установлено с SSL должным образом, но SSL включается для удаленного управления, то JConsole будет не в состоянии соединиться с приложением. Пожалуйста, см. "Используя SSL" раздел в "Контроле и управлении Используя JMX" документ для информации об использовании SSL для удаленного управления.
Если проблема отказа соединения происходит только, когда Ваше приложение работает на Linux, пожалуйста, см. FAQ #5.
Это наиболее вероятно проблема конфигурации на машине Linux или свойствах управления, определенных, чтобы запустить приложение. Пожалуйста, также см. FAQ #4 об использовании SSL.
Следует проверить следующее:
Выполненная команда "hostname -i". Если бы это сообщает 127.0.0.1, JConsole не был бы в состоянии соединиться с JVM, работающей на той машине Linux. Чтобы устранить эту проблему, отредактируйте/etc/hosts так, чтобы имя хоста решило к адресу узла.
Пакетная фильтрация создается в ядре Linux. Можно выполнить "/sbin/iptables --list", чтобы определить, разрешают ли внешнему клиенту соединиться с агентом JMX, создаваемым для удаленного управления. Можно использовать следующую команду, чтобы добавить правило позволить внешнему клиенту, такому как JConsole соединяться:
/usr/sbin/iptables -I INPUT -s jconsole-host -p tcp --destination-port jmxremote-port -j ACCEPT
где jconsole-узел является или именем хоста или адресом узла, на котором работает JConsole, и jmxremote-порт является набором номера порта для com.sun.management.jmxremote.port для удаленного управления.
Когда Вы включаете приложению для удаленного управления с SSL, Вы установили цифровой сертификат на системе, куда агент JMX (сервер MBean) выполняет и сконфигурировал SSL должным образом.
Принятие Вас создало keystore как описано в Руководстве по JSSE и запустило Ваше приложение (Server) следующим образом:
% java -Djavax.net.ssl.keyStore=keystore \
-Djavax.net.ssl.keyStorePassword=password Server
Чтобы соединиться с этим приложением, Вы должны выполнить jconsole следующим образом:
% jconsole -J-Djavax.net.ssl.trustStore=truststore \Вышеупомянутая конфигурация аутентифицирует сервер только. Если аутентификация клиента будет установлена, то Вы должны будете обеспечить подобный keystore для ключей JCONSOLE, и соответствующую базу доверенных сертификатов для приложения.
-J-Djavax.net.ssl.trustStorePassword=trustword
Свойство управления com.sun.management.jmxremote.port определяет порт, где Реестр RMI может быть достигнут, но порты, куда RMIServer и удаленные объекты RMIConnection экспортируются, выбирается стеком RMI. Чтобы экспортировать удаленные объекты (RMIServer и RMIConnection) на данном порту, Вы должны создать свой собственный сервер соединителя RMI программно, как описано в разделе, Подражающем Управлению Используя "Из Поля" JMX Удаленный API в Java Контроль SE и Руководство по управлению. Следует определить JMXServiceURL следующим образом:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost:" + port1 + "/jndi/rmi://localhost:" + port2 + "/jmxrmi");В команде выше, port1 является номером порта, на котором экспортируются RMIServer и удаленные объекты RMIConnection, и port2 является номером порта Реестра RMI.
Стандартный MIB для виртуальной машины Java может быть найден в:
MIB JVM включает 64-разрядные объекты, которые требуют, чтобы использовать SNMP v2 протокол. Все 64-разрядные объекты пропускаются, если Вы обходите MIB JVM, используя SNMP v1.