DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=34389>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=34389

           Summary: Tomcat 5.5.9 Cluster fix pack
           Product: Tomcat 5
           Version: 5.5.9
          Platform: Other
        OS/Version: other
            Status: NEW
          Severity: blocker
          Priority: P2
         Component: Catalina:Cluster
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: [EMAIL PROTECTED]


Readme - Clustering Jakarta Tomcat 5.5.9 fix
Date: 10.04.2005
Author: Peter Rossbach

After some load test the current clustering shows some bugs.

=>
- At some case the complete cluster hang ( Linux Suse 9.1, Windows XP)
- Memory consume with fastasyncqueue is to high under heavy load.
       Probleme with waitAck and sync DataSender#pushMessage
- No request processing sometimes.
       Trouble with SessionManager background thread and wrong autoConnect sync
block

Here my fixes

DataSender
*   No sync pushMessage with async background thread
*   KeepAliveMaxRequestCount set to -1 ( disable), only timebased keep alive
*   Socket Open Counter afer successfull open!
*   More Trace messages
*   better wait ack handling

FastAsyncSocketSender
*   move counter queuedNrOfBytes to background thread
*   snyc only the counter and not the message queueing ( very important perf 
gap)
*   More Trace messages

AsyncSocketSender
*   move counter queuedNrOfBytes to background thread
*   snyc only the counter and not the message queueing ( very important perf 
gap)
*   More Trace messages

Jdk13ReplicationListener
*   Add Socket Listener -- Rename at > 5.5.9 to SocketReplicationListener
*   More Trace messages to better understanding

ReplicationTransmitter
*   set autoConnect to false ( Very bad thing second thread can close a socket
that other thread can use!)
*   sync autoConnect sender check

ReplicationListener
*   More Trace messages to better understanding

PooledSocket
*   sendMessage used autoConnect ( not heavy tested)

===========================================================================S
With 5.5.9 are following cluster sender config possible:

### pooled ###
             <Sender
                  
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                  replicationMode="pooled"
                                  ackTimeout="@node.ackTimeout@"/>
 
### fastasyncqueue ###
// When you set compress="false" you mus also do that at receiver!            
// Make test that maxQueueLength is big!
             <Sender
                  
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                  replicationMode="fastasyncqueue"
                  compress="false"
                  doProcessingStats="true"
                  queueTimeWait="true"
                  maxQueueLength="1000"
                  queueDoStats="true"
                  queueCheckLock="true"
                                  ackTimeout="15000"
                  waitForAck="true"
                  autoConnect="false"
                  keepAliveTimeout="@node.ackTimeout@"
                  keepAliveMaxRequestCount="-1"/>

### asynchronous ###
// When you set compress="false" you mus also do that at receiver!            
             <Sender
                  
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                  replicationMode="asynchronous"
                  compress="false"
                                  ackTimeout="15000"
                  waitForAck="true"
                  autoConnect="false"
                  keepAliveTimeout="@node.ackTimeout@"
                  keepAliveMaxRequestCount="-1"/>


### synchronous ###
             <Sender
                  
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                  replicationMode="synchronous"
                  compress="false"
                                  ackTimeout="15000"
                  waitForAck="true"
                  keepAliveTimeout="@node.ackTimeout@"
                  keepAliveMaxRequestCount="-1"/>

With this fix I implement a simple Socket Receiver that not used NIO!
Jdk13ReplicationListener
At > 5.5.9 I change the name to SocketReplicationListener
               <Receiver 
                 
className="org.apache.catalina.cluster.tcp.Jdk13ReplicationListener"
                  tcpListenAddress="@node.clustertcp.address@"
                  tcpListenPort="@node.clustertcp.port@"
                  />
==========================================================
Compile from source,

* get Tomcat 5.5.9 binary release
* get this fix pack jakarta-tomcat-5.5.9-cluster-fix-src-<date>.tar.gz and 
extract.
* edit build.properties set catalina.home to you 5.5.9 release
catalina.home=d:/server/jakarta-tomcat-5.5.9
* than compile and install
ant compile install

* Install manually
Copy build/classes to your tomcat release server/classes

==========================================================
                  
Sorry for the release trouble, :-(
Peter

s. attachment to this bug report

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to