Sorry. This rev is just remove defaultMode and add maxActiveSessions. domainReplication was not related. I send another proposal mail.
-- Keiichi.Fujino Fujino <kfuj...@apache.org>: > Hi. > > SimpleTcpCluster#sendClusterDomain called when domainReplication is > true is as follows now. > > ===SimpleTcpCluster#sendClusterDomain=== > public void sendClusterDomain(ClusterMessage msg) { > send(msg,null); > } > === === > the msg is transmitted to all cluster members. > domainReplication does not work correctly. > > Tomcat7 and Tomcat6 have > org.apache.catalina.tribes.group.interceptors.DomainFilterInterceptor. > If DomainFilterInterceptor is used, session can be sent only to the > same domain. > Is DomainFilterInterceptor used instead of domainReplication? > > -- > Keiichi.Fujino > > 45:32 2010 >> New Revision: 980378 >> >> URL: http://svn.apache.org/viewvc?rev=980378&view=rev >> Log: >> Remove deprecated defaultMode attribute >> Clarify current behaviour of maxActiveSessions >> Clean-up cluster-manager docs >> >> Modified: >> tomcat/trunk/java/org/apache/catalina/ha/ClusterManager.java >> tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java >> tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java >> tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java >> tomcat/trunk/webapps/docs/config/cluster-manager.xml >> >> Modified: tomcat/trunk/java/org/apache/catalina/ha/ClusterManager.java >> URL: >> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/ClusterManager.java?rev=980378&r1=980377&r2=980378&view=diff >> ============================================================================== >> --- tomcat/trunk/java/org/apache/catalina/ha/ClusterManager.java (original) >> +++ tomcat/trunk/java/org/apache/catalina/ha/ClusterManager.java Thu Jul 29 >> 09:45:32 2010 >> @@ -91,17 +91,6 @@ public interface ClusterManager extends >> */ >> public void setDomainReplication(boolean domainReplication); >> >> - /** >> - * @param mode The mode >> - * @since 5.5.10 >> - */ >> - public void setDefaultMode(boolean mode); >> - >> - /** >> - * @since 5.5.10 >> - */ >> - public boolean isDefaultMode(); >> - >> public ReplicationStream getReplicationStream(byte[] data) throws >> IOException; >> >> public ReplicationStream getReplicationStream(byte[] data, int offset, >> int length) throws IOException; >> >> Modified: tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java >> URL: >> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java?rev=980378&r1=980377&r2=980378&view=diff >> ============================================================================== >> --- tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java >> (original) >> +++ tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java Thu >> Jul 29 09:45:32 2010 >> @@ -94,18 +94,6 @@ public class BackupManager extends Stand >> public void setDomainReplication(boolean sendClusterDomainOnly) { >> } >> >> - /** >> - * @return Returns the defaultMode. >> - */ >> - public boolean isDefaultMode() { >> - return false; >> - } >> - /** >> - * @param defaultMode The defaultMode to set. >> - */ >> - public void setDefaultMode(boolean defaultMode) { >> - } >> - >> public void setExpireSessionsOnShutdown(boolean expireSessionsOnShutdown) >> { >> mExpireSessionsOnShutdown = expireSessionsOnShutdown; >> >> Modified: tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java >> URL: >> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java?rev=980378&r1=980377&r2=980378&view=diff >> ============================================================================== >> --- tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java >> (original) >> +++ tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java Thu >> Jul 29 09:45:32 2010 >> @@ -88,7 +88,6 @@ public class DeltaManager extends Cluste >> */ >> protected static String managerName = "DeltaManager"; >> protected String name = null; >> - protected boolean defaultMode = false; >> private CatalinaCluster cluster = null; >> >> /** >> @@ -474,20 +473,7 @@ public class DeltaManager extends Cluste >> } >> >> >> - /** >> - * @return Returns the defaultMode. >> - */ >> - public boolean isDefaultMode() { >> - return defaultMode; >> - } >> - /** >> - * @param defaultMode The defaultMode to set. >> - */ >> - public void setDefaultMode(boolean defaultMode) { >> - this.defaultMode = defaultMode; >> - } >> - >> - public CatalinaCluster getCluster() { >> + public CatalinaCluster getCluster() { >> return cluster; >> } >> >> >> Modified: tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java >> URL: >> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java?rev=980378&r1=980377&r2=980378&view=diff >> ============================================================================== >> --- tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java >> (original) >> +++ tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java Thu >> Jul 29 09:45:32 2010 >> @@ -529,7 +529,6 @@ public class SimpleTcpCluster extends Li >> String clusterName = getManagerName(cmanager.getName(), manager); >> cmanager.setName(clusterName); >> cmanager.setCluster(this); >> - cmanager.setDefaultMode(false); >> >> managers.put(clusterName, cmanager); >> // Notify our interested LifecycleListeners >> >> Modified: tomcat/trunk/webapps/docs/config/cluster-manager.xml >> URL: >> http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/cluster-manager.xml?rev=980378&r1=980377&r2=980378&view=diff >> ============================================================================== >> --- tomcat/trunk/webapps/docs/config/cluster-manager.xml (original) >> +++ tomcat/trunk/webapps/docs/config/cluster-manager.xml Thu Jul 29 09:45:32 >> 2010 >> @@ -34,89 +34,102 @@ >> </section> >> >> <section name="Introduction"> >> - <p> >> - A cluster manager is an extension to Tomcat's session manager interface, >> - <code>org.apache.catalina.Manager</code> >> - A cluster manager must implement the >> <code>org.apache.catalina.ha.ClusterManager</code> and is solely >> - responsible for how the session is replicated.<br/> >> - There are currently two different managers, the >> <code>org.apache.catalina.ha.session.DeltaManager</code> replicates deltas >> - of session data to all members in the cluster. This implementation is >> proven and works very well, but has a limitation >> - as it requires the cluster members to be homogeneous, all nodes must >> deploy the same applications and be exact replicas. >> - The <code>org.apache.catalina.ha.session.BackupManager</code> also >> replicates deltas but only to one backup node. >> - The location of the backup node is known to all nodes in the cluster. It >> also supports heterogeneous deployments, >> - so the manager knows at what locations the webapp is deployed.<br/> >> - We are planning to add more managers with even more sophisticated backup >> mechanism to support even larger clusters. >> - Check back soon! >> - </p> >> + <p>A cluster manager is an extension to Tomcat's session manager >> interface, >> + <code>org.apache.catalina.Manager</code>. >> + A cluster manager must implement the >> + <code>org.apache.catalina.ha.ClusterManager</code> and is solely >> responsible >> + for how the session is replicated.<br/> >> + There are currently two different managers, the >> + <code>org.apache.catalina.ha.session.DeltaManager</code> replicates >> deltas of >> + session data to all members in the cluster. This implementation is proven >> and >> + works very well, but has a limitation as it requires the cluster members >> to be >> + homogeneous, all nodes must deploy the same applications and be exact >> + replicas. The <code>org.apache.catalina.ha.session.BackupManager</code> >> also >> + replicates deltas but only to one backup node. The location of the backup >> node >> + is known to all nodes in the cluster. It also supports heterogeneous >> + deployments, so the manager knows at what locations the web application is >> + deployed.</p> >> </section> >> >> <section name="The <Manager>"> >> - <p> >> - The <code><Manager></code> element defined inside the >> <code><Cluster></code> element >> - is the template defined for all web applications that are marked >> <code><distributable/></code> >> - in their <code>web.xml</code> file. >> - However, you can still override the manager implementation on a per web >> application basis, >> - by putting the <code><Manager></code> inside the >> <code><Context></code> element either in the >> - <code><a href="context.html">context.xml</a></code> file or the <code><a >> href="index.html">server.xml</a></code> file. >> - </p> >> + <p>The <code><Manager></code> element defined inside the >> + <code><Cluster></code> element is the template defined for all web >> + applications that are marked <code><distributable/></code> in their >> + <code>web.xml</code> file. However, you can still override the manager >> + implementation on a per web application basis, by putting the >> + <code><Manager></code> inside the <code><Context></code> >> element >> + either in the <code><a href="context.html">context.xml</a></code> file or >> the >> + <code><a href="index.html">server.xml</a></code> file.</p> >> </section> >> >> <section name="Attributes"> >> <subsection name="Common Attributes"> >> <attributes> >> - <attribute name="className" required="true"> >> - </attribute> >> - <attribute name="name" required="false"> >> - <b>The name of this cluster manager, the name is used to identify a >> session manager on a node. >> - The name might get modified by the <code>Cluster</code> element to >> make it unique in the container.</b> >> - </attribute> >> - <attribute name="defaultMode" required="false"> >> - <b>Deprecated since 6.0.0</b> >> - </attribute> >> - <attribute name="notifyListenersOnReplication" required="false"> >> - Set to <code>true</code> if you wish to have session listeners >> notified when >> - session attributes are being replicated or removed across Tomcat >> nodes in the cluster. >> - </attribute> >> - <attribute name="expireSessionsOnShutdown" required="false"> >> - When a webapplication is being shutdown, Tomcat issues an expire >> call to each session to >> - notify all the listeners. If you wish for all sessions to expire on >> all nodes when >> - a shutdown occurs on one node, set this value to <code>true</code>. >> - Default value is <code>false</code>. >> - </attribute> >> - >> + <attribute name="className" required="true"> >> + </attribute> >> + <attribute name="name" required="false"> >> + <b>The name of this cluster manager, the name is used to identify a >> + session manager on a node. The name might get modified by the >> + <code>Cluster</code> element to make it unique in the container.</b> >> + </attribute> >> + <attribute name="notifyListenersOnReplication" required="false"> >> + Set to <code>true</code> if you wish to have session listeners >> notified >> + when session attributes are being replicated or removed across >> Tomcat >> + nodes in the cluster. >> + </attribute> >> + <attribute name="expireSessionsOnShutdown" required="false"> >> + When a web application is being shutdown, Tomcat issues an expire >> call >> + to each session to notify all the listeners. If you wish for all >> + sessions to expire on all nodes when a shutdown occurs on one node, >> set >> + this value to <code>true</code>. Default value is >> <code>false</code>. >> + </attribute> >> </attributes> >> </subsection> >> <subsection name="org.apache.catalina.ha.session.DeltaManager Attributes"> >> <attributes> >> - <attribute name="domainReplication" required="false"> >> - Set to true if you wish sessions to be replicated only to members >> that have the same logical >> - domain set. If set to false, session replication will ignore the >> domain setting the >> - <code><a href="cluster-membership.html"><Membership></a></code> >> - element. >> - </attribute> >> - <attribute name="expireSessionsOnShutdown" required="false"> >> - When a webapplication is being shutdown, Tomcat issues an expire >> call to each session to >> - notify all the listeners. If you wish for all sessions to expire on >> all nodes when >> - a shutdown occurs on one node, set this value to <code>true</code>. >> - Default value is <code>false</code>. >> - </attribute> >> - <attribute name="stateTransferTimeout" required="false"> >> - The time in seconds to wait for a session state transfer to complete >> from another node >> - when a node is starting up. >> - Default value is <code>60</code> seconds. >> - </attribute> >> + <attribute name="domainReplication" required="false"> >> + Set to true if you wish sessions to be replicated only to members >> that >> + have the same logical domain set. If set to false, session >> replication >> + will ignore the domain setting the >> + <code><a >> href="cluster-membership.html"><Membership></a></code> >> + element. >> + </attribute> >> + <attribute name="expireSessionsOnShutdown" required="false"> >> + When a web application is being shutdown, Tomcat issues an expire >> call >> + to each session to notify all the listeners. If you wish for all >> + sessions to expire on all nodes when a shutdown occurs on one node, >> set >> + this value to <code>true</code>. >> + Default value is <code>false</code>. >> + </attribute> >> + <attribute name="maxActiveSessions" required="false"> >> + The maximum number of active sessions that will be created by this >> + Manager, or -1 (the default) for no limit. For this manager, all >> + sessions are counted as active sessions irrespective if whether or >> not >> + the current node is the primary node for the session. >> + </attribute> >> + <attribute name="stateTransferTimeout" required="false"> >> + The time in seconds to wait for a session state transfer to complete >> + from another node when a node is starting up. >> + Default value is <code>60</code> seconds. >> + </attribute> >> </attributes> >> </subsection> >> <subsection name="org.apache.catalina.ha.session.BackupManager Attributes"> >> <attributes> >> - <attribute name="mapSendOptions" required="false"> >> - The backup manager uses a replicated map, this map is sending and >> - receiving messages. You can setup the flag for how this map is >> sending >> - messages, the default value is <code>6</code>(synchronous).<br/> >> - Note that if you use asynchronous messaging it is possible for update >> - messages for a session to be processed by the receiving node in a >> - different order to the order in which they were sent. >> - </attribute> >> + <attribute name="mapSendOptions" required="false"> >> + The backup manager uses a replicated map, this map is sending and >> + receiving messages. You can setup the flag for how this map is >> sending >> + messages, the default value is <code>6</code>(synchronous).<br/> >> + Note that if you use asynchronous messaging it is possible for >> update >> + messages for a session to be processed by the receiving node in a >> + different order to the order in which they were sent. >> + </attribute> >> + <attribute name="maxActiveSessions" required="false"> >> + The maximum number of active sessions that will be created by this >> + Manager, or -1 (the default) for no limit. For this manager, only >> + sessions where the current node is the primary node for the session >> are >> + considered active sessions. >> + </attribute> >> </attributes> >> </subsection> >> </section> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: dev-h...@tomcat.apache.org >> >> > > > > -- > Keiichi.Fujino > -- Keiichi.Fujino --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org