Dans Tomcat 5.0.x, vous pouviez définir useDirtyFlag = "false" sur pour forcer la réplication de la session après chaque requête plutôt que de rechercher les appels set/removeAttribute.Existe-t-il une option useDirtyFlag pour la configuration du cluster Tomcat 6?
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.SimpleTcpReplicationManager"
expireSessionsOnShutdown="false"
**useDirtyFlag="false"**
doClusterLog="true"
clusterLogName="clusterLog"> ...
Les commentaires dans le server.xml a déclaré ceci peut être utilisé pour faire les travaux suivants:
<%
HashMap map = (HashMap)session.getAttribute("map");
map.put("key","value");
%>
-à-dire changer l'état d'un objet qui a déjà été mis à la session et vous pouvez être sûr que cet objet est toujours répliqué sur les autres nœuds du cluster.
Selon la documentation de Tomcat 6, vous n'avez que deux options "Manager" - DeltaManager & BackupManager ... aucun de ces éléments ne semble autoriser cette option. Dans mon test de la configuration par défaut:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
où vous obtenez le DeltaManager par défaut, il se comporte certainement comme useDirtyFlag = « true » (comme je pense).
Donc, ma question est: y a-t-il un équivalent dans Tomcat 6?
En regardant la source, je peux voir une implémentation de gestionnaire "org.apache.catalina.ha.session.SimpleTcpReplicationManager" qui a le useDirtyFlag mais les commentaires de javadoc dans cet état c'est "Tomcat Session Replication for Tomcat 4.0". Je ne sais pas si c'est bon à utiliser - je ne pense pas que ce n'est pas mentionné dans la documentation de la configuration du cluster principal.
Le ([comment à la page] http://tomcat.apache.org/tomcat-6.0-doc/cluster- howto.html) dit "Pour chaque requête, toute la session est répliquée, cela permet au code qui modifie les attributs de la session sans appeler setAttribute ou removeAttribute d'être répliqué". Cela ne fonctionne-t-il pas ou ai-je mal compris la question/réponse? –
Il semble que ce commentaire ait été ajouté après que j'ai posté cette question ... il dit aussi "un paramètre de configuration useDirtyFlag peut être utilisé pour optimiser le nombre de fois qu'une session est répliquée". Cela implique qu'il existe un 'useDirtyFlag' désactivé/false par défaut. Je ne vois aucune référence (dans les docs ou le code) pour confirmer ceci - mes propres tests (l'année dernière) n'ont pas eu ce comportement. – kevinjansz
Cela ressemble à une erreur dans la documentation Tomcat. – fglez