Pergunta

[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

Isso está acontecendo durante o teste de carga no servidor. Devo me preocupar com isso. Além de obter essa mensagem no log, tudo parece funcionar OK.

Foi útil?

Solução

Em resposta a Matt b, a mensagem "falhou o envio de mensagem para nulo" é enganosa. O verdadeiro problema é a InterruptedIOException. Isso significa que alguém chamou de interrupção () no thread que estava enviando UDP. Muito provavelmente, a interrupção é gerado dentro JGroups. (A menos que você começou, e então parou o canal JGroups.)

Olhando para o rastreamento de pilha, o interrompi / S era de um protocolo Discovery. Ele estava tentando descobrir outros membros do cluster. Assim, nenhuma mensagem de vocês foi perdido a partir desta exceção.

Nós teríamos de saber mais para realmente descobrir isso.

Outras dicas

Envio a meios "nulo" enviando para todo o cluster, contra o envio de uma mensagem para um único membro. Concordo, isso é um pouco enganador, então eu mudei isso em versão posterior:. IIRC "null" foi substituída a com "cluster" ou "grupo"

"null" aqui se refere ao destino:. Um meio de endereços de destino nulo enviar para todo o cluster

O InterruptedIOException vem do thread do remetente ser parado por JGroups; isso acontece por exemplo quando já temos respostas suficientes na fase de descoberta para o retorno, e assim a tarefa de envio será interrompida (ie., interrompido).

Este também foi corrigido em versões posteriores do JGroups. Bela

É possível que você está recebendo um erro porque você está enviando uma mensagem para "null"?

ERRO - org.jgroups.protocols.UDP - Falha enviando mensagem para nula

Caso contrário, este é provavelmente muito difícil para qualquer outra pessoa para ajudá-lo com sem exemplos de código, as informações sobre sua rede, a situação específica onde o problema ocorre, etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top