[
https://jira.jboss.org/jira/browse/JBREM-1099?page=com.atlassian.jira.plu...
]
Ron Sigal commented on JBREM-1099:
----------------------------------
Created buffersize attribute in org.jboss.remoting.detection.multicast.MulticastDetector
and org.jboss.remoting.detection.multicast.MulticastDetectorMBean on 2.2 and 2.x branches.
Defaults to 10000.
Tested 2.2 branch with AS from branch JBPAPP_4_3_0_GA_CP03 and tested 2.x branch with AS
5.0.0.GA.
For AS 4.3, added
<mbean code="org.jboss.remoting.detection.multicast.MulticastDetector"
name="jboss.remoting:service=Detector,transport=multicast">
<attribute name="Configuration">
<domains>
</domains>
<local/>
</attribute>
<attribute name="BufferSize">20000</attribute>
</mbean>
to $JBOSS_HOME/server/default/conf/jboss-service.xml, and for AS 5 added the same to
$JBOSS_HOME/server/default/deploy/remoting-service.xml.
Note that MulticastDetector expects an XML document in the "Configuration"
attribute.
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.SP11
Reporter: Galder ZamarreƱo
Assignee: Ron Sigal
Fix For: 2.5.0.SP3 (Flounder), 2.2.2.SP12
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