Jboss EAP Cluster HA – Problème de connectivité réseau UDP / TCP

Cluster d’un Jboss EAP 6.2 (à partir de 7.x), les nodes du cluster ne se trouvent pas. Erreur du type: "dropping unicast message to wrong destination" ou "null: no physical address for"
Pierre LISERONMis à jour le 1 Févr 2014

Jboss Cluster HA

Lors de la mise en cluster dun Jboss EAP 6.2 (mais quelques soit la version à partir de 7.x), il se peut que les nodes du cluster (sur différent serveur) ne se voient pas et que certains messages apparaissent dans la console de JBOSS alors que si vous essayer de faire un cluster sur une même machine le cluster fonctionne.

Voici les messages que vous pouvez voir apparaitre dans la log

Si vous utilisez la stack TCP.

14:21:51,523 WARN  [org.jgroups.protocols.TCP] (MPING) null: no physical address for 0105a729-0fdd-8e84-0214-11dc6d90526e, dropping message

Si vous utilisez la stack UDP:

11:48:54,484 WARN  [org.jgroups.protocols.TP$ProtocolAdapter] (Incoming-2,shared=udp) dropping unicast message to wrong destination node02/web; my local_addr is node01/web

Rappel du problème de réseau:

Vous possédez deux machines avec un jboss installé sur chaque. Dans cet exemple nous avons monté deux jboss en mode standalone HA avec la stack UDP. Voici une liste de point à voir pour déterminer pourquoi le cluster ne communique pas correctement.

Tester la connectivité

Premièrement avant toute chose, il faut tester si la connectivité réseau fonctionne correctement avec la commande ping.

Tester le traffic UDP

Si la commande ping fonctionne, il se peut que vous possédiez un problème de multicast UDP. Pour tester, il suffit dutiliser loutil iperf comme dans larticle suivant. Tester le traffic multicast

Tester la configuration de JBOSS

Si le réseau et la traffic multicast fonctionne, le problème peut venir dune autre chose. En effet, il se trouve que la configuraion de jboss écoutant sur toutes les interfaces ne fonctionne pas avec le mode HA. Il est nécessaire de bien configurer ladresse IP de linterface réseau qui doit servir au mode HA. Par exemple


    <
inet-address value="192.168.100.1"> 
  <
/inet-address><
/interface>
  <
interface name="public">
    <
inet-address value="192.168.100.1">
  <
/inet-address><
/interface>
  <
interface name="unsecure">
    <
inet-address value="127.0.0.1">
  <
/inet-address><
/interface>

et ne pas utiliser cette configuration:


    <
any-address> 
  <
/any-address><
/interface>
  <
interface name="public">
   <
any-address> 
  <
/any-address><
/interface>
  <
interface name="unsecure">
    <
inet-address value="127.0.0.1">
  <
/inet-address><
/interface>

Avec cette modification, les node du cluster JBOSS, se connectent bien et communiquent entre eux soit en UDP soit en TCP en fonction de stack choisie. 

Article sur lindustrialisation de la mise en cluster de JBOSS 

Plus dinformation sur Jboss dans la catégorie JBOSS

Si vous souhaitez être rappeler pour que lun de nos experts vous aide, nhésitez pas à nous contacter.