Author: fhanik Date: Wed Oct 11 16:31:46 2006 New Revision: 463064 URL: http://svn.apache.org/viewvc?view=rev&rev=463064 Log: More documentation, this time for the sender
Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/AbstractSender.java tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-sender.xml Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/AbstractSender.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/AbstractSender.java?view=diff&rev=463064&r1=463063&r2=463064 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/AbstractSender.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/AbstractSender.java Wed Oct 11 16:31:46 2006 @@ -171,11 +171,19 @@ public int getMaxRetryAttempts() { return maxRetryAttempts; } + + public void setDirect(boolean direct) { + setDirectBuffer(direct); + } public void setDirectBuffer(boolean directBuffer) { this.directBuffer = directBuffer; } + public boolean getDirect() { + return getDirectBuffer(); + } + public boolean getDirectBuffer() { return this.directBuffer; } Modified: tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-sender.xml URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-sender.xml?view=diff&rev=463064&r1=463063&r2=463064 ============================================================================== --- tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-sender.xml (original) +++ tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-sender.xml Wed Oct 11 16:31:46 2006 @@ -15,32 +15,127 @@ <section name="Introduction"> + <p> + The channel sender component is responsible for delivering outgoing cluster messages over the network. + In the default implementation, <code>org.apache.catalina.tribes.transport.ReplicationTransmitter</code>, + the sender is a fairly empty shell with not much logic around a fairly complex <code><Transport></code> + component the implements the actual delivery mechanism. + </p> +</section> - - +<section name="Concurrent Parallel Delivery"> + <p> + In the default <code>transport</code> implementation, <code>org.apache.catalina.tribes.transport.nio.PooledParallelSender</code>, + Apache Tribes implements what we like to call "Concurrent Parallel Delivery". + This means that we can send a message to more than one destination at the same time(parallel), and + deliver two messages to the same destination at the same time(concurrent). Combine these two and we have + "Concurrent Parallel Delivery". + </p> + <p> + When is this useful? The simplest example we can think of is when part of your code is sending a 10MB message, + like a war file being deployed, and you need to push through a small 10KB message, say a session being replicated, + you don't have to wait for the 10MB message to finish, as a separate thread will push in the small message + transmission at the same time. Currently there is no interrupt, pause or priority mechanism avaiable, but check back soon. + </p> </section> +<section name="Nested Elements"> + <p> + The nested element <code><Transport></code> is is not required, by encouraged, as this is where + you would set all the socket options for the outgoing messages. Please see its attributes below. + There are two implementations, in a similar manner to the <a href="cluster-receiver.html">receiver</a>, one is non-blocking + based and the other is built using blocking IO. <br/> + <code>org.apache.catalina.tribes.transport.bio.PooledMultiSender</code> is the blocking implemenation and + <code>org.apache.catalina.tribes.transport.nio.PooledParallelSender</code>. + Parallel delivery is not available for the blocking implementation due to the fact that it is blocking a thread on sending data. + </p> +</section> <section name="Attributes"> - - <subsection name="Common Attributes"> - - <attributes> - - <attribute name="className" required="true"> - - </attribute> - - - </attributes> - - + <subsection name="Common Sender Attributes"> + <attributes> + <attribute name="className" required="true"> + Required, only available implementation is <code>org.apache.catalina.tribes.transport.ReplicationTransmitter</code> + </attribute> + </attributes> + </subsection> + <subsection name="Common Transport Attributes"> + <attributes> + <attribute name="className" required="true"> + Required, an implementation of the <code>org.apache.catalina.tribes.transport.MultiPointSender</code>.<br/> + Non-blocking implementation is <code>org.apache.catalina.tribes.transport.nio.PooledParallelSender</code><br/> + Blocking implementation is <code>org.apache.catalina.tribes.transport.bio.PooledMultiSender</code> + </attribute> + <attribute name="rxBufSize" required="false"> + The receive buffer size on the socket. + Default value is <code>25188</code> bytes. + </attribute> + <attribute name="txBufSize" required="false"> + The send buffer size on the socket. + Default value is <code>43800</code> bytes. + </attribute> + <attribute name="direct" required="false"> + Possible values are <code>true</code> or <code>false</code>. + Set to true if you want the receiver to use direct bytebuffers when reading data + from the sockets. Default value is <code>false</code> + </attribute> + <attribute name="keepAliveCount" required="false"> + The number of requests that can go through the socket before the socket is closed, and reopened + for the next request. The default value is <code>-1</code>, which is unlimited. + </attribute> + <attribute name="keepAliveTime" required="false"> + The number of milliseconds a connection is kept open after its been opened. + The default value is <code>-1</code>, which is unlimited. + </attribute> + <attribute name="timeout" required="false"> + Sets the SO_TIMEOUT option on the socket. The value is in milliseconds and the default value is <code>3000</code> + milliseconds. + </attribute> + <attribute name="maxRetryAttempts" required="false"> + How many times do we retry a failed message, that received a IOException at the socket level. + The default value is <code>1</code>, meaning we will retry a message that has failed once. + In other words, we will attempt a message send no more than twice. One is the original send, and one is the + <code>maxRetryAttempts</code>. + </attribute> + <attribute name="ooBInline" required="false"> + Boolean value for the socket OOBINLINE option. Possible values are <code>true</code> or <code>false</code>. + </attribute> + <attribute name="soKeepAlive" required="false"> + Boolean value for the socket SO_KEEPALIVE option. Possible values are <code>true</code> or <code>false</code>. + </attribute> + <attribute name="soLingerOn" required="false"> + Boolean value to determine whether to use the SO_LINGER socket option. + Possible values are <code>true</code> or <code>false</code>. Default value is <code>true</code>. + </attribute> + <attribute name="soLingerTime" required="false"> + Sets the SO_LINGER socket option time value. The value is in seconds. + The default value is <code>3</code> seconds. + </attribute> + <attribute name="soReuseAddress" required="false"> + Boolean value for the socket SO_REUSEADDR option. Possible values are <code>true</code> or <code>false</code>. + </attribute> + <attribute name="soTrafficClass" required="false"> + Sets the traffic class level for the socket, the value is between 0 and 255. + Default value is <code>int soTrafficClass = 0x04 | 0x08 | 0x010;</code> + Different values are defined in <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setTrafficClass(int)"> + java.net.Socket#setTrafficClass(int)</a>. + </attribute> + <attribute name="tcpNoDelay" required="false"> + Boolean value for the socket TCP_NODELAY option. Possible values are <code>true</code> or <code>false</code>. + The default value is <code>true</code> + </attribute> + </attributes> + </subsection> + <subsection name="PooledParallelSender Attributes"> + <attributes> + <attribute name="poolSize" required="false"> + The maximum number of concurrent connections from A to B. + The value is based on a per-destination count. + The default value is <code>25</code> + </attribute> + + </attributes> </subsection> - - </section> - - </body> - </document> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]