<!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>JdbcT2Util xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/trafodion/dcs/util/JdbcT2Util.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_javadoccomment">/**</em><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>   <em class="jxr_javadoccomment">*</em>
<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>  <em class="jxr_javadoccomment">*</em>
<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>  <em class="jxr_javadoccomment">*</em>
<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>  <em class="jxr_javadoccomment">*</em>
<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.util;
<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.sql.*;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.*;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.net.URLClassLoader;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.io.*;
<a class="jxr_linenumber" name="31" href="#31">31</a>  
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.CommandLine;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.GnuParser;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.Options;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.ParseException;
<a class="jxr_linenumber" name="36" href="#36">36</a>  
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.codehaus.jettison.json.JSONArray;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.codehaus.jettison.json.JSONException;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.codehaus.jettison.json.JSONObject;
<a class="jxr_linenumber" name="40" href="#40">40</a>  
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a class="jxr_linenumber" name="43" href="#43">43</a>  
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
<a class="jxr_linenumber" name="45" href="#45">45</a>  
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.trafodion.dcs.util.DcsConfiguration;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.trafodion.dcs.Constants;
<a class="jxr_linenumber" name="48" href="#48">48</a>  
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/trafodion/dcs/util/JdbcT2Util.html">JdbcT2Util</a>
<a class="jxr_linenumber" name="50" href="#50">50</a>  {
<a class="jxr_linenumber" name="51" href="#51">51</a>  	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Log LOG = LogFactory.getLog(JdbcT2Util.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> Configuration conf;
<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> mapInitialSize;
<a class="jxr_linenumber" name="54" href="#54">54</a>      Map&lt;String, ConnectionContext&gt; m;
<a class="jxr_linenumber" name="55" href="#55">55</a>   
<a class="jxr_linenumber" name="56" href="#56">56</a>  	<strong class="jxr_keyword">static</strong>
<a class="jxr_linenumber" name="57" href="#57">57</a>  	{
<a class="jxr_linenumber" name="58" href="#58">58</a>  		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="59" href="#59">59</a>  			Class.forName(Constants.T2_DRIVER_CLASS_NAME);
<a class="jxr_linenumber" name="60" href="#60">60</a>  		} <strong class="jxr_keyword">catch</strong> (ClassNotFoundException e) {
<a class="jxr_linenumber" name="61" href="#61">61</a>  			e.printStackTrace();
<a class="jxr_linenumber" name="62" href="#62">62</a>  			LOG.error(e.getMessage());
<a class="jxr_linenumber" name="63" href="#63">63</a>  		}
<a class="jxr_linenumber" name="64" href="#64">64</a>  	}
<a class="jxr_linenumber" name="65" href="#65">65</a>  	
<a class="jxr_linenumber" name="66" href="#66">66</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init(Configuration conf) {
<a class="jxr_linenumber" name="67" href="#67">67</a>  		<strong class="jxr_keyword">this</strong>.conf = conf;
<a class="jxr_linenumber" name="68" href="#68">68</a>  		mapInitialSize = conf.getInt(<span class="jxr_string">"dcs.info.threads.max"</span>, 100);
<a class="jxr_linenumber" name="69" href="#69">69</a>  		m = <strong class="jxr_keyword">new</strong> HashMap&lt;String, ConnectionContext&gt;(mapInitialSize);
<a class="jxr_linenumber" name="70" href="#70">70</a>  		System.out.println(<span class="jxr_string">"dcs.conf.dir="</span> + System.getProperty(<span class="jxr_string">"dcs.conf.dir"</span>));
<a class="jxr_linenumber" name="71" href="#71">71</a>  		System.out.println(<span class="jxr_string">"dcs.root.logger="</span> + System.getProperty(<span class="jxr_string">"dcs.root.logger"</span>));
<a class="jxr_linenumber" name="72" href="#72">72</a>  		System.out.println(<span class="jxr_string">"dcs.log.dir="</span> + System.getProperty(<span class="jxr_string">"dcs.log.dir"</span>));
<a class="jxr_linenumber" name="73" href="#73">73</a>  		System.out.println(<span class="jxr_string">"dcs.log.file="</span> + System.getProperty(<span class="jxr_string">"dcs.log.file"</span>));
<a class="jxr_linenumber" name="74" href="#74">74</a>  		
<a class="jxr_linenumber" name="75" href="#75">75</a>  		System.setProperty(<span class="jxr_string">"hbaseclient.log4j.properties"</span>,System.getProperty(<span class="jxr_string">"dcs.conf.dir"</span>) + <span class="jxr_string">"/log4j.properties"</span>);
<a class="jxr_linenumber" name="76" href="#76">76</a>  		System.setProperty(<span class="jxr_string">"dcs.root.logger"</span>,System.getProperty(<span class="jxr_string">"dcs.root.logger"</span>));
<a class="jxr_linenumber" name="77" href="#77">77</a>  		System.setProperty(<span class="jxr_string">"dcs.log.dir"</span>,System.getProperty(<span class="jxr_string">"dcs.log.dir"</span>));
<a class="jxr_linenumber" name="78" href="#78">78</a>  		System.setProperty(<span class="jxr_string">"dcs.log.file"</span>,System.getProperty(<span class="jxr_string">"dcs.log.file"</span>));
<a class="jxr_linenumber" name="79" href="#79">79</a>  	}
<a class="jxr_linenumber" name="80" href="#80">80</a>  	
<a class="jxr_linenumber" name="81" href="#81">81</a>  	<strong class="jxr_keyword">public</strong> <a href="../../../../org/trafodion/dcs/util/JdbcT2Util.html">JdbcT2Util</a>() {
<a class="jxr_linenumber" name="82" href="#82">82</a>  		Configuration conf = DcsConfiguration.create();
<a class="jxr_linenumber" name="83" href="#83">83</a>  		init(conf);
<a class="jxr_linenumber" name="84" href="#84">84</a>  	}
<a class="jxr_linenumber" name="85" href="#85">85</a>  	
<a class="jxr_linenumber" name="86" href="#86">86</a>  	<strong class="jxr_keyword">public</strong> <a href="../../../../org/trafodion/dcs/util/JdbcT2Util.html">JdbcT2Util</a>(Configuration conf) {
<a class="jxr_linenumber" name="87" href="#87">87</a>  		init(conf);
<a class="jxr_linenumber" name="88" href="#88">88</a>  	}
<a class="jxr_linenumber" name="89" href="#89">89</a>  
<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">class</strong> <a href="../../../../org/trafodion/dcs/util/JdbcT2Util.html">ConnectionContext</a> {
<a class="jxr_linenumber" name="91" href="#91">91</a>          java.sql.Connection conn;
<a class="jxr_linenumber" name="92" href="#92">92</a>          java.sql.Statement stmt;
<a class="jxr_linenumber" name="93" href="#93">93</a>          java.sql.ResultSet rs; 
<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">boolean</strong> open = false;
<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">boolean</strong> error = false;
<a class="jxr_linenumber" name="96" href="#96">96</a>  
<a class="jxr_linenumber" name="97" href="#97">97</a>  		<strong class="jxr_keyword">void</strong> open() {
<a class="jxr_linenumber" name="98" href="#98">98</a>  			<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="99" href="#99">99</a>  				LOG.debug(<span class="jxr_string">"Begin ConnectionContext.open()"</span>);
<a class="jxr_linenumber" name="100" href="#100">100</a> 			
<a class="jxr_linenumber" name="101" href="#101">101</a> 			<strong class="jxr_keyword">if</strong>(open == false) {
<a class="jxr_linenumber" name="102" href="#102">102</a> 				<strong class="jxr_keyword">try</strong>	{
<a class="jxr_linenumber" name="103" href="#103">103</a> 					<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="104" href="#104">104</a> 						LOG.debug(<span class="jxr_string">"DriverManager.getConnection("</span> + Constants.T2_DRIVER_URL + <span class="jxr_string">")"</span>);
<a class="jxr_linenumber" name="105" href="#105">105</a> 					conn = DriverManager.getConnection(Constants.T2_DRIVER_URL);
<a class="jxr_linenumber" name="106" href="#106">106</a> 					<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="107" href="#107">107</a> 						LOG.debug(<span class="jxr_string">"conn.createStatement()"</span>);
<a class="jxr_linenumber" name="108" href="#108">108</a> 					stmt = conn.createStatement();
<a class="jxr_linenumber" name="109" href="#109">109</a> 					<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="110" href="#110">110</a> 						LOG.debug(<span class="jxr_string">"stmt.execute("</span> + Constants.CQD_ESTIMATE_HBASE_ROW_COUNT_OFF + <span class="jxr_string">")"</span>);
<a class="jxr_linenumber" name="111" href="#111">111</a> 					stmt.execute(Constants.CQD_ESTIMATE_HBASE_ROW_COUNT_OFF);
<a class="jxr_linenumber" name="112" href="#112">112</a> 					open = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="113" href="#113">113</a> 				} <strong class="jxr_keyword">catch</strong> (SQLException e) {
<a class="jxr_linenumber" name="114" href="#114">114</a> 					SQLException nextException;
<a class="jxr_linenumber" name="115" href="#115">115</a> 					nextException = e;
<a class="jxr_linenumber" name="116" href="#116">116</a> 					StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="117" href="#117">117</a> 					<strong class="jxr_keyword">do</strong> {
<a class="jxr_linenumber" name="118" href="#118">118</a> 						sb.append(nextException.getMessage());
<a class="jxr_linenumber" name="119" href="#119">119</a> 						sb.append(<span class="jxr_string">"\nSQLState   "</span> + nextException.getSQLState());
<a class="jxr_linenumber" name="120" href="#120">120</a> 						sb.append(<span class="jxr_string">"\nError Code "</span> + nextException.getErrorCode());
<a class="jxr_linenumber" name="121" href="#121">121</a> 					} <strong class="jxr_keyword">while</strong> ((nextException = nextException.getNextException()) != <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="122" href="#122">122</a> 					LOG.error(<span class="jxr_string">"SQLException ["</span> + sb.toString() + <span class="jxr_string">"]"</span>);
<a class="jxr_linenumber" name="123" href="#123">123</a> 					error = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="124" href="#124">124</a> 				} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="125" href="#125">125</a> 					StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="126" href="#126">126</a> 					e.printStackTrace();
<a class="jxr_linenumber" name="127" href="#127">127</a> 					sb.append(e.getMessage());
<a class="jxr_linenumber" name="128" href="#128">128</a> 					LOG.error(<span class="jxr_string">"Exception ["</span> + sb.toString() + <span class="jxr_string">"]"</span>);
<a class="jxr_linenumber" name="129" href="#129">129</a> 					error = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="130" href="#130">130</a> 				}
<a class="jxr_linenumber" name="131" href="#131">131</a> 			} <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="132" href="#132">132</a> 				<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="133" href="#133">133</a> 					LOG.debug(<span class="jxr_string">"connection is open"</span>);
<a class="jxr_linenumber" name="134" href="#134">134</a> 			}
<a class="jxr_linenumber" name="135" href="#135">135</a> 			
<a class="jxr_linenumber" name="136" href="#136">136</a> 			<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="137" href="#137">137</a> 				LOG.debug(<span class="jxr_string">"End ConnectionContext.open()"</span>);
<a class="jxr_linenumber" name="138" href="#138">138</a> 		}
<a class="jxr_linenumber" name="139" href="#139">139</a> 
<a class="jxr_linenumber" name="140" href="#140">140</a> 		<strong class="jxr_keyword">void</strong> execute(String text){
<a class="jxr_linenumber" name="141" href="#141">141</a> 			<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="142" href="#142">142</a> 				LOG.debug(<span class="jxr_string">"Begin ConnectionContext.execute()"</span>);
<a class="jxr_linenumber" name="143" href="#143">143</a> 				
<a class="jxr_linenumber" name="144" href="#144">144</a> 			<strong class="jxr_keyword">try</strong>	{
<a class="jxr_linenumber" name="145" href="#145">145</a> 				open();
<a class="jxr_linenumber" name="146" href="#146">146</a> 				<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="147" href="#147">147</a> 					LOG.debug(<span class="jxr_string">"stmt.executeQuery("</span> + text + <span class="jxr_string">")"</span>);
<a class="jxr_linenumber" name="148" href="#148">148</a> 				rs = stmt.executeQuery(text);
<a class="jxr_linenumber" name="149" href="#149">149</a> 			} <strong class="jxr_keyword">catch</strong> (SQLException e) {
<a class="jxr_linenumber" name="150" href="#150">150</a> 				SQLException nextException;
<a class="jxr_linenumber" name="151" href="#151">151</a> 				nextException = e;
<a class="jxr_linenumber" name="152" href="#152">152</a> 				StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="153" href="#153">153</a> 				<strong class="jxr_keyword">do</strong> {
<a class="jxr_linenumber" name="154" href="#154">154</a> 					sb.append(nextException.getMessage());
<a class="jxr_linenumber" name="155" href="#155">155</a> 					sb.append(<span class="jxr_string">"\nSQLState   "</span> + nextException.getSQLState());
<a class="jxr_linenumber" name="156" href="#156">156</a> 					sb.append(<span class="jxr_string">"\nError Code "</span> + nextException.getErrorCode());
<a class="jxr_linenumber" name="157" href="#157">157</a> 				} <strong class="jxr_keyword">while</strong> ((nextException = nextException.getNextException()) != <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="158" href="#158">158</a> 				LOG.error(<span class="jxr_string">"SQLException ["</span> + sb.toString() + <span class="jxr_string">"]"</span>);
<a class="jxr_linenumber" name="159" href="#159">159</a> 				error = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="160" href="#160">160</a> 			} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="161" href="#161">161</a> 				StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="162" href="#162">162</a> 				e.printStackTrace();
<a class="jxr_linenumber" name="163" href="#163">163</a> 				sb.append(e.getMessage());
<a class="jxr_linenumber" name="164" href="#164">164</a> 				LOG.error(<span class="jxr_string">"Exception ["</span> + sb.toString() + <span class="jxr_string">"]"</span>);
<a class="jxr_linenumber" name="165" href="#165">165</a> 				error = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="166" href="#166">166</a> 			}
<a class="jxr_linenumber" name="167" href="#167">167</a> 			
<a class="jxr_linenumber" name="168" href="#168">168</a> 			<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="169" href="#169">169</a> 				LOG.debug(<span class="jxr_string">"End ConnectionContext.execute()"</span>);
<a class="jxr_linenumber" name="170" href="#170">170</a> 		}
<a class="jxr_linenumber" name="171" href="#171">171</a>         java.sql.ResultSet getResultSet(){
<a class="jxr_linenumber" name="172" href="#172">172</a>             <strong class="jxr_keyword">return</strong> rs;
<a class="jxr_linenumber" name="173" href="#173">173</a>         }
<a class="jxr_linenumber" name="174" href="#174">174</a>         
<a class="jxr_linenumber" name="175" href="#175">175</a>         <strong class="jxr_keyword">boolean</strong> isOpen(){
<a class="jxr_linenumber" name="176" href="#176">176</a>             <strong class="jxr_keyword">return</strong> open;
<a class="jxr_linenumber" name="177" href="#177">177</a>         }
<a class="jxr_linenumber" name="178" href="#178">178</a>         
<a class="jxr_linenumber" name="179" href="#179">179</a>         <strong class="jxr_keyword">boolean</strong> isError(){
<a class="jxr_linenumber" name="180" href="#180">180</a>             <strong class="jxr_keyword">return</strong> error;
<a class="jxr_linenumber" name="181" href="#181">181</a>         }
<a class="jxr_linenumber" name="182" href="#182">182</a>     }
<a class="jxr_linenumber" name="183" href="#183">183</a>     
<a class="jxr_linenumber" name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> JSONArray exec(String command){
<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="186" href="#186">186</a>             LOG.debug(<span class="jxr_string">"Begin exec()"</span>);
<a class="jxr_linenumber" name="187" href="#187">187</a> 
<a class="jxr_linenumber" name="188" href="#188">188</a> 		JSONArray js = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="189" href="#189">189</a> 		String threadId = Thread.currentThread().getName();
<a class="jxr_linenumber" name="190" href="#190">190</a> 		<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="191" href="#191">191</a> 			LOG.debug(<span class="jxr_string">"threadId ["</span> + threadId + <span class="jxr_string">"]"</span>);
<a class="jxr_linenumber" name="192" href="#192">192</a> 		
<a class="jxr_linenumber" name="193" href="#193">193</a> 		<strong class="jxr_keyword">try</strong>	{
<a class="jxr_linenumber" name="194" href="#194">194</a> 			ConnectionContext connectionContext = m.get(threadId);
<a class="jxr_linenumber" name="195" href="#195">195</a> 			<strong class="jxr_keyword">if</strong>(connectionContext == <strong class="jxr_keyword">null</strong>){
<a class="jxr_linenumber" name="196" href="#196">196</a> 				connectionContext = <strong class="jxr_keyword">new</strong> <a href="../../../../org/trafodion/dcs/util/JdbcT2Util.html">ConnectionContext</a>();
<a class="jxr_linenumber" name="197" href="#197">197</a> 				<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="198" href="#198">198</a> 					LOG.debug(<span class="jxr_string">"new ConnectionContext("</span> + threadId + <span class="jxr_string">")"</span>);
<a class="jxr_linenumber" name="199" href="#199">199</a> 				m.put(threadId,connectionContext);
<a class="jxr_linenumber" name="200" href="#200">200</a> 				<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="201" href="#201">201</a> 					LOG.debug(<span class="jxr_string">"m.put("</span> + threadId + <span class="jxr_string">","</span> + connectionContext + <span class="jxr_string">")"</span>);
<a class="jxr_linenumber" name="202" href="#202">202</a> 			}
<a class="jxr_linenumber" name="203" href="#203">203</a> 			
<a class="jxr_linenumber" name="204" href="#204">204</a> 			<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="205" href="#205">205</a> 				LOG.debug(<span class="jxr_string">"connectionContext ["</span> + connectionContext + <span class="jxr_string">"]"</span>);
<a class="jxr_linenumber" name="206" href="#206">206</a> 			js = <strong class="jxr_keyword">new</strong> JSONArray();
<a class="jxr_linenumber" name="207" href="#207">207</a> 			connectionContext.execute(command);
<a class="jxr_linenumber" name="208" href="#208">208</a> 			<strong class="jxr_keyword">if</strong>(! connectionContext.isError()) {
<a class="jxr_linenumber" name="209" href="#209">209</a> 				js = convertResultSetToJSON(connectionContext.getResultSet());
<a class="jxr_linenumber" name="210" href="#210">210</a> 			} <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="211" href="#211">211</a> 				<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="212" href="#212">212</a> 					LOG.debug(<span class="jxr_string">"Error - m.remove("</span> + threadId + <span class="jxr_string">")"</span>);
<a class="jxr_linenumber" name="213" href="#213">213</a> 				m.remove(threadId);
<a class="jxr_linenumber" name="214" href="#214">214</a> 			}
<a class="jxr_linenumber" name="215" href="#215">215</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="216" href="#216">216</a> 			StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="217" href="#217">217</a> 			e.printStackTrace();
<a class="jxr_linenumber" name="218" href="#218">218</a> 			sb.append(e.getMessage());
<a class="jxr_linenumber" name="219" href="#219">219</a> 			LOG.error(<span class="jxr_string">"Exception ["</span> + sb.toString() + <span class="jxr_string">"]"</span>);
<a class="jxr_linenumber" name="220" href="#220">220</a> 		}
<a class="jxr_linenumber" name="221" href="#221">221</a> 		
<a class="jxr_linenumber" name="222" href="#222">222</a> 		<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="223" href="#223">223</a> 			LOG.debug(<span class="jxr_string">"End exec()"</span>);
<a class="jxr_linenumber" name="224" href="#224">224</a> 
<a class="jxr_linenumber" name="225" href="#225">225</a>         <strong class="jxr_keyword">return</strong> js;
<a class="jxr_linenumber" name="226" href="#226">226</a>     }
<a class="jxr_linenumber" name="227" href="#227">227</a>     
<a class="jxr_linenumber" name="228" href="#228">228</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">synchronized</strong> JSONArray convertResultSetToJSON(java.sql.ResultSet rs) <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="229" href="#229">229</a>         <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="230" href="#230">230</a>             LOG.debug(<span class="jxr_string">"Begin convertResultSetToJSON"</span>);
<a class="jxr_linenumber" name="231" href="#231">231</a>         
<a class="jxr_linenumber" name="232" href="#232">232</a>         JSONArray json = <strong class="jxr_keyword">new</strong> JSONArray();
<a class="jxr_linenumber" name="233" href="#233">233</a> 
<a class="jxr_linenumber" name="234" href="#234">234</a>         <strong class="jxr_keyword">try</strong> { 
<a class="jxr_linenumber" name="235" href="#235">235</a> 
<a class="jxr_linenumber" name="236" href="#236">236</a>             java.sql.ResultSetMetaData rsmd = rs.getMetaData(); 
<a class="jxr_linenumber" name="237" href="#237">237</a> 
<a class="jxr_linenumber" name="238" href="#238">238</a>             <strong class="jxr_keyword">while</strong>(rs.next()){ 
<a class="jxr_linenumber" name="239" href="#239">239</a>                 <strong class="jxr_keyword">int</strong> numColumns = rsmd.getColumnCount(); 
<a class="jxr_linenumber" name="240" href="#240">240</a>                 JSONObject obj = <strong class="jxr_keyword">new</strong> JSONObject(); 
<a class="jxr_linenumber" name="241" href="#241">241</a> 
<a class="jxr_linenumber" name="242" href="#242">242</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=1; i&lt;numColumns+1; i++) { 
<a class="jxr_linenumber" name="243" href="#243">243</a> 
<a class="jxr_linenumber" name="244" href="#244">244</a>                     String column_name = rsmd.getColumnName(i); 
<a class="jxr_linenumber" name="245" href="#245">245</a> 
<a class="jxr_linenumber" name="246" href="#246">246</a>                     <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.ARRAY){ 
<a class="jxr_linenumber" name="247" href="#247">247</a>                         obj.put(column_name, rs.getArray(column_name)); 
<a class="jxr_linenumber" name="248" href="#248">248</a>                     } 
<a class="jxr_linenumber" name="249" href="#249">249</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.BIGINT){ 
<a class="jxr_linenumber" name="250" href="#250">250</a>                         obj.put(column_name, rs.getLong(column_name)); 
<a class="jxr_linenumber" name="251" href="#251">251</a>                     } 
<a class="jxr_linenumber" name="252" href="#252">252</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.BOOLEAN){ 
<a class="jxr_linenumber" name="253" href="#253">253</a>                         obj.put(column_name, rs.getBoolean(column_name)); 
<a class="jxr_linenumber" name="254" href="#254">254</a>                     } 
<a class="jxr_linenumber" name="255" href="#255">255</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.BLOB){ 
<a class="jxr_linenumber" name="256" href="#256">256</a>                         obj.put(column_name, rs.getBlob(column_name)); 
<a class="jxr_linenumber" name="257" href="#257">257</a>                     } 
<a class="jxr_linenumber" name="258" href="#258">258</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.DOUBLE){ 
<a class="jxr_linenumber" name="259" href="#259">259</a>                         obj.put(column_name, rs.getDouble(column_name));  
<a class="jxr_linenumber" name="260" href="#260">260</a>                     } 
<a class="jxr_linenumber" name="261" href="#261">261</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.FLOAT){ 
<a class="jxr_linenumber" name="262" href="#262">262</a>                         obj.put(column_name, rs.getFloat(column_name)); 
<a class="jxr_linenumber" name="263" href="#263">263</a>                     } 
<a class="jxr_linenumber" name="264" href="#264">264</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.INTEGER){ 
<a class="jxr_linenumber" name="265" href="#265">265</a>                         obj.put(column_name, rs.getInt(column_name)); 
<a class="jxr_linenumber" name="266" href="#266">266</a>                     } 
<a class="jxr_linenumber" name="267" href="#267">267</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.NVARCHAR){ 
<a class="jxr_linenumber" name="268" href="#268">268</a>                         obj.put(column_name, rs.getNString(column_name)); 
<a class="jxr_linenumber" name="269" href="#269">269</a>                     } 
<a class="jxr_linenumber" name="270" href="#270">270</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.CHAR || 
<a class="jxr_linenumber" name="271" href="#271">271</a>                             rsmd.getColumnType(i)==java.sql.Types.VARCHAR){ 
<a class="jxr_linenumber" name="272" href="#272">272</a>                         <em class="jxr_comment">//prevent obj.put from removing null key value from JSONObject</em>
<a class="jxr_linenumber" name="273" href="#273">273</a>                         String s = rs.getString(column_name);
<a class="jxr_linenumber" name="274" href="#274">274</a>                         <strong class="jxr_keyword">if</strong>(s == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="275" href="#275">275</a>                             obj.put(column_name, <strong class="jxr_keyword">new</strong> String(<span class="jxr_string">""</span>)); 
<a class="jxr_linenumber" name="276" href="#276">276</a>                         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="277" href="#277">277</a>                             obj.put(column_name, rs.getString(column_name)); 
<a class="jxr_linenumber" name="278" href="#278">278</a>                     }                     
<a class="jxr_linenumber" name="279" href="#279">279</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.TINYINT){ 
<a class="jxr_linenumber" name="280" href="#280">280</a>                         obj.put(column_name, rs.getInt(column_name)); 
<a class="jxr_linenumber" name="281" href="#281">281</a>                     } 
<a class="jxr_linenumber" name="282" href="#282">282</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.SMALLINT){ 
<a class="jxr_linenumber" name="283" href="#283">283</a>                         obj.put(column_name, rs.getInt(column_name)); 
<a class="jxr_linenumber" name="284" href="#284">284</a>                     } 
<a class="jxr_linenumber" name="285" href="#285">285</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.DATE){ 
<a class="jxr_linenumber" name="286" href="#286">286</a>                         obj.put(column_name, rs.getDate(column_name)); 
<a class="jxr_linenumber" name="287" href="#287">287</a>                     } 
<a class="jxr_linenumber" name="288" href="#288">288</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(rsmd.getColumnType(i)==java.sql.Types.TIMESTAMP){ 
<a class="jxr_linenumber" name="289" href="#289">289</a>                         obj.put(column_name, rs.getTimestamp(column_name));    
<a class="jxr_linenumber" name="290" href="#290">290</a>                     } 
<a class="jxr_linenumber" name="291" href="#291">291</a>                     <strong class="jxr_keyword">else</strong>{ 
<a class="jxr_linenumber" name="292" href="#292">292</a>                         obj.put(column_name, rs.getObject(column_name)); 
<a class="jxr_linenumber" name="293" href="#293">293</a>                     }  
<a class="jxr_linenumber" name="294" href="#294">294</a> 
<a class="jxr_linenumber" name="295" href="#295">295</a>                 }<em class="jxr_comment">//end foreach </em>
<a class="jxr_linenumber" name="296" href="#296">296</a>                 json.put(obj); 
<a class="jxr_linenumber" name="297" href="#297">297</a> 
<a class="jxr_linenumber" name="298" href="#298">298</a>             }<em class="jxr_comment">//end while </em>
<a class="jxr_linenumber" name="299" href="#299">299</a> 
<a class="jxr_linenumber" name="300" href="#300">300</a>         } <strong class="jxr_keyword">catch</strong> (SQLException e) { 
<a class="jxr_linenumber" name="301" href="#301">301</a>             e.printStackTrace(); 
<a class="jxr_linenumber" name="302" href="#302">302</a>             <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="303" href="#303">303</a>                 LOG.error(e.getMessage());
<a class="jxr_linenumber" name="304" href="#304">304</a>             <strong class="jxr_keyword">throw</strong> e;
<a class="jxr_linenumber" name="305" href="#305">305</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) { 
<a class="jxr_linenumber" name="306" href="#306">306</a>             e.printStackTrace(); 
<a class="jxr_linenumber" name="307" href="#307">307</a>             <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="308" href="#308">308</a>                 LOG.error(e.getMessage());
<a class="jxr_linenumber" name="309" href="#309">309</a>             <strong class="jxr_keyword">throw</strong> e;
<a class="jxr_linenumber" name="310" href="#310">310</a>         }
<a class="jxr_linenumber" name="311" href="#311">311</a>         
<a class="jxr_linenumber" name="312" href="#312">312</a>         <strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="313" href="#313">313</a>             LOG.debug(<span class="jxr_string">"End convertResultSetToJSON"</span>);
<a class="jxr_linenumber" name="314" href="#314">314</a> 
<a class="jxr_linenumber" name="315" href="#315">315</a> 		<strong class="jxr_keyword">return</strong> json; 
<a class="jxr_linenumber" name="316" href="#316">316</a> 	}
<a class="jxr_linenumber" name="317" href="#317">317</a> 	
<a class="jxr_linenumber" name="318" href="#318">318</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="319" href="#319">319</a> 	{
<a class="jxr_linenumber" name="320" href="#320">320</a> 		Options opt = <strong class="jxr_keyword">new</strong> Options();
<a class="jxr_linenumber" name="321" href="#321">321</a> 		CommandLine commandLine;
<a class="jxr_linenumber" name="322" href="#322">322</a> 		String command = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="323" href="#323">323</a> 		
<a class="jxr_linenumber" name="324" href="#324">324</a> 		StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="325" href="#325">325</a> 		
<a class="jxr_linenumber" name="326" href="#326">326</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="327" href="#327">327</a> 			commandLine = <strong class="jxr_keyword">new</strong> GnuParser().parse(opt, args);
<a class="jxr_linenumber" name="328" href="#328">328</a> 			command = commandLine.getArgList().get(0).toString();
<a class="jxr_linenumber" name="329" href="#329">329</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="330" href="#330">330</a> 			sb.append(<span class="jxr_string">"Command ["</span> + command + <span class="jxr_string">"], "</span>);
<a class="jxr_linenumber" name="331" href="#331">331</a> 			sb.append(<span class="jxr_string">"Exception: "</span> + e.getMessage());
<a class="jxr_linenumber" name="332" href="#332">332</a> 			<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="333" href="#333">333</a> 				LOG.debug(sb.toString());
<a class="jxr_linenumber" name="334" href="#334">334</a> 			System.exit(1);
<a class="jxr_linenumber" name="335" href="#335">335</a> 		}
<a class="jxr_linenumber" name="336" href="#336">336</a> 
<a class="jxr_linenumber" name="337" href="#337">337</a> 		<strong class="jxr_keyword">try</strong>	{
<a class="jxr_linenumber" name="338" href="#338">338</a> 			Log4jUtils log4jutils = <strong class="jxr_keyword">new</strong> <a href="../../../../org/trafodion/dcs/util/Log4jUtils.html">Log4jUtils</a>();
<a class="jxr_linenumber" name="339" href="#339">339</a> 			JdbcT2Util jdbcT2Util = <strong class="jxr_keyword">new</strong> <a href="../../../../org/trafodion/dcs/util/JdbcT2Util.html">JdbcT2Util</a>();
<a class="jxr_linenumber" name="340" href="#340">340</a> 			<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="341" href="#341">341</a> 				log4jutils.dumpLog4j(JdbcT2Util.<strong class="jxr_keyword">class</strong>.getName());
<a class="jxr_linenumber" name="342" href="#342">342</a> 			JSONArray js = jdbcT2Util.exec(command);
<a class="jxr_linenumber" name="343" href="#343">343</a> 			<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="344" href="#344">344</a> 				log4jutils.dumpLog4j(JdbcT2Util.<strong class="jxr_keyword">class</strong>.getName());
<a class="jxr_linenumber" name="345" href="#345">345</a> 			<strong class="jxr_keyword">if</strong>(LOG.isDebugEnabled())
<a class="jxr_linenumber" name="346" href="#346">346</a> 				LOG.debug(<span class="jxr_string">"JSONArray ["</span> + js.toString() + <span class="jxr_string">"]"</span>);
<a class="jxr_linenumber" name="347" href="#347">347</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="348" href="#348">348</a> 			e.printStackTrace();
<a class="jxr_linenumber" name="349" href="#349">349</a> 			sb.append(e.getMessage());
<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(<span class="jxr_string">"Exception ["</span> + sb.toString() + <span class="jxr_string">"]"</span>);
<a class="jxr_linenumber" name="352" href="#352">352</a> 			System.exit(1);
<a class="jxr_linenumber" name="353" href="#353">353</a> 		}
<a class="jxr_linenumber" name="354" href="#354">354</a> 	}
<a class="jxr_linenumber" name="355" href="#355">355</a> 	
<a class="jxr_linenumber" name="356" href="#356">356</a> }
<a class="jxr_linenumber" name="357" href="#357">357</a> 
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

