[jboss-remoting-issues] [JBoss JIRA] Created: (JBREM-1099) Make MulticastDetector detection message send buffer size configurable

Galder Zamarreno (JIRA) jira-events at lists.jboss.org
Thu Feb 12 10:07:45 EST 2009


Make MulticastDetector detection message send buffer size configurable
----------------------------------------------------------------------

                 Key: JBREM-1099
                 URL: https://jira.jboss.org/jira/browse/JBREM-1099
             Project: JBoss Remoting
          Issue Type: Bug
      Security Level: Public (Everyone can see)
    Affects Versions: 2.5.0.SP2 (Flounder) , 2.2.2.SP12
            Reporter: Galder Zamarreno


The multicast detector does not work properly in environments where plenty Remoting invokers are 
used, such as the case of EAP 4.3 where you have invokers for EJB3, EJB2, JMS...etc.

What happens is that org.jboss.remoting.detection.AbstractDetector.createDetection(), it creates a 
detection message based on the server invokers registered locally. As there's one more invoker in 
EAP 4.3.x, the message size exceeds the 4000 limit.

This leads to errors like:

2009-02-12 15:19:26,846 DEBUG [org.jboss.remoting.detection.multicast.MulticastDetector] heartbeat failed
java.io.IOException: Message too long
	at java.net.PlainDatagramSocketImpl.send(Native Method)
	at java.net.DatagramSocket.send(DatagramSocket.java:612)
	at org.jboss.remoting.detection.multicast.MulticastDetector.heartbeat(MulticastDetector.java:226)
	at org.jboss.remoting.detection.AbstractDetector$Heartbeat.run(AbstractDetector.java:716)
	at java.util.TimerThread.mainLoop(Timer.java:512)
	at java.util.TimerThread.run(Timer.java:462)

The size of the buffer where the Detection message is sent comes from:

   private final class Listener extends Thread
   {
      boolean running = true;

      public Listener(String name)
      {
         super(name);
      }

      public void run()
      {
         byte[] buf = new byte[4000];
         DatagramPacket p = new DatagramPacket(buf, 0, buf.length);
         //p.setAddress(addr);
         //p.setPort(port);
         while(running)
         {
            listen(p, buf);
         }
      }
   }

The size of the buffer needs to be made configurable.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-remoting-issues mailing list