Доступ к удаленному серверу MBean

Можно продолжить разрабатывать на ответвлении, функция, в которой Вы будете нуждаться, отслеживание слияния , который находится в Подверсии 1.5, это означает, что дополнительные слияния от ответвления только включают новые изменения.

11
задан parkr 14 August 2009 в 03:27
поделиться

4 ответа

В отличие от MBeanServer сервера JBoss, сервер MBean JVM по умолчанию не позволяет удаленный мониторинг. Вам необходимо установить различные системные свойства, чтобы разрешить это:

http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html

5
ответ дан 3 December 2019 в 03:18
поделиться

Пример кода из статьи IBM: ссылка

    MBeanServerConnection serverConn;

try {
   //connect to a remote VM using JMX RMI
   JMXServiceURL url = new JMXServiceURL( "service:jmx:rmi:///jndi/rmi://<addr>");

   JMXConnector jmxConnector = JMXConnectorFactory.connect(url);

   serverConn = jmxConnector.getMBeanServerConnection();

   ObjectName objName = new 
   ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);

   // Get standard attribute "VmVendor"
   String vendor = 
   (String) serverConn.getAttribute(objName, "VmVendor");

} catch (...) { }
4
ответ дан 3 December 2019 в 03:18
поделиться

Вы пробовали запускать a JConsole (это $ JAVA_HOME / bin ) для подключения к серверу? Вы должны иметь возможность просматривать статистику памяти оттуда

1
ответ дан 3 December 2019 в 03:18
поделиться

Я написал такой класс:

import javax.management.remote.JMXServiceURL;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanInfo;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;

public class JVMRuntimeClient 
{
    static void main(String[] args) throws Exception 
    {
        if (args == null)
    {
        System.out.println("Usage: java JVMRuntimeClient HOST PORT");
    }
    if(args.length < 2)
    {
        System.out.println("Usage: java JVMRuntimeClient HOST PORT");
    }

    try
    {
        JMXServiceURL target = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://"+args[0]+":"+args[1]+"/jmxrmi");
        JMXConnector connector = JMXConnectorFactory.connect(target);
        MBeanServerConnection remote = connector.getMBeanServerConnection();

        /**
        * this is the part where you MUST know which MBean to get
        * com.digitalscripter.search.statistics:name=requestStatistics,type=RequestStatistics
        * YOURS WILL VARY!
        */
        ObjectName bean = new ObjectName("com.digitalscripter.search.statistics:name=requestStatistics,type=RequestStatistics");

        MBeanInfo info = remote.getMBeanInfo(bean);
        MBeanAttributeInfo[] attributes = info.getAttributes();
        for (MBeanAttributeInfo attr : attributes)
        {
            System.out.println(attr.getDescription() + " " + remote.getAttribute(bean,attr.getName()));
        }
        connector.close();
    }
    catch(Exception e)
    {
        System.out.println(e.getMessage());
        System.exit(0);
    }
   }
}
17
ответ дан 3 December 2019 в 03:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: