Server : Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6
System : Windows NT USER-PC 6.1 build 7601 (Windows 7 Professional Edition Service Pack 1) AMD64
User : User ( 0)
PHP Version : 7.4.6
Disable Function : NONE
Directory :  C:/xampp/tomcat/webapps/docs/config/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : C:/xampp/tomcat/webapps/docs/config/cluster-sender.html
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat 7 Configuration Reference (7.0.103) - The Cluster Sender object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
    .noPrint {display: none;}
    td#mainBody {width: 100%;}
</style><style type="text/css">
code {background-color:rgb(224,255,255);padding:0 0.1em;}
code.attributeName, code.propertyName {background-color:transparent;}


table {
  border-collapse: collapse;
  text-align: left;
}
table *:not(table) {
  /* Prevent border-collapsing for table child elements like <div> */
  border-collapse: separate;
}

th {
  text-align: left;
}


div.codeBox pre code, code.attributeName, code.propertyName, code.noHighlight, .noHighlight code {
  background-color: transparent;
}
div.codeBox {
  overflow: auto;
  margin: 1em 0;
}
div.codeBox pre {
  margin: 0;
  padding: 4px;
  border: 1px solid #999;
  border-radius: 5px;
  background-color: #eff8ff;
  display: table; /* To prevent <pre>s from taking the complete available width. */
  /*
  When it is officially supported, use the following CSS instead of display: table
  to prevent big <pre>s from exceeding the browser window:
  max-width: available;
  width: min-content;
  */
}

div.codeBox pre.wrap {
  white-space: pre-wrap;
}


table.defaultTable tr, table.detail-table tr {
    border: 1px solid #CCC;
}

table.defaultTable tr:nth-child(even), table.detail-table tr:nth-child(even) {
    background-color: #FAFBFF;
}

table.defaultTable tr:nth-child(odd), table.detail-table tr:nth-child(odd) {
    background-color: #EEEFFF;
}

table.defaultTable th, table.detail-table th {
  background-color: #88b;
  color: #fff;
}

table.defaultTable th, table.defaultTable td, table.detail-table th, table.detail-table td {
  padding: 5px 8px;
}


p.notice {
    border: 1px solid rgb(255, 0, 0);
    background-color: rgb(238, 238, 238);
    color: rgb(0, 51, 102);
    padding: 0.5em;
    margin: 1em 2em 1em 1em;
}
</style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="https://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
    The Apache Tomcat Servlet/JSP Container
  " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 7</font></h1><font face="arial,helvetica,sanserif">Version 7.0.103, Mar 16 2020</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.svg" align="right" alt="Apache Logo" border="0" style="width: 266px;height: 83px;"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li><li><a href="https://wiki.apache.org/tomcat/FAQ">FAQ</a></li><li><a href="#comments_section">User Comments</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="jar-scanner.html">JarScanner</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="sessionidgenerator.html">SessionIdGenerator</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>web.xml</strong></p><ul><li><a href="filter.html">Filter</a></li></ul><p><strong>Other</strong></p><ul><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>The Cluster Sender object</h1><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Concurrent_Parallel_Delivery">Concurrent Parallel Delivery</a></li><li><a href="#Nested_Elements">Nested Elements</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Sender_Attributes">Common Sender Attributes</a></li><li><a href="#Common_Transport_Attributes">Common Transport Attributes</a></li><li><a href="#Common_PooledSender_Attributes">Common PooledSender Attributes</a></li></ol></li></ul>
</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
  <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>&lt;Transport&gt;</code>
  component the implements the actual delivery mechanism.
  </p>
</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Concurrent Parallel Delivery"><!--()--></a><a name="Concurrent_Parallel_Delivery"><strong>Concurrent Parallel Delivery</strong></a></font></td></tr><tr><td><blockquote>
  <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 available, but check back soon.
  </p>
</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Elements"><!--()--></a><a name="Nested_Elements"><strong>Nested Elements</strong></a></font></td></tr><tr><td><blockquote>
 <p>
   The nested element <code>&lt;Transport&gt;</code> is not required, but 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 implementation 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>
</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Sender Attributes"><!--()--></a><a name="Common_Sender_Attributes"><strong>Common Sender Attributes</strong></a></font></td></tr><tr><td><blockquote>
    <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code class="attributeName">className</code></strong></td><td align="left" valign="center">
        Required, only available implementation is <code>org.apache.catalina.tribes.transport.ReplicationTransmitter</code>
      </td></tr></table>
  </blockquote></td></tr></table>
  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Transport Attributes"><!--()--></a><a name="Common_Transport_Attributes"><strong>Common Transport Attributes</strong></a></font></td></tr><tr><td><blockquote>
    <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code class="attributeName">className</code></strong></td><td align="left" valign="center">
        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>
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">rxBufSize</code></td><td align="left" valign="center">
        The receive buffer size on the socket.
        Default value is <code>25188</code> bytes.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">txBufSize</code></td><td align="left" valign="center">
       The send buffer size on the socket.
       Default value is <code>43800</code> bytes.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">udpRxBufSize</code></td><td align="left" valign="center">
        The receive buffer size on the datagram socket.
        Default value is <code>25188</code> bytes.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">udpTxBufSize</code></td><td align="left" valign="center">
       The send buffer size on the datagram socket.
       Default value is <code>43800</code> bytes.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">directBuffer</code></td><td align="left" valign="center">
       Possible values are <code>true</code> or <code>false</code>.
       Set to true if you want the receiver to use direct bytebuffers when writing data
       to the sockets. Default value is <code>false</code>
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">keepAliveCount</code></td><td align="left" valign="center">
       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.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">keepAliveTime</code></td><td align="left" valign="center">
       The number of milliseconds a connection is kept open after its been opened.
       The default value is <code>-1</code>, which is unlimited.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">timeout</code></td><td align="left" valign="center">
        Sets the SO_TIMEOUT option on the socket. The value is in milliseconds and the default value is <code>3000</code>
        milliseconds.(3 seconds) This timeout starts when a message send attempt is starting, until the transfer has been completed.
        For the NIO sockets, this will mean, that the caller can guarantee that we will not attempt sending the message
        longer than this timeout value. For the blocking IO implementation, this translated directly to the soTimeout.<br>
        A timeout will not spawn a retry attempt, in order to guarantee the return of the application thread.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">maxRetryAttempts</code></td><td align="left" valign="center">
        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>.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">ooBInline</code></td><td align="left" valign="center">
        Boolean value for the socket OOBINLINE option. Possible values are <code>true</code> or <code>false</code>.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">soKeepAlive</code></td><td align="left" valign="center">
        Boolean value for the socket SO_KEEPALIVE option. Possible values are <code>true</code> or <code>false</code>.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">soLingerOn</code></td><td align="left" valign="center">
        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>.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">soLingerTime</code></td><td align="left" valign="center">
        Sets the SO_LINGER socket option time value. The value is in seconds.
        The default value is <code>3</code> seconds.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">soReuseAddress</code></td><td align="left" valign="center">
       Boolean value for the socket SO_REUSEADDR option. Possible values are <code>true</code> or <code>false</code>.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">soTrafficClass</code></td><td align="left" valign="center">
       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://docs.oracle.com/javase/6/docs/api/java/net/Socket.html#setTrafficClass(int)">
       java.net.Socket#setTrafficClass(int)</a>.
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">tcpNoDelay</code></td><td align="left" valign="center">
       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>
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">throwOnFailedAck</code></td><td align="left" valign="center">
       Boolean value, default value is <code>true</code>.
       If set to true, the sender will throw a <code>org.apache.catalina.tribes.RemoteProcessException</code>
       when we receive a negative ack from the remote member.
       Set to false, and Tribes will treat a positive ack the same way as a negative ack, that the message was received.
      </td></tr></table>
  </blockquote></td></tr></table>
  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common PooledSender Attributes"><!--()--></a><a name="Common_PooledSender_Attributes"><strong>Common PooledSender Attributes</strong></a></font></td></tr><tr><td><blockquote>
    <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code class="attributeName">poolSize</code></td><td align="left" valign="center">
        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>
      </td></tr><tr><td align="left" valign="center"><code class="attributeName">maxWait</code></td><td align="left" valign="center">
        The maximum number of milliseconds that the senderPool will wait when
        there are no available senders. The default value is <code>3000</code>
        milliseconds.(3 seconds).
      </td></tr></table>
  </blockquote></td></tr></table>
</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
        Copyright &copy; 1999-2020, Apache Software Foundation
        </em></font></div></td></tr></table></body></html>