Question

[hannel,192.168.0.46:40014] 15:08:03,642 - ERROR - org.jgroups.protocols.UDP - failed sending message to null (61 bytes)
java.lang.Exception: dest=/225.1.2.46:30446 (64 bytes)
    at org.jgroups.protocols.UDP._send(UDP.java:333)
    at org.jgroups.protocols.UDP.sendToAllMembers(UDP.java:283)
    at org.jgroups.protocols.TP.doSend(TP.java:1327)
    at org.jgroups.protocols.TP.send(TP.java:1317)
    at org.jgroups.protocols.TP.down(TP.java:1038)
    at org.jgroups.protocols.PING.sendMcastDiscoveryRequest(PING.java:220)
    at org.jgroups.protocols.PING.sendGetMembersRequest(PING.java:214)
    at org.jgroups.protocols.Discovery$PingSenderTask$1.run(Discovery.java:385)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:280)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:135)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:65)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:142)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:166)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
    at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.InterruptedIOException: operation interrupted
    at java.net.PlainDatagramSocketImpl.send(Native Method)
    at java.net.DatagramSocket.send(DatagramSocket.java:612)
    at org.jgroups.protocols.UDP._send(UDP.java:324)
    ... 16 more

Ceci se produit lors des tests de charge sur le serveur. Dois-je inquiéter. En plus de faire passer ce message dans le journal, tout semble fonctionner OK.

Était-ce utile?

La solution

En réponse à b mate, le « message a échoué envoyer à null » message est trompeur. Le vrai problème est le InterruptedIOException. Cela signifie que quelqu'un a appelé interruption () sur le thread qui envoyait UDP. Très probablement, l'interruption est générée dans JGroups. (À moins que vous avez commencé, puis arrêté le canal JGroups.)

Au vu de la trace de la pile, les entrées / sorties d'interruption était d'un protocole de découverte. Il a essayé de découvrir d'autres membres du cluster. Ainsi, aucun message de la vôtre a été perdu de cette exception.

Nous devrions en savoir plus à vraiment comprendre celui-ci dehors.

Autres conseils

Envoi à « null » signifie envoyer à l'ensemble du cluster, par rapport à l'envoi d'un message à un seul membre. Je suis d'accord, cela est un peu trompeur, alors j'ai changé cela dans une version ultérieure: IIRC « null » a été remplacé à par « cluster » ou « groupe »

.

"null" ici fait référence à la destination: une adresse de destination null signifie envoyer à l'ensemble du cluster

.

Le InterruptedIOException vient du fil de l'expéditeur d'être arrêté par JGroups; cela se produit par exemple lorsque nous avons déjà assez de réponses dans la phase de découverte de revenir, et donc la tâche d'envoi est arrêté (ie., interrompu).

Cela a également été corrigé dans les versions ultérieures de JGroups. Bela

Est-il possible que vous obtenez une erreur parce que vous envoyez un message à « null »?

  

ERREUR - org.jgroups.protocols.UDP - Impossible d'envoyer un message à null

Sinon, cela est sans doute assez difficile pour quelqu'un d'autre pour vous aider avec sans exemples de code, des informations sur votre réseau, la situation particulière où se produit votre problème, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top