Author: fhanik
Date: Thu Aug 9 12:52:08 2007
New Revision: 564358
URL: http://svn.apache.org/viewvc?view=rev&rev=564358
Log:
make the backup node become the primary so that we can still expire sessions
http://issues.apache.org/bugzilla/show_bug.cgi?id=43053
Modified:
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
Modified:
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?view=diff&rev=564358&r1=564357&r2=564358
==============================================================================
---
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
(original)
+++
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
Thu Aug 9 12:52:08 2007
@@ -719,13 +719,26 @@
} else if (member.equals(entry.getPrimary())) {
entry.setPrimary(null);
} //end if
- if ( entry.getPrimary() == null &&
+
+ if ( entry.isProxy() &&
+ entry.getPrimary() == null &&
entry.getBackupNodes()!=null &&
entry.getBackupNodes().length == 1 &&
entry.getBackupNodes()[0].equals(member) ) {
//remove proxies that have no backup nor primaries
i.remove();
+ } else if ( entry.isBackup() &&
+ entry.getBackupNodes()!=null &&
+ entry.getBackupNodes().length == 1 &&
+
entry.getBackupNodes()[0].equals(channel.getLocalMember(false)) ) {
+ try {
+ Member[] backup = publishEntryInfo(entry.getKey(),
entry.getValue());
+ entry.setBackupNodes(backup);
+ } catch (ChannelException x) {
+ log.error("Unable to relocate[" + entry.getKey() + "] to a
new backup node", x);
+ }
}
+
} //while
}
@@ -979,7 +992,6 @@
Object key = e.getKey();
MapEntry entry = (MapEntry)super.get(key);
if ( entry != null && entry.isPrimary() )
set.add(entry.getValue());
- else if ( entry != null && entry.getPrimary() == null &&
entry.isBackup() ) set.add(entry.getValue());
}
return Collections.unmodifiableSet(set);
}
@@ -994,7 +1006,6 @@
Object key = e.getKey();
MapEntry entry = (MapEntry)super.get(key);
if ( entry!=null && entry.isPrimary() ) set.add(key);
- else if ( entry != null && entry.getPrimary() == null &&
entry.isBackup() ) set.add(key);
}
return Collections.unmodifiableSet(set);
@@ -1011,7 +1022,6 @@
if ( e != null ) {
MapEntry entry = (MapEntry) super.get(e.getKey());
if (entry!=null && entry.isPrimary() && entry.getValue()
!= null) counter++;
- else if ( entry != null && entry.getPrimary() == null &&
entry.isBackup() ) counter++;
}
}
return counter;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]