2014-01-19 3 views
0

Я настроил Tomcat 6 с репликацией сеанса в памяти. Я также использую IIS 7 (знаю, я знаю) и AJP-коннектор через isapi_redirector. Кластер работает правильно, и я могу реплицировать атрибуты сеанса, используя SessionExample в войне примеров. Проблема в том, что я не могу сделать то же самое в своем настраиваемом приложении. Я добавил дистрибутивный тег в файл web.xml на обоих серверах в своем тестовом кластере. Однако я не вижу сообщений в журналах, в которых упоминаются атрибуты, отправляемые в кластер (я вижу их для SessionExample). Единственные основные отличия, которые я могу видеть в своем приложении из примеров:Проблема с атрибутами сеанса, которые реплицируются в Tomcat 6

  1. В примерах войны используется сервлет 2.5. Я все еще должен использовать 2.4.
  2. Мое приложение использует SSO и требует от пользователя входа в систему.
  3. Приложение - приложение для портала.

Кроме того, в коде приложения я устанавливаю простую строку в атрибуте, так что ничего фантастического.

Итак, мне было интересно, есть ли у кого-нибудь советы, чтобы это работало?

Благодаря

Вот раздел кластера в моей server.xml:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" 
    channelSendOptions="6"> 
    <Manager className="org.apache.catalina.ha.session.DeltaManager" 
      expireSessionsOnShutdown="false" 
      notifyListenersOnReplication="true"/> 
    <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 
     <Membership className="org.apache.catalina.tribes.membership.McastService" 
      address="228.0.0.104" 
      port="45564" 
      frequency="500" 
      dropTime="10000"/> 
     <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 
      address="auto" 
      port="4000" 
      autoBind="100" 
      selectorTimeout="7000" 
      maxThreads="6" 
      timeout="15000"/> 
     <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
      <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" 
       timeout="70000"/> 
     </Sender> 
     <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
     <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 
    </Channel> 
    <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" 
     filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> 
    <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> 
    <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" 
     tempDir="/apache-tomcat-6.0.37/war-deploy/war-temp/" 
     deployDir="/apache-tomcat-6.0.37/webapps/" 
     watchDir="/apache-tomcat-6.0.37/war-deploy/war-listen/" 
     watchEnabled="true"/> 
    <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> 
    <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 
</Cluster> 

ответ

0

К сожалению. Я нашел проблему. Я ожидал увидеть сообщения в журнале относительно создания атрибутов сеанса. Я не понимал, что в проекте примеров был прослушиватель сеансов, который выводил сообщения в журнал. Я думал, что это просто из уровня журнала, который я установил.

Спасибо всем, кто прочитал это сообщение.

Смежные вопросы