blob: 7b931f3a9f4c321651b0a6d35a85c158002faee5 [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>BlockingRpcConnection (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="BlockingRpcConnection (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
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":10,"i17":10,"i18":10,"i19":10,"i20":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance 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/BlockingRpcConnection.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/hadoop/hbase/ipc/BlockingRpcClient.html" title="class in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.CallSender.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/BlockingRpcConnection.html" target="_top">Frames</a></li>
<li><a href="BlockingRpcConnection.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 BlockingRpcConnection" class="title">Class BlockingRpcConnection</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/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">org.apache.hadoop.hbase.ipc.RpcConnection</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.ipc.BlockingRpcConnection</li>
</ul>
</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/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.89">BlockingRpcConnection</a>
extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
<div class="block">Thread that reads responses and notifies callers. Each connection owns a socket connected to a
remote address. Calls are multiplexed through this socket: responses may be delivered out of
order.</div>
</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 class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.CallSender.html" title="class in org.apache.hadoop.hbase.ipc">BlockingRpcConnection.CallSender</a></span></code>
<div class="block">If the client wants to interrupt its calls easily (i.e.</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/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<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>,<a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#calls">calls</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.CallSender.html" title="class in org.apache.hadoop.hbase.ipc">BlockingRpcConnection.CallSender</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#callSender">callSender</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#closed">closed</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#connectionHeaderPreamble">connectionHeaderPreamble</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#connectionHeaderWithLength">connectionHeaderWithLength</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInputStream.html?is-external=true" title="class or interface in java.io">DataInputStream</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#in">in</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutputStream.html?is-external=true" title="class or interface in java.io">DataOutputStream</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#out">out</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcClient.html" title="class in org.apache.hadoop.hbase.ipc">BlockingRpcClient</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#rpcClient">rpcClient</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/security/HBaseSaslRpcClient.html" title="class in org.apache.hadoop.hbase.security">HBaseSaslRpcClient</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#saslRpcClient">saslRpcClient</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/Socket.html?is-external=true" title="class or interface in java.net">Socket</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#socket">socket</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#thread">thread</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/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/BlockingRpcConnection.html#threadName">threadName</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/BlockingRpcConnection.html#waitingConnectionHeaderResponse">waitingConnectionHeaderResponse</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.ipc.RpcConnection">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#codec">codec</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#compressor">compressor</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#CRYPTO_AES_ENABLED_DEFAULT">CRYPTO_AES_ENABLED_DEFAULT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#CRYPTO_AES_ENABLED_KEY">CRYPTO_AES_ENABLED_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#lastTouched">lastTouched</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#metrics">metrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#provider">provider</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#reloginMaxBackoff">reloginMaxBackoff</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#remoteId">remoteId</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#securityInfo">securityInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#timeoutTimer">timeoutTimer</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#token">token</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#useSasl">useSasl</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/BlockingRpcConnection.html#BlockingRpcConnection-org.apache.hadoop.hbase.ipc.BlockingRpcClient-org.apache.hadoop.hbase.ipc.ConnectionId-">BlockingRpcConnection</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcClient.html" title="class in org.apache.hadoop.hbase.ipc">BlockingRpcClient</a>&nbsp;rpcClient,
<a href="../../../../../org/apache/hadoop/hbase/ipc/ConnectionId.html" title="class in org.apache.hadoop.hbase.ipc">ConnectionId</a>&nbsp;remoteId)</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="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></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/hadoop/hbase/ipc/BlockingRpcConnection.html#callTimeout-org.apache.hadoop.hbase.ipc.Call-">callTimeout</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a>&nbsp;call)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#cleanupConnection--">cleanupConnection</a></span>()</code>
<div class="block">Does the clean up work after the connection is removed from the connection pool</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#closeConn-java.io.IOException-">closeConn</a></span>(<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>&nbsp;e)</code>&nbsp;</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/BlockingRpcConnection.html#closeSocket--">closeSocket</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#disposeSasl--">disposeSasl</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#handleConnectionFailure-int-int-java.io.IOException-">handleConnectionFailure</a></span>(int&nbsp;curRetries,
int&nbsp;maxRetries,
<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>&nbsp;ioe)</code>
<div class="block">Handle connection failures If the current number of retries is equal to the max number of
retries, stop retrying and throw the exception; Otherwise backoff N seconds and try connecting
again.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#handleSaslConnectionFailure-int-int-java.lang.Exception-org.apache.hadoop.security.UserGroupInformation-">handleSaslConnectionFailure</a></span>(int&nbsp;currRetries,
int&nbsp;maxRetries,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;ex,
org.apache.hadoop.security.UserGroupInformation&nbsp;user)</code>
<div class="block">If multiple clients with the same principal try to connect to the same server at the same time,
the server assumes a replay attack is in progress.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#isActive--">isActive</a></span>()</code>
<div class="block">Tell the idle connection sweeper whether we could be swept.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#negotiateCryptoAes-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.CryptoCipherMeta-">negotiateCryptoAes</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.CryptoCipherMeta&nbsp;cryptoCipherMeta)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#processResponseForConnectionHeader--">processResponseForConnectionHeader</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#readResponse--">readResponse</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#run--">run</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#sendRequest-org.apache.hadoop.hbase.ipc.Call-org.apache.hadoop.hbase.ipc.HBaseRpcController-">sendRequest</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;pcrc)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#setupConnection--">setupConnection</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#setupIOstreams--">setupIOstreams</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#setupSaslConnection-java.io.InputStream-java.io.OutputStream-">setupSaslConnection</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in2,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out2)</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#shutdown--">shutdown</a></span>()</code>
<div class="block">Just close connection.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#waitForWork--">waitForWork</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#writeConnectionHeader--">writeConnectionHeader</a></span>()</code>
<div class="block">Write the connection header.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#writeConnectionHeaderPreamble-java.io.OutputStream-">writeConnectionHeaderPreamble</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out)</code>
<div class="block">Write the RPC header: <code>&lt;MAGIC WORD -- 'HBas'&gt; &lt;ONEBYTE_VERSION&gt; &lt;ONEBYTE_AUTH_TYPE&gt;</code></div>
</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/BlockingRpcConnection.html#writeRequest-org.apache.hadoop.hbase.ipc.Call-">writeRequest</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a>&nbsp;call)</code>
<div class="block">Initiates a call by sending the parameter to the remote server.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.ipc.RpcConnection">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#getConnectionHeader--">getConnectionHeader</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#getConnectionHeaderPreamble--">getConnectionHeaderPreamble</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#getLastTouched--">getLastTouched</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#getRemoteInetAddress-org.apache.hadoop.hbase.client.MetricsConnection-">getRemoteInetAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#remoteId--">remoteId</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#scheduleTimeoutTask-org.apache.hadoop.hbase.ipc.Call-">scheduleTimeoutTask</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#setLastTouched-long-">setLastTouched</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#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>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.91">LOG</a></pre>
</li>
</ul>
<a name="rpcClient">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rpcClient</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcClient.html" title="class in org.apache.hadoop.hbase.ipc">BlockingRpcClient</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.93">rpcClient</a></pre>
</li>
</ul>
<a name="threadName">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>threadName</h4>
<pre>private 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/BlockingRpcConnection.html#line.95">threadName</a></pre>
</li>
</ul>
<a name="thread">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>thread</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.98">thread</a></pre>
</li>
</ul>
<a name="socket">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>socket</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.101">socket</a></pre>
</li>
</ul>
<a name="in">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>in</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInputStream.html?is-external=true" title="class or interface in java.io">DataInputStream</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.102">in</a></pre>
</li>
</ul>
<a name="out">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>out</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutputStream.html?is-external=true" title="class or interface in java.io">DataOutputStream</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.103">out</a></pre>
</li>
</ul>
<a name="saslRpcClient">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saslRpcClient</h4>
<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/HBaseSaslRpcClient.html" title="class in org.apache.hadoop.hbase.security">HBaseSaslRpcClient</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.105">saslRpcClient</a></pre>
</li>
</ul>
<a name="calls">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>calls</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<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>,<a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.108">calls</a></pre>
</li>
</ul>
<a name="callSender">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>callSender</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.CallSender.html" title="class in org.apache.hadoop.hbase.ipc">BlockingRpcConnection.CallSender</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.110">callSender</a></pre>
</li>
</ul>
<a name="closed">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closed</h4>
<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.112">closed</a></pre>
</li>
</ul>
<a name="connectionHeaderPreamble">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connectionHeaderPreamble</h4>
<pre>private&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.114">connectionHeaderPreamble</a></pre>
</li>
</ul>
<a name="connectionHeaderWithLength">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connectionHeaderWithLength</h4>
<pre>private&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.116">connectionHeaderWithLength</a></pre>
</li>
</ul>
<a name="waitingConnectionHeaderResponse">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>waitingConnectionHeaderResponse</h4>
<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.118">waitingConnectionHeaderResponse</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="BlockingRpcConnection-org.apache.hadoop.hbase.ipc.BlockingRpcClient-org.apache.hadoop.hbase.ipc.ConnectionId-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BlockingRpcConnection</h4>
<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.218">BlockingRpcConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcClient.html" title="class in org.apache.hadoop.hbase.ipc">BlockingRpcClient</a>&nbsp;rpcClient,
<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>
<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>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setupConnection--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setupConnection</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.246">setupConnection</a>()
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>
<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="handleConnectionFailure-int-int-java.io.IOException-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleConnectionFailure</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.290">handleConnectionFailure</a>(int&nbsp;curRetries,
int&nbsp;maxRetries,
<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>&nbsp;ioe)
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">Handle connection failures If the current number of retries is equal to the max number of
retries, stop retrying and throw the exception; Otherwise backoff N seconds and try connecting
again. This Method is only called from inside setupIOstreams(), which is synchronized. Hence
the sleep is synchronized; the locks will be retained.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>curRetries</code> - current number of retries</dd>
<dd><code>maxRetries</code> - max number of retries allowed</dd>
<dd><code>ioe</code> - failure reason</dd>
<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> - if max number of retries is reached</dd>
</dl>
</li>
</ul>
<a name="waitForWork--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>waitForWork</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.318">waitForWork</a>()</pre>
</li>
</ul>
<a name="run--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.342">run</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
</dl>
</li>
</ul>
<a name="disposeSasl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disposeSasl</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.354">disposeSasl</a>()</pre>
</li>
</ul>
<a name="setupSaslConnection-java.io.InputStream-java.io.OutputStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setupSaslConnection</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.361">setupSaslConnection</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in2,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out2)
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>
<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="handleSaslConnectionFailure-int-int-java.lang.Exception-org.apache.hadoop.security.UserGroupInformation-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleSaslConnectionFailure</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.387">handleSaslConnectionFailure</a>(int&nbsp;currRetries,
int&nbsp;maxRetries,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;ex,
org.apache.hadoop.security.UserGroupInformation&nbsp;user)
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>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">If multiple clients with the same principal try to connect to the same server at the same time,
the server assumes a replay attack is in progress. This is a feature of kerberos. In order to
work around this, what is done is that the client backs off randomly and tries to initiate the
connection again. The other problem is to do with ticket expiry. To handle that, a relogin is
attempted.
<p>
The retry logic is governed by the <a href="../../../../../org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#canRetry--"><code>SaslClientAuthenticationProvider.canRetry()</code></a>
method. Some providers have the ability to obtain new credentials and then re-attempt to
authenticate with HBase services. Other providers will continue to fail if they failed the
first time -- for those, we want to fail-fast.
</p></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>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
</dl>
</li>
</ul>
<a name="setupIOstreams--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setupIOstreams</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.436">setupIOstreams</a>()
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>
<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="writeConnectionHeaderPreamble-java.io.OutputStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeConnectionHeaderPreamble</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.530">writeConnectionHeaderPreamble</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out)
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">Write the RPC header: <code>&lt;MAGIC WORD -- 'HBas'&gt; &lt;ONEBYTE_VERSION&gt; &lt;ONEBYTE_AUTH_TYPE&gt;</code></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="writeConnectionHeader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeConnectionHeader</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.538">writeConnectionHeader</a>()
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">Write the connection header.</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="processResponseForConnectionHeader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>processResponseForConnectionHeader</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.556">processResponseForConnectionHeader</a>()
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>
<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="negotiateCryptoAes-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.CryptoCipherMeta-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>negotiateCryptoAes</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.585">negotiateCryptoAes</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.CryptoCipherMeta&nbsp;cryptoCipherMeta)
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>
<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="writeRequest-org.apache.hadoop.hbase.ipc.Call-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeRequest</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.599">writeRequest</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a>&nbsp;call)
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">Initiates a call by sending the parameter to the remote server. Note: this is not called from
the Connection thread, but by other threads.</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>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#readResponse--"><code>readResponse()</code></a></dd>
</dl>
</li>
</ul>
<a name="readResponse--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readResponse</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.645">readResponse</a>()</pre>
</li>
</ul>
<a name="callTimeout-org.apache.hadoop.hbase.ipc.Call-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>callTimeout</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.726">callTimeout</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a>&nbsp;call)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#callTimeout-org.apache.hadoop.hbase.ipc.Call-">callTimeout</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a></code></dd>
</dl>
</li>
</ul>
<a name="closeSocket--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeSocket</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.732">closeSocket</a>()</pre>
</li>
</ul>
<a name="closeConn-java.io.IOException-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeConn</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.742">closeConn</a>(<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>&nbsp;e)</pre>
</li>
</ul>
<a name="shutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.760">shutdown</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#shutdown--">RpcConnection</a></code></span></div>
<div class="block">Just close connection. Do not need to remove from connection pool.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#shutdown--">shutdown</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a></code></dd>
</dl>
</li>
</ul>
<a name="cleanupConnection--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanupConnection</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.769">cleanupConnection</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#cleanupConnection--">RpcConnection</a></code></span></div>
<div class="block">Does the clean up work after the connection is removed from the connection pool</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#cleanupConnection--">cleanupConnection</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a></code></dd>
</dl>
</li>
</ul>
<a name="sendRequest-org.apache.hadoop.hbase.ipc.Call-org.apache.hadoop.hbase.ipc.HBaseRpcController-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendRequest</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.774">sendRequest</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;pcrc)
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>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#sendRequest-org.apache.hadoop.hbase.ipc.Call-org.apache.hadoop.hbase.ipc.HBaseRpcController-">sendRequest</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a></code></dd>
<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="isActive--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isActive</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#line.810">isActive</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#isActive--">RpcConnection</a></code></span></div>
<div class="block">Tell the idle connection sweeper whether we could be swept.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html#isActive--">isActive</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a></code></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/BlockingRpcConnection.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/hadoop/hbase/ipc/BlockingRpcClient.html" title="class in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcConnection.CallSender.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/BlockingRpcConnection.html" target="_top">Frames</a></li>
<li><a href="BlockingRpcConnection.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>