Si vous souhaitez démarrer jstatd
sur un port spécifique pour son registre RMI, vous pouvez passer le paramètre -p
pour cela. Mais le problème est qu'il ouvre un second port aléatoire (appelé "port anonyme" en java) qui pose problème pour l'écriture de règles de pare-feu ou pour utiliser JVisualVM pour se connecter à un jstatd
distant fonctionnant dans un conteneur Docker. Si vous regardez jstatd
source, vous verrez qu'il appelle UnicastRemoteObject.exportObject(remoteHost, 0)
qui ouvrira un nouveau "port anonyme" qui semble être aléatoire.Comment forcer ou prédire le deuxième port ouvert de jstatd?
Existe-t-il un moyen de forcer ce dernier port à un port fixe, ou un moyen de prédire lequel sera choisi?
Copie possible de [Comment m'assurer que RMI n'utilise qu'un ensemble spécifique de ports?] (Http://stackoverflow.com/questions/56687/how-do-i-ensure-that-rmi-uses-only -a-specific-set-of-ports) – jchampemont
En fait, l'objet nouvellement exporté réutilisera un port précédemment utilisé, tel que le port de registre, à moins qu'il y ait des conflits d'usine de socket. Avez-vous des preuves? ou est-ce que cette question est basée sur cette mauvaise lecture? – EJP
@EJP: Je ne comprends pas vraiment votre commentaire ... Ma question est basée sur le fait qu'au lancement de 'jstatd' un autre port est ouvert (ainsi que le port de registre RMI) et si vous ne transférez pas aussi ce port dans une règle de pare-feu, alors JVisualVM (par exemple) ne pourra pas accéder à ce serveur distant ... –