[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
这是在服务器上进行负载测试期间发生的。我应该担心吗?除了在日志中获取该消息之外,一切似乎都正常。
答案 0 :(得分:3)
作为对matt b的回应,“将消息发送到null失败”消息具有误导性。真正的问题是InterruptedIOException。这意味着有人在正在发送UDP的线程上调用了interrupt()。最有可能的是,中断是在JGroups中生成的。 (除非你开始,然后停止了JGroups频道。)
查看堆栈跟踪,中断的I / O来自Discovery协议。它试图发现其他集群成员。因此,此异常中没有丢失您的消息。
我们必须知道更多才能真正理解这一点。
答案 1 :(得分:1)
发送到“null”表示发送到整个群集,而不是向单个成员发送消息。我同意,这有点误导,所以我在以后的版本中更改了这个:IIRC“null”被替换为“cluster”或“group”。
“null”这里指的是目的地:空目的地地址意味着发送到整个集群。
InterruptedIOException来自JGroups停止的发送方线程;例如,当我们在发现阶段已经有足够的响应返回时,就会发生这种情况,因此停止发送任务(即中断)。
这也在JGroups的更高版本中得到修复。 贝拉
答案 2 :(得分:0)
您是否可能因为正在向“null”发送消息而收到错误?
错误 - org.jgroups.protocols.UDP - 将邮件发送到空
失败
否则,如果没有代码示例,网络信息,问题发生的具体情况等,其他人可能很难帮您解决。