posts - 11,  comments - 18,  trackbacks - 0
          今天研究了下TOMCAT集群,遇到問題,望解答!  
          環境是一樣的2臺機器(下面用tomcat1,tomcat2來表示這兩臺機器)  
          按照官方網站的文檔配置,2個服務器都能正常起來。而且都監聽到了對方的存在,下面是輸出信息:  
          信息:       Verification       complete.       Member       disappeared[org.apache.catalina.tribes.membership.MemberImpl[tcp://WDGJ-14:4001,WDGJ-14,4001,       alive=1608998,id={101       20       -85       1       -96       113       79       34       -116       24       -43       -93       27       -49       -87       44       },       payload={},       command={},       domain={},       ]]  
          web.xml的 <distributable/> 已經配置了

          使用同一個IE窗口訪問2個服務得到的SESSION       ID不同,在tomcat1保存一個session       attribute,在tomcat2上沒有,得到結果,配置失敗。SESSION沒有被復制到另一個服務。望高手幫幫忙!  
          我沒有做負載均衡,只做了集群。
          以下是tomcat官網上的原話,不知道是不是我沒理解明白,誰能再給說明下:
          1.All   your   session   attributes   must   implement   java.io.Serializable  
          2.Uncomment   the   Cluster   element   in   server.xml  
          If   you   have   defined   custom   cluster   valves,   make   sure   you   have   the   ReplicationValve   defined   as   well   under   the   Cluster   element   in   server.xml  
          3.If   your   Tomcat   instances   are   running   on   the   same   machine,   make   sure   the   tcpListenPort   attribute   is   unique   for   each   instance,   in   most   cases   Tomcat   is   smart   enough   to   resolve   this   on   it 's   own   by   autodetecting   available   ports   in   the   range   4000-4100  
          4.Make   sure   your   web.xml   has   the   <distributable/>   element   or   set   at   your   <Context   distributable= "true "   />  
          5.If   you   are   using   mod_jk,   make   sure   that   jvmRoute   attribute   is   set   at   your   Engine   <Engine   name= "Catalina "   jvmRoute= "node01 "   >   and   that   the   jvmRoute   attribute   value   matches   your   worker   name   in   workers.properties  
          6.Make   sure   that   all   nodes   have   the   same   time   and   sync   with   NTP   service!  
          7.Make   sure   that   your   loadbalancer   is   configured   for   sticky   session   mode.  

          兩個TOMCAT的server.xml唯一不同的地方就是Receiver的監聽端口,一個是4000一個是4001  
          server.xml文件如下:  
          <Server       port=   "8005   "       shutdown=   "SHUTDOWN   ">  
                  <Listener       className=   "org.apache.catalina.core.AprLifecycleListener   "       SSLEngine=   "on   "       />  
                  <Listener       className=   "org.apache.catalina.core.JasperListener   "       />  
                  <Listener       className=   "org.apache.catalina.mbeans.ServerLifecycleListener   "       />  
                  <Listener       className=   "org.apache.catalina.mbeans.GlobalResourcesLifecycleListener   "       />  

                  <GlobalNamingResources>  
                          <Resource       name=   "UserDatabase   "       auth=   "Container   "  
                                                                  type=   "org.apache.catalina.UserDatabase   "  
                                                                  description=   "User       database       that       can       be       updated       and       saved   "  
                                                                  factory=   "org.apache.catalina.users.MemoryUserDatabaseFactory   "  
                                                                  pathname=   "conf/tomcat-users.xml   "       />  
                  </GlobalNamingResources>  

                  <Service       name=   "Catalina   ">  
                          <Connector       port=   "80   "       protocol=   "HTTP/1.1   "      
                                                                      connectionTimeout=   "20000   "      
                                                                      redirectPort=   "8443   "       />  
                          <Connector       port=   "8009   "       protocol=   "AJP/1.3   "       redirectPort=   "8443   "       />  

                          <Engine       name=   "Catalina   "       defaultHost=   "localhost   ">  

              <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.4   "  
                                                                                          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   "/>  
                                          </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=   "   "/>  
                                  <Valve       className=   "org.apache.catalina.ha.session.JvmRouteBinderValve   "/>  

                                  <Deployer       className=   "org.apache.catalina.ha.deploy.FarmWarDeployer   "  
                                                                          tempDir=   "/tmp/war-temp/   "  
                                                                          deployDir=   "/tmp/war-deploy/   "  
                                                                          watchDir=   "/tmp/war-listen/   "  
                                                                          watchEnabled=   "false   "/>  

                                  <ClusterListener       className=   "org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener   "/>  
                                  <ClusterListener       className=   "org.apache.catalina.ha.session.ClusterSessionListener   "/>  
                          </Cluster>  

                                  <Realm       className=   "org.apache.catalina.realm.UserDatabaseRealm   "  
                                                              resourceName=   "UserDatabase   "/>  

                                  <Host       name=   "localhost   "           appBase=   "webapps   "  
                                                          unpackWARs=   "true   "       autoDeploy=   "true   "  
                                                          xmlValidation=   "false   "       xmlNamespaceAware=   "false   ">  

                                  </Host>  
                          </Engine>  
                  </Service>  
          </Server>  
          posted on 2007-11-08 15:14 dd.zhang 閱讀(1209) 評論(1)  編輯  收藏

          FeedBack:
          # re: 關于tomcat6集群的問題
          2007-11-24 20:02 | wangzm
          所有你放在session里面的對象要實現序列化接口。這個是為了內存復制。
          還有就是如果放到一臺機器上,端口別忘記了修改。  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2007年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 汉寿县| 辽中县| 五台县| 登封市| 万州区| 建平县| 阳东县| 紫阳县| 浦城县| 安龙县| 广丰县| 邵阳县| 山丹县| 阿拉尔市| 洛宁县| 紫金县| 晴隆县| 安西县| 客服| 邢台市| 齐齐哈尔市| 通江县| 神农架林区| 信宜市| 大丰市| 高淳县| 石景山区| 富民县| 吉安县| 乌鲁木齐县| 衡水市| 开封县| 宽甸| 蓬莱市| 黎城县| 莒南县| 内江市| 噶尔县| 巴彦县| 哈尔滨市| 聂荣县|