blob: 3f61cfb9ecaee3fa661d28336a66cf3edd950ea0 [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>SimpleRpcServer (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="SimpleRpcServer (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/SimpleRpcServer.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/SimpleRpcScheduler.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/SimpleRpcServer.ConnectionManager.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/SimpleRpcServer.html" target="_top">Frames</a></li>
<li><a href="SimpleRpcServer.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 SimpleRpcServer" class="title">Class SimpleRpcServer</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/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">org.apache.hadoop.hbase.ipc.RpcServer</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.ipc.SimpleRpcServer</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.LimitedPrivate(value="Configuration")
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.79">SimpleRpcServer</a>
extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></pre>
<div class="block">The RPC server with native java NIO implementation deriving from Hadoop to
host protobuf described Services. It's the original one before HBASE-17262,
and the default RPC server for now.
An RpcServer instance has a Listener that hosts the socket. Listener has fixed number
of Readers in an ExecutorPool, 10 by default. The Listener does an accept and then
round robin a Reader is chosen to do the read. The reader is registered on Selector. Read does
total read off the channel and the parse from which it makes a Call. The call is wrapped in a
CallRunner and passed to the scheduler to be run. Reader goes back to see if more to be done
and loops till done.
<p>Scheduler can be variously implemented but default simple scheduler has handlers to which it
has given the queues into which calls (i.e. CallRunner instances) are inserted. Handlers run
taking from the queue. They run the CallRunner#run method on each item gotten from queue
and keep taking while the server is up.
CallRunner#run executes the call. When done, asks the included Call to put itself on new
queue for Responder to pull from and return result to client.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/ipc/BlockingRpcClient.html" title="class in org.apache.hadoop.hbase.ipc"><code>BlockingRpcClient</code></a></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 class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.ConnectionManager.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer.ConnectionManager</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.Listener.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer.Listener</a></span></code>
<div class="block">Listens on the socket.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.ipc.RpcServer">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServer.CallCleanup</a></code></li>
</ul>
</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>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#address">address</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.ConnectionManager.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer.ConnectionManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#connectionManager">connectionManager</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.Listener.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer.Listener</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#listener">listener</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/SimpleRpcServer.html#port">port</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#purgeTimeout">purgeTimeout</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#readThreads">readThreads</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServerResponder.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServerResponder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#responder">responder</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/SimpleRpcServer.html#socketSendBufferSize">socketSendBufferSize</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.ipc.RpcServer">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#allowFallbackToSimpleAuth">allowFallbackToSimpleAuth</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUDITLOG">AUDITLOG</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_FAILED_FOR">AUTH_FAILED_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#AUTH_SUCCESSFUL_FOR">AUTH_SUCCESSFUL_FOR</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authManager">authManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authTokenSecretMgr">authTokenSecretMgr</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#bbAllocator">bbAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#bindAddress">bindAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CALL_QUEUE_TOO_BIG_EXCEPTION">CALL_QUEUE_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#callQueueSizeInBytes">callQueueSizeInBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#cellBlockBuilder">cellBlockBuilder</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CurCall">CurCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CURRENT_VERSION">CURRENT_VERSION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER">DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_CALLQUEUE_SIZE">DEFAULT_MAX_CALLQUEUE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MAX_REQUEST_SIZE">DEFAULT_MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT">DEFAULT_MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_TRACE_LOG_MAX_LENGTH">DEFAULT_TRACE_LOG_MAX_LENGTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_SIZE">DEFAULT_WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#DEFAULT_WARN_RESPONSE_TIME">DEFAULT_WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#errorHandler">errorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#FALLBACK_TO_INSECURE_CLIENT_AUTH">FALLBACK_TO_INSECURE_CLIENT_AUTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#GSON">GSON</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isSecurityEnabled">isSecurityEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#KEY_WORD_TRUNCATED">KEY_WORD_TRUNCATED</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#LOG">LOG</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MAX_REQUEST_SIZE">MAX_REQUEST_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxQueueSizeInBytes">maxQueueSizeInBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#maxRequestSize">maxRequestSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#metrics">metrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MIN_CLIENT_REQUEST_TIMEOUT">MIN_CLIENT_REQUEST_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#minClientRequestTimeout">minClientRequestTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#MONITORED_RPC">MONITORED_RPC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#NIO_BUFFER_LIMIT">NIO_BUFFER_LIMIT</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#REQUEST_TOO_BIG_EXCEPTION">REQUEST_TOO_BIG_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#running">running</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#saslProps">saslProps</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#scheduler">scheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#secretManager">secretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#server">server</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#services">services</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#started">started</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpKeepAlive">tcpKeepAlive</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#tcpNoDelay">tcpNoDelay</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#TRACE_LOG_MAX_LENGTH">TRACE_LOG_MAX_LENGTH</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#userProvider">userProvider</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_SIZE">WARN_RESPONSE_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#WARN_RESPONSE_TIME">WARN_RESPONSE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseSize">warnResponseSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#warnResponseTime">warnResponseTime</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/SimpleRpcServer.html#SimpleRpcServer-org.apache.hadoop.hbase.Server-java.lang.String-java.util.List-java.net.InetSocketAddress-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.ipc.RpcScheduler-boolean-">SimpleRpcServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
<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;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;bindAddress,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a>&nbsp;scheduler,
boolean&nbsp;reservoirEnabled)</code>
<div class="block">Constructs a server listening on the named port and address.</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="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>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#bind-java.net.ServerSocket-java.net.InetSocketAddress-int-">bind</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/ServerSocket.html?is-external=true" title="class or interface in java.net">ServerSocket</a>&nbsp;socket,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;address,
int&nbsp;backlog)</code>
<div class="block">A convenience method to bind to a given address and report
better exceptions if the address is not a valid host.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#channelWrite-java.nio.channels.GatheringByteChannel-org.apache.hadoop.hbase.ipc.BufferChain-">channelWrite</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/GatheringByteChannel.html?is-external=true" title="class or interface in java.nio.channels">GatheringByteChannel</a>&nbsp;channel,
<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferChain.html" title="class in org.apache.hadoop.hbase.ipc">BufferChain</a>&nbsp;bufferChain)</code>
<div class="block">This is a wrapper around <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true#write-java.nio.ByteBuffer-" title="class or interface in java.nio.channels"><code>WritableByteChannel.write(java.nio.ByteBuffer)</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#closeConnection-org.apache.hadoop.hbase.ipc.SimpleServerRpcConnection-">closeConnection</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleServerRpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">SimpleServerRpcConnection</a>&nbsp;connection)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleServerRpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">SimpleServerRpcConnection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#getConnection-java.nio.channels.SocketChannel-long-">getConnection</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a>&nbsp;channel,
long&nbsp;time)</code>
<div class="block">Subclasses of HBaseServer can override this to provide their own
Connection implementations.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#getListenerAddress--">getListenerAddress</a></span>()</code>
<div class="block">Return the socket (ip+port) on which the RPC server is listening to.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#getNumOpenConnections--">getNumOpenConnections</a></span>()</code>
<div class="block">The number of open RPC conections</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#join--">join</a></span>()</code>
<div class="block">Wait for the server to be stopped.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#setSocketSendBufSize-int-">setSocketSendBufSize</a></span>(int&nbsp;size)</code>
<div class="block">Sets the socket buffer size used for responding to RPCs.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#start--">start</a></span>()</code>
<div class="block">Starts the service.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#stop--">stop</a></span>()</code>
<div class="block">Stops the service.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.ipc.RpcServer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#addCallSize-long-">addCallSize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#authorize-org.apache.hadoop.security.UserGroupInformation-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader-java.net.InetAddress-">authorize</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#call-org.apache.hadoop.hbase.ipc.RpcCall-org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler-">call</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">channelRead</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#createSecretManager--">createSecretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getByteBuffAllocator--">getByteBuffAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getConf--">getConf</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getCurrentCall--">getCurrentCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getErrorHandler--">getErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteAddress--">getRemoteAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRemoteIp--">getRemoteIp</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUser--">getRequestUser</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getRequestUserName--">getRequestUserName</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getScheduler--">getScheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getSecretManager--">getSecretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getService-java.util.List-java.lang.String-">getService</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceAndInterface-java.util.List-java.lang.String-">getServiceAndInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getServiceInterface-java.util.List-java.lang.String-">getServiceInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getStatus--">getStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#initReconfigurable-org.apache.hadoop.conf.Configuration-">initReconfigurable</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isInRpcCallContext--">isInRpcCallContext</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#isStarted--">isStarted</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#logResponse-org.apache.hbase.thirdparty.com.google.protobuf.Message-java.lang.String-java.lang.String-boolean-boolean-java.lang.String-long-int-int-long-java.lang.String-">logResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#needAuthorization--">needAuthorization</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#refreshAuthManager-org.apache.hadoop.conf.Configuration-org.apache.hadoop.security.authorize.PolicyProvider-">refreshAuthManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setCurrentCall-org.apache.hadoop.hbase.ipc.RpcCall-">setCurrentCall</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setErrorHandler-org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler-">setErrorHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setNamedQueueRecorder-org.apache.hadoop.hbase.namequeues.NamedQueueRecorder-">setNamedQueueRecorder</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setRsRpcServices-org.apache.hadoop.hbase.regionserver.RSRpcServices-">setRsRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#setSecretManager-org.apache.hadoop.security.token.SecretManager-">setSecretManager</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#truncateTraceLog-java.lang.String-">truncateTraceLog</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#unsetCurrentCall--">unsetCurrentCall</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="port">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>port</h4>
<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.81">port</a></pre>
</li>
</ul>
<a name="address">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>address</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.82">address</a></pre>
</li>
</ul>
<a name="readThreads">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readThreads</h4>
<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.83">readThreads</a></pre>
</li>
</ul>
<a name="socketSendBufferSize">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>socketSendBufferSize</h4>
<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.85">socketSendBufferSize</a></pre>
</li>
</ul>
<a name="purgeTimeout">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>purgeTimeout</h4>
<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.86">purgeTimeout</a></pre>
</li>
</ul>
<a name="connectionManager">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connectionManager</h4>
<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.ConnectionManager.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer.ConnectionManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.89">connectionManager</a></pre>
</li>
</ul>
<a name="listener">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listener</h4>
<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.Listener.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer.Listener</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.90">listener</a></pre>
</li>
</ul>
<a name="responder">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>responder</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServerResponder.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServerResponder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.91">responder</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="SimpleRpcServer-org.apache.hadoop.hbase.Server-java.lang.String-java.util.List-java.net.InetSocketAddress-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.ipc.RpcScheduler-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SimpleRpcServer</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.373">SimpleRpcServer</a>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
<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;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;bindAddress,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a>&nbsp;scheduler,
boolean&nbsp;reservoirEnabled)
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">Constructs a server listening on the named port and address.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>server</code> - hosting instance of <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase"><code>Server</code></a>. We will do authentications if an
instance else pass null for no authentication check.</dd>
<dd><code>name</code> - Used keying this rpc servers' metrics and for naming the Listener thread.</dd>
<dd><code>services</code> - A list of services.</dd>
<dd><code>bindAddress</code> - Where to listen</dd>
<dd><code>conf</code> - </dd>
<dd><code>scheduler</code> - </dd>
<dd><code>reservoirEnabled</code> - Enable ByteBufferPool or not.</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>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getConnection-java.nio.channels.SocketChannel-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConnection</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleServerRpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">SimpleServerRpcConnection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.399">getConnection</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a>&nbsp;channel,
long&nbsp;time)</pre>
<div class="block">Subclasses of HBaseServer can override this to provide their own
Connection implementations.</div>
</li>
</ul>
<a name="closeConnection-org.apache.hadoop.hbase.ipc.SimpleServerRpcConnection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeConnection</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.403">closeConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleServerRpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">SimpleServerRpcConnection</a>&nbsp;connection)</pre>
</li>
</ul>
<a name="setSocketSendBufSize-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSocketSendBufSize</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.411">setSocketSendBufSize</a>(int&nbsp;size)</pre>
<div class="block">Sets the socket buffer size used for responding to RPCs.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>size</code> - send size</dd>
</dl>
</li>
</ul>
<a name="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.415">start</a>()</pre>
<div class="block">Starts the service. Must be called before any calls will be handled.</div>
</li>
</ul>
<a name="stop--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.438">stop</a>()</pre>
<div class="block">Stops the service. No new calls will be handled after this is called.</div>
</li>
</ul>
<a name="join--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.457">join</a>()
throws <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">Wait for the server to be stopped. Does not wait for all subthreads to finish.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<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>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#stop--"><code>stop()</code></a></dd>
</dl>
</li>
</ul>
<a name="getListenerAddress--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getListenerAddress</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.470">getListenerAddress</a>()</pre>
<div class="block">Return the socket (ip+port) on which the RPC server is listening to. May return null if
the listener channel is closed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the socket (ip+port) on which the RPC server is listening to, or null if this
information cannot be determined</dd>
</dl>
</li>
</ul>
<a name="channelWrite-java.nio.channels.GatheringByteChannel-org.apache.hadoop.hbase.ipc.BufferChain-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>channelWrite</h4>
<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.490">channelWrite</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/GatheringByteChannel.html?is-external=true" title="class or interface in java.nio.channels">GatheringByteChannel</a>&nbsp;channel,
<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferChain.html" title="class in org.apache.hadoop.hbase.ipc">BufferChain</a>&nbsp;bufferChain)
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">This is a wrapper around <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true#write-java.nio.ByteBuffer-" title="class or interface in java.nio.channels"><code>WritableByteChannel.write(java.nio.ByteBuffer)</code></a>.
If the amount of data is large, it writes to channel in smaller chunks.
This is to avoid jdk from creating many direct buffers as the size of
buffer increases. This also minimizes extra copies in NIO layer
as a result of multiple write operations required to write a large
buffer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>channel</code> - writable byte channel to write to</dd>
<dd><code>bufferChain</code> - Chain of buffers to write</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of bytes written</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>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true#write-java.nio.ByteBuffer-" title="class or interface in java.nio.channels"><code>WritableByteChannel.write(java.nio.ByteBuffer)</code></a></dd>
</dl>
</li>
</ul>
<a name="bind-java.net.ServerSocket-java.net.InetSocketAddress-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bind</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.509">bind</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/ServerSocket.html?is-external=true" title="class or interface in java.net">ServerSocket</a>&nbsp;socket,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;address,
int&nbsp;backlog)
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">A convenience method to bind to a given address and report
better exceptions if the address is not a valid host.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>socket</code> - the socket to bind</dd>
<dd><code>address</code> - the address to bind to</dd>
<dd><code>backlog</code> - the number of connections allowed in the queue</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/BindException.html?is-external=true" title="class or interface in java.net">BindException</a></code> - if the address can't be bound</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></code> - if the address isn't a valid host name</dd>
<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> - other random errors from bind</dd>
</dl>
</li>
</ul>
<a name="getNumOpenConnections--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getNumOpenConnections</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcServer.html#line.533">getNumOpenConnections</a>()</pre>
<div class="block">The number of open RPC conections</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#getNumOpenConnections--">getNumOpenConnections</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of open rpc connections</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/SimpleRpcServer.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/SimpleRpcScheduler.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/SimpleRpcServer.ConnectionManager.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/SimpleRpcServer.html" target="_top">Frames</a></li>
<li><a href="SimpleRpcServer.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>