В Tomcat 5.0.x у вас была возможность установить useDirtyFlag = "false" на принудительное повторение сеанса после каждого запроса вместо проверки на вызовы set/removeAttribute.Есть ли опция useDirtyFlag для конфигурации кластера 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"> ...
Комментарии в server.xml заявил, что может быть использовано, чтобы сделать следующую работу:
<%
HashMap map = (HashMap)session.getAttribute("map");
map.put("key","value");
%>
т.е. изменить состояние объекта, который уже положили в сессии и вы можете быть уверены, что этот объект все еще реплицируется на другие узлы кластера.
В соответствии с документацией Tomcat 6 у вас есть только две опции «Менеджер» - DeltaManager & BackupManager ... ни один из них не позволяет эту опцию или что-то в этом роде. В ходе тестирования настройки по умолчанию:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
, где вы получите DeltaManager по умолчанию, это, безусловно, ведет себя, как useDirtyFlag = «истина» (как я ожидал).
Так что мой вопрос - есть ли эквивалент в Tomcat 6?
Глядя на источник, я вижу реализацию менеджера «org.apache.catalina.ha.session.SimpleTcpReplicationManager», который имеет использование DirtyFlag, но комментарии javadoc в этом состоянии это «репликация сеанса Tomcat для Tomcat 4.0». Я не знаю, нормально ли это использовать - я не думаю, что это не упоминается в документации по конфигурации основного кластера.
[как к странице] (http://tomcat.apache.org/tomcat-6.0-doc/cluster- howto.html) говорит: «Для каждого запроса весь сеанс реплицируется, это позволяет использовать код, который изменяет атрибуты в сеансе без вызова setAttribute или removeAttribute для репликации». Разве это не работает или я не понял вопрос/ответ? –
Кажется, что этот комментарий был добавлен после того, как я разместил этот вопрос ... он также говорит: «параметр конфигурации useDirtyFlag может использоваться для оптимизации количества раз, когда реплицируется сеанс». Это означает, что по умолчанию используется параметр 'useDirtyFlag', который отключен/false. Я не вижу никакой ссылки (в документах или коде), чтобы подтвердить это, хотя мое собственное тестирование (в прошлом году) не получило такого поведения. – kevinjansz
Это похоже на ошибку в документации Tomcat. – fglez