Domanda

[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

Questo sta accadendo durante il test di carico sul server. Dovrei preoccuparsi. Oltre a ottenere quel messaggio nel registro, tutto sembra funzionare bene.

È stato utile?

Soluzione

In risposta a Matt B, il "fallito invio del messaggio a null" messaggio è fuorviante. Il vero problema è l'InterruptedIOException. Questo significa che qualcuno ha chiamato interrupt () sul thread che è stato l'invio UDP. Molto probabilmente, l'interrupt viene generato all'interno di JGroups. (A meno che non hai iniziato, e poi si fermò il canale di JGroups.)

Guardando la traccia dello stack, l'ho interrotto / O ero da un protocollo Discovery. Stava cercando di scoprire altri membri del cluster. Quindi, nessun messaggio di tuo è stato perso da questa eccezione.

Dovremmo saperne di più per capire davvero questo fuori.

Altri suggerimenti

L'invio di "null" significa inviare a tutto il cluster, contro l'invio di un messaggio ad un singolo membro. Sono d'accordo, questo è un po 'fuorviante, così ho cambiato questo in versione successiva: IIRC "null" è stato sostituito a con "gruppo" o "gruppo"

.

"null" qui indicato la destinazione: un indirizzo di destinazione nulla significa inviare per l'intero cluster

.

L'InterruptedIOException proviene dal filo mittente essere fermato da JGroups; Questo accade per esempio quando abbiamo già abbastanza risposte in fase di discovery di ritorno, e quindi l'operazione di invio fermo (es., interrotto).

Questo è stato anche risolto nelle versioni successive di JGroups. Bela

E 'possibile che si stanno ottenendo un errore perché si sta inviando un messaggio a "null"?

  

ERRORE - org.jgroups.protocols.UDP - non è riuscito l'invio di un messaggio a null

In caso contrario, questo è probabilmente piuttosto difficile per chiunque altro per aiutarvi con senza esempi di codice, le informazioni sulla rete, la situazione specifica in cui si verifica il problema, ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top