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
これは、サーバーの負荷テスト中に起こっています。私はそれを心配する必要があります。別にログにそのメッセージを取得してから、すべてがOK動作するようには思えます。
解決
マットbに応答して、メッセージは誤解を招く「nullにメッセージを送信できませんでした」。真の問題は、てInterruptedIOExceptionです。これは、誰かがUDPを送ったスレッドに割り込みを()と呼ばれることを意味します。ほとんどの場合、割り込みはJGroupsの内で生成されます。 (あなたが開始し、その後のJGroupsチャネルを停止した場合を除きます。)
スタックトレースを見ると、中断されたI / Oは、ディスカバリープロトコルからでした。これは、他のクラスタメンバーを発見しようとしていました。このように、あなたの何のメッセージが、この例外から失われなかった。
私たちは本当にこの1を把握するために多くのを知っている必要があります。
他のヒント
「NULL」を送信する単一のメンバーにメッセージを送信に対して、クラスタ全体への送信を意味します。私は、これは少し誤解を招くおそれがあり、同意するので、私はそれ以降のバージョンでこれを変更:IIRC「ヌル」は、「クラスタ」または「グループ」とに置き換えられました。
。「ヌル」ここで先に参照:nullの宛先アドレスは、クラスタ全体に送る意味
。てInterruptedIOExceptionは、JGroupsのによって停止されている送信者のスレッドから来ています。これは我々がすでに返すように発見段階で十分な応答を有し、かつその送信タスクが停止しているとき、たとえば起こる(すなわち、中断)。
これは、JGroupsのそれ以降のバージョンで修正されました。 ベラ
それはあなたがメッセージを送信しているので、あなたがエラーを取得していることは可能ですが「ヌル」?
ERROR - org.jgroups.protocols.UDP -
nullにメッセージを送信できませんでした
それ以外の場合、これは他の誰が、コードサンプル、ネットワーク上の情報、あなたの問題が発生する特定の状況などなしであなたを助けるためにのためにかなり難しいと考えられます。