Hi Peter, Thank you very much for your kind attention on my query. I will go ahead with the default setting. Best Regards, Dilan.
-----Original Message----- From: Peter Rossbach [mailto:[EMAIL PROTECTED] Sent: Sunday, June 18, 2006 9:47 PM To: Tomcat Users List Subject: Re: tomcat5.5.17 cluster(using jdk1.5) error - OutOfMemoryError in starting up on AS4 HI, I see no risk with the default membership config. Peter Am 18.06.2006 um 19:29 schrieb Dilan Kelanibandara: > Hi Peter, > > No. No service is up and running on 4564. I did only commenting the > member > and restarted both the servers. So far it is working fine. I have a > doubt in > future weather there is any effect on my server? > > Can you please explain me the risk. Or is it ok to run the server > with this > configuration?. > Thanks and best regards, > Dilan > > -----Original Message----- > From: Peter Rossbach [mailto:[EMAIL PROTECTED] > Sent: Sunday, June 18, 2006 8:14 PM > To: Tomcat Users List > Subject: Re: tomcat5.5.17 cluster(using jdk1.5) error - > OutOfMemoryError in > starting up on AS4 > > OK! > > As you comment the Membership service out, following default is used: > > McastService mService= new McastService(); > mService.setMcastAddr("228.0.0.4"); > mService.setMcastPort(8012); > mService.setMcastFrequency(1000); > mService.setMcastDropTime(30000); > transferProperty("service",mService); > setMembershipService(mService); > } > > Have you start another service at 45564 ? > > Regards > > > > Am 18.06.2006 um 16:54 schrieb Dilan Kelanibandara: > >> Hi Peter, >> >> I was having the memory problem when cluster manager trying to >> multicast the >> request when tomcat startup. >> As a trial I commented multicast element of cluster configuration in >> server.xml and restarted both tomcats >> >> This is the multicast element which I commented. >> ============================== >> <!-- >> <Membership >> >> className="org.apache.catalina.cluster.mcast.McastService" >> mcastAddr="228.0.0.4" >> mcastPort="45564" >> mcastFrequency="500" >> mcastDropTime="3000"/> >> --> >> >> ============================== >> >> Then tomcat started without an outofmemoryerror. Also replication >> members >> are added to each other. I ran both of servers with my applicaiton >> for some >> time. It is working fine. Session replication is happening as >> usual. Can you >> let me know can I proceed with this setup or is there any effect >> of my >> commenting on session replication ? >> >> Can you kindly let me know? >> >> Thanks and best regards, >> Dilan >> >> >> -----Original Message----- >> From: Peter Rossbach [mailto:[EMAIL PROTECTED] >> Sent: Sunday, June 18, 2006 9:50 AM >> To: Tomcat Users List >> Subject: Re: tomcat5.5.17 cluster(using jdk1.5) error - >> OutOfMemoryError in >> starting up on AS4 >> >> Use more JVM Options to analyse the mem usage >> >> Work with more faster mem allocation >> >> -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 >> -Xverbosegc >> >> Or better use a Memory Profiler... >> >> But the membership not allocate much memory, very strange effect :-( >> >> Peter >> >> >> Am 18.06.2006 um 08:01 schrieb Dilan Kelanibandara: >> >>> Hi Peter, >>> I am using default JVM parameters coming with tomcat5.5.17. In the >>> tomcat >>> server.xml file it says tcpThreadCount is normally equal to no.of >>> nodes (ie >>> 2 in this case).That is why I changed that to 2. >>> >>> I tried increasing JVM parameters for heap size in tomcat >>> Min=1024m >>> Max=1024m >>> also.I tried with both 512m also. But in both the occasion it is >>> the same >>> result. >>> Thank you for your kind attention. >>> I want further clarifications. >>> Best regards, >>> Dilan >>> -----Original Message----- >>> From: Peter Rossbach [mailto:[EMAIL PROTECTED] >>> Sent: Sunday, June 18, 2006 7:37 AM >>> To: Tomcat Users List >>> Subject: Re: tomcat5.5.17 cluster(using jdk1.5) error - >>> OutOfMemoryError in >>> starting up on AS4 >>> >>> Hi, >>> >>> Which JVM memory parameter you use? >>> At pooled mode use more receiver worker set tcpThreadCount="6"! >>> You really need deployer? Deployer generate at every startup a large >>> cluster message. >>> >>> Regards >>> Peter >>> >>> >>> Am 18.06.2006 um 06:22 schrieb Dilan Kelanibandara: >>> >>>> >>>> >>>> Hello , >>>> >>>> >>>> >>>> I am getting OutOfMemoryError continuously when starting up two >>>> cluster >>>> nodes of tomcat5.5.17 (jdk1.5 on Advanced server 4). Any way it was >>>> working >>>> fine for 3 weeks time. This error occurs previously only one time >>>> and when >>>> restarted the tomcat, it worked. >>>> >>>> >>>> >>>> >>>> >>>> Following is a part of catalina.out relevent to that error for >>>> node 1. >>>> >>>> ============ >>>> ======================================================== >>>> >>>> >>>> >>>> INFO: Start ClusterSender at cluster >>>> Catalina:type=Cluster,host=localhost >>>> >>>> with name Catalina:type=ClusterSender,host=localhost >>>> >>>> Jun 17, 2006 8:44:15 PM >>>> org.apache.catalina.cluster.mcast.McastService start >>>> >>>> INFO: Sleeping for 2000 milliseconds to establish cluster >>>> membership >>>> Exception in thread "Cluster-MembershipReceiver" >>>> java.lang.OutOfMemoryError: >>>> >>>> >>>> Java heap space >>>> >>>> Jun 17, 2006 8:44:17 PM >>>> org.apache.catalina.cluster.mcast.McastService >>>> >>>> registerMBean >>>> >>>> INFO: membership mbean registered >>>> >>>> (Catalina:type=ClusterMembership,host=localhost) >>>> >>>> Jun 17, 2006 8:44:17 PM >>>> org.apache.catalina.cluster.deploy.FarmWarDeployer >>>> >>>> start >>>> >>>> INFO: Cluster FarmWarDeployer started. >>>> >>>> Jun 17, 2006 8:44:19 PM >>>> org.apache.catalina.cluster.session.DeltaManager >>>> >>>> start >>>> >>>> INFO: Register manager /StockTradingServer to cluster element Host >>>> with name >>>> localhost Jun 17, 2006 8:44:19 PM >>>> org.apache.catalina.cluster.session.DeltaManager >>>> >>>> start >>>> >>>> INFO: Starting clustering manager at /StockTradingServer Jun 17, >>>> 2006 >>>> 8:44:19 PM org.apache.catalina.cluster.session.DeltaManager >>>> >>>> getAllClusterSessions >>>> >>>> INFO: Manager [/StockTradingServer]: skipping state transfer. No >>>> members >>>> active in cluster group. >>>> >>>> >>>> >>>> =================================================================== >>>> = >>>> = >>>> = >>>> ====== >>>> ===== >>>> >>>> node2 startup log is as follows >>>> >>>> =================================================================== >>>> = >>>> = >>>> = >>>> ====== >>>> ===== >>>> >>>> INFO: Cluster is about to start >>>> >>>> Jun 17, 2006 8:53:00 PM >>>> >>>> org.apache.catalina.cluster.tcp.ReplicationTransmitter start >>>> >>>> INFO: Start ClusterSender at cluster >>>> Catalina:type=Cluster,host=localhost >>>> >>>> with name Catalina:type=ClusterSender,host=localhost >>>> >>>> Jun 17, 2006 8:53:00 PM >>>> org.apache.catalina.cluster.mcast.McastService start >>>> >>>> INFO: Sleeping for 2000 milliseconds to establish cluster >>>> membership >>>> Exception in thread "Cluster-MembershipReceiver" >>>> java.lang.OutOfMemoryError: >>>> >>>> >>>> Java heap space >>>> >>>> Jun 17, 2006 8:53:02 PM >>>> org.apache.catalina.cluster.mcast.McastService >>>> >>>> registerMBean >>>> >>>> INFO: membership mbean registered >>>> >>>> (Catalina:type=ClusterMembership,host=localhost) >>>> >>>> Jun 17, 2006 8:53:02 PM >>>> org.apache.catalina.cluster.deploy.FarmWarDeployer >>>> >>>> start >>>> >>>> INFO: Cluster FarmWarDeployer started. >>>> >>>> Jun 17, 2006 8:53:04 PM >>>> org.apache.catalina.cluster.session.DeltaManager >>>> >>>> start >>>> >>>> INFO: Register manager /StockTradingServer to cluster element Host >>>> with name >>>> localhost Jun 17, 2006 8:53:04 PM >>>> org.apache.catalina.cluster.session.DeltaManager >>>> >>>> start >>>> >>>> >>>> >>>> =================================================================== >>>> = >>>> = >>>> = >>>> ====== >>>> = >>>> >>>> Any way my clustor was working fine for 3 weeks time and started to >>>> give >>>> this error in startup of both the nodes. >>>> >>>> >>>> >>>> I have an IBMHTTPServer with jk connector for load balancing and >>>> that load >>>> is comming my tomcat cluster. >>>> >>>> >>>> >>>> following is the server.xml file for both the servers. >>>> >>>> >>>> >>>> =================================================================== >>>> = >>>> = >>>> = >>>> ====== >>>> = >>>> >>>> >>>> >>>> <!-- Example Server Configuration File --> >>>> >>>> <!-- Note that component elements are nested corresponding to their >>>> >>>> parent-child relationships with each other --> >>>> >>>> >>>> >>>> <!-- A "Server" is a singleton element that represents the entire >>>> JVM, >>>> >>>> which may contain one or more "Service" instances. The Server >>>> >>>> listens for a shutdown command on the indicated port. >>>> >>>> >>>> >>>> Note: A "Server" is not itself a "Container", so you may not >>>> >>>> define subcomponents such as "Valves" or "Loggers" at this >>>> level. >>>> >>>> --> >>>> >>>> >>>> >>>> <Server port="8005" shutdown="SHUTDOWN"> >>>> >>>> >>>> >>>> <!-- Comment these entries out to disable JMX MBeans support used >>>> for the >>>> >>>> administration web application --> <Listener >>>> className="org.apache.catalina.core.AprLifecycleListener" /> >>>> <Listener >>>> className="org.apache.catalina.mbeans.ServerLifecycleListener" /> >>>> <Listener >>>> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListe >>>> n >>>> e >>>> r >>>> " /> >>>> <Listener >>>> className="org.apache.catalina.storeconfig.StoreConfigLifecycleList >>>> e >>>> n >>>> e >>>> r"/> >>>> >>>> >>>> >>>> <!-- Global JNDI resources --> >>>> >>>> <GlobalNamingResources> >>>> >>>> >>>> >>>> <!-- Test entry for demonstration purposes --> >>>> >>>> <Environment name="simpleValue" type="java.lang.Integer" >>>> value="30"/> >>>> >>>> >>>> >>>> <!-- Editable user database that can also be used by >>>> >>>> UserDatabaseRealm to authenticate users --> >>>> >>>> <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> >>>> >>>> >>>> >>>> <!-- A "Service" is a collection of one or more "Connectors" that >>>> share >>>> >>>> a single "Container" (and therefore the web applications >>>> visible >>>> >>>> within that Container). Normally, that Container is an >>>> "Engine", >>>> >>>> but this is not required. >>>> >>>> >>>> >>>> Note: A "Service" is not itself a "Container", so you may >>>> not >>>> >>>> define subcomponents such as "Valves" or "Loggers" at this >>>> level. >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Define the Tomcat Stand-Alone Service --> <Service >>>> name="Catalina"> >>>> >>>> >>>> >>>> <!-- A "Connector" represents an endpoint by which requests are >>>> received >>>> >>>> and responses are returned. Each Connector passes requests >>>> on to >>>> the >>>> >>>> associated "Container" (normally an Engine) for processing. >>>> >>>> >>>> >>>> By default, a non-SSL HTTP/1.1 Connector is established on >>>> port >>>> 8080. >>>> >>>> You can also enable an SSL HTTP/1.1 Connector on port >>>> 8443 by >>>> >>>> following the instructions below and uncommenting the >>>> second >>>> Connector >>>> >>>> entry. SSL support requires the following steps (see the >>>> SSL Config >>>> HOWTO in the Tomcat 5 documentation bundle for more detailed >>>> >>>> instructions): >>>> >>>> * If your JDK version 1.3 or prior, download and install >>>> JSSE 1.0.2 >>>> or >>>> >>>> later, and put the JAR files into "$JAVA_HOME/jre/lib/ >>>> ext". >>>> >>>> * Execute: >>>> >>>> %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg >>>> RSA >>>> >>>> (Windows) >>>> >>>> $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg >>>> RSA (Unix) >>>> with a password value of "changeit" for both the certificate and >>>> >>>> the keystore itself. >>>> >>>> >>>> >>>> By default, DNS lookups are enabled when a web application >>>> calls >>>> >>>> request.getRemoteHost(). This can have an adverse >>>> impact on >>>> >>>> performance, so you can disable it by setting the >>>> >>>> "enableLookups" attribute to "false". When DNS lookups are >>>> disabled, >>>> >>>> request.getRemoteHost() will return the String version of >>>> the >>>> >>>> IP address of the remote client. >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> >>>> >>>> <Connector port="8088" maxHttpHeaderSize="8192" >>>> >>>> maxThreads="300" minSpareThreads="25" >>>> maxSpareThreads="75" >>>> >>>> enableLookups="false" redirectPort="8443" >>>> acceptCount="100" >>>> >>>> connectionTimeout="20000" >>>> disableUploadTimeout="true" /> >>>> >>>> <!-- Note : To disable connection timeouts, set >>>> connectionTimeout value >>>> >>>> to 0 --> >>>> >>>> >>>> >>>> <!-- Note : To use gzip compression you could set the >>>> following >>>> properties : >>>> >>>> >>>> >>>> compression="on" >>>> >>>> compressionMinSize="2048" >>>> >>>> noCompressionUserAgents="gozilla, >>>> traviata" >>>> >>>> compressableMimeType="text/html,text/xml" >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Define a SSL HTTP/1.1 Connector on port 8443 --> >>>> >>>> <!-- >>>> >>>> <Connector port="8443" maxHttpHeaderSize="8192" >>>> >>>> maxThreads="150" minSpareThreads="25" >>>> maxSpareThreads="75" >>>> >>>> enableLookups="false" disableUploadTimeout="true" >>>> >>>> acceptCount="100" scheme="https" secure="true" >>>> >>>> clientAuth="false" sslProtocol="TLS" /> >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Define an AJP 1.3 Connector on port 8009 --> >>>> >>>> <Connector port="8009" >>>> >>>> enableLookups="false" redirectPort="8443" >>>> protocol="AJP/1.3" >>>> >>>> /> >>>> >>>> >>>> >>>> <!-- Define a Proxied HTTP/1.1 Connector on port 8082 --> >>>> >>>> <!-- See proxy documentation for more information about using >>>> this. --> >>>> >>>> <!-- >>>> >>>> <Connector port="8082" >>>> >>>> maxThreads="150" minSpareThreads="25" >>>> maxSpareThreads="75" >>>> >>>> enableLookups="false" acceptCount="100" >>>> >>>> connectionTimeout="20000" >>>> >>>> proxyPort="80" disableUploadTimeout="true" /> >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- An Engine represents the entry point (within Catalina) that >>>> processes >>>> >>>> every request. The Engine implementation for Tomcat stand >>>> alone >>>> >>>> analyzes the HTTP headers included with the request, and >>>> passes them >>>> on to the appropriate Host (virtual host). --> >>>> >>>> >>>> >>>> <!-- You should set jvmRoute to support load-balancing via AJP >>>> ie : >>>> >>>> <Engine name="Standalone" defaultHost="localhost" >>>> jvmRoute="jvm1"> >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Define the top level container in our container hierarchy >>>> --> >>>> >>>> <Engine name="Catalina" defaultHost="localhost" >>>> jvmRoute="node01"> >>>> >>>> <!-- <Engine name="Catalina" jvmRoute="$JAVA_HOME" > --> >>>> >>>> >>>> >>>> <!-- The request dumper valve dumps useful debugging >>>> information about >>>> >>>> the request headers and cookies that were received, and >>>> the >>>> response >>>> >>>> headers and cookies that were sent, for all requests >>>> received by >>>> >>>> this instance of Tomcat. If you care only about requests >>>> to a >>>> >>>> particular virtual host, or a particular application, >>>> nest this >>>> >>>> element inside the corresponding <Host> or <Context> >>>> entry >>>> instead. >>>> >>>> >>>> >>>> For a similar mechanism that is portable to all Servlet >>>> 2.4 >>>> >>>> containers, check out the "RequestDumperFilter" Filter in >>>> the >>>> >>>> example application (the source for this filter may be >>>> found in >>>> >>>> "$CATALINA_HOME/webapps/examples/WEB-INF/classes/ >>>> filters"). >>>> >>>> >>>> >>>> Request dumping is disabled by default. Uncomment the >>>> following >>>> >>>> element to enable it. --> >>>> >>>> <!-- >>>> >>>> <Valve >>>> className="org.apache.catalina.valves.RequestDumperValve"/> >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Because this Realm is here, an instance will be shared >>>> globally >>>> --> >>>> >>>> >>>> >>>> <!-- This Realm uses the UserDatabase configured in the global >>>> JNDI >>>> >>>> resources under the key "UserDatabase". Any edits >>>> >>>> that are performed against this UserDatabase are >>>> immediately >>>> >>>> available for use by the Realm. --> >>>> >>>> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" >>>> >>>> resourceName="UserDatabase"/> >>>> >>>> >>>> >>>> <!-- Comment out the old realm but leave here for now in >>>> case we >>>> >>>> need to go back quickly --> >>>> >>>> <!-- >>>> >>>> <Realm className="org.apache.catalina.realm.MemoryRealm" /> >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Replace the above Realm with one of the following to get >>>> a Realm >>>> >>>> stored in a database and accessed via JDBC --> >>>> >>>> >>>> >>>> >>>> >>>> <Realm className="org.apache.catalina.realm.JDBCRealm" >>>> >>>> driverName="org.gjt.mm.mysql.Driver" >>>> >>>> connectionURL="jdbc:mysql://172.16.1.55:3306/kutila" >>>> >>>> connectionName="kutila" connectionPassword="kutila" >>>> >>>> userTable="users" userNameCol="user_name" >>>> >>>> userCredCol="user_pass" >>>> >>>> userRoleTable="user_roles" roleNameCol="role_name" /> >>>> >>>> >>>> >>>> >>>> >>>> <!-- >>>> >>>> <Realm className="org.apache.catalina.realm.JDBCRealm" >>>> >>>> driverName="oracle.jdbc.driver.OracleDriver" >>>> >>>> connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL" >>>> >>>> connectionName="scott" connectionPassword="tiger" >>>> >>>> userTable="users" userNameCol="user_name" >>>> >>>> userCredCol="user_pass" >>>> >>>> userRoleTable="user_roles" roleNameCol="role_name" /> >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- >>>> >>>> <Realm className="org.apache.catalina.realm.JDBCRealm" >>>> >>>> driverName="sun.jdbc.odbc.JdbcOdbcDriver" >>>> >>>> connectionURL="jdbc:odbc:CATALINA" >>>> >>>> userTable="users" userNameCol="user_name" >>>> >>>> userCredCol="user_pass" >>>> >>>> userRoleTable="user_roles" roleNameCol="role_name" /> >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Define the default virtual host >>>> >>>> Note: XML Schema validation will not work with Xerces >>>> 2.2. >>>> >>>> --> >>>> >>>> <Host name="localhost" appBase="webapps" >>>> >>>> unpackWARs="true" autoDeploy="true" >>>> >>>> xmlValidation="false" xmlNamespaceAware="false"> >>>> >>>> >>>> >>>> <!-- Defines a cluster for this node, >>>> >>>> By defining this element, means that every manager >>>> will be >>>> changed. >>>> >>>> So when running a cluster, only make sure that you have >>>> webapps >>>> in there >>>> >>>> that need to be clustered and remove the other ones. >>>> >>>> A cluster has the following parameters: >>>> >>>> >>>> >>>> className = the fully qualified name of the cluster >>>> class >>>> >>>> >>>> >>>> clusterName = a descriptive name for your cluster, >>>> can be >>>> anything >>>> >>>> >>>> >>>> mcastAddr = the multicast address, has to be the same >>>> for all >>>> the nodes >>>> >>>> >>>> >>>> mcastPort = the multicast port, has to be the same for >>>> all the >>>> nodes >>>> >>>> >>>> >>>> mcastBindAddress = bind the multicast socket to a >>>> specific >>>> address >>>> >>>> >>>> >>>> mcastTTL = the multicast TTL if you want to limit your >>>> broadcast >>>> >>>> mcastSoTimeout = the multicast readtimeout >>>> >>>> >>>> >>>> mcastFrequency = the number of milliseconds in between >>>> sending a >>>> "I'm alive" heartbeat >>>> >>>> >>>> >>>> mcastDropTime = the number a milliseconds before a >>>> node is >>>> considered "dead" if no heartbeat is received >>>> >>>> >>>> >>>> tcpThreadCount = the number of threads to handle >>>> incoming >>>> replication requests, optimal would be the same amount of threads >>>> as nodes >>>> >>>> >>>> >>>> tcpListenAddress = the listen address (bind address) >>>> for TCP >>>> cluster request on this host, >>>> >>>> in case of multiple ethernet cards. >>>> >>>> auto means that address becomes >>>> >>>> InetAddress.getLocalHost >>>> ().getHostAddress() >>>> >>>> >>>> >>>> tcpListenPort = the tcp listen port >>>> >>>> >>>> >>>> tcpSelectorTimeout = the timeout (ms) for the >>>> Selector.select() >>>> method in case the OS >>>> >>>> has a wakup bug in java.nio. Set >>>> to 0 for >>>> no timeout >>>> >>>> >>>> >>>> printToScreen = true means that managers will also >>>> print to >>>> std.out >>>> >>>> >>>> >>>> expireSessionsOnShutdown = true means that >>>> >>>> >>>> >>>> useDirtyFlag = true means that we only replicate a >>>> session after >>>> setAttribute,removeAttribute has been called. >>>> >>>> false means to replicate the session >>>> after each >>>> request. >>>> >>>> false means that replication would work >>>> for the >>>> following piece of code: (only for SimpleTcpReplicationManager) >>>> >>>> <% >>>> >>>> HashMap map = >>>> (HashMap)session.getAttribute("map"); >>>> >>>> map.put("key","value"); >>>> >>>> %> >>>> >>>> replicationMode = can be either 'pooled', >>>> 'synchronous' or >>>> 'asynchronous'. >>>> >>>> * Pooled means that the replication >>>> happens >>>> using several sockets in a synchronous way. Ie, the data gets >>>> replicated, >>>> then the request return. This is the same as the 'synchronous' >>>> setting >>>> except it uses a pool of sockets, hence it is multithreaded. This >>>> is the >>>> fastest and safest configuration. To use this, also increase the nr >>>> of tcp >>>> threads that you have dealing with replication. >>>> >>>> * Synchronous means that the thread >>>> that >>>> executes the request, is also the >>>> >>>> thread the replicates the data to the >>>> other >>>> nodes, and will not return until all >>>> >>>> nodes have received the information. >>>> >>>> * Asynchronous means that there is a >>>> specific >>>> 'sender' thread for each cluster node, >>>> >>>> so the request thread will queue the >>>> replication request into a "smart" queue, >>>> >>>> and then return to the client. >>>> >>>> The "smart" queue is a queue where >>>> when a >>>> session is added to the queue, and the same session >>>> >>>> already exists in the queue from a >>>> previous >>>> request, that session will be replaced >>>> >>>> in the queue instead of replicating >>>> two >>>> requests. This almost never happens, unless there is a >>>> >>>> large network delay. >>>> >>>> --> >>>> >>>> <!-- >>>> >>>> When configuring for clustering, you also add in a valve >>>> to catch >>>> all the requests >>>> >>>> coming in, at the end of the request, the session may or >>>> may not >>>> be replicated. >>>> >>>> A session is replicated if and only if all the >>>> conditions are >>>> >>>> met: >>>> >>>> 1. useDirtyFlag is true or setAttribute or >>>> removeAttribute has >>>> been called AND >>>> >>>> 2. a session exists (has been created) >>>> >>>> 3. the request is not trapped by the "filter" attribute >>>> >>>> >>>> >>>> The filter attribute is to filter out requests that >>>> could not >>>> modify the session, >>>> >>>> hence we don't replicate the session after the end of >>>> this >>>> request. >>>> >>>> The filter is negative, ie, anything you put in the >>>> filter, you >>>> mean to filter out, >>>> >>>> ie, no replication will be done on requests that match >>>> one of the >>>> filters. >>>> >>>> The filter attribute is delimited by ;, so you can't >>>> escape out ; >>>> even if you wanted to. >>>> >>>> >>>> >>>> filter=".*\.gif;.*\.js;" means that we will not >>>> replicate the >>>> session after requests with the URI >>>> >>>> ending with .gif and .js are intercepted. >>>> >>>> >>>> >>>> The deployer element can be used to deploy apps cluster >>>> wide. >>>> >>>> Currently the deployment only deploys/undeploys to >>>> working >>>> members in the cluster >>>> >>>> so no WARs are copied upons startup of a broken node. >>>> >>>> The deployer watches a directory (watchDir) for WAR >>>> files when >>>> watchEnabled="true" >>>> >>>> When a new war file is added the war gets deployed to >>>> the local >>>> instance, >>>> >>>> and then deployed to the other instances in the cluster. >>>> >>>> When a war file is deleted from the watchDir the war is >>>> undeployed locally >>>> >>>> and cluster wide >>>> >>>> --> >>>> >>>> >>>> >>>> >>>> >>>> <Cluster >>>> className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" >>>> >>>> >>>> managerClassName="org.apache.catalina.cluster.session.DeltaManager" >>>> >>>> expireSessionsOnShutdown="true" >>>> >>>> useDirtyFlag="true" >>>> >>>> notifyListenersOnReplication="true"> >>>> >>>> >>>> >>>> <Membership >>>> >>>> >>>> className="org.apache.catalina.cluster.mcast.McastService" >>>> >>>> mcastAddr="228.0.0.4" >>>> >>>> mcastPort="45564" >>>> >>>> mcastFrequency="500" >>>> >>>> mcastDropTime="3000"/> >>>> >>>> >>>> >>>> <Receiver >>>> >>>> >>>> >>>> className="org.apache.catalina.cluster.tcp.ReplicationListener" >>>> >>>> tcpListenAddress="auto" >>>> >>>> tcpListenPort="4001" >>>> >>>> tcpSelectorTimeout="100" >>>> >>>> tcpThreadCount="2"/> >>>> >>>> >>>> >>>> <Sender >>>> >>>> >>>> >>>> className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" >>>> >>>> replicationMode="pooled" >>>> >>>> ackTimeout="15000" >>>> >>>> waitForAck="true"/> >>>> >>>> >>>> >>>> <Valve >>>> >>>> className="org.apache.catalina.cluster.tcp.ReplicationValve" >>>> >>>> >>>> >>>> filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.* >>>> \.txt;"/> >>>> >>>> >>>> >>>> <Deployer >>>> >>>> className="org.apache.catalina.cluster.deploy.FarmWarDeployer" >>>> >>>> tempDir="/tmp/war-temp/" >>>> >>>> deployDir="/tmp/war-deploy/" >>>> >>>> watchDir="/tmp/war-listen/" >>>> >>>> watchEnabled="false"/> >>>> >>>> >>>> >>>> <ClusterListener >>>> >>>> className="org.apache.catalina.cluster.session.ClusterSessionListen >>>> e >>>> r >>>> " >>>> /> >>>> >>>> </Cluster> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> <!-- Normally, users must authenticate themselves to each >>>> web app >>>> >>>> individually. Uncomment the following entry if you >>>> would like >>>> >>>> a user to be authenticated the first time they >>>> encounter a >>>> >>>> resource protected by a security constraint, and then >>>> have that >>>> >>>> user identity maintained across *all* web applications >>>> contained >>>> in this virtual host. --> >>>> >>>> <!-- >>>> >>>> <Valve >>>> className="org.apache.catalina.authenticator.SingleSignOn" /> >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Access log processes all requests for this virtual >>>> host. By >>>> >>>> default, log files are created in the "logs" directory >>>> relative >>>> to >>>> >>>> $CATALINA_HOME. If you wish, you can specify a >>>> different >>>> >>>> directory with the "directory" attribute. Specify >>>> either a >>>> relative >>>> >>>> (to $CATALINA_HOME) or absolute path to the desired >>>> directory. >>>> >>>> --> >>>> >>>> <!-- >>>> >>>> <Valve className="org.apache.catalina.valves.AccessLogValve" >>>> >>>> directory="logs" prefix="localhost_access_log." >>>> >>>> suffix=".txt" >>>> >>>> pattern="common" resolveHosts="false"/> >>>> >>>> --> >>>> >>>> >>>> >>>> <!-- Access log processes all requests for this virtual >>>> host. By >>>> >>>> default, log files are created in the "logs" directory >>>> relative >>>> to >>>> >>>> $CATALINA_HOME. If you wish, you can specify a >>>> different >>>> >>>> directory with the "directory" attribute. Specify >>>> either a >>>> relative >>>> >>>> (to $CATALINA_HOME) or absolute path to the desired >>>> directory. >>>> >>>> This access log implementation is optimized for maximum >>>> performance, >>>> >>>> but is hardcoded to support only the "common" and >>>> "combined" >>>> >>>> patterns. >>>> >>>> --> >>>> >>>> <!-- >>>> >>>> <Valve >>>> >>>> className="org.apache.catalina.valves.FastCommonAccessLogValve" >>>> >>>> directory="logs" prefix="localhost_access_log." >>>> >>>> suffix=".txt" >>>> >>>> pattern="common" resolveHosts="false"/> >>>> >>>> --> >>>> >>>> >>>> >>>> </Host> >>>> >>>> >>>> >>>> </Engine> >>>> >>>> >>>> >>>> </Service> >>>> >>>> >>>> >>>> </Server> >>>> >>>> >>>> >>>> =========================================================== >>>> >>>> >>>> >>>> I appriceate your prompt help on this since this is a very critical >>>> application live for the moment. Always send me an email for any >>>> clarifications. >>>> >>>> >>>> >>>> Thanks and best regards, >>>> >>>> Dilan >>>> >>>> >>>> >>>> >>>> >>> >>> >>> -------------------------------------------------------------------- >>> - >>> To start a new topic, e-mail: users@tomcat.apache.org >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >>> -------------------------------------------------------------------- >>> - >>> To start a new topic, e-mail: users@tomcat.apache.org >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >> >> >> >> --------------------------------------------------------------------- >> To start a new topic, e-mail: users@tomcat.apache.org >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]