blob: e13f7d449d9c1ea1d79055c8b91af9ecae271335 [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 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AbstractRpcClient (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractRpcClient (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":6,"i6":9,"i7":9,"i8":10,"i9":6,"i10":10,"i11":10,"i12":9,"i13":10,"i14":9,"i15":9,"i16":9,"i17":10,"i18":10,"i19":10,"i20":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete 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/AbstractRpcClient.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>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.AbstractRpcChannel.html" title="class in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" target="_top">Frames</a></li>
<li><a href="AbstractRpcClient.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><a href="#nested.class.summary">Nested</a>&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.hadoop.hbase.ipc</div>
<h2 title="Class AbstractRpcClient" class="title">Class AbstractRpcClient&lt;T extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a>&gt;</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>org.apache.hadoop.hbase.ipc.AbstractRpcClient&lt;T&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcClient.html" title="class in org.apache.hadoop.hbase.ipc">BlockingRpcClient</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/NettyRpcClient.html" title="class in org.apache.hadoop.hbase.ipc">NettyRpcClient</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.92">AbstractRpcClient</a>&lt;T extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a>&gt;
extends <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>
implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></pre>
<div class="block">Provides the basics for a RpcClient implementation like configuration and Logging.
<p>
Locking schema of the current IPC implementation
<ul>
<li>There is a lock in <a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" title="class in org.apache.hadoop.hbase.ipc"><code>AbstractRpcClient</code></a> to protect the fetching or creating
connection.</li>
<li>There is a lock in <a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc"><code>Call</code></a> to make sure that we can only finish the call once.</li>
<li>The same for <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc"><code>HBaseRpcController</code></a> as <a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc"><code>Call</code></a>. And see the comment of
<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html#notifyOnCancel-org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback-org.apache.hadoop.hbase.ipc.HBaseRpcController.CancellationCallback-"><code>HBaseRpcController.notifyOnCancel(RpcCallback, HBaseRpcController.CancellationCallback)</code></a>
of how to deal with cancel.</li>
<li>For connection implementation, the construction of a connection should be as fast as possible
because the creation is protected under a lock. Connect to remote side when needed. There is no
forced locking schema for a connection implementation.</li>
<li>For the locking order, the <a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc"><code>Call</code></a> and <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc"><code>HBaseRpcController</code></a>'s lock should be held
at last. So the callbacks in <a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc"><code>Call</code></a> and <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc"><code>HBaseRpcController</code></a> should be execute
outside the lock in <a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc"><code>Call</code></a> and <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc"><code>HBaseRpcController</code></a> which means the implementations
of the callbacks are free to hold any lock.</li>
</ul></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.AbstractRpcChannel.html" title="class in org.apache.hadoop.hbase.ipc">AbstractRpcClient.AbstractRpcChannel</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.BlockingRpcChannelImplementation.html" title="class in org.apache.hadoop.hbase.ipc">AbstractRpcClient.BlockingRpcChannelImplementation</a></span></code>
<div class="block">Blocking rpc channel that goes via hbase rpc.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.RpcChannelImplementation.html" title="class in org.apache.hadoop.hbase.ipc">AbstractRpcClient.RpcChannelImplementation</a></span></code>
<div class="block">Async rpc channel that goes via hbase rpc.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== 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>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#callIdCnt">callIdCnt</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/ipc/CellBlockBuilder.html" title="class in org.apache.hadoop.hbase.ipc">CellBlockBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#cellBlockBuilder">cellBlockBuilder</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledFuture.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledFuture</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#cleanupIdleConnectionTask">cleanupIdleConnectionTask</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <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/hadoop/hbase/ipc/AbstractRpcClient.html#clusterId">clusterId</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/codec/Codec.html" title="interface in org.apache.hadoop.hbase.codec">Codec</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#codec">codec</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected org.apache.hadoop.io.compress.CompressionCodec</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#compressor">compressor</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static org.apache.hbase.thirdparty.com.google.common.cache.LoadingCache&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#concurrentCounterCache">concurrentCounterCache</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected org.apache.hadoop.conf.Configuration</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#conf">conf</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.html" title="class in org.apache.hadoop.hbase.util">PoolMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/ConnectionId.html" title="class in org.apache.hadoop.hbase.ipc">ConnectionId</a>,<a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" title="type parameter in AbstractRpcClient">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#connections">connections</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#connectTO">connectTO</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/ipc/FailedServers.html" title="class in org.apache.hadoop.hbase.ipc">FailedServers</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#failedServers">failedServers</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#failureSleep">failureSleep</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#fallbackAllowed">fallbackAllowed</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#IDLE_CONN_SWEEPER">IDLE_CONN_SWEEPER</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/net/SocketAddress.html?is-external=true" title="class or interface in java.net">SocketAddress</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#localAddr">localAddr</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#maxConcurrentCallsPerServer">maxConcurrentCallsPerServer</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#maxRetries">maxRetries</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#metrics">metrics</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#minIdleTimeBeforeClose">minIdleTimeBeforeClose</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#readTO">readTO</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#running">running</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#tcpKeepAlive">tcpKeepAlive</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#tcpNoDelay">tcpNoDelay</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#userProvider">userProvider</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static org.apache.hbase.thirdparty.io.netty.util.HashedWheelTimer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#WHEEL_TIMER">WHEEL_TIMER</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#writeTO">writeTO</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.ipc.RpcClient">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#DEFAULT_CODEC_CLASS">DEFAULT_CODEC_CLASS</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#DEFAULT_SOCKET_TIMEOUT_CONNECT">DEFAULT_SOCKET_TIMEOUT_CONNECT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#DEFAULT_SOCKET_TIMEOUT_READ">DEFAULT_SOCKET_TIMEOUT_READ</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#DEFAULT_SOCKET_TIMEOUT_WRITE">DEFAULT_SOCKET_TIMEOUT_WRITE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#FAILED_SERVER_EXPIRY_DEFAULT">FAILED_SERVER_EXPIRY_DEFAULT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#FAILED_SERVER_EXPIRY_KEY">FAILED_SERVER_EXPIRY_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#IDLE_TIME">IDLE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#IPC_CLIENT_FALLBACK_TO_SIMPLE_AUTH_ALLOWED_DEFAULT">IPC_CLIENT_FALLBACK_TO_SIMPLE_AUTH_ALLOWED_DEFAULT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#IPC_CLIENT_FALLBACK_TO_SIMPLE_AUTH_ALLOWED_KEY">IPC_CLIENT_FALLBACK_TO_SIMPLE_AUTH_ALLOWED_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#PING_CALL_ID">PING_CALL_ID</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#SOCKET_TIMEOUT_CONNECT">SOCKET_TIMEOUT_CONNECT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#SOCKET_TIMEOUT_READ">SOCKET_TIMEOUT_READ</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#SOCKET_TIMEOUT_WRITE">SOCKET_TIMEOUT_WRITE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#SPECIFIC_WRITE_THREAD">SPECIFIC_WRITE_THREAD</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/hadoop/hbase/ipc/AbstractRpcClient.html#AbstractRpcClient-org.apache.hadoop.conf.Configuration-java.lang.String-java.net.SocketAddress-org.apache.hadoop.hbase.client.MetricsConnection-">AbstractRpcClient</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<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;clusterId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/SocketAddress.html?is-external=true" title="class or interface in java.net">SocketAddress</a>&nbsp;localAddr,
<a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a>&nbsp;metrics)</code>
<div class="block">Construct an IPC client for the cluster <code>clusterId</code></div>
</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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></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>private org.apache.hbase.thirdparty.com.google.protobuf.Message</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#callBlockingMethod-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hadoop.hbase.ipc.HBaseRpcController-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-org.apache.hadoop.hbase.net.Address-">callBlockingMethod</a></span>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;md,
<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;hrc,
org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;param,
org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;returnType,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;ticket,
<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;isa)</code>
<div class="block">Make a blocking call.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#callMethod-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hadoop.hbase.ipc.HBaseRpcController-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-org.apache.hadoop.hbase.net.Address-org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback-">callMethod</a></span>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;md,
<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;hrc,
org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;param,
org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;returnType,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;ticket,
<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;addr,
org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback&lt;org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;&nbsp;callback)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#cancelConnections-org.apache.hadoop.hbase.ServerName-">cancelConnections</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
<div class="block">Interrupt the connections to the given ip:port server.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#cleanupIdleConnections--">cleanupIdleConnections</a></span>()</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/hadoop/hbase/ipc/AbstractRpcClient.html#close--">close</a></span>()</code>
<div class="block">Stop all threads related to this client.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#closeInternal--">closeInternal</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#configureHBaseRpcController-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-int-">configureHBaseRpcController</a></span>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
int&nbsp;channelOperationTimeout)</code>
<div class="block">Configure an hbase rpccontroller</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#createAddr-org.apache.hadoop.hbase.ServerName-">createAddr</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#createBlockingRpcChannel-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.security.User-int-">createBlockingRpcChannel</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;ticket,
int&nbsp;rpcTimeout)</code>
<div class="block">Creates a "channel" that can be used by a blocking protobuf service.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" title="type parameter in AbstractRpcClient">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#createConnection-org.apache.hadoop.hbase.ipc.ConnectionId-">createConnection</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/ConnectionId.html" title="class in org.apache.hadoop.hbase.ipc">ConnectionId</a>&nbsp;remoteId)</code>
<div class="block">Not connected.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#createRpcChannel-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.security.User-int-">createRpcChannel</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
int&nbsp;rpcTimeout)</code>
<div class="block">Creates a "channel" that can be used by a protobuf service.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/codec/Codec.html" title="interface in org.apache.hadoop.hbase.codec">Codec</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#getCodec--">getCodec</a></span>()</code>
<div class="block">Encapsulate the ugly casting and RuntimeException conversion in private method.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>private static org.apache.hadoop.io.compress.CompressionCodec</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#getCompressor-org.apache.hadoop.conf.Configuration-">getCompressor</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Encapsulate the ugly casting and RuntimeException conversion in private method.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" title="type parameter in AbstractRpcClient">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#getConnection-org.apache.hadoop.hbase.ipc.ConnectionId-">getConnection</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/ConnectionId.html" title="class in org.apache.hadoop.hbase.ipc">ConnectionId</a>&nbsp;remoteId)</code>
<div class="block">Get a connection from the pool, or create a new one and add it to the pool.</div>
</td>
</tr>
<tr id="i14" 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/hadoop/hbase/ipc/AbstractRpcClient.html#getDefaultCodec-org.apache.hadoop.conf.Configuration-">getDefaultCodec</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#getPoolSize-org.apache.hadoop.conf.Configuration-">getPoolSize</a></span>(org.apache.hadoop.conf.Configuration&nbsp;config)</code>
<div class="block">Return the pool size specified in the configuration, which is applicable only if the pool type
is <a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html#RoundRobin"><code>PoolMap.PoolType.RoundRobin</code></a>.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util">PoolMap.PoolType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#getPoolType-org.apache.hadoop.conf.Configuration-">getPoolType</a></span>(org.apache.hadoop.conf.Configuration&nbsp;config)</code>
<div class="block">Return the pool type specified in the configuration, which must be set to either
<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html#RoundRobin"><code>PoolMap.PoolType.RoundRobin</code></a> or
<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html#ThreadLocal"><code>PoolMap.PoolType.ThreadLocal</code></a>, otherwise default to the
former.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#hasCellBlockSupport--">hasCellBlockSupport</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#isTcpNoDelay--">isTcpNoDelay</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#nextCallId--">nextCallId</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#onCallFinished-org.apache.hadoop.hbase.ipc.Call-org.apache.hadoop.hbase.ipc.HBaseRpcController-org.apache.hadoop.hbase.net.Address-org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback-">onCallFinished</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a>&nbsp;call,
<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;hrc,
<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;addr,
org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback&lt;org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;&nbsp;callback)</code>&nbsp;</td>
</tr>
</table>
<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#toString--" title="class or interface in java.lang">toString</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>
</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="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>public static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.94">LOG</a></pre>
</li>
</ul>
<a name="WHEEL_TIMER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WHEEL_TIMER</h4>
<pre>protected static final&nbsp;org.apache.hbase.thirdparty.io.netty.util.HashedWheelTimer <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.96">WHEEL_TIMER</a></pre>
</li>
</ul>
<a name="IDLE_CONN_SWEEPER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IDLE_CONN_SWEEPER</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.101">IDLE_CONN_SWEEPER</a></pre>
</li>
</ul>
<a name="running">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>running</h4>
<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.106">running</a></pre>
</li>
</ul>
<a name="conf">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>conf</h4>
<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.108">conf</a></pre>
</li>
</ul>
<a name="clusterId">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clusterId</h4>
<pre>protected 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> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.109">clusterId</a></pre>
</li>
</ul>
<a name="localAddr">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localAddr</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/SocketAddress.html?is-external=true" title="class or interface in java.net">SocketAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.110">localAddr</a></pre>
</li>
</ul>
<a name="metrics">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>metrics</h4>
<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.111">metrics</a></pre>
</li>
</ul>
<a name="userProvider">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>userProvider</h4>
<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.113">userProvider</a></pre>
</li>
</ul>
<a name="cellBlockBuilder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cellBlockBuilder</h4>
<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/CellBlockBuilder.html" title="class in org.apache.hadoop.hbase.ipc">CellBlockBuilder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.114">cellBlockBuilder</a></pre>
</li>
</ul>
<a name="minIdleTimeBeforeClose">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minIdleTimeBeforeClose</h4>
<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.116">minIdleTimeBeforeClose</a></pre>
</li>
</ul>
<a name="maxRetries">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxRetries</h4>
<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.118">maxRetries</a></pre>
</li>
</ul>
<a name="failureSleep">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>failureSleep</h4>
<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.119">failureSleep</a></pre>
</li>
</ul>
<a name="tcpNoDelay">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tcpNoDelay</h4>
<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.120">tcpNoDelay</a></pre>
</li>
</ul>
<a name="tcpKeepAlive">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tcpKeepAlive</h4>
<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.121">tcpKeepAlive</a></pre>
</li>
</ul>
<a name="codec">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>codec</h4>
<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/codec/Codec.html" title="interface in org.apache.hadoop.hbase.codec">Codec</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.122">codec</a></pre>
</li>
</ul>
<a name="compressor">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compressor</h4>
<pre>protected final&nbsp;org.apache.hadoop.io.compress.CompressionCodec <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.123">compressor</a></pre>
</li>
</ul>
<a name="fallbackAllowed">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fallbackAllowed</h4>
<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.124">fallbackAllowed</a></pre>
</li>
</ul>
<a name="failedServers">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>failedServers</h4>
<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/FailedServers.html" title="class in org.apache.hadoop.hbase.ipc">FailedServers</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.126">failedServers</a></pre>
</li>
</ul>
<a name="connectTO">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connectTO</h4>
<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.128">connectTO</a></pre>
</li>
</ul>
<a name="readTO">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readTO</h4>
<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.129">readTO</a></pre>
</li>
</ul>
<a name="writeTO">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeTO</h4>
<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.130">writeTO</a></pre>
</li>
</ul>
<a name="connections">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connections</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.html" title="class in org.apache.hadoop.hbase.util">PoolMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/ConnectionId.html" title="class in org.apache.hadoop.hbase.ipc">ConnectionId</a>,<a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" title="type parameter in AbstractRpcClient">T</a> extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.132">connections</a></pre>
</li>
</ul>
<a name="callIdCnt">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>callIdCnt</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.134">callIdCnt</a></pre>
</li>
</ul>
<a name="cleanupIdleConnectionTask">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanupIdleConnectionTask</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledFuture.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledFuture</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.136">cleanupIdleConnectionTask</a></pre>
</li>
</ul>
<a name="maxConcurrentCallsPerServer">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxConcurrentCallsPerServer</h4>
<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.138">maxConcurrentCallsPerServer</a></pre>
</li>
</ul>
<a name="concurrentCounterCache">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>concurrentCounterCache</h4>
<pre>private static final&nbsp;org.apache.hbase.thirdparty.com.google.common.cache.LoadingCache&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.140">concurrentCounterCache</a></pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractRpcClient-org.apache.hadoop.conf.Configuration-java.lang.String-java.net.SocketAddress-org.apache.hadoop.hbase.client.MetricsConnection-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractRpcClient</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.155">AbstractRpcClient</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<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;clusterId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/SocketAddress.html?is-external=true" title="class or interface in java.net">SocketAddress</a>&nbsp;localAddr,
<a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a>&nbsp;metrics)</pre>
<div class="block">Construct an IPC client for the cluster <code>clusterId</code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - configuration</dd>
<dd><code>clusterId</code> - the cluster id</dd>
<dd><code>localAddr</code> - client socket bind address.</dd>
<dd><code>metrics</code> - the connection metrics</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="cleanupIdleConnections--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanupIdleConnections</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.202">cleanupIdleConnections</a>()</pre>
</li>
</ul>
<a name="getDefaultCodec-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultCodec</h4>
<pre>public static&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;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.221">getDefaultCodec</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
</li>
</ul>
<a name="getCodec--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCodec</h4>
<pre><a href="../../../../../org/apache/hadoop/hbase/codec/Codec.html" title="interface in org.apache.hadoop.hbase.codec">Codec</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.232">getCodec</a>()</pre>
<div class="block">Encapsulate the ugly casting and RuntimeException conversion in private method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Codec to use on this client.</dd>
</dl>
</li>
</ul>
<a name="hasCellBlockSupport--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasCellBlockSupport</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.247">hasCellBlockSupport</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#hasCellBlockSupport--">hasCellBlockSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true when this client uses a <a href="../../../../../org/apache/hadoop/hbase/codec/Codec.html" title="interface in org.apache.hadoop.hbase.codec"><code>Codec</code></a> and so
supports cell blocks.</dd>
</dl>
</li>
</ul>
<a name="isTcpNoDelay--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTcpNoDelay</h4>
<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.252">isTcpNoDelay</a>()</pre>
</li>
</ul>
<a name="getCompressor-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCompressor</h4>
<pre>private static&nbsp;org.apache.hadoop.io.compress.CompressionCodec&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.261">getCompressor</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
<div class="block">Encapsulate the ugly casting and RuntimeException conversion in private method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - configuration</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The compressor to use on this client.</dd>
</dl>
</li>
</ul>
<a name="getPoolType-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPoolType</h4>
<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util">PoolMap.PoolType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.285">getPoolType</a>(org.apache.hadoop.conf.Configuration&nbsp;config)</pre>
<div class="block">Return the pool type specified in the configuration, which must be set to either
<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html#RoundRobin"><code>PoolMap.PoolType.RoundRobin</code></a> or
<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html#ThreadLocal"><code>PoolMap.PoolType.ThreadLocal</code></a>, otherwise default to the
former. For applications with many user threads, use a small round-robin pool. For applications
with few user threads, you may want to try using a thread-local pool. In any case, the number
of <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc"><code>RpcClient</code></a> instances should not exceed the operating
system's hard limit on the number of connections.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - configuration</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>either a <a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html#RoundRobin"><code>PoolMap.PoolType.RoundRobin</code></a> or
<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html#ThreadLocal"><code>PoolMap.PoolType.ThreadLocal</code></a></dd>
</dl>
</li>
</ul>
<a name="getPoolSize-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPoolSize</h4>
<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.296">getPoolSize</a>(org.apache.hadoop.conf.Configuration&nbsp;config)</pre>
<div class="block">Return the pool size specified in the configuration, which is applicable only if the pool type
is <a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html#RoundRobin"><code>PoolMap.PoolType.RoundRobin</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - configuration</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the maximum pool size</dd>
</dl>
</li>
</ul>
<a name="nextCallId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextCallId</h4>
<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.307">nextCallId</a>()</pre>
</li>
</ul>
<a name="callBlockingMethod-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hadoop.hbase.ipc.HBaseRpcController-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-org.apache.hadoop.hbase.net.Address-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>callBlockingMethod</h4>
<pre>private&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.324">callBlockingMethod</a>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;md,
<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;hrc,
org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;param,
org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;returnType,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;ticket,
<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;isa)
throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
<div class="block">Make a blocking call. Throws exceptions if there are network problems or if the remote code
threw an exception.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ticket</code> - Be careful which ticket you pass. A new user will mean a new Connection.
<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html#getCurrent--"><code>UserProvider.getCurrent()</code></a> makes a new instance of User each time so will be a
new Connection each time.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A pair with the Message response and the Cell data (if any).</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
</dl>
</li>
</ul>
<a name="getConnection-org.apache.hadoop.hbase.ipc.ConnectionId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConnection</h4>
<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" title="type parameter in AbstractRpcClient">T</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.346">getConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/ConnectionId.html" title="class in org.apache.hadoop.hbase.ipc">ConnectionId</a>&nbsp;remoteId)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Get a connection from the pool, or create a new one and add it to the pool. Connections to a
given host/port are reused.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="createConnection-org.apache.hadoop.hbase.ipc.ConnectionId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createConnection</h4>
<pre>protected abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" title="type parameter in AbstractRpcClient">T</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.369">createConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/ConnectionId.html" title="class in org.apache.hadoop.hbase.ipc">ConnectionId</a>&nbsp;remoteId)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Not connected.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="onCallFinished-org.apache.hadoop.hbase.ipc.Call-org.apache.hadoop.hbase.ipc.HBaseRpcController-org.apache.hadoop.hbase.net.Address-org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onCallFinished</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.371">onCallFinished</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a>&nbsp;call,
<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;hrc,
<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;addr,
org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback&lt;org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;&nbsp;callback)</pre>
</li>
</ul>
<a name="callMethod-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hadoop.hbase.ipc.HBaseRpcController-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-org.apache.hadoop.hbase.net.Address-org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>callMethod</h4>
<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.395">callMethod</a>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;md,
<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;hrc,
org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;param,
org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;returnType,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;ticket,
<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;addr,
org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback&lt;org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;&nbsp;callback)</pre>
</li>
</ul>
<a name="createAddr-org.apache.hadoop.hbase.ServerName-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createAddr</h4>
<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.452">createAddr</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
</li>
</ul>
<a name="cancelConnections-org.apache.hadoop.hbase.ServerName-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancelConnections</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.464">cancelConnections</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
<div class="block">Interrupt the connections to the given ip:port server. This should be called if the server is
known as actually dead. This will not prevent current operation to be retried, and, depending
on their own behavior, they may retry on the same server. This can be a feature, for example at
startup. In any case, they're likely to get connection refused (if the process died) or no
route to host: i.e. their next retries should be faster and with a safe exception.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#cancelConnections-org.apache.hadoop.hbase.ServerName-">cancelConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sn</code> - server location to cancel connections of</dd>
</dl>
</li>
</ul>
<a name="configureHBaseRpcController-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configureHBaseRpcController</h4>
<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.485">configureHBaseRpcController</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
int&nbsp;channelOperationTimeout)</pre>
<div class="block">Configure an hbase rpccontroller</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>controller</code> - to configure</dd>
<dd><code>channelOperationTimeout</code> - timeout for operation</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>configured controller</dd>
</dl>
</li>
</ul>
<a name="closeInternal--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeInternal</h4>
<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.500">closeInternal</a>()</pre>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.503">close</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#close--">RpcClient</a></code></span></div>
<div class="block">Stop all threads related to this client. No further calls may be made
using this client.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></code></dd>
</dl>
</li>
</ul>
<a name="createBlockingRpcChannel-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.security.User-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createBlockingRpcChannel</h4>
<pre>public&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.527">createBlockingRpcChannel</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;ticket,
int&nbsp;rpcTimeout)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#createBlockingRpcChannel-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.security.User-int-">RpcClient</a></code></span></div>
<div class="block">Creates a "channel" that can be used by a blocking protobuf service. Useful setting up
protobuf blocking stubs.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#createBlockingRpcChannel-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.security.User-int-">createBlockingRpcChannel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sn</code> - server name describing location of server</dd>
<dd><code>ticket</code> - which is to use the connection</dd>
<dd><code>rpcTimeout</code> - default rpc operation timeout</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A blocking rpc channel that goes via this rpc client instance.</dd>
</dl>
</li>
</ul>
<a name="createRpcChannel-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.security.User-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createRpcChannel</h4>
<pre>public&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#line.533">createRpcChannel</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
int&nbsp;rpcTimeout)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#createRpcChannel-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.security.User-int-">RpcClient</a></code></span></div>
<div class="block">Creates a "channel" that can be used by a protobuf service. Useful setting up
protobuf stubs.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html#createRpcChannel-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.security.User-int-">createRpcChannel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sn</code> - server name describing location of server</dd>
<dd><code>user</code> - which is to use the connection</dd>
<dd><code>rpcTimeout</code> - default rpc operation timeout</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A rpc channel that goes via this rpc client instance.</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/AbstractRpcClient.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>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/hadoop/hbase/ipc/AbstractRpcClient.AbstractRpcChannel.html" title="class in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" target="_top">Frames</a></li>
<li><a href="AbstractRpcClient.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><a href="#nested.class.summary">Nested</a>&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>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>