2016-07-28 1 views
0

J'ai 2 processus sur des serveurs distincts. L'un exécute le planificateur Quartz et je veux me connecter à l'autre pour gérer les déclencheurs.Serveur distant RMI à quartz renvoyant un nom d'hôte invalide

Sur le serveur planificateur de la config est:

org.quartz.scheduler.rmi.export = true 
org.quartz.scheduler.rmi.createRegistry = always 
org.quartz.scheduler.rmi.registryHost = localhost 
org.quartz.scheduler.rmi.registryPort = 1099 
org.quartz.scheduler.rmi.serverPort = 1100 

Sur le serveur distant la configuration est:

org.quartz.scheduler.rmi.proxy = true 
org.quartz.scheduler.rmi.registryHost = ip-172-16-5-11.eu-west-1.compute.internal 
org.quartz.scheduler.rmi.registryPort = 1099 

Lorsque je tente et se connecter au programmateur à distance, je reçois l'erreur suivante dans la log:

ERROR [2016-07-28 09:10:23,017] xxxx: Error communicating with remote scheduler. 
! java.net.ConnectException: Connection refused 
! ... 83 common frames omitted 
! Causing: java.rmi.ConnectException: Connection refused to host: log-emea-1; nested exception is: 
! java.net.ConnectException: Connection refused 

Bien que cet hôte soit un hôte sur notre réseau, je ne sais pas pourquoi il est ing renvoyé par le registre distant.

Il n'y a aucun problème de connectivité. Si je lance tcpdump sur la machine distante, je peux la voir se connecter au planificateur. Il est juste que le planificateur retourne cet hôte invalide:

09:19:02.047589 IP 172.16.5.11.1099 > 172.16.0.81.54065: Flags [P.], seq 19:235, ack 105, win 210, options [nop,nop,TS val 1231389006 ecr 562121102], length 216 
[email protected]@..........Q.K.1}.Z... ......c..... 
Ie.N!.I.Q....w..9.e2...V0.|...sr.$org.quartz.core.QuartzScheduler_Stub...........pxr..java.rmi.server.RemoteStub......e....pxr..java.rmi.server.RemoteObject.a...a3....pxpw3. 
UnicastRef. 
log-emea-1...L/8. .a.69.e2...V0.|....x 

Où est le registre RMI Quartz obtenir ce nom d'hôte à partir? Il n'y a pas d'indices dans le fichier hosts ou DNS. Il semble être aléatoire.

Répondre

0

J'ai essayé le drapeau de JVM, mais qui n'a fait aucune différence mais il ne me conduit à une solution . J'ai mis la propriété dans le code et cela a corrigé le problème.

System.setProperty("java.rmi.server.hostname", "quartz"); 
+0

Mais qui est le même comme '-Djava.rmi.server.hostname = quartz' – mam10eks

+0

Oui, en théorie, ils devraient être les mêmes, mais dans la pratique, il semble que non. – JohnnyD

+0

Vous pouvez le valider avec 'System.getProperty (" java.rmi.server.hostname ")'. Juste au cas où vous voulez vous assurer que ce n'était pas une faute de frappe ou autre chose;) – mam10eks