我目前正在设置一个tomcat 6集群环境,liferay 6.0.6.4个会话复制节点.没有粘性会话.
因此,按照本网站提供的指南,我做了以下工作:
添加了webapps/conf/context.xml:添加了webapps/ROOT/WEB-INF/web.xml:在第一个括号后面的文件顶部.我还将distributable添加到我的所有自定义portlet web.xml中.在setenv.sh中:-Djava.net.preferIPv6Addresses = false -Djava.net.preferIPv4Stack = true
在webapps/conf/server.xml中
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcatA" />
Run Code Online (Sandbox Code Playgroud)
tomcatA/B/C/D跨越节点.
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<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.10" port="45564" frequency="500" dropTime="3000" />
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto" port="4000" autoBind="100" selectorTimeout="5000"
maxThreads="6" />
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" timeout="30000" />
</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;.*\.css;.*\.txt;" />
<ClusterListener
className="org.apache.catalina.ha.session.ClusterSessionListener" />
</Cluster>
Run Code Online (Sandbox Code Playgroud)
在启动时,每个节点都会相互检测到并且似乎有效.但是,当有人试图修改webcontent时,我们会收到错误:
SEVERE: Manager [localhost#/]: Unable to receive message through TCP channel
java.lang.IllegalStateException: setAttribute: Session already …Run Code Online (Sandbox Code Playgroud)