سؤال

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

هل كانت مفيدة؟

المحلول

في استجابة لمات ب، و "فشل إرسال رسالة فارغة" رسالة مضللة. المشكلة الحقيقية هي InterruptedIOException. وهذا يعني أن شخصا ما يسمى المقاطعة () على الموضوع الذي تم إرسال UDP. على الأرجح، يتم إنشاء المقاطعة داخل JGroups. (إلا إذا كنت بدأت، ومن ثم توقفت القناة JGroups).

وإذا نظرنا إلى تتبع المكدس، كان قاطعته / O من بروتوكول ديسكفري. انها محاولة لاكتشاف أعضاء الكتلة الأخرى. وهكذا، فقد أية رسالة لك من هذا الاستثناء.

ونحن يجب أن نعرف أكثر لمعرفة الحقيقة هذا واحد.

نصائح أخرى

إرسال إلى "لاغية" يعني إرسالها إلى المجموعة بأكملها، مقابل إرسال رسالة إلى عضو واحد. وأنا أتفق، وهذا هو مضلل بعض الشيء، لذلك غيرت هذا في إصدار لاحق: تم استبدال IIRC "لاغية" لمع "المجموعة" أو "مجموعة"

.

و"لاغية" هنا يشار إلى الوجهة: عنوان وجهة باطل يعني إرسالها إلى المجموعة بأكملها

.

ووInterruptedIOException يأتي من موضوع مرسل يتم ايقافهم من قبل JGroups. هذا يحدث على سبيل المثال عندما تكون لدينا بالفعل ردود كافية في مرحلة الاكتشاف إلى العودة، وهكذا يتم إيقاف مهمة الإرسال (أي، توقف).

وهذا هو الثابت أيضا في الإصدارات الأحدث من JGroups. بيلا

هل من الممكن انك تحصل على خطأ لأن تقوم بإرسال رسالة إلى "لاغية"؟

<اقتباس فقرة>   

وخطأ - org.jgroups.protocols.UDP - فشل إرسال رسالة فارغة

وإلا ربما هذا هو من الصعب جدا على أي شخص آخر لمساعدتك على الخروج مع نماذج التعليمات البرمجية دون والمعلومات على الشبكة، الحالة الخاصة حيث تحدث المشكلة، وما إلى ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top