You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2006/03/17 18:07:07 UTC
svn commit: r386672 - in
/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp:
./ bio/ nio/
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: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org