5
[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

这是在服务器负载测试期间发生的。我应该担心吗。除了在日志中收到该消息外,一切似乎都正常。

4

3 回答 3

3

作为对 matt b 的响应,“发送消息失败”消息具有误导性。真正的问题是 InterruptedIOException。这意味着有人在发送 UDP 的线程上调用了 interrupt()。最有可能的是,中断是在 JGroups 中生成的。(除非您启动,然后停止 JGroups 频道。)

查看堆栈跟踪,中断的 I/O 来自发现协议。它试图发现其他集群成员。因此,此异常不会丢失您的任何消息。

我们必须了解更多才能真正弄清楚这一点。

于 2009-01-22T06:20:10.740 回答
1

发送到“null”意味着发送到整个集群,而不是向单个成员发送消息。我同意,这有点误导,所以我在以后的版本中改变了这个:IIRC“null”被替换为“cluster”或“group”。

这里的“null”指的是目的地:一个空的目的地地址意味着发送到整个集群。

InterruptedIOException 来自被 JGroups 停止的发送者线程;例如,当我们在发现阶段已经有足够的响应返回时,就会发生这种情况,因此发送任务被停止(即中断)。

这在 JGroups 的更高版本中也得到了修复。贝拉

于 2011-08-13T12:50:51.860 回答
0

是否有可能因为您正在向“null”发送消息而收到错误?

错误 - org.jgroups.protocols.UDP - 将消息发送到 null 失败

否则,如果没有代码示例、网络信息、问题发生的具体情况等,其他人可能很难帮助您解决问题。

于 2008-12-16T21:29:34.983 回答