2011-09-23 12 views
18

Jestem pewien, że mogę to zrozumieć, jeśli widzę parametry JAVA OPTS. Chcę monitorować serwer hornetq przy użyciu Jconsole, więc potrzebuję numeru portu.Jak znaleźć port JMX na serwerze?

Pamiętam, jak używam jakiegoś polecenia, takiego jak java grep itp., Gdy połączyłem się z nim jakiś czas temu.

+0

Nie widziałem żadnego hornetq pytania. JNDI/JMX nie jest częścią kodu źródłowego hornetq, jest częścią jboss, więc zapisałem go jako JBoss. –

Odpowiedz

25

Jeśli znasz numer procesu można użyć netstat znaleźć jakie porty program nasłuchuje na czymś jak

$ netstat -apn | grep <proc num> 

Konwencjonalna portowej dla słuchaczy JMX jest 1099.

1

Można programmatically access the JVM arguments like so:

import java.lang.management.ManagementFactory; 
import java.lang.management.RuntimeMXBean; 
...  
RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean(); 
List<String> arguments = RuntimemxBean.getInputArguments(); 
3

można również ręcznie ustawić port z ustawień wiersza poleceń JVM, np:

-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=1616 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
12

Wiem, że to stary post. Możesz również uzyskać szczegółowe informacje z Systemu:

String jmx1 = System.getProperty("com.sun.management.jmxremote"); 
String jmx2 = System.getProperty("com.sun.management.jmxremote.port"); 
String jmx3 = System.getProperty("com.sun.management.jmxremote.authenticate"); 
String jmx4 = System.getProperty("com.sun.management.jmxremote.ssl"); 
String jmx5 = System.getProperty("java.rmi.server.hostname");