Se tentate di utilizzare jconsole per monitorare applicazioni remote residenti su server Linux o Solaris(credo sia cosi anche per Windows ma non ho mai provato) o comunque applicazioni RMI potreste ricevere il messaggio “connessione fallita” anche se il telnet risponde correttamente e il netstat vi mostra la porta in modalita’ “LISTEN” ovvero in attesa di connessioni.

Livello:
Medio

Per chi:
Ha la necessita di monitorare applicazioni java remote

E’ semplicemente necessario passare il parametro java.rmi.server.hostname al vostro applicativo remoto specificando l’hostname o l’ip della macchina.
Un esempio di applicazione su rete interna che non necessiti di particolari accorgimenti(SSL o autenticazione) potrebbe essere il seguente:

java -Dcom.sun.management.jmxremote 
  -Dcom.sun.management.jmxremote.authenticate=false 
  -Dcom.sun.management.jmxremote.ssl=false 
  -Dcom.sun.management.jmxremote.port=
<porta> 
  -Djava.rmi.server.hostname=<hostname-or-ip> 
  mio.package.OggettoSuServerRemoto
</hostname-or-ip></porta>

Questo accade perche’ il valore di java.rmi.server.hostname di default dalla versione 1.1.7 e’ l’ip del localhost, ovvero 127.0.0.1, di conseguenza i client che cercano di collegarsi via RMI non riescono ad effettuare la connessione quindi, per assicurarsi che la rotta sia impostata correttamente anche dall’applicativo server cosi che tutti i client si possano collegare, e’ necessario indicare l’ip o l’hostname *pubblico* come valore di tale parametro.

Ciao,
Cristian