org.jgroups.protocols.UDP - 发送失败消息为null
-
21-08-2019 - |
题
[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
这是在服务器上的负载测试期间发生。我应该担心。除了在日志中获得该消息,一切似乎工作确定。
解决方案
在响应于无光泽B中,“发送失败消息为null”的信息是令人误解。真正的问题是InterruptedIOException。这意味着,有人叫中断()对被发送的UDP线程。最有可能的,是内部的JGroups产生中断。 (除非你开始,然后停止JGroups通道。)
看堆栈跟踪,被中断的I / O是从一个搜索协议。它试图发现其他群集成员。因此,没有你的消息是从这个异常丢失。
我们必须知道更多真正弄清楚这一个。
其他提示
发送到“空”的意思发送给整个集群,与将消息发送到单个构件。我同意,这是有点误导,所以在以后的版本改变了这种:IIRC“NULL”替换为与“簇”或“基团”
。“空”这里所指的目的地:空目标地址装置发送到整个群集
。在InterruptedIOException来自发送者线程通过JGroups的停止;出现这种情况,例如当我们已经在发现阶段足够的响应返回,所以发送任务被停止(即,打断)。
此也被固定在JGroups的更高版本。 贝拉
是否有可能因为你发送消息您收到错误为“空”?
错误 - org.jgroups.protocols.UDP - 未能发送消息为空
否则,这可能是相当困难的其他任何人来帮助你有没有代码示例,您的网络上的信息,在发生你的问题的具体情况,等等。
不隶属于 StackOverflow