Author: fhanik Date: Fri Mar 17 09:06:52 2006 New Revision: 386672 URL: http://svn.apache.org/viewcvs?rev=386672&view=rev Log: Removed the resend flag and added in a configurable retry attempt flag that lets you control resends more
Added: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.java - copied, changed from r386373, tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSocketSender.java Removed: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSocketSender.java Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/PooledSender.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/BioSender.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/MultipointBioSender.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/NioSender.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/ParallelNioSender.java Copied: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.java (from r386373, tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSocketSender.java) URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.java?p2=tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.java&p1=tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSocketSender.java&r1=386373&r2=386672&rev=386672&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSocketSender.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.java Fri Mar 17 09:06:52 2006 @@ -34,7 +34,7 @@ * @author not attributable * @version 1.0 */ -public abstract class AbstractSocketSender implements DataSender { +public abstract class AbstractSender implements DataSender { private boolean connected = false; private boolean waitForAck = false; @@ -50,17 +50,18 @@ private InetAddress address; private int port; private int maxRetryAttempts; - public AbstractSocketSender() { + private int attempt; + public AbstractSender() { } - public AbstractSocketSender(Member destination) throws UnknownHostException { + public AbstractSender(Member destination) throws UnknownHostException { this.destination = destination; this.address = InetAddress.getByAddress(destination.getHost()); this.port = destination.getPort(); } - public AbstractSocketSender(Member destination, int rxBufSize, int txBufSize) throws UnknownHostException { + public AbstractSender(Member destination, int rxBufSize, int txBufSize) throws UnknownHostException { this(destination); this.rxBufSize = rxBufSize; this.txBufSize = txBufSize; @@ -161,6 +162,9 @@ return this.directBuffer; } + public int getAttempt() { + return attempt; + } public void setKeepAliveCount(int keepAliveCount) { this.keepAliveCount = keepAliveCount; @@ -196,5 +200,9 @@ public void setMaxRetryAttempts(int maxRetryAttempts) { this.maxRetryAttempts = maxRetryAttempts; + } + + public void setAttempt(int attempt) { + this.attempt = attempt; } } Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/PooledSender.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/PooledSender.java?rev=386672&r1=386671&r2=386672&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/PooledSender.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/PooledSender.java Fri Mar 17 09:06:52 2006 @@ -30,7 +30,7 @@ * @author not attributable * @version 1.0 */ -public abstract class PooledSender extends AbstractSocketSender implements MultiPointSender { +public abstract class PooledSender extends AbstractSender implements MultiPointSender { private SenderQueue queue = null; private int poolSize = 25; Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/BioSender.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/BioSender.java?rev=386672&r1=386671&r2=386672&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/BioSender.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/BioSender.java Fri Mar 17 09:06:52 2006 @@ -31,7 +31,7 @@ import org.apache.catalina.tribes.tcp.DataSender; import org.apache.catalina.tribes.tcp.SenderState; import org.apache.catalina.util.StringManager; -import org.apache.catalina.tribes.tcp.AbstractSocketSender; +import org.apache.catalina.tribes.tcp.AbstractSender; /** * Send cluster messages with only one socket. Ack and keep Alive Handling is @@ -42,7 +42,7 @@ * @version $Revision: 377484 $ $Date: 2006-02-13 15:00:05 -0600 (Mon, 13 Feb 2006) $ * @since 5.5.16 */ -public class BioSender extends AbstractSocketSender implements DataSender { +public class BioSender extends AbstractSender implements DataSender { private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(BioSender.class); @@ -65,12 +65,6 @@ private Socket socket = null; private OutputStream soOut = null; private InputStream soIn = null; - - - /** - * After failure make a resend - */ - private boolean resend = false ; protected XByteBuffer ackbuf = new XByteBuffer(Constants.ACK_COMMAND.length,true); @@ -98,22 +92,6 @@ return (info); } - - - /** - * @return Returns the resend. - */ - public boolean isResend() { - return resend; - } - /** - * @param resend The resend to set. - */ - public void setResend(boolean resend) { - this.resend = resend; - } - - // --------------------------------------------------------- Public Methods /** @@ -149,22 +127,26 @@ public void sendMessage(byte[] data) throws IOException { boolean messageTransfered = false ; IOException exception = null; + setAttempt(0); try { // first try with existing connection pushMessage(data,false); messageTransfered = true ; } catch (IOException x) { + SenderState.getSenderState(getDestination()).setSuspect(); exception = x; - //resend if (log.isTraceEnabled()) log.trace(sm.getString("IDataSender.send.again", getAddress().getHostAddress(),new Integer(getPort())),x); - try { - // second try with fresh connection - pushMessage(data,true); - messageTransfered = true; - exception = null; - } catch (IOException xx) { - exception = xx; - closeSocket(); + while ( getAttempt()<getMaxRetryAttempts() ) { + try { + setAttempt(getAttempt()+1); + // second try with fresh connection + pushMessage(data, true); + messageTransfered = true; + exception = null; + } catch (IOException xx) { + exception = xx; + closeSocket(); + } } } finally { setRequestCount(getRequestCount()+1); @@ -270,6 +252,7 @@ soOut.write(data); soOut.flush(); if (getWaitForAck()) waitForAck(); + SenderState.getSenderState(getDestination()).setReady(); } Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/MultipointBioSender.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/MultipointBioSender.java?rev=386672&r1=386671&r2=386672&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/MultipointBioSender.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/bio/MultipointBioSender.java Fri Mar 17 09:06:52 2006 @@ -10,7 +10,7 @@ import org.apache.catalina.tribes.io.ClusterData; import org.apache.catalina.tribes.io.XByteBuffer; import org.apache.catalina.tribes.tcp.MultiPointSender; -import org.apache.catalina.tribes.tcp.AbstractSocketSender; +import org.apache.catalina.tribes.tcp.AbstractSender; /** * <p>Title: </p> @@ -24,7 +24,7 @@ * @author not attributable * @version 1.0 */ -public class MultipointBioSender extends AbstractSocketSender implements MultiPointSender { +public class MultipointBioSender extends AbstractSender implements MultiPointSender { public MultipointBioSender() { } Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/NioSender.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/NioSender.java?rev=386672&r1=386671&r2=386672&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/NioSender.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/NioSender.java Fri Mar 17 09:06:52 2006 @@ -29,7 +29,7 @@ import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.io.XByteBuffer; import org.apache.catalina.tribes.tcp.DataSender; -import org.apache.catalina.tribes.tcp.AbstractSocketSender; +import org.apache.catalina.tribes.tcp.AbstractSender; import java.net.UnknownHostException; /** @@ -46,7 +46,7 @@ * @author Filip Hanik * @version 1.0 */ -public class NioSender extends AbstractSocketSender implements DataSender{ +public class NioSender extends AbstractSender implements DataSender{ protected static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(NioSender.class); @@ -64,8 +64,6 @@ protected XByteBuffer ackbuf = new XByteBuffer(128,true); protected int remaining = 0; protected boolean complete; - protected int attempt; - public NioSender(Member destination) throws UnknownHostException { super(destination); @@ -237,7 +235,7 @@ ackbuf.clear(); remaining = 0; complete = false; - attempt = 0; + setAttempt(0); setRequestCount(0); setConnectTime(-1); } @@ -275,10 +273,6 @@ return complete; } - public int getAttempt() { - return attempt; - } - public Selector getSelector() { return selector; } @@ -291,10 +285,4 @@ public void setComplete(boolean complete) { this.complete = complete; } - - public void setAttempt(int attempt) { - this.attempt = attempt; - } - - } Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/ParallelNioSender.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/ParallelNioSender.java?rev=386672&r1=386671&r2=386672&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/ParallelNioSender.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/nio/ParallelNioSender.java Fri Mar 17 09:06:52 2006 @@ -30,7 +30,7 @@ import org.apache.catalina.tribes.io.XByteBuffer; import org.apache.catalina.tribes.tcp.MultiPointSender; import org.apache.catalina.tribes.tcp.SenderState; -import org.apache.catalina.tribes.tcp.AbstractSocketSender; +import org.apache.catalina.tribes.tcp.AbstractSender; import java.net.UnknownHostException; /** @@ -45,7 +45,7 @@ * @author not attributable * @version 1.0 */ -public class ParallelNioSender extends AbstractSocketSender implements MultiPointSender { +public class ParallelNioSender extends AbstractSender implements MultiPointSender { protected static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(ParallelNioSender.class); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]