2015-12-14 2 views
0

Я нашел этот простой пример JBoss мониторинга с JMX и Javaмонитор с JMX

public class JMXExample { 

    public static void main(String[] args) throws Exception { 
     //Get a connection to the JBoss AS MBean server on localhost 
     String host = "localhost"; 
     int port = 9999; // management-native port 
     String urlString = 
      System.getProperty("jmx.service.url","service:jmx:remoting-jmx://" + host + ":" + port); 
     JMXServiceURL serviceURL = new JMXServiceURL(urlString); 
     JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL, null); 
     MBeanServerConnection connection = jmxConnector.getMBeanServerConnection(); 

     //Invoke on the JBoss AS MBean server 
     int count = connection.getMBeanCount(); 
     System.out.println(count); 
     jmxConnector.close(); 
    } 
} 

Я хочу назвать этот код каждые 3 секунды, чтобы получить реальные данные производительности.

Есть ли способ открыть одно соединение с сервером и отправить частые запросы?

ответ

0

Если развернуть этот код как EJB, вы можете сделать его @Singleton @Startup, с соединением устанавливаются по методу @PostConstruct, в то время как показатели собираются периодически, в соответствии с @Schedule. Например:

@Singleton 
@Startup 
public class MetricsGathering { 
    @PostConstruct 
    public void init() { 
     // setup the connection 
    } 

    @Schedule(second="*/5") 
    public void collect() { 
     // get the data and do something with it 
    } 
} 
+0

Я использую код в автономном приложении Java. Можете ли вы показать мне пример кода, как я могу сделать одно соединение и повторно использовать его много раз? –

+0

Если ваше автономное приложение работает 24x7, вы можете либо сделать часть соединения статическим полем, либо использовать шаблон Singleton. Если ваше автономное приложение запустится, запустите этот код и выключитесь, нет возможности сохранить соединение. – jpkrohling

+0

Можете ли вы показать мне пример, пожалуйста? –

Смежные вопросы