在Tomcat 6中复制会话属性的麻烦

时间:2014-01-19 05:05:55

标签: session tomcat session-replication

我已使用内存中会话复制配置Tomcat 6。我也使用IIS 7(我知道,我知道)和通过isapi_redirector的AJP连接器。群集工作正常,我可以使用示例war中的SessionExample复制会话属性。问题是我无法在自定义应用程序中执行相同操作。我已将distributable标记添加到测试集群中两台服务器上的web.xml文件中。但是,我没有在日志中看到任何提及发送到集群的属性的消息(我在SessionExample中看到它们)。我在应用程序中可以从示例中看到的唯一主要区别:

  1. 示例war使用servlet 2.5。我仍然需要使用2.4。
  2. 我的应用程序使用SSO并要求用户登录。
  3. 该应用程序是门户网站应用程序。
  4. 另外,在应用程序的代码中,我在属性中设置了一个简单的字符串,所以没什么特别的。

    所以,我想知道是否有人有一些提示让这个工作?

    由于

    以下是我的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>
    

1 个答案:

答案 0 :(得分:0)

对不起。我发现了这个问题。我希望在日志中看到有关创建会话属性的消息。我没有意识到示例项目有一个会话监听器正在将消息输出到日志中。我以为它只是来自我设置的日志级别。

感谢读过这篇文章的任何人。