blob: d21294dec95fcd45da506a89bf0be4667e2ff021 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_261) on Mon Dec 20 14:15:50 MSK 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TcpCommunicationSpi (Ignite 2.11.1)</title>
<meta name="date" content="2021-12-20">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="TcpCommunicationSpi (Ignite 2.11.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":9,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":42,"i29":42,"i30":10,"i31":10,"i32":10,"i33":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TcpCommunicationSpi.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationMetricsListener.html" title="class in org.apache.ignite.spi.communication.tcp"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiMBean.html" title="interface in org.apache.ignite.spi.communication.tcp"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html" target="_top">Frames</a></li>
<li><a href="TcpCommunicationSpi.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.ignite.spi.communication.tcp</div>
<h2 title="Class TcpCommunicationSpi" class="title">Class TcpCommunicationSpi</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">org.apache.ignite.spi.IgniteSpiAdapter</a></li>
<li>
<ul class="inheritance">
<li>org.apache.ignite.spi.communication.tcp.internal.TcpCommunicationConfigInitializer</li>
<li>
<ul class="inheritance">
<li>org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/ignite/spi/communication/CommunicationSpi.html" title="interface in org.apache.ignite.spi.communication">CommunicationSpi</a><span class='angle_bracket'>&lt;</span><a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a><span class='angle_bracket'>&gt;</span>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></dd>
</dl>
<hr>
<br>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiMultipleInstancesSupport.html" title="annotation in org.apache.ignite.spi">@IgniteSpiMultipleInstancesSupport</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiMultipleInstancesSupport.html#value--">value</a>=true)
<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConsistencyChecked.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConsistencyChecked</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConsistencyChecked.html#optional--">optional</a>=false)
public class <span class="typeNameLabel">TcpCommunicationSpi</span>
extends org.apache.ignite.spi.communication.tcp.internal.TcpCommunicationConfigInitializer</pre>
<div class="block"><tt>TcpCommunicationSpi</tt> is default communication SPI which uses
TCP/IP protocol and Java NIO to communicate with other nodes.
<p>
To enable communication with other nodes, this SPI adds <a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#ATTR_ADDRS"><code>ATTR_ADDRS</code></a> and <a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#ATTR_PORT"><code>ATTR_PORT</code></a> local node
attributes (see <a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html#attributes--"><code>ClusterNode.attributes()</code></a>.
<p>
At startup, this SPI tries to start listening to local port specified by <code>TcpCommunicationConfigInitializer.setLocalPort(int)</code> method. If local
port is occupied, then SPI will automatically increment the port number until it can successfully bind for listening.
<code>TcpCommunicationConfigInitializer.setLocalPortRange(int)</code> configuration parameter controls maximum number of ports that SPI will try before it
fails. Port range comes very handy when starting multiple grid nodes on the same machine or even in the same VM. In
this case all nodes can be brought up without a single change in configuration.
<p>
This SPI caches connections to remote nodes so it does not have to reconnect every time a message is sent. By
default, idle connections are kept active for <a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_IDLE_CONN_TIMEOUT"><code>DFLT_IDLE_CONN_TIMEOUT</code></a> period and then are closed. Use <code>TcpCommunicationConfigInitializer.setIdleConnectionTimeout(long)</code> configuration parameter to configure you own idle connection timeout.
<h1 class="header">Failure Detection</h1>
Configuration defaults (see Configuration section below and <a href="../../../../../../org/apache/ignite/configuration/IgniteConfiguration.html#getFailureDetectionTimeout--"><code>IgniteConfiguration.getFailureDetectionTimeout()</code></a>)
for details) are chosen to make possible for communication SPI work reliably on most of hardware and virtual
deployments, but this has made failure detection time worse.
<p>
If it's needed to tune failure detection then it's highly recommended to do this using <a href="../../../../../../org/apache/ignite/configuration/IgniteConfiguration.html#setFailureDetectionTimeout-long-"><code>IgniteConfiguration.setFailureDetectionTimeout(long)</code></a>. This failure timeout automatically controls the following
parameters: <code>TcpCommunicationConfigInitializer.getConnectTimeout()</code>, <code>TcpCommunicationConfigInitializer.getMaxConnectTimeout()</code>, <code>TcpCommunicationConfigInitializer.getReconnectCount()</code>. If any of
those parameters is set explicitly, then the failure timeout setting will be ignored.
<p>
If it's required to perform advanced settings of failure detection and <a href="../../../../../../org/apache/ignite/configuration/IgniteConfiguration.html#getFailureDetectionTimeout--"><code>IgniteConfiguration.getFailureDetectionTimeout()</code></a>
is unsuitable then various <code>TcpCommunicationSpi</code> configuration parameters may be used.
<h1 class="header">Configuration</h1>
<h2 class="header">Mandatory</h2>
This SPI has no mandatory configuration parameters.
<h2 class="header">Optional</h2>
The following configuration parameters are optional:
<ul>
<li>Address resolver (see <code>TcpCommunicationConfigInitializer.setAddressResolver(AddressResolver)</code></li>
<li>Node local IP address (see <code>TcpCommunicationConfigInitializer.setLocalAddress(String)</code>)</li>
<li>Node local port number (see <code>TcpCommunicationConfigInitializer.setLocalPort(int)</code>)</li>
<li>Local port range (see <code>TcpCommunicationConfigInitializer.setLocalPortRange(int)</code></li>
<li>Use paired connections (see <code>TcpCommunicationConfigInitializer.setUsePairedConnections(boolean)</code></li>
<li>Connections per node (see <code>TcpCommunicationConfigInitializer.setConnectionsPerNode(int)</code>)</li>
<li>Shared memory port (see <code>TcpCommunicationConfigInitializer.setSharedMemoryPort(int)</code></li>
<li>Idle connection timeout (see <code>TcpCommunicationConfigInitializer.setIdleConnectionTimeout(long)</code>)</li>
<li>Direct or heap buffer allocation (see <code>TcpCommunicationConfigInitializer.setDirectBuffer(boolean)</code>)</li>
<li>Direct or heap buffer allocation for sending (see <code>TcpCommunicationConfigInitializer.setDirectSendBuffer(boolean)</code>)</li>
<li>Count of selectors and selector threads for NIO server (see <code>TcpCommunicationConfigInitializer.setSelectorsCount(int)</code>)</li>
<li>Selector thread busy-loop iterations (see <code>TcpCommunicationConfigInitializer.setSelectorSpins(long)</code></li>
<li><code>TCP_NODELAY</code> socket option for sockets (see <code>TcpCommunicationConfigInitializer.setTcpNoDelay(boolean)</code>)</li>
<li>Filter reachable addresses (see <code>TcpCommunicationConfigInitializer.setFilterReachableAddresses(boolean)</code> </li>
<li>Message queue limit (see <code>TcpCommunicationConfigInitializer.setMessageQueueLimit(int)</code>)</li>
<li>Slow client queue limit (see <code>TcpCommunicationConfigInitializer.setSlowClientQueueLimit(int)</code>)</li>
<li>Connect timeout (see <code>TcpCommunicationConfigInitializer.setConnectTimeout(long)</code>)</li>
<li>Maximum connect timeout (see <code>TcpCommunicationConfigInitializer.setMaxConnectTimeout(long)</code>)</li>
<li>Reconnect attempts count (see <code>TcpCommunicationConfigInitializer.setReconnectCount(int)</code>)</li>
<li>Socket receive buffer size (see <code>TcpCommunicationConfigInitializer.setSocketReceiveBuffer(int)</code>)</li>
<li>Socket send buffer size (see <code>TcpCommunicationConfigInitializer.setSocketSendBuffer(int)</code>)</li>
<li>Socket write timeout (see <code>TcpCommunicationConfigInitializer.setSocketWriteTimeout(long)</code>)</li>
<li>Number of received messages after which acknowledgment is sent (see <code>TcpCommunicationConfigInitializer.setAckSendThreshold(int)</code>)</li>
<li>Maximum number of unacknowledged messages (see <code>TcpCommunicationConfigInitializer.setUnacknowledgedMessagesBufferSize(int)</code>)</li>
</ul>
<h2 class="header">Java Example</h2>
TcpCommunicationSpi is used by default and should be explicitly configured only if some SPI configuration parameters
need to be overridden.
<pre name="code" class="java">
TcpCommunicationSpi commSpi = new TcpCommunicationSpi();
// Override local port.
commSpi.setLocalPort(4321);
IgniteConfiguration cfg = new IgniteConfiguration();
// Override default communication SPI.
cfg.setCommunicationSpi(commSpi);
// Start grid.
Ignition.start(cfg);
</pre>
<h2 class="header">Spring Example</h2>
TcpCommunicationSpi can be configured from Spring XML configuration file:
<pre name="code" class="xml">
&lt;bean id="grid.custom.cfg" class="org.apache.ignite.configuration.IgniteConfiguration" singleton="true"&gt;
...
&lt;property name="communicationSpi"&gt;
&lt;bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi"&gt;
&lt;!-- Override local port. --&gt;
&lt;property name="localPort" value="4321"/&gt;
&lt;/bean&gt;
&lt;/property&gt;
...
&lt;/bean&gt;
</pre>
<p>
<img src="http://ignite.apache.org/images/spring-small.png">
<br>
For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/ignite/spi/communication/CommunicationSpi.html" title="interface in org.apache.ignite.spi.communication"><code>CommunicationSpi</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#ATTR_ADDRS">ATTR_ADDRS</a></span></code>
<div class="block">Node attribute that is mapped to node IP addresses (value is <tt>comm.tcp.addrs</tt>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#ATTR_EXT_ADDRS">ATTR_EXT_ADDRS</a></span></code>
<div class="block">Node attribute that is mapped to node's external addresses (value is <tt>comm.tcp.ext-addrs</tt>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#ATTR_FORCE_CLIENT_SERVER_CONNECTIONS">ATTR_FORCE_CLIENT_SERVER_CONNECTIONS</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#ATTR_HOST_NAMES">ATTR_HOST_NAMES</a></span></code>
<div class="block">Node attribute that is mapped to node host names (value is <tt>comm.tcp.host.names</tt>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#ATTR_PAIRED_CONN">ATTR_PAIRED_CONN</a></span></code>
<div class="block">Attr paired connection.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#ATTR_PORT">ATTR_PORT</a></span></code>
<div class="block">Node attribute that is mapped to node port number (value is <tt>comm.tcp.port</tt>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#ATTR_SHMEM_PORT">ATTR_SHMEM_PORT</a></span></code>
<div class="block">Node attribute that is mapped to node port number (value is <tt>comm.shmem.tcp.port</tt>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#COMMUNICATION_METRICS_GROUP_NAME">COMMUNICATION_METRICS_GROUP_NAME</a></span></code>
<div class="block">Communication metrics group name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#CONN_IDX_META">CONN_IDX_META</a></span></code>
<div class="block">Connection index meta for session.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#CONSISTENT_ID_META">CONSISTENT_ID_META</a></span></code>
<div class="block">Node consistent id meta for session.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_ACK_SND_THRESHOLD">DFLT_ACK_SND_THRESHOLD</a></span></code>
<div class="block">Default received messages threshold for sending ack.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_CONN_PER_NODE">DFLT_CONN_PER_NODE</a></span></code>
<div class="block">Default connections per node.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_CONN_TIMEOUT">DFLT_CONN_TIMEOUT</a></span></code>
<div class="block">Default connection timeout (value is <tt>5000</tt>ms).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_FILTER_REACHABLE_ADDRESSES">DFLT_FILTER_REACHABLE_ADDRESSES</a></span></code>
<div class="block">Default value for <code>FILTER_REACHABLE_ADDRESSES</code> socket option (value is <tt>false</tt>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_IDLE_CONN_TIMEOUT">DFLT_IDLE_CONN_TIMEOUT</a></span></code>
<div class="block">Default idle connection timeout (value is <tt>10</tt>min).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_MAX_CONN_TIMEOUT">DFLT_MAX_CONN_TIMEOUT</a></span></code>
<div class="block">Default Maximum connection timeout (value is <tt>600,000</tt>ms).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_MSG_QUEUE_LIMIT">DFLT_MSG_QUEUE_LIMIT</a></span></code>
<div class="block">Default message queue limit per connection (for incoming and outgoing .</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_PORT">DFLT_PORT</a></span></code>
<div class="block">Default port which node sets listener to (value is <tt>47100</tt>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_PORT_RANGE">DFLT_PORT_RANGE</a></span></code>
<div class="block">Default local port range (value is <tt>100</tt>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_RECONNECT_CNT">DFLT_RECONNECT_CNT</a></span></code>
<div class="block">Default reconnect attempts count (value is <tt>10</tt>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_SELECTORS_CNT">DFLT_SELECTORS_CNT</a></span></code>
<div class="block">Default count of selectors for TCP server equals to <code>"Math.max(4, Runtime.getRuntime().availableProcessors()
/ 2)"</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_SHMEM_PORT">DFLT_SHMEM_PORT</a></span></code>
<div class="block">Default port which node sets listener for shared memory connections (value is <tt>48100</tt>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_SOCK_BUF_SIZE">DFLT_SOCK_BUF_SIZE</a></span></code>
<div class="block">Default socket send and receive buffer size.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_SOCK_WRITE_TIMEOUT">DFLT_SOCK_WRITE_TIMEOUT</a></span></code>
<div class="block">Default socket write timeout.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DFLT_TCP_NODELAY">DFLT_TCP_NODELAY</a></span></code>
<div class="block">Default value for <code>TCP_NODELAY</code> socket option (value is <tt>true</tt>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#DISABLED_CLIENT_PORT">DISABLED_CLIENT_PORT</a></span></code>
<div class="block">Client nodes might have port <code>0</code> if they have no server socket opened.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static short</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#HANDSHAKE_MSG_TYPE">HANDSHAKE_MSG_TYPE</a></span></code>
<div class="block">Handshake message type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static short</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#HANDSHAKE_WAIT_MSG_TYPE">HANDSHAKE_WAIT_MSG_TYPE</a></span></code>
<div class="block">Handshake wait message type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static short</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#NODE_ID_MSG_TYPE">NODE_ID_MSG_TYPE</a></span></code>
<div class="block">Node ID message type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#OUT_OF_RESOURCES_TCP_MSG">OUT_OF_RESOURCES_TCP_MSG</a></span></code>
<div class="block">IPC error message.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC">RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC</a></span></code>
<div class="block">Received messages by node consistent id metric description.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME">RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME</a></span></code>
<div class="block">Received messages by node consistent id metric name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#RECEIVED_MESSAGES_BY_TYPE_METRIC_DESC">RECEIVED_MESSAGES_BY_TYPE_METRIC_DESC</a></span></code>
<div class="block">Received messages by type metric description.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#RECEIVED_MESSAGES_BY_TYPE_METRIC_NAME">RECEIVED_MESSAGES_BY_TYPE_METRIC_NAME</a></span></code>
<div class="block">Received messages by type metric name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#RECEIVED_MESSAGES_METRIC_DESC">RECEIVED_MESSAGES_METRIC_DESC</a></span></code>
<div class="block">Received messages metric description.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#RECEIVED_MESSAGES_METRIC_NAME">RECEIVED_MESSAGES_METRIC_NAME</a></span></code>
<div class="block">Received messages metric name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static short</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#RECOVERY_LAST_ID_MSG_TYPE">RECOVERY_LAST_ID_MSG_TYPE</a></span></code>
<div class="block">Recovery last received ID message type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC">SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC</a></span></code>
<div class="block">Sent messages by node consistent id metric description.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME">SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME</a></span></code>
<div class="block">Sent messages by node consistent id metric name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#SENT_MESSAGES_BY_TYPE_METRIC_DESC">SENT_MESSAGES_BY_TYPE_METRIC_DESC</a></span></code>
<div class="block">Sent messages by type metric description.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#SENT_MESSAGES_BY_TYPE_METRIC_NAME">SENT_MESSAGES_BY_TYPE_METRIC_NAME</a></span></code>
<div class="block">Sent messages by type metric name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#SENT_MESSAGES_METRIC_DESC">SENT_MESSAGES_METRIC_DESC</a></span></code>
<div class="block">Sent messages metric description.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#SENT_MESSAGES_METRIC_NAME">SENT_MESSAGES_METRIC_NAME</a></span></code>
<div class="block">Sent messages metric name.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.ignite.spi.communication.tcp.internal.TcpCommunicationConfigInitializer">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.ignite.spi.communication.tcp.internal.TcpCommunicationConfigInitializer</h3>
<code>attributeNames, cfg, connPlc, metricsLsnr, shmemSrv, tracing</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.ignite.spi.IgniteSpiAdapter">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#ignite">ignite</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#igniteInstanceName">igniteInstanceName</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#TcpCommunicationSpi--">TcpCommunicationSpi</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#checkConfigurationConsistency0-org.apache.ignite.spi.IgniteSpiContext-org.apache.ignite.cluster.ClusterNode-boolean-">checkConfigurationConsistency0</a></span>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiContext.html" title="interface in org.apache.ignite.spi">IgniteSpiContext</a>&nbsp;spiCtx,
<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
boolean&nbsp;starting)</code>
<div class="block">Method which is called in the end of checkConfigurationConsistency() method.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/lang/IgniteFuture.html" title="interface in org.apache.ignite.lang">IgniteFuture</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html?is-external=true" title="class or interface in java.util">BitSet</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#checkConnection-java.util.List-">checkConnection</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;nodes)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected org.apache.ignite.internal.util.nio.GridCommunicationClient</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#createTcpClient-org.apache.ignite.cluster.ClusterNode-int-">createTcpClient</a></span>(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
int&nbsp;connIdx)</code>
<div class="block">Establish TCP connection to remote node and returns client.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>org.apache.ignite.internal.IgniteInternalFuture<span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#dumpNodeStatistics-java.util.UUID-">dumpNodeStatistics</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;nodeId)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#dumpStats--">dumpStats</a></span>()</code>
<div class="block">Dumps SPI per-connection stats to logs.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/communication/CommunicationListener.html" title="interface in org.apache.ignite.spi.communication">CommunicationListener</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getListener--">getListener</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getOutboundMessagesQueueSize--">getOutboundMessagesQueueSize</a></span>()</code>
<div class="block">Gets outbound messages queue size.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getReceivedBytesCount--">getReceivedBytesCount</a></span>()</code>
<div class="block">Gets received bytes count.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getReceivedMessagesByNode--">getReceivedMessagesByNode</a></span>()</code>
<div class="block">Gets received messages counts (grouped by node).</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getReceivedMessagesByType--">getReceivedMessagesByType</a></span>()</code>
<div class="block">Gets received messages counts (grouped by type).</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getReceivedMessagesCount--">getReceivedMessagesCount</a></span>()</code>
<div class="block">Gets received messages count.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getSentBytesCount--">getSentBytesCount</a></span>()</code>
<div class="block">Gets sent bytes count.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getSentMessagesByNode--">getSentMessagesByNode</a></span>()</code>
<div class="block">Gets sent messages counts (grouped by node).</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getSentMessagesByType--">getSentMessagesByType</a></span>()</code>
<div class="block">Gets sent messages counts (grouped by type).</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getSentMessagesCount--">getSentMessagesCount</a></span>()</code>
<div class="block">Gets sent messages count.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiContext.html" title="interface in org.apache.ignite.spi">IgniteSpiContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#getSpiContext--">getSpiContext</a></span>()</code>
<div class="block">Gets SPI context.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static short</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#makeMessageType-byte-byte-">makeMessageType</a></span>(byte&nbsp;b0,
byte&nbsp;b1)</code>
<div class="block">Concatenates the two parameter bytes to form a message type value.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#nodeAddresses-org.apache.ignite.cluster.ClusterNode-boolean-">nodeAddresses</a></span>(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
boolean&nbsp;filterReachableAddrs)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#notifyListener-java.util.UUID-org.apache.ignite.plugin.extensions.communication.Message-org.apache.ignite.lang.IgniteRunnable-">notifyListener</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;sndId,
<a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a>&nbsp;msg,
<a href="../../../../../../org/apache/ignite/lang/IgniteRunnable.html" title="interface in org.apache.ignite.lang">IgniteRunnable</a>&nbsp;msgC)</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#onClientDisconnected-org.apache.ignite.lang.IgniteFuture-">onClientDisconnected</a></span>(<a href="../../../../../../org/apache/ignite/lang/IgniteFuture.html" title="interface in org.apache.ignite.lang">IgniteFuture</a><span class='angle_bracket'>&lt;</span>?<span class='angle_bracket'>&gt;</span>&nbsp;reconnectFut)</code>
<div class="block">Client node disconnected callback.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#onClientReconnected-boolean-">onClientReconnected</a></span>(boolean&nbsp;clusterRestarted)</code>
<div class="block">Client node reconnected callback.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#onContextDestroyed0--">onContextDestroyed0</a></span>()</code>
<div class="block">Method to be called in the beginning of onContextDestroyed() method.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#onContextInitialized0-org.apache.ignite.spi.IgniteSpiContext-">onContextInitialized0</a></span>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiContext.html" title="interface in org.apache.ignite.spi">IgniteSpiContext</a>&nbsp;spiCtx)</code>
<div class="block">Method to be called in the end of onContextInitialized method.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>org.apache.ignite.internal.IgniteInternalFuture<span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/Channel.html?is-external=true" title="class or interface in java.nio.channels">Channel</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#openChannel-org.apache.ignite.cluster.ClusterNode-org.apache.ignite.plugin.extensions.communication.Message-">openChannel</a></span>(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;remote,
<a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a>&nbsp;initMsg)</code>&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#processSessionCreationError-org.apache.ignite.cluster.ClusterNode-java.util.Collection-org.apache.ignite.IgniteCheckedException-">processSessionCreationError</a></span>(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span>&nbsp;addrs,
<a href="../../../../../../org/apache/ignite/IgniteCheckedException.html" title="class in org.apache.ignite">IgniteCheckedException</a>&nbsp;errs)</code>
<div class="block">Process errors if TCP/IP <code>GridNioSession</code> creation to remote node hasn't been performed.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#resetMetrics--">resetMetrics</a></span>()</code>
<div class="block">Resets metrics for this SPI instance.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#sendMessage-org.apache.ignite.cluster.ClusterNode-org.apache.ignite.plugin.extensions.communication.Message-">sendMessage</a></span>(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
<a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a>&nbsp;msg)</code>
<div class="block">Sends given message to destination node.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#sendMessage-org.apache.ignite.cluster.ClusterNode-org.apache.ignite.plugin.extensions.communication.Message-org.apache.ignite.lang.IgniteInClosure-">sendMessage</a></span>(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
<a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a>&nbsp;msg,
<a href="../../../../../../org/apache/ignite/lang/IgniteInClosure.html" title="interface in org.apache.ignite.lang">IgniteInClosure</a><span class='angle_bracket'>&lt;</span><a href="../../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a><span class='angle_bracket'>&gt;</span>&nbsp;ackC)</code>
<div class="block">Sends given message to destination node.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#setListener-org.apache.ignite.spi.communication.CommunicationListener-">setListener</a></span>(<a href="../../../../../../org/apache/ignite/spi/communication/CommunicationListener.html" title="interface in org.apache.ignite.spi.communication">CommunicationListener</a><span class='angle_bracket'>&lt;</span><a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a><span class='angle_bracket'>&gt;</span>&nbsp;lsnr)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#simulateNodeFailure--">simulateNodeFailure</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">you should you DI and get instances of [nioSrvWrapper, commWorker, clientPool] via it.</span></div>
</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#spiStart-java.lang.String-">spiStart</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;igniteInstanceName)</code>
<div class="block">This method is called to start SPI.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#spiStop--">spiStop</a></span>()</code>
<div class="block">This method is called to stop SPI.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#toString--">toString</a></span>()</code></td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html#writeMessageType-java.nio.ByteBuffer-short-">writeMessageType</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
short&nbsp;type)</code>
<div class="block">Write message type to byte buffer.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.ignite.spi.communication.tcp.internal.TcpCommunicationConfigInitializer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.ignite.spi.communication.tcp.internal.TcpCommunicationConfigInitializer</h3>
<code>boundPort, failureDetectionTimeout, failureDetectionTimeoutEnabled, failureDetectionTimeoutEnabled, forceClientToServerConnections, getAckSendThreshold, getAddressResolver, getConnectionsPerNode, getConnectTimeout, getIdleConnectionTimeout, getLocalAddress, getLocalPort, getLocalPortRange, getMaxConnectTimeout, getMessageQueueLimit, getNodeAttributes, getReconnectCount, getSelectorsCount, getSelectorSpins, getSharedMemoryPort, getSlowClientQueueLimit, getSocketReceiveBuffer, getSocketSendBuffer, getSocketWriteTimeout, getUnacknowledgedMessagesBufferSize, injectResources, isDirectBuffer, isDirectSendBuffer, isFilterReachableAddresses, isTcpNoDelay, isUsePairedConnections, resetShmemServer, setAckSendThreshold, setAddressResolver, setConnectionRequestor, setConnectionsPerNode, setConnectTimeout, setDirectBuffer, setDirectSendBuffer, setFilterReachableAddresses, setForceClientToServerConnections, setIdleConnectionTimeout, setLocalAddress, setLocalPort, setLocalPortRange, setMaxConnectTimeout, setMessageQueueLimit, setName, setReconnectCount, setSelectorsCount, setSelectorSpins, setSharedMemoryPort, setSlowClientQueueLimit, setSocketReceiveBuffer, setSocketSendBuffer, setSocketWriteTimeout, setTcpNoDelay, setUnacknowledgedMessagesBufferSize, setUsePairedConnections</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.ignite.spi.IgniteSpiAdapter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#addTimeoutObject-org.apache.ignite.spi.IgniteSpiTimeoutObject-">addTimeoutObject</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#assertParameter-boolean-java.lang.String-">assertParameter</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#clientFailureDetectionTimeout--">clientFailureDetectionTimeout</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#configInfo-java.lang.String-java.lang.Object-">configInfo</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#createSpiAttributeName-java.lang.String-">createSpiAttributeName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getConsistentAttributeNames--">getConsistentAttributeNames</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getExceptionRegistry--">getExceptionRegistry</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getLocalNode--">getLocalNode</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getName--">getName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#ignite--">ignite</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#initFailureDetectionTimeout--">initFailureDetectionTimeout</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#injectables--">injectables</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#isNodeStopping--">isNodeStopping</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onBeforeStart--">onBeforeStart</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextDestroyed--">onContextDestroyed</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextInitialized-org.apache.ignite.spi.IgniteSpiContext-">onContextInitialized</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#registerMBean-java.lang.String-T-java.lang.Class-">registerMBean</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#removeTimeoutObject-org.apache.ignite.spi.IgniteSpiTimeoutObject-">removeTimeoutObject</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#started--">started</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#startInfo--">startInfo</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#startStopwatch--">startStopwatch</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#stopInfo--">stopInfo</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#unregisterMBean--">unregisterMBean</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.ignite.spi.IgniteSpi">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#getName--">getName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onContextDestroyed--">onContextDestroyed</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onContextInitialized-org.apache.ignite.spi.IgniteSpiContext-">onContextInitialized</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="OUT_OF_RESOURCES_TCP_MSG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OUT_OF_RESOURCES_TCP_MSG</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> OUT_OF_RESOURCES_TCP_MSG</pre>
<div class="block">IPC error message.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.OUT_OF_RESOURCES_TCP_MSG">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ATTR_ADDRS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ATTR_ADDRS</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ATTR_ADDRS</pre>
<div class="block">Node attribute that is mapped to node IP addresses (value is <tt>comm.tcp.addrs</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.ATTR_ADDRS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ATTR_HOST_NAMES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ATTR_HOST_NAMES</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ATTR_HOST_NAMES</pre>
<div class="block">Node attribute that is mapped to node host names (value is <tt>comm.tcp.host.names</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.ATTR_HOST_NAMES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ATTR_PORT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ATTR_PORT</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ATTR_PORT</pre>
<div class="block">Node attribute that is mapped to node port number (value is <tt>comm.tcp.port</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.ATTR_PORT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ATTR_SHMEM_PORT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ATTR_SHMEM_PORT</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ATTR_SHMEM_PORT</pre>
<div class="block">Node attribute that is mapped to node port number (value is <tt>comm.shmem.tcp.port</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.ATTR_SHMEM_PORT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ATTR_EXT_ADDRS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ATTR_EXT_ADDRS</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ATTR_EXT_ADDRS</pre>
<div class="block">Node attribute that is mapped to node's external addresses (value is <tt>comm.tcp.ext-addrs</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.ATTR_EXT_ADDRS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ATTR_PAIRED_CONN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ATTR_PAIRED_CONN</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ATTR_PAIRED_CONN</pre>
<div class="block">Attr paired connection.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.ATTR_PAIRED_CONN">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_PORT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_PORT</h4>
<pre>public static final&nbsp;int DFLT_PORT</pre>
<div class="block">Default port which node sets listener to (value is <tt>47100</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_PORT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_SHMEM_PORT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_SHMEM_PORT</h4>
<pre>public static final&nbsp;int DFLT_SHMEM_PORT</pre>
<div class="block">Default port which node sets listener for shared memory connections (value is <tt>48100</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_SHMEM_PORT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_IDLE_CONN_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_IDLE_CONN_TIMEOUT</h4>
<pre>public static final&nbsp;long DFLT_IDLE_CONN_TIMEOUT</pre>
<div class="block">Default idle connection timeout (value is <tt>10</tt>min).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_IDLE_CONN_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_SOCK_BUF_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_SOCK_BUF_SIZE</h4>
<pre>public static final&nbsp;int DFLT_SOCK_BUF_SIZE</pre>
<div class="block">Default socket send and receive buffer size.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_SOCK_BUF_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_CONN_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_CONN_TIMEOUT</h4>
<pre>public static final&nbsp;long DFLT_CONN_TIMEOUT</pre>
<div class="block">Default connection timeout (value is <tt>5000</tt>ms).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_CONN_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_MAX_CONN_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_MAX_CONN_TIMEOUT</h4>
<pre>public static final&nbsp;long DFLT_MAX_CONN_TIMEOUT</pre>
<div class="block">Default Maximum connection timeout (value is <tt>600,000</tt>ms).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_MAX_CONN_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_RECONNECT_CNT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_RECONNECT_CNT</h4>
<pre>public static final&nbsp;int DFLT_RECONNECT_CNT</pre>
<div class="block">Default reconnect attempts count (value is <tt>10</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_RECONNECT_CNT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_MSG_QUEUE_LIMIT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_MSG_QUEUE_LIMIT</h4>
<pre>public static final&nbsp;int DFLT_MSG_QUEUE_LIMIT</pre>
<div class="block">Default message queue limit per connection (for incoming and outgoing .</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_MSG_QUEUE_LIMIT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_SELECTORS_CNT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_SELECTORS_CNT</h4>
<pre>public static final&nbsp;int DFLT_SELECTORS_CNT</pre>
<div class="block">Default count of selectors for TCP server equals to <code>"Math.max(4, Runtime.getRuntime().availableProcessors()
/ 2)"</code>.</div>
</li>
</ul>
<a name="CONN_IDX_META">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CONN_IDX_META</h4>
<pre>public static final&nbsp;int CONN_IDX_META</pre>
<div class="block">Connection index meta for session.</div>
</li>
</ul>
<a name="CONSISTENT_ID_META">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CONSISTENT_ID_META</h4>
<pre>public static final&nbsp;int CONSISTENT_ID_META</pre>
<div class="block">Node consistent id meta for session.</div>
</li>
</ul>
<a name="DFLT_PORT_RANGE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_PORT_RANGE</h4>
<pre>public static final&nbsp;int DFLT_PORT_RANGE</pre>
<div class="block">Default local port range (value is <tt>100</tt>). See <code>TcpCommunicationConfigInitializer.setLocalPortRange(int)</code> for details.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_PORT_RANGE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_TCP_NODELAY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_TCP_NODELAY</h4>
<pre>public static final&nbsp;boolean DFLT_TCP_NODELAY</pre>
<div class="block">Default value for <code>TCP_NODELAY</code> socket option (value is <tt>true</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_TCP_NODELAY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_FILTER_REACHABLE_ADDRESSES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_FILTER_REACHABLE_ADDRESSES</h4>
<pre>public static final&nbsp;boolean DFLT_FILTER_REACHABLE_ADDRESSES</pre>
<div class="block">Default value for <code>FILTER_REACHABLE_ADDRESSES</code> socket option (value is <tt>false</tt>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_FILTER_REACHABLE_ADDRESSES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_ACK_SND_THRESHOLD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_ACK_SND_THRESHOLD</h4>
<pre>public static final&nbsp;int DFLT_ACK_SND_THRESHOLD</pre>
<div class="block">Default received messages threshold for sending ack.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_ACK_SND_THRESHOLD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_SOCK_WRITE_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_SOCK_WRITE_TIMEOUT</h4>
<pre>public static final&nbsp;long DFLT_SOCK_WRITE_TIMEOUT</pre>
<div class="block">Default socket write timeout.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_SOCK_WRITE_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_CONN_PER_NODE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_CONN_PER_NODE</h4>
<pre>public static final&nbsp;int DFLT_CONN_PER_NODE</pre>
<div class="block">Default connections per node.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.DFLT_CONN_PER_NODE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NODE_ID_MSG_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NODE_ID_MSG_TYPE</h4>
<pre>public static final&nbsp;short NODE_ID_MSG_TYPE</pre>
<div class="block">Node ID message type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.NODE_ID_MSG_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECOVERY_LAST_ID_MSG_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECOVERY_LAST_ID_MSG_TYPE</h4>
<pre>public static final&nbsp;short RECOVERY_LAST_ID_MSG_TYPE</pre>
<div class="block">Recovery last received ID message type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.RECOVERY_LAST_ID_MSG_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="HANDSHAKE_MSG_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HANDSHAKE_MSG_TYPE</h4>
<pre>public static final&nbsp;short HANDSHAKE_MSG_TYPE</pre>
<div class="block">Handshake message type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.HANDSHAKE_MSG_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="HANDSHAKE_WAIT_MSG_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HANDSHAKE_WAIT_MSG_TYPE</h4>
<pre>public static final&nbsp;short HANDSHAKE_WAIT_MSG_TYPE</pre>
<div class="block">Handshake wait message type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.HANDSHAKE_WAIT_MSG_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="COMMUNICATION_METRICS_GROUP_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMMUNICATION_METRICS_GROUP_NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> COMMUNICATION_METRICS_GROUP_NAME</pre>
<div class="block">Communication metrics group name.</div>
</li>
</ul>
<a name="SENT_MESSAGES_METRIC_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SENT_MESSAGES_METRIC_NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> SENT_MESSAGES_METRIC_NAME</pre>
<div class="block">Sent messages metric name.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.SENT_MESSAGES_METRIC_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SENT_MESSAGES_METRIC_DESC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SENT_MESSAGES_METRIC_DESC</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> SENT_MESSAGES_METRIC_DESC</pre>
<div class="block">Sent messages metric description.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.SENT_MESSAGES_METRIC_DESC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECEIVED_MESSAGES_METRIC_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECEIVED_MESSAGES_METRIC_NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> RECEIVED_MESSAGES_METRIC_NAME</pre>
<div class="block">Received messages metric name.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.RECEIVED_MESSAGES_METRIC_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECEIVED_MESSAGES_METRIC_DESC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECEIVED_MESSAGES_METRIC_DESC</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> RECEIVED_MESSAGES_METRIC_DESC</pre>
<div class="block">Received messages metric description.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.RECEIVED_MESSAGES_METRIC_DESC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SENT_MESSAGES_BY_TYPE_METRIC_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SENT_MESSAGES_BY_TYPE_METRIC_NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> SENT_MESSAGES_BY_TYPE_METRIC_NAME</pre>
<div class="block">Sent messages by type metric name.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.SENT_MESSAGES_BY_TYPE_METRIC_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SENT_MESSAGES_BY_TYPE_METRIC_DESC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SENT_MESSAGES_BY_TYPE_METRIC_DESC</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> SENT_MESSAGES_BY_TYPE_METRIC_DESC</pre>
<div class="block">Sent messages by type metric description.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.SENT_MESSAGES_BY_TYPE_METRIC_DESC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECEIVED_MESSAGES_BY_TYPE_METRIC_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECEIVED_MESSAGES_BY_TYPE_METRIC_NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> RECEIVED_MESSAGES_BY_TYPE_METRIC_NAME</pre>
<div class="block">Received messages by type metric name.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.RECEIVED_MESSAGES_BY_TYPE_METRIC_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECEIVED_MESSAGES_BY_TYPE_METRIC_DESC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECEIVED_MESSAGES_BY_TYPE_METRIC_DESC</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> RECEIVED_MESSAGES_BY_TYPE_METRIC_DESC</pre>
<div class="block">Received messages by type metric description.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.RECEIVED_MESSAGES_BY_TYPE_METRIC_DESC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME</pre>
<div class="block">Sent messages by node consistent id metric name.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC</pre>
<div class="block">Sent messages by node consistent id metric description.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.SENT_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME</pre>
<div class="block">Received messages by node consistent id metric name.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC</pre>
<div class="block">Received messages by node consistent id metric description.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.RECEIVED_MESSAGES_BY_NODE_CONSISTENT_ID_METRIC_DESC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DISABLED_CLIENT_PORT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DISABLED_CLIENT_PORT</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> DISABLED_CLIENT_PORT</pre>
<div class="block">Client nodes might have port <code>0</code> if they have no server socket opened.</div>
</li>
</ul>
<a name="ATTR_FORCE_CLIENT_SERVER_CONNECTIONS">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ATTR_FORCE_CLIENT_SERVER_CONNECTIONS</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ATTR_FORCE_CLIENT_SERVER_CONNECTIONS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.ATTR_FORCE_CLIENT_SERVER_CONNECTIONS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="TcpCommunicationSpi--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TcpCommunicationSpi</h4>
<pre>public&nbsp;TcpCommunicationSpi()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setListener-org.apache.ignite.spi.communication.CommunicationListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setListener</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public&nbsp;void&nbsp;setListener(<a href="../../../../../../org/apache/ignite/spi/communication/CommunicationListener.html" title="interface in org.apache.ignite.spi.communication">CommunicationListener</a><span class='angle_bracket'>&lt;</span><a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a><span class='angle_bracket'>&gt;</span>&nbsp;lsnr)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Set communication listener. This call should be change after refactoring. It produces dependency hell. Because <code>GridIoManager</code> set it after self construct.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lsnr</code> - Listener to set or <code>null</code> to unset the listener.</dd>
</dl>
</li>
</ul>
<a name="getListener--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getListener</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/ignite/spi/communication/CommunicationListener.html" title="interface in org.apache.ignite.spi.communication">CommunicationListener</a>&nbsp;getListener()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Listener.</dd>
</dl>
</li>
</ul>
<a name="getSentMessagesCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSentMessagesCount</h4>
<pre>public&nbsp;int&nbsp;getSentMessagesCount()</pre>
<div class="block">Gets sent messages count.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Sent messages count.</dd>
</dl>
</li>
</ul>
<a name="getSentBytesCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSentBytesCount</h4>
<pre>public&nbsp;long&nbsp;getSentBytesCount()</pre>
<div class="block">Gets sent bytes count.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Sent bytes count.</dd>
</dl>
</li>
</ul>
<a name="getReceivedMessagesCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReceivedMessagesCount</h4>
<pre>public&nbsp;int&nbsp;getReceivedMessagesCount()</pre>
<div class="block">Gets received messages count.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Received messages count.</dd>
</dl>
</li>
</ul>
<a name="getReceivedBytesCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReceivedBytesCount</h4>
<pre>public&nbsp;long&nbsp;getReceivedBytesCount()</pre>
<div class="block">Gets received bytes count.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Received bytes count.</dd>
</dl>
</li>
</ul>
<a name="getReceivedMessagesByType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReceivedMessagesByType</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a><span class='angle_bracket'>&gt;</span>&nbsp;getReceivedMessagesByType()</pre>
<div class="block">Gets received messages counts (grouped by type).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map containing message types and respective counts.</dd>
</dl>
</li>
</ul>
<a name="getReceivedMessagesByNode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReceivedMessagesByNode</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a><span class='angle_bracket'>&gt;</span>&nbsp;getReceivedMessagesByNode()</pre>
<div class="block">Gets received messages counts (grouped by node).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map containing sender nodes and respective counts.</dd>
</dl>
</li>
</ul>
<a name="getSentMessagesByType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSentMessagesByType</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a><span class='angle_bracket'>&gt;</span>&nbsp;getSentMessagesByType()</pre>
<div class="block">Gets sent messages counts (grouped by type).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map containing message types and respective counts.</dd>
</dl>
</li>
</ul>
<a name="getSentMessagesByNode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSentMessagesByNode</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a><span class='angle_bracket'>&gt;</span>&nbsp;getSentMessagesByNode()</pre>
<div class="block">Gets sent messages counts (grouped by node).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map containing receiver nodes and respective counts.</dd>
</dl>
</li>
</ul>
<a name="getOutboundMessagesQueueSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutboundMessagesQueueSize</h4>
<pre>public&nbsp;int&nbsp;getOutboundMessagesQueueSize()</pre>
<div class="block">Gets outbound messages queue size.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Outbound messages queue size.</dd>
</dl>
</li>
</ul>
<a name="resetMetrics--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetMetrics</h4>
<pre>public&nbsp;void&nbsp;resetMetrics()</pre>
<div class="block">Resets metrics for this SPI instance.</div>
</li>
</ul>
<a name="dumpNodeStatistics-java.util.UUID-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dumpNodeStatistics</h4>
<pre>public&nbsp;org.apache.ignite.internal.IgniteInternalFuture<span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a><span class='angle_bracket'>&gt;</span>&nbsp;dumpNodeStatistics(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;nodeId)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nodeId</code> - Target node ID.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Future.</dd>
</dl>
</li>
</ul>
<a name="dumpStats--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dumpStats</h4>
<pre>public&nbsp;void&nbsp;dumpStats()</pre>
<div class="block">Dumps SPI per-connection stats to logs.</div>
</li>
</ul>
<a name="spiStart-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>spiStart</h4>
<pre>public&nbsp;void&nbsp;spiStart(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;igniteInstanceName)
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">This method is called to start SPI. After this method returns
successfully kernel assumes that SPI is fully operational.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>igniteInstanceName</code> - Name of Ignite instance this SPI is being started for
(<code>null</code> for default Ignite instance).</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - Throws in case of any error during SPI start.</dd>
</dl>
</li>
</ul>
<a name="onContextInitialized0-org.apache.ignite.spi.IgniteSpiContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onContextInitialized0</h4>
<pre>public&nbsp;void&nbsp;onContextInitialized0(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiContext.html" title="interface in org.apache.ignite.spi">IgniteSpiContext</a>&nbsp;spiCtx)
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">Method to be called in the end of onContextInitialized method. }</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextInitialized0-org.apache.ignite.spi.IgniteSpiContext-">onContextInitialized0</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>spiCtx</code> - SPI context.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - In case of errors.</dd>
</dl>
</li>
</ul>
<a name="getSpiContext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSpiContext</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/ignite/spi/IgniteSpiContext.html" title="interface in org.apache.ignite.spi">IgniteSpiContext</a>&nbsp;getSpiContext()</pre>
<div class="block">Gets SPI context.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getSpiContext--">getSpiContext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>SPI context.</dd>
</dl>
</li>
</ul>
<a name="spiStop--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>spiStop</h4>
<pre>public&nbsp;void&nbsp;spiStop()
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">This method is called to stop SPI. After this method returns kernel
assumes that this SPI is finished and all resources acquired by it
are released.
<p>
<b>
Note that this method can be called at any point including during
recovery of failed start. It should make no assumptions on what state SPI
will be in when this method is called.
</b></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - Thrown in case of any error during SPI stop.</dd>
</dl>
</li>
</ul>
<a name="onContextDestroyed0--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onContextDestroyed0</h4>
<pre>protected&nbsp;void&nbsp;onContextDestroyed0()</pre>
<div class="block">Method to be called in the beginning of onContextDestroyed() method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextDestroyed0--">onContextDestroyed0</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
</dl>
</li>
</ul>
<a name="onClientDisconnected-org.apache.ignite.lang.IgniteFuture-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onClientDisconnected</h4>
<pre>public&nbsp;void&nbsp;onClientDisconnected(<a href="../../../../../../org/apache/ignite/lang/IgniteFuture.html" title="interface in org.apache.ignite.lang">IgniteFuture</a><span class='angle_bracket'>&lt;</span>?<span class='angle_bracket'>&gt;</span>&nbsp;reconnectFut)</pre>
<div class="block">Client node disconnected callback.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onClientDisconnected-org.apache.ignite.lang.IgniteFuture-">onClientDisconnected</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onClientDisconnected-org.apache.ignite.lang.IgniteFuture-">onClientDisconnected</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reconnectFut</code> - Future that will be completed when client reconnected.</dd>
</dl>
</li>
</ul>
<a name="onClientReconnected-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onClientReconnected</h4>
<pre>public&nbsp;void&nbsp;onClientReconnected(boolean&nbsp;clusterRestarted)</pre>
<div class="block">Client node reconnected callback.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onClientReconnected-boolean-">onClientReconnected</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onClientReconnected-boolean-">onClientReconnected</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clusterRestarted</code> - <code>True</code> if all cluster nodes restarted while client was disconnected.</dd>
</dl>
</li>
</ul>
<a name="checkConfigurationConsistency0-org.apache.ignite.spi.IgniteSpiContext-org.apache.ignite.cluster.ClusterNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkConfigurationConsistency0</h4>
<pre>protected&nbsp;void&nbsp;checkConfigurationConsistency0(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiContext.html" title="interface in org.apache.ignite.spi">IgniteSpiContext</a>&nbsp;spiCtx,
<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
boolean&nbsp;starting)
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">Method which is called in the end of checkConfigurationConsistency() method. May be overriden in SPIs.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#checkConfigurationConsistency0-org.apache.ignite.spi.IgniteSpiContext-org.apache.ignite.cluster.ClusterNode-boolean-">checkConfigurationConsistency0</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>spiCtx</code> - SPI context.</dd>
<dd><code>node</code> - Remote node.</dd>
<dd><code>starting</code> - If this node is starting or not.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - in case of errors.</dd>
</dl>
</li>
</ul>
<a name="openChannel-org.apache.ignite.cluster.ClusterNode-org.apache.ignite.plugin.extensions.communication.Message-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>openChannel</h4>
<pre>public&nbsp;org.apache.ignite.internal.IgniteInternalFuture<span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/Channel.html?is-external=true" title="class or interface in java.nio.channels">Channel</a><span class='angle_bracket'>&gt;</span>&nbsp;openChannel(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;remote,
<a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a>&nbsp;initMsg)
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>remote</code> - Destination cluster node to communicate with.</dd>
<dd><code>initMsg</code> - Configuration channel attributes wrapped into the message.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The future, which will be finished on channel ready.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - If fails.</dd>
</dl>
</li>
</ul>
<a name="sendMessage-org.apache.ignite.cluster.ClusterNode-org.apache.ignite.plugin.extensions.communication.Message-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendMessage</h4>
<pre>public&nbsp;void&nbsp;sendMessage(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
<a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a>&nbsp;msg)
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">Sends given message to destination node. Note that characteristics of the
exchange such as durability, guaranteed delivery or error notification is
dependant on SPI implementation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Destination node.</dd>
<dd><code>msg</code> - Message to send.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - Thrown in case of any error during sending the message.
Note that this is not guaranteed that failed communication will result
in thrown exception as this is dependant on SPI implementation.</dd>
</dl>
</li>
</ul>
<a name="checkConnection-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkConnection</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/ignite/lang/IgniteFuture.html" title="interface in org.apache.ignite.lang">IgniteFuture</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html?is-external=true" title="class or interface in java.util">BitSet</a><span class='angle_bracket'>&gt;</span>&nbsp;checkConnection(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;nodes)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nodes</code> - Nodes to check connection with.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Result future (each bit in result BitSet contains connection status to corresponding node).</dd>
</dl>
</li>
</ul>
<a name="sendMessage-org.apache.ignite.cluster.ClusterNode-org.apache.ignite.plugin.extensions.communication.Message-org.apache.ignite.lang.IgniteInClosure-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendMessage</h4>
<pre>public&nbsp;void&nbsp;sendMessage(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
<a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a>&nbsp;msg,
<a href="../../../../../../org/apache/ignite/lang/IgniteInClosure.html" title="interface in org.apache.ignite.lang">IgniteInClosure</a><span class='angle_bracket'>&lt;</span><a href="../../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a><span class='angle_bracket'>&gt;</span>&nbsp;ackC)
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">Sends given message to destination node. Note that characteristics of the exchange such as durability, guaranteed
delivery or error notification is dependant on SPI implementation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Destination node.</dd>
<dd><code>msg</code> - Message to send.</dd>
<dd><code>ackC</code> - Ack closure.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - Thrown in case of any error during sending the message. Note
that this is not guaranteed that failed communication will result in thrown exception as this is dependant on SPI
implementation.</dd>
</dl>
</li>
</ul>
<a name="nodeAddresses-org.apache.ignite.cluster.ClusterNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nodeAddresses</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span>&nbsp;nodeAddresses(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
boolean&nbsp;filterReachableAddrs)
throws <a href="../../../../../../org/apache/ignite/IgniteCheckedException.html" title="class in org.apache.ignite">IgniteCheckedException</a></pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Node.</dd>
<dd><code>filterReachableAddrs</code> - Filter addresses flag.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Node addresses.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/IgniteCheckedException.html" title="class in org.apache.ignite">IgniteCheckedException</a></code> - If node does not have addresses.</dd>
</dl>
</li>
</ul>
<a name="createTcpClient-org.apache.ignite.cluster.ClusterNode-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createTcpClient</h4>
<pre>protected&nbsp;org.apache.ignite.internal.util.nio.GridCommunicationClient&nbsp;createTcpClient(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
int&nbsp;connIdx)
throws <a href="../../../../../../org/apache/ignite/IgniteCheckedException.html" title="class in org.apache.ignite">IgniteCheckedException</a></pre>
<div class="block">Establish TCP connection to remote node and returns client.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Remote node.</dd>
<dd><code>connIdx</code> - Connection index.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Client.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/IgniteCheckedException.html" title="class in org.apache.ignite">IgniteCheckedException</a></code> - If failed.</dd>
</dl>
</li>
</ul>
<a name="processSessionCreationError-org.apache.ignite.cluster.ClusterNode-java.util.Collection-org.apache.ignite.IgniteCheckedException-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>processSessionCreationError</h4>
<pre>protected&nbsp;void&nbsp;processSessionCreationError(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a><span class='angle_bracket'>&gt;</span>&nbsp;addrs,
<a href="../../../../../../org/apache/ignite/IgniteCheckedException.html" title="class in org.apache.ignite">IgniteCheckedException</a>&nbsp;errs)
throws <a href="../../../../../../org/apache/ignite/IgniteCheckedException.html" title="class in org.apache.ignite">IgniteCheckedException</a></pre>
<div class="block">Process errors if TCP/IP <code>GridNioSession</code> creation to remote node hasn't been performed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Remote node.</dd>
<dd><code>addrs</code> - Remote node addresses.</dd>
<dd><code>errs</code> - TCP client creation errors.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/IgniteCheckedException.html" title="class in org.apache.ignite">IgniteCheckedException</a></code> - If failed.</dd>
</dl>
</li>
</ul>
<a name="notifyListener-java.util.UUID-org.apache.ignite.plugin.extensions.communication.Message-org.apache.ignite.lang.IgniteRunnable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyListener</h4>
<pre>protected&nbsp;void&nbsp;notifyListener(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;sndId,
<a href="../../../../../../org/apache/ignite/plugin/extensions/communication/Message.html" title="interface in org.apache.ignite.plugin.extensions.communication">Message</a>&nbsp;msg,
<a href="../../../../../../org/apache/ignite/lang/IgniteRunnable.html" title="interface in org.apache.ignite.lang">IgniteRunnable</a>&nbsp;msgC)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sndId</code> - Sender ID.</dd>
<dd><code>msg</code> - Communication message.</dd>
<dd><code>msgC</code> - Closure to call when message processing finished.</dd>
</dl>
</li>
</ul>
<a name="simulateNodeFailure--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simulateNodeFailure</h4>
<pre>@TestOnly
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public&nbsp;void&nbsp;simulateNodeFailure()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">you should you DI and get instances of [nioSrvWrapper, commWorker, clientPool] via it.</span></div>
<div class="block">Stops service threads to simulate node failure.
FOR TEST PURPOSES ONLY!!!</div>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="writeMessageType-java.nio.ByteBuffer-short-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeMessageType</h4>
<pre>public static&nbsp;void&nbsp;writeMessageType(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
short&nbsp;type)</pre>
<div class="block">Write message type to byte buffer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buf</code> - Byte buffer.</dd>
<dd><code>type</code> - Message type.</dd>
</dl>
</li>
</ul>
<a name="makeMessageType-byte-byte-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>makeMessageType</h4>
<pre>public static&nbsp;short&nbsp;makeMessageType(byte&nbsp;b0,
byte&nbsp;b1)</pre>
<div class="block">Concatenates the two parameter bytes to form a message type value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>b0</code> - The first byte.</dd>
<dd><code>b1</code> - The second byte.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TcpCommunicationSpi.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationMetricsListener.html" title="class in org.apache.ignite.spi.communication.tcp"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiMBean.html" title="interface in org.apache.ignite.spi.communication.tcp"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.html" target="_top">Frames</a></li>
<li><a href="TcpCommunicationSpi.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2021 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.11.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 20 2021 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>