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/21 21:35:41 UTC
svn commit: r387616 - in
/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes:
./ tcp/ tcp/nio/ tipis/
Author: fhanik
Date: Tue Mar 21 12:35:39 2006
New Revision: 387616
URL: http://svn.apache.org/viewcvs?rev=387616&view=rev
Log:
Worked out some bugs in the map
Modified:
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelException.java
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.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
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java
Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelException.java
URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelException.java?rev=387616&r1=387615&r2=387616&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelException.java (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelException.java Tue Mar 21 12:35:39 2006
@@ -43,6 +43,21 @@
super(cause);
}
+ public String getMessage() {
+ StringBuffer buf = new StringBuffer(super.getMessage());
+ if (faultyMembers==null || faultyMembers.size() == 0 ) {
+ buf.append("; No faulty members identified.");
+ } else {
+ buf.append("; Faulty members:");
+ for ( int i=0; i<faultyMembers.size(); i++ ) {
+ Member mbr = (Member)faultyMembers.get(i);
+ buf.append(mbr.getName());
+ buf.append("; ");
+ }
+ }
+ return buf.toString();
+ }
+
public void addFaultyMember(Member mbr) {
if ( this.faultyMembers==null ) this.faultyMembers = new ArrayList();
faultyMembers.add(mbr);
Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.java
URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.java?rev=387616&r1=387615&r2=387616&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.java (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tcp/AbstractSender.java Tue Mar 21 12:35:39 2006
@@ -48,7 +48,7 @@
private Member destination;
private InetAddress address;
private int port;
- private int maxRetryAttempts = 0;//zero resends
+ private int maxRetryAttempts = 2;//zero resends
private int attempt;
public AbstractSender() {
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=387616&r1=387615&r2=387616&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 Tue Mar 21 12:35:39 2006
@@ -147,9 +147,7 @@
ackbuf.append(readbuf,read);
readbuf.clear();
if (ackbuf.doesPackageExist() ) {
- System.out.print("Reading ack:");
boolean result = Arrays.equals(ackbuf.extractDataPackage(true),org.apache.catalina.tribes.tcp.Constants.ACK_DATA);
- System.out.println(result);
return result;
} else {
return false;
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=387616&r1=387615&r2=387616&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 Tue Mar 21 12:35:39 2006
@@ -120,7 +120,7 @@
state.setSuspect();
byte[] data = sender.getMessage();
int attempt = sender.getAttempt()+1;
- if ( sender.getAttempt() >= maxAttempts && maxAttempts>0 ) {
+ if ( sender.getAttempt() <= maxAttempts && maxAttempts>0 ) {
try {
sender.disconnect();
sender.connect();
@@ -130,7 +130,7 @@
state.setFailing();
}
} else {
- ChannelException cx = new ChannelException(x);
+ ChannelException cx = new ChannelException("Send failed, attempt:"+sender.getAttempt()+" max:"+maxAttempts,x);
cx.addFaultyMember(sender.getDestination());
throw cx;
}//end if
Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=387616&r1=387615&r2=387616&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Tue Mar 21 12:35:39 2006
@@ -152,6 +152,7 @@
MapMessage msg = new MapMessage(this.mapContextName, MapMessage.MSG_STOP,
false, null, null, null, wrap(channel.getLocalMember(false)));
if (channel != null) channel.send(channel.getMembers(), msg,channel.SEND_OPTIONS_DEFAULT);
+
} catch (ChannelException x) {
log.warn("Unable to send stop message.", x);
}
@@ -225,7 +226,9 @@
}
try {
- channel.send(entry.getBackupNodes(), msg,channel.SEND_OPTIONS_DEFAULT);
+ if ( entry.getBackupNodes()!= null && entry.getBackupNodes().length > 0 ) {
+ channel.send(entry.getBackupNodes(), msg, channel.SEND_OPTIONS_DEFAULT);
+ }
} catch (ChannelException x) {
log.error("Unable to replicate data.", x);
}
@@ -401,7 +404,12 @@
}
} else {
entry.setValue(mapmsg.getValue());
+ diff.setOwner(getMapOwner());
} //end if
+ } else if (mapmsg.getValue() instanceof ReplicatedMapEntry) {
+ ReplicatedMapEntry re = (ReplicatedMapEntry)mapmsg.getValue();
+ re.setOwner(getMapOwner());
+ entry.setValue(mapmsg.getValue());
} else {
entry.setValue(mapmsg.getValue());
} //end if
@@ -420,7 +428,7 @@
public void mapMemberAdded(Member member) {
//select a backup node if we don't have one
synchronized (mapMembers) {
- mapMembers.add(member);
+ if (!mapMembers.contains(member) ) mapMembers.add(member);
}
synchronized (stateMutex) {
Iterator i = super.entrySet().iterator();
@@ -725,7 +733,7 @@
break;
}
case MSG_START:
- MSG_STOP: {
+ case MSG_STOP: {
nodes = readMembers(in);
break;
}
@@ -779,13 +787,17 @@
break;
}
case MSG_START:
- MSG_STOP: {
- writeMembers(out,nodes);
- break;
+ case MSG_STOP: {
+ writeMembers(out,nodes);
+ break;
}
} //switch
} //writeExternal
-
+
+ /**
+ * shallow clone
+ * @return Object
+ */
public Object clone() {
return new MapMessage(this.mapId, this.msgtype, this.diff, this.key, this.value, this.diffvalue, this.nodes);
}
Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java
URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java?rev=387616&r1=387615&r2=387616&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java Tue Mar 21 12:35:39 2006
@@ -158,7 +158,10 @@
msg = (MapMessage) resp[0].getMessage();
Member[] backup = entry.getBackupNodes();
-
+ if ( entry.getValue() instanceof ReplicatedMapEntry ) {
+ ReplicatedMapEntry val = (ReplicatedMapEntry)entry.getValue();
+ val.setOwner(getMapOwner());
+ }
if (entry.isBackup()) {
//select a new backup node
backup = publishEntryInfo(key, msg.getValue());
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org