Re: svn commit: r763635 - in /tomcat/trunk/java/org/apache/catalina/ha/backend: HeartbeatListener.java MultiCastSender.java Sender.java
On 09/04/2009, jfcl...@apache.org jfcl...@apache.org wrote: Author: jfclere Date: Thu Apr 9 13:00:21 2009 New Revision: 763635 URL: http://svn.apache.org/viewvc?rev=763635view=rev Log: Move the multi logic to MultiCastSender with the idea to TCP sockets and a list of proxy too. Added: tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java tomcat/trunk/java/org/apache/catalina/ha/backend/Sender.java Should have svn:eol-style=native property ... Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java?rev=763635r1=763634r2=763635view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java Thu Apr 9 13:00:21 2009 @@ -55,8 +55,6 @@ public void setPort(int port) { this.port = port; } /* for multicasting stuff */ -MulticastSocket s = null; -InetAddress group = null; String ip = 224.0.1.105; /* Multicast IP */ int multiport = 23364; /* Multicast Port */ int ttl = 16; @@ -70,23 +68,17 @@ private CollectedInfo coll = null; +private Sender sender = null; + public void containerEvent(ContainerEvent event) { } public void lifecycleEvent(LifecycleEvent event) { Object source = event.getLifecycle(); if (Lifecycle.PERIODIC_EVENT.equals(event.getType())) { -if (s == null) { -try { -group = InetAddress.getByName(ip); -s = new MulticastSocket(port); -s.setTimeToLive(16); -s.joinGroup(group); -} catch (Exception ex) { -log.error(Unable to use multicast: + ex); -s = null; -return; -} +if (sender == null) { +sender = new MultiCastSender(); +sender.init(this); } /* Read busy and ready */ @@ -108,19 +100,10 @@ } String output = new String(); output = v=1ready= + coll.ready + busy= + coll.busy; -byte[] buf; -try { -buf = output.getBytes(US-ASCII); -} catch (UnsupportedEncodingException ex) { -buf = output.getBytes(); -} -DatagramPacket data = new DatagramPacket(buf, buf.length, group, multiport); try { -s.send(data); +sender.send(output); } catch (Exception ex) { log.error(Unable to send colllected load information: + ex); -s.close(); -s = null; } } } Added: tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java?rev=763635view=auto == --- tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java (added) +++ tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java Thu Apr 9 13:00:21 2009 @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package org.apache.catalina.ha.backend; + +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; + +import java.net.MulticastSocket; +import java.net.InetAddress; +import java.net.DatagramPacket; +import java.io.UnsupportedEncodingException; + +/* + * Sender to proxies using multicast socket. + */ +public class MultiCastSender +implements Sender { + +private static Log log = LogFactory.getLog(HeartbeatListener.class);
svn commit: r763635 - in /tomcat/trunk/java/org/apache/catalina/ha/backend: HeartbeatListener.java MultiCastSender.java Sender.java
Author: jfclere Date: Thu Apr 9 13:00:21 2009 New Revision: 763635 URL: http://svn.apache.org/viewvc?rev=763635view=rev Log: Move the multi logic to MultiCastSender with the idea to TCP sockets and a list of proxy too. Added: tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java tomcat/trunk/java/org/apache/catalina/ha/backend/Sender.java Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java?rev=763635r1=763634r2=763635view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java Thu Apr 9 13:00:21 2009 @@ -55,8 +55,6 @@ public void setPort(int port) { this.port = port; } /* for multicasting stuff */ -MulticastSocket s = null; -InetAddress group = null; String ip = 224.0.1.105; /* Multicast IP */ int multiport = 23364; /* Multicast Port */ int ttl = 16; @@ -70,23 +68,17 @@ private CollectedInfo coll = null; +private Sender sender = null; + public void containerEvent(ContainerEvent event) { } public void lifecycleEvent(LifecycleEvent event) { Object source = event.getLifecycle(); if (Lifecycle.PERIODIC_EVENT.equals(event.getType())) { -if (s == null) { -try { -group = InetAddress.getByName(ip); -s = new MulticastSocket(port); -s.setTimeToLive(16); -s.joinGroup(group); -} catch (Exception ex) { -log.error(Unable to use multicast: + ex); -s = null; -return; -} +if (sender == null) { +sender = new MultiCastSender(); +sender.init(this); } /* Read busy and ready */ @@ -108,19 +100,10 @@ } String output = new String(); output = v=1ready= + coll.ready + busy= + coll.busy; -byte[] buf; -try { -buf = output.getBytes(US-ASCII); -} catch (UnsupportedEncodingException ex) { -buf = output.getBytes(); -} -DatagramPacket data = new DatagramPacket(buf, buf.length, group, multiport); try { -s.send(data); +sender.send(output); } catch (Exception ex) { log.error(Unable to send colllected load information: + ex); -s.close(); -s = null; } } } Added: tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java?rev=763635view=auto == --- tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java (added) +++ tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java Thu Apr 9 13:00:21 2009 @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package org.apache.catalina.ha.backend; + +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; + +import java.net.MulticastSocket; +import java.net.InetAddress; +import java.net.DatagramPacket; +import java.io.UnsupportedEncodingException; + +/* + * Sender to proxies using multicast socket. + */ +public class MultiCastSender +implements Sender { + +private static Log log = LogFactory.getLog(HeartbeatListener.class); + +HeartbeatListener config = null; + +/* for multicasting stuff */ +MulticastSocket s = null; +InetAddress group = null; + +public void init(HeartbeatListener config) { +this.config = config; +} + +public int send(String mess) throws Exception { +if (s == null) { +