<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>ListenerService xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/trafodion/dcs/master/listener/ListenerService.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_javadoccomment">* @@@ START COPYRIGHT @@@</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_javadoccomment">Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_javadoccomment">or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_javadoccomment">distributed with this work for additional information</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_javadoccomment">regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_javadoccomment">to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_javadoccomment">"License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_javadoccomment">with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_javadoccomment">  <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_javadoccomment">Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_javadoccomment">software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_javadoccomment">"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_javadoccomment">KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_javadoccomment">specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <em class="jxr_javadoccomment">under the License.</em>
<a class="jxr_linenumber" name="20" href="#20">20</a>  
<a class="jxr_linenumber" name="21" href="#21">21</a>  <em class="jxr_javadoccomment">* @@@ END COPYRIGHT @@@</em>
<a class="jxr_linenumber" name="22" href="#22">22</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">package</strong> org.trafodion.dcs.master.listener;
<a class="jxr_linenumber" name="24" href="#24">24</a>  
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.*;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.nio.*;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.nio.channels.*;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.nio.channels.spi.*;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.net.*;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.*;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedList;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.io.IOUtils;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.CommandLine;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.GnuParser;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.Options;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.ParseException;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.zookeeper.ZooKeeper;
<a class="jxr_linenumber" name="42" href="#42">42</a>  
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
<a class="jxr_linenumber" name="44" href="#44">44</a>  
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.trafodion.dcs.zookeeper.ZkClient;
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.trafodion.dcs.Constants;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.trafodion.dcs.util.DcsConfiguration;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.trafodion.dcs.util.DcsNetworkConfiguration;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.trafodion.dcs.master.Metrics;
<a class="jxr_linenumber" name="50" href="#50">50</a>  
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/trafodion/dcs/master/listener/ListenerService.html">ListenerService</a> <strong class="jxr_keyword">extends</strong> Thread{
<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong>  <strong class="jxr_keyword">final</strong> Log LOG = LogFactory.getLog(ListenerService.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> selectorTimeout;
<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> requestTimeout;
<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> ServerSocketChannel server=<strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> Selector selector=<strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> String[] args;
<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/trafodion/dcs/zookeeper/ZkClient.html">ZkClient</a> zkc = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> String parentZnode;
<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> port;
<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> portRange;
<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> Configuration conf;
<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/trafodion/dcs/util/DcsNetworkConfiguration.html">DcsNetworkConfiguration</a> netConf;
<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/trafodion/dcs/master/Metrics.html">Metrics</a> metrics;
<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/trafodion/dcs/master/listener/ListenerWorker.html">ListenerWorker</a> worker=<strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> List&lt;PendingRequest&gt; pendingChanges = <strong class="jxr_keyword">new</strong> LinkedList&lt;PendingRequest&gt;();	<em class="jxr_comment">//list of PendingRequests instances</em>
<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> HashMap&lt;SelectionKey, Long&gt; timeouts = <strong class="jxr_keyword">new</strong> HashMap&lt;SelectionKey, Long&gt;(); <em class="jxr_comment">// hash map of timeouts</em>
<a class="jxr_linenumber" name="68" href="#68">68</a>  
<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> init(){
<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">if</strong>(metrics != <strong class="jxr_keyword">null</strong>)metrics.initListenerMetrics(System.nanoTime());
<a class="jxr_linenumber" name="71" href="#71">71</a>          worker = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/trafodion/dcs/master/listener/ListenerWorker.html">ListenerWorker</a>(zkc,parentZnode);
<a class="jxr_linenumber" name="72" href="#72">72</a>          worker.start();
<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">this</strong>.start();
<a class="jxr_linenumber" name="74" href="#74">74</a>      }
<a class="jxr_linenumber" name="75" href="#75">75</a>  
<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/trafodion/dcs/master/listener/ListenerService.html">ListenerService</a>(String[] args) {
<a class="jxr_linenumber" name="77" href="#77">77</a>          Options opt = <strong class="jxr_keyword">new</strong> Options();
<a class="jxr_linenumber" name="78" href="#78">78</a>          CommandLine cmd;
<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="80" href="#80">80</a>              cmd = <strong class="jxr_keyword">new</strong> GnuParser().parse(opt, args);
<a class="jxr_linenumber" name="81" href="#81">81</a>          } <strong class="jxr_keyword">catch</strong> (NullPointerException e) { <em class="jxr_comment">//No args found</em>
<a class="jxr_linenumber" name="82" href="#82">82</a>          } <strong class="jxr_keyword">catch</strong> (ParseException e) { <em class="jxr_comment">//Could not parse</em>
<a class="jxr_linenumber" name="83" href="#83">83</a>          }
<a class="jxr_linenumber" name="84" href="#84">84</a>  
<a class="jxr_linenumber" name="85" href="#85">85</a>          <strong class="jxr_keyword">this</strong>.args = args;
<a class="jxr_linenumber" name="86" href="#86">86</a>  
<a class="jxr_linenumber" name="87" href="#87">87</a>          <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="88" href="#88">88</a>              <strong class="jxr_keyword">this</strong>.conf = DcsConfiguration.create();
<a class="jxr_linenumber" name="89" href="#89">89</a>              <strong class="jxr_keyword">this</strong>.netConf = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/trafodion/dcs/util/DcsNetworkConfiguration.html">DcsNetworkConfiguration</a>(conf);
<a class="jxr_linenumber" name="90" href="#90">90</a>              <strong class="jxr_keyword">this</strong>.requestTimeout = conf.getInt(Constants.DCS_MASTER_LISTENER_REQUEST_TIMEOUT,Constants.DEFAULT_LISTENER_REQUEST_TIMEOUT);
<a class="jxr_linenumber" name="91" href="#91">91</a>              <strong class="jxr_keyword">this</strong>.selectorTimeout = conf.getInt(Constants.DCS_MASTER_LISTENER_SELECTOR_TIMEOUT,Constants.DEFAULT_LISTENER_SELECTOR_TIMEOUT);
<a class="jxr_linenumber" name="92" href="#92">92</a>              <strong class="jxr_keyword">this</strong>.port = conf.getInt(Constants.DCS_MASTER_PORT,Constants.DEFAULT_DCS_MASTER_PORT);
<a class="jxr_linenumber" name="93" href="#93">93</a>              <strong class="jxr_keyword">this</strong>.portRange = conf.getInt(Constants.DCS_MASTER_PORT_RANGE,Constants.DEFAULT_DCS_MASTER_PORT_RANGE);
<a class="jxr_linenumber" name="94" href="#94">94</a>              <strong class="jxr_keyword">this</strong>.parentZnode = conf.get(Constants.ZOOKEEPER_ZNODE_PARENT,Constants.DEFAULT_ZOOKEEPER_ZNODE_PARENT);	   	
<a class="jxr_linenumber" name="95" href="#95">95</a>              <strong class="jxr_keyword">this</strong>.metrics = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="96" href="#96">96</a>              <strong class="jxr_keyword">this</strong>.zkc = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/trafodion/dcs/zookeeper/ZkClient.html">ZkClient</a>(3000,0,0);
<a class="jxr_linenumber" name="97" href="#97">97</a>              zkc.connect();
<a class="jxr_linenumber" name="98" href="#98">98</a>              <strong class="jxr_keyword">while</strong> (zkc.getZk() == <strong class="jxr_keyword">null</strong> || zkc.getZk().getState() != ZooKeeper.States.CONNECTED) {
<a class="jxr_linenumber" name="99" href="#99">99</a>                  <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="100" href="#100">100</a>                     Thread.sleep(10000); <em class="jxr_comment">//wait 10 seconds</em>
<a class="jxr_linenumber" name="101" href="#101">101</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e) {	}
<a class="jxr_linenumber" name="102" href="#102">102</a>                 LOG.info(<span class="jxr_string">"Waiting for ZooKeeper"</span>);
<a class="jxr_linenumber" name="103" href="#103">103</a>             }
<a class="jxr_linenumber" name="104" href="#104">104</a>             LOG.info(<span class="jxr_string">"Connected to ZooKeeper"</span>);
<a class="jxr_linenumber" name="105" href="#105">105</a>             init();
<a class="jxr_linenumber" name="106" href="#106">106</a>         } <strong class="jxr_keyword">catch</strong> (Exception e){
<a class="jxr_linenumber" name="107" href="#107">107</a>             LOG.error(<span class="jxr_string">"Cannot connect to ZooKeeper: "</span> + e.getMessage());
<a class="jxr_linenumber" name="108" href="#108">108</a>             System.exit(1);
<a class="jxr_linenumber" name="109" href="#109">109</a>         }
<a class="jxr_linenumber" name="110" href="#110">110</a>     }
<a class="jxr_linenumber" name="111" href="#111">111</a> 
<a class="jxr_linenumber" name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/trafodion/dcs/master/listener/ListenerService.html">ListenerService</a>(<a href="../../../../../org/trafodion/dcs/zookeeper/ZkClient.html">ZkClient</a> zkc,DcsNetworkConfiguration netConf,<strong class="jxr_keyword">int</strong> port,<strong class="jxr_keyword">int</strong> portRange,<strong class="jxr_keyword">int</strong> requestTimeout, <strong class="jxr_keyword">int</strong> selectorTimeout, <a href="../../../../../org/trafodion/dcs/master/Metrics.html">Metrics</a> metrics, String parentZnode) {
<a class="jxr_linenumber" name="113" href="#113">113</a>         <strong class="jxr_keyword">this</strong>.zkc = zkc;
<a class="jxr_linenumber" name="114" href="#114">114</a>         <strong class="jxr_keyword">while</strong> (zkc.getZk() == <strong class="jxr_keyword">null</strong> || zkc.getZk().getState() != ZooKeeper.States.CONNECTED) {
<a class="jxr_linenumber" name="115" href="#115">115</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="116" href="#116">116</a>                 Thread.sleep(10000); <em class="jxr_comment">//wait 10 seconds</em>
<a class="jxr_linenumber" name="117" href="#117">117</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {	}
<a class="jxr_linenumber" name="118" href="#118">118</a>             LOG.info(<span class="jxr_string">"Waiting for ZooKeeper"</span>);
<a class="jxr_linenumber" name="119" href="#119">119</a>         }
<a class="jxr_linenumber" name="120" href="#120">120</a>         LOG.info(<span class="jxr_string">"Connected to ZooKeeper"</span>);
<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">this</strong>.netConf = netConf;
<a class="jxr_linenumber" name="122" href="#122">122</a>         <strong class="jxr_keyword">this</strong>.port = port;
<a class="jxr_linenumber" name="123" href="#123">123</a>         <strong class="jxr_keyword">this</strong>.portRange = portRange;
<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">this</strong>.requestTimeout = requestTimeout;
<a class="jxr_linenumber" name="125" href="#125">125</a>         <strong class="jxr_keyword">this</strong>.selectorTimeout = selectorTimeout;
<a class="jxr_linenumber" name="126" href="#126">126</a>         <strong class="jxr_keyword">this</strong>.metrics = metrics;
<a class="jxr_linenumber" name="127" href="#127">127</a>         <strong class="jxr_keyword">this</strong>.parentZnode = parentZnode;
<a class="jxr_linenumber" name="128" href="#128">128</a>         init();
<a class="jxr_linenumber" name="129" href="#129">129</a>     }
<a class="jxr_linenumber" name="130" href="#130">130</a> 
<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> send(<a href="../../../../../org/trafodion/dcs/master/listener/PendingRequest.html">PendingRequest</a> preq) {
<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>.pendingChanges) {
<a class="jxr_linenumber" name="133" href="#133">133</a>             <strong class="jxr_keyword">this</strong>.pendingChanges.add(preq);
<a class="jxr_linenumber" name="134" href="#134">134</a>         }
<a class="jxr_linenumber" name="135" href="#135">135</a>         <strong class="jxr_keyword">this</strong>.selector.wakeup();
<a class="jxr_linenumber" name="136" href="#136">136</a>     }
<a class="jxr_linenumber" name="137" href="#137">137</a>     
<a class="jxr_linenumber" name="138" href="#138">138</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> setSelectorTimeout(){
<a class="jxr_linenumber" name="139" href="#139">139</a>         <strong class="jxr_keyword">if</strong> (false == timeouts.isEmpty()){
<a class="jxr_linenumber" name="140" href="#140">140</a>             <strong class="jxr_keyword">return</strong> selectorTimeout;
<a class="jxr_linenumber" name="141" href="#141">141</a>         }
<a class="jxr_linenumber" name="142" href="#142">142</a>         <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="143" href="#143">143</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="144" href="#144">144</a>         }
<a class="jxr_linenumber" name="145" href="#145">145</a>     }
<a class="jxr_linenumber" name="146" href="#146">146</a> 
<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> gc() {
<a class="jxr_linenumber" name="148" href="#148">148</a>          Object obj = <strong class="jxr_keyword">new</strong> Object();
<a class="jxr_linenumber" name="149" href="#149">149</a>          java.lang.ref.WeakReference ref = <strong class="jxr_keyword">new</strong> java.lang.ref.WeakReference&lt;Object&gt;(obj);
<a class="jxr_linenumber" name="150" href="#150">150</a>          obj = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="151" href="#151">151</a>          <strong class="jxr_keyword">while</strong>(ref.get() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="152" href="#152">152</a>              System.gc();
<a class="jxr_linenumber" name="153" href="#153">153</a>          }
<a class="jxr_linenumber" name="154" href="#154">154</a>     }
<a class="jxr_linenumber" name="155" href="#155">155</a> 
<a class="jxr_linenumber" name="156" href="#156">156</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run () {
<a class="jxr_linenumber" name="157" href="#157">157</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="158" href="#158">158</a>             selector = SelectorProvider.provider().openSelector();
<a class="jxr_linenumber" name="159" href="#159">159</a>             <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="160" href="#160">160</a>                 LOG.debug(<span class="jxr_string">"ServerSocketChannel.open()"</span>);
<a class="jxr_linenumber" name="161" href="#161">161</a>             server = ServerSocketChannel.open();
<a class="jxr_linenumber" name="162" href="#162">162</a>             server.configureBlocking(false);
<a class="jxr_linenumber" name="163" href="#163">163</a> <em class="jxr_comment">//          InetSocketAddress isa = new InetSocketAddress(ia, port);</em>
<a class="jxr_linenumber" name="164" href="#164">164</a>             InetSocketAddress isa = <strong class="jxr_keyword">new</strong> InetSocketAddress(port); <em class="jxr_comment">//use any ip address for this port</em>
<a class="jxr_linenumber" name="165" href="#165">165</a>             server.socket().bind(isa);
<a class="jxr_linenumber" name="166" href="#166">166</a>             SelectionKey serverkey = server.register(selector, SelectionKey.OP_ACCEPT );
<a class="jxr_linenumber" name="167" href="#167">167</a>             <strong class="jxr_keyword">int</strong> keysAdded = 0;
<a class="jxr_linenumber" name="168" href="#168">168</a>             <a href="../../../../../org/trafodion/dcs/master/listener/PendingRequest.html">PendingRequest</a> preq = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="169" href="#169">169</a> 
<a class="jxr_linenumber" name="170" href="#170">170</a>             <strong class="jxr_keyword">while</strong>(<strong class="jxr_keyword">true</strong>){
<a class="jxr_linenumber" name="171" href="#171">171</a>                 <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>.pendingChanges) {
<a class="jxr_linenumber" name="172" href="#172">172</a>                     Iterator&lt;PendingRequest&gt; changes = <strong class="jxr_keyword">this</strong>.pendingChanges.iterator();
<a class="jxr_linenumber" name="173" href="#173">173</a>                     <strong class="jxr_keyword">while</strong> (changes.hasNext()) {
<a class="jxr_linenumber" name="174" href="#174">174</a>                         preq = changes.next();
<a class="jxr_linenumber" name="175" href="#175">175</a>                         SelectionKey key = preq.key;
<a class="jxr_linenumber" name="176" href="#176">176</a>                         <strong class="jxr_keyword">int</strong> request = preq.request;
<a class="jxr_linenumber" name="177" href="#177">177</a>                         <strong class="jxr_keyword">switch</strong>(request){
<a class="jxr_linenumber" name="178" href="#178">178</a>                         <strong class="jxr_keyword">case</strong> ListenerConstants.REQUST_WRITE_EXCEPTION:
<a class="jxr_linenumber" name="179" href="#179">179</a>                             <strong class="jxr_keyword">if</strong>(metrics != <strong class="jxr_keyword">null</strong>) metrics.listenerNoAvailableServers();
<a class="jxr_linenumber" name="180" href="#180">180</a>                         <strong class="jxr_keyword">case</strong> ListenerConstants.REQUST_WRITE:
<a class="jxr_linenumber" name="181" href="#181">181</a>                             key.interestOps(key.interestOps() | SelectionKey.OP_WRITE);
<a class="jxr_linenumber" name="182" href="#182">182</a>                             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="183" href="#183">183</a>                         <strong class="jxr_keyword">case</strong> ListenerConstants.REQUST_CLOSE:
<a class="jxr_linenumber" name="184" href="#184">184</a>                             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="185" href="#185">185</a>                                 SocketChannel client = (SocketChannel)key.channel();
<a class="jxr_linenumber" name="186" href="#186">186</a>                                 client.close();
<a class="jxr_linenumber" name="187" href="#187">187</a>                                 <a href="../../../../../org/trafodion/dcs/master/listener/ClientData.html">ClientData</a> clientData = (ClientData) key.attachment();
<a class="jxr_linenumber" name="188" href="#188">188</a>                                 clientData.header = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="189" href="#189">189</a>                                 clientData.body = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="190" href="#190">190</a>                                 clientData.hdr = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="191" href="#191">191</a>                                 clientData.conectContex = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="192" href="#192">192</a>                                 clientData.clientSocketAddress = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="193" href="#193">193</a>                                 key.cancel();
<a class="jxr_linenumber" name="194" href="#194">194</a>                                 <strong class="jxr_keyword">if</strong>(metrics != <strong class="jxr_keyword">null</strong>) metrics.listenerRequestRejected();
<a class="jxr_linenumber" name="195" href="#195">195</a>                             } <strong class="jxr_keyword">catch</strong> (IOException e) {}
<a class="jxr_linenumber" name="196" href="#196">196</a>                             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="197" href="#197">197</a>                         }
<a class="jxr_linenumber" name="198" href="#198">198</a>                         preq.key = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="199" href="#199">199</a>                     }
<a class="jxr_linenumber" name="200" href="#200">200</a>                     <strong class="jxr_keyword">this</strong>.pendingChanges.clear();
<a class="jxr_linenumber" name="201" href="#201">201</a>                 }
<a class="jxr_linenumber" name="202" href="#202">202</a> 
<a class="jxr_linenumber" name="203" href="#203">203</a>                 <strong class="jxr_keyword">while</strong> ((keysAdded = selector.select(setSelectorTimeout())) &gt; 0) {
<a class="jxr_linenumber" name="204" href="#204">204</a>                     Set&lt;SelectionKey&gt; keys = selector.selectedKeys();
<a class="jxr_linenumber" name="205" href="#205">205</a>                     Iterator&lt;SelectionKey&gt; i = keys.iterator();
<a class="jxr_linenumber" name="206" href="#206">206</a> 
<a class="jxr_linenumber" name="207" href="#207">207</a>                     <strong class="jxr_keyword">while</strong> (i.hasNext()) {
<a class="jxr_linenumber" name="208" href="#208">208</a>                         SelectionKey key = i.next();
<a class="jxr_linenumber" name="209" href="#209">209</a>                         i.remove();
<a class="jxr_linenumber" name="210" href="#210">210</a>                         <strong class="jxr_keyword">if</strong> (!key.isValid()) <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="211" href="#211">211</a> 
<a class="jxr_linenumber" name="212" href="#212">212</a>                         <strong class="jxr_keyword">if</strong> ((key.readyOps() &amp; SelectionKey.OP_ACCEPT) == SelectionKey.OP_ACCEPT) {
<a class="jxr_linenumber" name="213" href="#213">213</a>                             <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="214" href="#214">214</a>                                 LOG.debug(<span class="jxr_string">"Ready to process ACCEPT"</span>);
<a class="jxr_linenumber" name="215" href="#215">215</a>                             processAccept(key);
<a class="jxr_linenumber" name="216" href="#216">216</a>                         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ((key.readyOps() &amp; SelectionKey.OP_READ) == SelectionKey.OP_READ) {
<a class="jxr_linenumber" name="217" href="#217">217</a>                             <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="218" href="#218">218</a>                                 LOG.debug(<span class="jxr_string">"Ready to process READ"</span>);
<a class="jxr_linenumber" name="219" href="#219">219</a>                             processRead(key);
<a class="jxr_linenumber" name="220" href="#220">220</a>                         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ((key.readyOps() &amp; SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) {
<a class="jxr_linenumber" name="221" href="#221">221</a>                             <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="222" href="#222">222</a>                                 LOG.debug(<span class="jxr_string">"Ready to process WRITE"</span>);
<a class="jxr_linenumber" name="223" href="#223">223</a>                             processWrite(key);
<a class="jxr_linenumber" name="224" href="#224">224</a>                         }
<a class="jxr_linenumber" name="225" href="#225">225</a>                     }
<a class="jxr_linenumber" name="226" href="#226">226</a>                 }
<a class="jxr_linenumber" name="227" href="#227">227</a>                 <strong class="jxr_keyword">if</strong> (false == timeouts.isEmpty()){
<a class="jxr_linenumber" name="228" href="#228">228</a>                     <strong class="jxr_keyword">long</strong> currentTime = System.currentTimeMillis();
<a class="jxr_linenumber" name="229" href="#229">229</a>                     Iterator&lt;SelectionKey&gt; i = timeouts.keySet().iterator();
<a class="jxr_linenumber" name="230" href="#230">230</a>                     <strong class="jxr_keyword">while</strong>(i.hasNext()){
<a class="jxr_linenumber" name="231" href="#231">231</a>                       SelectionKey key = i.next();
<a class="jxr_linenumber" name="232" href="#232">232</a>                       <strong class="jxr_keyword">if</strong> (currentTime - timeouts.get(key) &gt; requestTimeout){
<a class="jxr_linenumber" name="233" href="#233">233</a>                           <strong class="jxr_keyword">long</strong> timeout = (currentTime - timeouts.get(key))/1000;
<a class="jxr_linenumber" name="234" href="#234">234</a>                           SocketChannel client = (SocketChannel) key.channel();
<a class="jxr_linenumber" name="235" href="#235">235</a>                           Socket s = client.socket();
<a class="jxr_linenumber" name="236" href="#236">236</a>                           <strong class="jxr_keyword">if</strong> ((key.interestOps() &amp; SelectionKey.OP_READ) == SelectionKey.OP_READ){
<a class="jxr_linenumber" name="237" href="#237">237</a>                               <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="238" href="#238">238</a>                                   LOG.debug(<span class="jxr_string">"Read from client timeouted["</span> + timeout + <span class="jxr_string">" seconds] from: "</span> + s.getRemoteSocketAddress());
<a class="jxr_linenumber" name="239" href="#239">239</a>                               <strong class="jxr_keyword">if</strong>(metrics != <strong class="jxr_keyword">null</strong>) metrics.listenerReadTimeout();
<a class="jxr_linenumber" name="240" href="#240">240</a>                           }
<a class="jxr_linenumber" name="241" href="#241">241</a>                           <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ((key.interestOps() &amp; SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) {
<a class="jxr_linenumber" name="242" href="#242">242</a>                               <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="243" href="#243">243</a>                                   LOG.debug(<span class="jxr_string">"Write to client timeouted["</span> + timeout + <span class="jxr_string">" seconds] from: "</span> + s.getRemoteSocketAddress());
<a class="jxr_linenumber" name="244" href="#244">244</a>                               <strong class="jxr_keyword">if</strong>(metrics != <strong class="jxr_keyword">null</strong>) metrics.listenerWriteTimeout();
<a class="jxr_linenumber" name="245" href="#245">245</a>                           }
<a class="jxr_linenumber" name="246" href="#246">246</a>                           <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="247" href="#247">247</a>                               <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="248" href="#248">248</a>                                   LOG.debug(<span class="jxr_string">"Client timeouted["</span> + timeout + <span class="jxr_string">" seconds] from: "</span> + s.getRemoteSocketAddress());
<a class="jxr_linenumber" name="249" href="#249">249</a>                               <strong class="jxr_keyword">if</strong>(metrics != <strong class="jxr_keyword">null</strong>) metrics.listenerRequestRejected();
<a class="jxr_linenumber" name="250" href="#250">250</a>                           }
<a class="jxr_linenumber" name="251" href="#251">251</a>                           <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="252" href="#252">252</a>                               client.close();
<a class="jxr_linenumber" name="253" href="#253">253</a>                           } <strong class="jxr_keyword">catch</strong> (IOException ex){;}
<a class="jxr_linenumber" name="254" href="#254">254</a>                           <a href="../../../../../org/trafodion/dcs/master/listener/ClientData.html">ClientData</a> clientData = (ClientData) key.attachment();
<a class="jxr_linenumber" name="255" href="#255">255</a>                           clientData.header = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="256" href="#256">256</a>                           clientData.body = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="257" href="#257">257</a>                           clientData.hdr = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="258" href="#258">258</a>                           clientData.conectContex = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="259" href="#259">259</a>                           clientData.clientSocketAddress = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="260" href="#260">260</a>                           key.attach(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="261" href="#261">261</a>                           key.cancel();
<a class="jxr_linenumber" name="262" href="#262">262</a>                           i.remove();
<a class="jxr_linenumber" name="263" href="#263">263</a>                         }
<a class="jxr_linenumber" name="264" href="#264">264</a>                     }
<a class="jxr_linenumber" name="265" href="#265">265</a>                 }
<a class="jxr_linenumber" name="266" href="#266">266</a>                 <em class="jxr_comment">//gc();</em>
<a class="jxr_linenumber" name="267" href="#267">267</a>             }
<a class="jxr_linenumber" name="268" href="#268">268</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a class="jxr_linenumber" name="269" href="#269">269</a>             LOG.error(e);
<a class="jxr_linenumber" name="270" href="#270">270</a>             System.exit(1);
<a class="jxr_linenumber" name="271" href="#271">271</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="272" href="#272">272</a>             <strong class="jxr_keyword">if</strong> (server != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="273" href="#273">273</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="274" href="#274">274</a>                     server.close();
<a class="jxr_linenumber" name="275" href="#275">275</a>                 } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a class="jxr_linenumber" name="276" href="#276">276</a>                     e.printStackTrace();
<a class="jxr_linenumber" name="277" href="#277">277</a>                 }
<a class="jxr_linenumber" name="278" href="#278">278</a>             }
<a class="jxr_linenumber" name="279" href="#279">279</a>         }
<a class="jxr_linenumber" name="280" href="#280">280</a>     }
<a class="jxr_linenumber" name="281" href="#281">281</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> processAccept(SelectionKey key) {
<a class="jxr_linenumber" name="282" href="#282">282</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="283" href="#283">283</a> 
<a class="jxr_linenumber" name="284" href="#284">284</a>             ServerSocketChannel server = (ServerSocketChannel)key.channel();
<a class="jxr_linenumber" name="285" href="#285">285</a>             SocketChannel client = server.accept();
<a class="jxr_linenumber" name="286" href="#286">286</a>             Socket s = client.socket();
<a class="jxr_linenumber" name="287" href="#287">287</a>             <em class="jxr_comment">// Accept the request</em>
<a class="jxr_linenumber" name="288" href="#288">288</a>             <strong class="jxr_keyword">this</strong>.metrics.listenerStartRequest(System.nanoTime());
<a class="jxr_linenumber" name="289" href="#289">289</a>             <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="290" href="#290">290</a>                 LOG.debug(<span class="jxr_string">"Received an incoming connection from: "</span> + s.getRemoteSocketAddress());
<a class="jxr_linenumber" name="291" href="#291">291</a>             client.configureBlocking( false );
<a class="jxr_linenumber" name="292" href="#292">292</a>             SelectionKey clientkey = client.register( selector, SelectionKey.OP_READ );
<a class="jxr_linenumber" name="293" href="#293">293</a>             clientkey.attach(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/trafodion/dcs/master/listener/ClientData.html">ClientData</a>(s.getRemoteSocketAddress()));
<a class="jxr_linenumber" name="294" href="#294">294</a>             <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="295" href="#295">295</a>                 LOG.debug(s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + <span class="jxr_string">"Accept processed"</span>);
<a class="jxr_linenumber" name="296" href="#296">296</a>         } <strong class="jxr_keyword">catch</strong> (IOException ie) {
<a class="jxr_linenumber" name="297" href="#297">297</a>             LOG.error(<span class="jxr_string">"Cannot Accept connection: "</span> + ie.getMessage());
<a class="jxr_linenumber" name="298" href="#298">298</a>         }
<a class="jxr_linenumber" name="299" href="#299">299</a>     }
<a class="jxr_linenumber" name="300" href="#300">300</a> 
<a class="jxr_linenumber" name="301" href="#301">301</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> processRead(SelectionKey key) {
<a class="jxr_linenumber" name="302" href="#302">302</a> 
<a class="jxr_linenumber" name="303" href="#303">303</a>         key.interestOps( key.interestOps() ^ SelectionKey.OP_READ);
<a class="jxr_linenumber" name="304" href="#304">304</a> 
<a class="jxr_linenumber" name="305" href="#305">305</a>         SocketChannel client = (SocketChannel) key.channel();
<a class="jxr_linenumber" name="306" href="#306">306</a>         Socket s = client.socket();
<a class="jxr_linenumber" name="307" href="#307">307</a>         <strong class="jxr_keyword">long</strong> readLength=0;
<a class="jxr_linenumber" name="308" href="#308">308</a> 
<a class="jxr_linenumber" name="309" href="#309">309</a>         <a href="../../../../../org/trafodion/dcs/master/listener/ClientData.html">ClientData</a> clientData = (ClientData) key.attachment();
<a class="jxr_linenumber" name="310" href="#310">310</a>         <strong class="jxr_keyword">if</strong> (false == timeouts.isEmpty() &amp;&amp; <strong class="jxr_keyword">true</strong> == timeouts.containsKey(key)){
<a class="jxr_linenumber" name="311" href="#311">311</a>             timeouts.remove(key);
<a class="jxr_linenumber" name="312" href="#312">312</a>         }
<a class="jxr_linenumber" name="313" href="#313">313</a> 
<a class="jxr_linenumber" name="314" href="#314">314</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="315" href="#315">315</a>             <strong class="jxr_keyword">while</strong> ((readLength = client.read(clientData.buf)) &gt; 0) {
<a class="jxr_linenumber" name="316" href="#316">316</a>                 clientData.total_read += readLength;
<a class="jxr_linenumber" name="317" href="#317">317</a>                 <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="318" href="#318">318</a>                     LOG.debug(s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + <span class="jxr_string">"Read readLength  "</span> + readLength + <span class="jxr_string">"  total "</span> + clientData.total_read);
<a class="jxr_linenumber" name="319" href="#319">319</a>             }
<a class="jxr_linenumber" name="320" href="#320">320</a>             <strong class="jxr_keyword">if</strong> (readLength == -1 ){
<a class="jxr_linenumber" name="321" href="#321">321</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + <span class="jxr_string">"Connection closed by peer on READ"</span>);
<a class="jxr_linenumber" name="322" href="#322">322</a>             }
<a class="jxr_linenumber" name="323" href="#323">323</a> 
<a class="jxr_linenumber" name="324" href="#324">324</a>             <strong class="jxr_keyword">if</strong> (clientData.total_read &lt; ListenerConstants.HEADER_SIZE){
<a class="jxr_linenumber" name="325" href="#325">325</a>                 key.interestOps(key.interestOps() | SelectionKey.OP_READ);
<a class="jxr_linenumber" name="326" href="#326">326</a>                 key.attach(clientData);
<a class="jxr_linenumber" name="327" href="#327">327</a>                 timeouts.put(key, System.currentTimeMillis());
<a class="jxr_linenumber" name="328" href="#328">328</a>                 <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="329" href="#329">329</a>                     LOG.debug(s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + <span class="jxr_string">"Read length less than HEADER size. Added timeout on READ"</span>);
<a class="jxr_linenumber" name="330" href="#330">330</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="331" href="#331">331</a>             }
<a class="jxr_linenumber" name="332" href="#332">332</a> 
<a class="jxr_linenumber" name="333" href="#333">333</a>             <strong class="jxr_keyword">if</strong> (ListenerConstants.BUFFER_INIT == clientData.buffer_state){
<a class="jxr_linenumber" name="334" href="#334">334</a>                 clientData.buffer_state = ListenerConstants.HEADER_PROCESSED;
<a class="jxr_linenumber" name="335" href="#335">335</a>                 ByteBuffer hdr = clientData.buf[0];
<a class="jxr_linenumber" name="336" href="#336">336</a>                 hdr.flip();
<a class="jxr_linenumber" name="337" href="#337">337</a>                 clientData.hdr.extractFromByteArray(hdr);
<a class="jxr_linenumber" name="338" href="#338">338</a>                 <strong class="jxr_keyword">if</strong> (clientData.hdr.signature_ == ListenerConstants.LITTLE_ENDIAN_SIGNATURE){
<a class="jxr_linenumber" name="339" href="#339">339</a>                     clientData.switchEndian();
<a class="jxr_linenumber" name="340" href="#340">340</a>                     hdr = clientData.buf[0];
<a class="jxr_linenumber" name="341" href="#341">341</a>                     clientData.hdr.extractFromByteArray(hdr);
<a class="jxr_linenumber" name="342" href="#342">342</a>                 }
<a class="jxr_linenumber" name="343" href="#343">343</a>                 <strong class="jxr_keyword">if</strong> (clientData.hdr.signature_ != ListenerConstants.BIG_ENDIAN_SIGNATURE)
<a class="jxr_linenumber" name="344" href="#344">344</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Wrong signature in read Header : "</span> + clientData.hdr.signature_);
<a class="jxr_linenumber" name="345" href="#345">345</a>             }
<a class="jxr_linenumber" name="346" href="#346">346</a>             <strong class="jxr_keyword">if</strong> (clientData.total_read &lt; (clientData.hdr.getTotalLength() + ListenerConstants.HEADER_SIZE)){
<a class="jxr_linenumber" name="347" href="#347">347</a>                 key.interestOps(key.interestOps() | SelectionKey.OP_READ);
<a class="jxr_linenumber" name="348" href="#348">348</a>                 key.attach(clientData);
<a class="jxr_linenumber" name="349" href="#349">349</a>                 timeouts.put(key, System.currentTimeMillis());
<a class="jxr_linenumber" name="350" href="#350">350</a>                 <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="351" href="#351">351</a>                     LOG.debug(s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + <span class="jxr_string">"Total length less than in read HEADER. Added timeout on READ"</span>);
<a class="jxr_linenumber" name="352" href="#352">352</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="353" href="#353">353</a>             }
<a class="jxr_linenumber" name="354" href="#354">354</a>             <strong class="jxr_keyword">if</strong> (clientData.total_read &gt; (clientData.hdr.getTotalLength() + ListenerConstants.HEADER_SIZE)){
<a class="jxr_linenumber" name="355" href="#355">355</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Wrong total length in read Header : total_read "</span> + clientData.total_read + <span class="jxr_string">", hdr_total_length + hdr_size "</span> + clientData.hdr.getTotalLength() +  + ListenerConstants.HEADER_SIZE);
<a class="jxr_linenumber" name="356" href="#356">356</a>             }
<a class="jxr_linenumber" name="357" href="#357">357</a>             key.attach(clientData);
<a class="jxr_linenumber" name="358" href="#358">358</a>             <strong class="jxr_keyword">this</strong>.worker.processData(<strong class="jxr_keyword">this</strong>, key);
<a class="jxr_linenumber" name="359" href="#359">359</a>             <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="360" href="#360">360</a>                 LOG.debug(s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + <span class="jxr_string">"Read processed"</span>);
<a class="jxr_linenumber" name="361" href="#361">361</a> 
<a class="jxr_linenumber" name="362" href="#362">362</a>         } <strong class="jxr_keyword">catch</strong> (IOException ie){
<a class="jxr_linenumber" name="363" href="#363">363</a>             LOG.error(<span class="jxr_string">"IOException: "</span> + s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + ie.getMessage());
<a class="jxr_linenumber" name="364" href="#364">364</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="365" href="#365">365</a>                 client.close();
<a class="jxr_linenumber" name="366" href="#366">366</a>             } <strong class="jxr_keyword">catch</strong> (IOException ex){;}
<a class="jxr_linenumber" name="367" href="#367">367</a>             clientData = (ClientData) key.attachment();
<a class="jxr_linenumber" name="368" href="#368">368</a>             clientData.header = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="369" href="#369">369</a>             clientData.body = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="370" href="#370">370</a>             clientData.hdr = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="371" href="#371">371</a>             clientData.conectContex = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="372" href="#372">372</a>             clientData.clientSocketAddress = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="373" href="#373">373</a>             key.attach(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="374" href="#374">374</a>             key.cancel();
<a class="jxr_linenumber" name="375" href="#375">375</a>             <strong class="jxr_keyword">if</strong>(metrics != <strong class="jxr_keyword">null</strong>) metrics.listenerRequestRejected();
<a class="jxr_linenumber" name="376" href="#376">376</a>         }
<a class="jxr_linenumber" name="377" href="#377">377</a>     }
<a class="jxr_linenumber" name="378" href="#378">378</a> 
<a class="jxr_linenumber" name="379" href="#379">379</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> processWrite(SelectionKey key) {
<a class="jxr_linenumber" name="380" href="#380">380</a>     
<a class="jxr_linenumber" name="381" href="#381">381</a>         key.interestOps(key.interestOps() ^ SelectionKey.OP_WRITE);
<a class="jxr_linenumber" name="382" href="#382">382</a> 
<a class="jxr_linenumber" name="383" href="#383">383</a>         SocketChannel client = (SocketChannel) key.channel();
<a class="jxr_linenumber" name="384" href="#384">384</a>         Socket s = client.socket();
<a class="jxr_linenumber" name="385" href="#385">385</a>         <strong class="jxr_keyword">long</strong> writeLength=0;
<a class="jxr_linenumber" name="386" href="#386">386</a> 
<a class="jxr_linenumber" name="387" href="#387">387</a>         <a href="../../../../../org/trafodion/dcs/master/listener/ClientData.html">ClientData</a> clientData = (ClientData) key.attachment();
<a class="jxr_linenumber" name="388" href="#388">388</a>         <strong class="jxr_keyword">if</strong> (false == timeouts.isEmpty() &amp;&amp; <strong class="jxr_keyword">true</strong> == timeouts.containsKey(key)){
<a class="jxr_linenumber" name="389" href="#389">389</a>             timeouts.remove(key);
<a class="jxr_linenumber" name="390" href="#390">390</a>         }
<a class="jxr_linenumber" name="391" href="#391">391</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="392" href="#392">392</a>             <strong class="jxr_keyword">while</strong> ((writeLength = client.write(clientData.buf)) &gt; 0) {
<a class="jxr_linenumber" name="393" href="#393">393</a>                 clientData.total_write += writeLength;
<a class="jxr_linenumber" name="394" href="#394">394</a>             }
<a class="jxr_linenumber" name="395" href="#395">395</a>             <strong class="jxr_keyword">if</strong> (writeLength == -1 ){
<a class="jxr_linenumber" name="396" href="#396">396</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + <span class="jxr_string">"Connection closed by peer on WRITE"</span>);
<a class="jxr_linenumber" name="397" href="#397">397</a>             }
<a class="jxr_linenumber" name="398" href="#398">398</a> 
<a class="jxr_linenumber" name="399" href="#399">399</a>             <strong class="jxr_keyword">if</strong> (clientData.buf[0].hasRemaining() || clientData.buf[1].hasRemaining()){
<a class="jxr_linenumber" name="400" href="#400">400</a>                 key.attach(clientData);
<a class="jxr_linenumber" name="401" href="#401">401</a>                 key.interestOps(key.interestOps() | SelectionKey.OP_WRITE);
<a class="jxr_linenumber" name="402" href="#402">402</a>                 timeouts.put(key, System.currentTimeMillis());
<a class="jxr_linenumber" name="403" href="#403">403</a>                 <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="404" href="#404">404</a>                     LOG.debug(s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + <span class="jxr_string">"Write length less than total write length. Added timeout on WRITE"</span>);
<a class="jxr_linenumber" name="405" href="#405">405</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="406" href="#406">406</a>                 client.close();
<a class="jxr_linenumber" name="407" href="#407">407</a>                 clientData.header = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="408" href="#408">408</a>                 clientData.body = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="409" href="#409">409</a>                 clientData.hdr = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="410" href="#410">410</a>                 clientData.conectContex = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="411" href="#411">411</a>                 clientData.clientSocketAddress = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="412" href="#412">412</a>                 key.attach(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="413" href="#413">413</a>                 key.cancel();
<a class="jxr_linenumber" name="414" href="#414">414</a>                 <strong class="jxr_keyword">if</strong>(metrics != <strong class="jxr_keyword">null</strong>)metrics.listenerEndRequest(System.nanoTime());
<a class="jxr_linenumber" name="415" href="#415">415</a>                 <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="416" href="#416">416</a>                     LOG.debug(s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + <span class="jxr_string">"Write processed"</span>);
<a class="jxr_linenumber" name="417" href="#417">417</a>             }
<a class="jxr_linenumber" name="418" href="#418">418</a>         } <strong class="jxr_keyword">catch</strong> (IOException ie){
<a class="jxr_linenumber" name="419" href="#419">419</a>             LOG.error(<span class="jxr_string">"IOException: "</span> + s.getRemoteSocketAddress() + <span class="jxr_string">": "</span> + ie.getMessage());
<a class="jxr_linenumber" name="420" href="#420">420</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="421" href="#421">421</a>                 client.close();
<a class="jxr_linenumber" name="422" href="#422">422</a>             } <strong class="jxr_keyword">catch</strong> (IOException ex){;}
<a class="jxr_linenumber" name="423" href="#423">423</a>             clientData.header = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="424" href="#424">424</a>             clientData.body = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="425" href="#425">425</a>             clientData.hdr = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="426" href="#426">426</a>             clientData.conectContex = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="427" href="#427">427</a>             clientData.clientSocketAddress = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="428" href="#428">428</a>             key.attach(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="429" href="#429">429</a>             key.cancel();
<a class="jxr_linenumber" name="430" href="#430">430</a>             <strong class="jxr_keyword">if</strong>(metrics != <strong class="jxr_keyword">null</strong>)metrics.listenerRequestRejected();
<a class="jxr_linenumber" name="431" href="#431">431</a>         }
<a class="jxr_linenumber" name="432" href="#432">432</a>     }
<a class="jxr_linenumber" name="433" href="#433">433</a> 
<a class="jxr_linenumber" name="434" href="#434">434</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String [] args) {
<a class="jxr_linenumber" name="435" href="#435">435</a>         <a href="../../../../../org/trafodion/dcs/master/listener/ListenerService.html">ListenerService</a> as = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/trafodion/dcs/master/listener/ListenerService.html">ListenerService</a>(args);
<a class="jxr_linenumber" name="436" href="#436">436</a>     }
<a class="jxr_linenumber" name="437" href="#437">437</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

