blob: 6af942460f267ea71b0483d39875a4ff0fdf7d81 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.4">
<title>Client Installation Guide</title>
<style>
/**
* @@@ START COPYRIGHT @@@
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
* @@@ END COPYRIGHT @@@
*/
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
/* Remove the comments around the @import statement below when using this as a custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden],template{display:none}
script{display:none!important}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{margin:0}
a{background:transparent}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif,serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object{max-width:none!important}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
.antialiased,body{-webkit-font-smoothing:antialiased}
img{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#3188ac;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:none}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
/* Defines headings */
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-style:normal;color:#3188ac;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
/* Defines the `text` (passthru) format */
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:bold;color:#3188ac}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ul.no-bullet{list-style:none}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite:before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7;font-weight:bold}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
.clearfix:after,.float-group:after{clear:both}
*:not(pre)>code{font-size:1.0em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
/**:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}*/
pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
.keyseq{color:rgba(51,51,51,.8)}
kbd{display:inline-block;color:rgba(0,0,0,.8);font-size:.75em;line-height:1.4;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:-.15em .15em 0 .15em;padding:.2em .6em .2em .5em;vertical-align:middle;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menu{color:rgba(0,0,0,.8)}
b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
b.button:before{content:"[";padding:0 3px 0 2px}
b.button:after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
#content{margin-top:1.25em}
#content:before{content:none}
/* #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0} */
#header>h1:first-child{color:#3188ac;margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span:before{content:"\00a0\2013\00a0"}
#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark:before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber:after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#3188ac;font-size:1.2em}
@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
/* Controls width of panel */
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
#footer-text,#footer_nav{color:rgba(255,255,255,.8);line-height:1.44}
#footer a{color: #990000}
.sect1{padding-bottom:.625em}
@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}.sect1+.sect1{border-top:1px solid #efefed}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#990000;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif,serif;font-size:1rem;font-weight:bold}
/* Here */
table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.listingblock>.content{position:relative}
.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
.listingblock:hover code[data-lang]:before{display:block}
.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0}
table.pyhltable td.code{padding-left:.75em;padding-right:0}
pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
pre.pygments .lineno{display:inline-block;margin-right:.25em}
table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
.quoteblock .quoteblock blockquote:before{display:none}
.verseblock{margin:0 1em 1.25em 1em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.05em;color:rgba(0,0,0,.6)}
.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
table.tableblock{max-width:100%;border-collapse:separate}
table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
table.spread{width:100%}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot{border-width:1px 0}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
td>div.verse{white-space:pre}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
ul.inline>li>*{display:block}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1{padding-right:.75em;font-weight:bold}
td.hdlist1,td.hdlist2{vertical-align:top}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
.colist>table tr>td:last-of-type{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none}
span.footnote,span.footnoteref{vertical-align:super;font-size:.875em}
span.footnote a,span.footnoteref a{text-decoration:none}
span.footnote a:active,span.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
#footnotes .footnote{padding:0 .375em;line-height:1.3;font-size:.875em;margin-left:1.2em;text-indent:-1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background-color:#00fafa}
.black{color:#000}
.black-background{background-color:#000}
.blue{color:#0000bf}
.blue-background{background-color:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background-color:#fa00fa}
.gray{color:#606060}
.gray-background{background-color:#7d7d7d}
.green{color:#006000}
.green-background{background-color:#007d00}
.lime{color:#00bf00}
.lime-background{background-color:#00fa00}
.maroon{color:#600000}
.maroon-background{background-color:#7d0000}
.navy{color:#000060}
.navy-background{background-color:#00007d}
.olive{color:#606000}
.olive-background{background-color:#7d7d00}
.purple{color:#600060}
.purple-background{background-color:#7d007d}
.red{color:#bf0000}
.red-background{background-color:#fa0000}
.silver{color:#909090}
.silver-background{background-color:#bcbcbc}
.teal{color:#006060}
.teal-background{background-color:#007d7d}
.white{color:#bfbfbf}
.white-background{background-color:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background-color:#fafa00}
span.icon>.fa{cursor:default}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]:after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
h1,h2{letter-spacing:-.01em}
dt,th.tableblock,td.content{text-rendering:optimizeLegibility}
p,td.content{letter-spacing:-.01em}
p strong,td.content strong{letter-spacing:-.005em}
p,blockquote,dt,td.content{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@media print{@page{margin:1.25cm .75cm}
*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]:after{content:" (" attr(title) ")"}
pre,blockquote,tr,img{page-break-inside:avoid}
thead{display:table-header-group}
img{max-width:100%!important}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
.sect1{padding-bottom:0!important}
.sect1+.sect1{border:0!important}
#header>h1:first-child{margin-top:1.25rem}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span:before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]:before{display:block}
#footer{background:none!important;padding:0 .9375em}
#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
div.paragraph.indented p {padding-left: 3em;}
div.paragraph.indented2 p {padding-left: 6em;}
div.paragraph.indented3 p {padding-left: 9em;}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
<style>
/* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
/*pre.CodeRay {background-color:#f7f7f8;}*/
.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
table.CodeRay td{vertical-align: top;line-height:1.45}
table.CodeRay td.line-numbers{text-align:right}
table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
table.CodeRay td.code{padding:0 0 0 .5em}
table.CodeRay td.code>pre{padding:0}
.CodeRay .debug{color:#fff !important;background:#000080 !important}
.CodeRay .annotation{color:#007}
.CodeRay .attribute-name{color:#000080}
.CodeRay .attribute-value{color:#700}
.CodeRay .binary{color:#509}
.CodeRay .comment{color:#998;font-style:italic}
.CodeRay .char{color:#04d}
.CodeRay .char .content{color:#04d}
.CodeRay .char .delimiter{color:#039}
.CodeRay .class{color:#458;font-weight:bold}
.CodeRay .complex{color:#a08}
.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
.CodeRay .color{color:#099}
.CodeRay .class-variable{color:#369}
.CodeRay .decorator{color:#b0b}
.CodeRay .definition{color:#099}
.CodeRay .delimiter{color:#000}
.CodeRay .doc{color:#970}
.CodeRay .doctype{color:#34b}
.CodeRay .doc-string{color:#d42}
.CodeRay .escape{color:#666}
.CodeRay .entity{color:#800}
.CodeRay .error{color:#808}
.CodeRay .exception{color:inherit}
.CodeRay .filename{color:#099}
.CodeRay .function{color:#900;font-weight:bold}
.CodeRay .global-variable{color:#008080}
.CodeRay .hex{color:#058}
.CodeRay .integer,.CodeRay .float{color:#099}
.CodeRay .include{color:#555}
.CodeRay .inline{color:#000}
.CodeRay .inline .inline{background:#ccc}
.CodeRay .inline .inline .inline{background:#bbb}
.CodeRay .inline .inline-delimiter{color:#d14}
.CodeRay .inline-delimiter{color:#d14}
.CodeRay .important{color:#555;font-weight:bold}
.CodeRay .interpreted{color:#b2b}
.CodeRay .instance-variable{color:#008080}
.CodeRay .label{color:#970}
.CodeRay .local-variable{color:#963}
.CodeRay .octal{color:#40e}
.CodeRay .predefined{color:#369}
.CodeRay .preprocessor{color:#579}
.CodeRay .pseudo-class{color:#555}
.CodeRay .directive{font-weight:bold}
.CodeRay .type{font-weight:bold}
.CodeRay .predefined-type{color:inherit}
.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
.CodeRay .key{color:#808}
.CodeRay .key .delimiter{color:#606}
.CodeRay .key .char{color:#80f}
.CodeRay .value{color:#088}
.CodeRay .regexp .delimiter{color:#808}
.CodeRay .regexp .content{color:#808}
.CodeRay .regexp .modifier{color:#808}
.CodeRay .regexp .char{color:#d14}
.CodeRay .regexp .function{color:#404;font-weight:bold}
.CodeRay .string{color:#d20}
.CodeRay .string .string .string{background:#ffd0d0}
.CodeRay .string .content{color:#d14}
.CodeRay .string .char{color:#d14}
.CodeRay .string .delimiter{color:#d14}
.CodeRay .shell{color:#d14}
.CodeRay .shell .delimiter{color:#d14}
.CodeRay .symbol{color:#990073}
.CodeRay .symbol .content{color:#a60}
.CodeRay .symbol .delimiter{color:#630}
.CodeRay .tag{color:#008080}
.CodeRay .tag-special{color:#d70}
.CodeRay .variable{color:#036}
.CodeRay .insert{background:#afa}
.CodeRay .delete{background:#faa}
.CodeRay .change{color:#aaf;background:#007}
.CodeRay .head{color:#f8f;background:#505}
.CodeRay .insert .insert{color:#080}
.CodeRay .delete .delete{color:#800}
.CodeRay .change .change{color:#66f}
.CodeRay .head .head{color:#f4f}
</style>
</head>
<body class="book toc2 toc-left">
<div id="header">
<h1>Client Installation Guide</h1>
<div class="details">
<span id="revnumber">version 2.4.0</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#_about_this_document">1. About This Document</a>
<ul class="sectlevel2">
<li><a href="#_intended_audience">1.1. Intended Audience</a></li>
<li><a href="#_new_and_changed_information">1.2. New and Changed Information</a></li>
<li><a href="#_notation_conventions">1.3. Notation Conventions</a></li>
<li><a href="#_comments_encouraged">1.4. Comments Encouraged</a></li>
</ul>
</li>
<li><a href="#introduction">2. Introduction</a>
<ul class="sectlevel2">
<li><a href="#_client_summary">2.1. Client Summary</a>
<ul class="sectlevel3">
<li><a href="#_jdbc_based_clients">2.1.1. JDBC-Based Clients</a></li>
<li><a href="#_odbc_based_clients">2.1.2. ODBC-Based Clients</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_preparation">3. Preparation</a>
<ul class="sectlevel2">
<li><a href="#java-setup">3.1. Java Setup</a>
<ul class="sectlevel3">
<li><a href="#java-validation">3.1.1. Verify Java Version</a></li>
<li><a href="#java-install">3.1.2. Install Java</a></li>
</ul>
</li>
<li><a href="#download-client-software">3.2. Download Client Software</a>
<ul class="sectlevel3">
<li><a href="#download-windows">3.2.1. Windows Download</a></li>
<li><a href="#download-linux">3.2.2. Linux Download</a></li>
</ul>
</li>
<li><a href="#unpack-client-software">3.3. Unpack Client Software</a>
<ul class="sectlevel3">
<li><a href="#_unpack_jdbc_based_client_software">3.3.1. Unpack JDBC-Based Client Software</a></li>
<li><a href="#_unpack_odbc_based_client_software">3.3.2. Unpack ODBC-Based Client Software</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#jdbct4">4. Install JDBC Type-4 Driver</a>
<ul class="sectlevel2">
<li><a href="#_prerequisites">4.1. Prerequisites</a></li>
<li><a href="#jdbct4-validate-install">4.2. Validate Install Directory</a></li>
<li><a href="#jdbct4-setup-env">4.3. Set Up Client Environment</a>
<ul class="sectlevel3">
<li><a href="#jdbct4-java-development">4.3.1. Java Development</a></li>
<li><a href="#_configure_applications">4.3.2. Configure Applications</a></li>
</ul>
</li>
<li><a href="#jdbct4-test-programs">4.4. Test Programs</a></li>
<li><a href="#_uninstall_jdbc_type_4_driver">4.5. Uninstall JDBC Type-4 Driver</a></li>
</ul>
</li>
<li><a href="#trafci">5. Install trafci</a>
<ul class="sectlevel2">
<li><a href="#_prerequisites_2">5.1. Prerequisites</a></li>
<li><a href="#trafci_perl_python">5.2. Install Perl or Python</a></li>
<li><a href="#trafci-verify-install">5.3. Verify Installation</a></li>
<li><a href="#trafci-run-installer">5.4. Run trafci Installer</a>
<ul class="sectlevel3">
<li><a href="#trafci-wizard-install">5.4.1. GUI Wizard Install</a></li>
<li><a href="#trafci-cmd-install">5.4.2. Command-Line Installation Steps</a></li>
</ul>
</li>
<li><a href="#_verify_installed_software_files">5.5. Verify Installed Software Files</a></li>
<li><a href="#_modify_path_variable">5.6. Modify PATH variable</a></li>
<li><a href="#_test_launching_trafci">5.7. Test Launching trafci</a>
<ul class="sectlevel3">
<li><a href="#_windows_example">5.7.1. Windows Example</a></li>
<li><a href="#_linux_example">5.7.2. Linux Example</a></li>
</ul>
</li>
<li><a href="#trafci-uninstall">5.8. Uninstall trafci</a></li>
</ul>
</li>
<li><a href="#_configure_dbvisualizer">6. Configure DBVisualizer</a>
<ul class="sectlevel2">
<li><a href="#_prerequisites_3">6.1. Prerequisites</a></li>
<li><a href="#_configuration_instructions">6.2. Configuration Instructions</a>
<ul class="sectlevel3">
<li><a href="#_register_jdbc_type_4_driver">6.2.1. Register JDBC Type-4 Driver</a></li>
<li><a href="#_create_database_connection">6.2.2. Create Database Connection</a></li>
<li><a href="#_disable_connection_validation_select_option">6.2.3. Disable Connection Validation Select Option</a></li>
<li><a href="#_connect_to_trafodion">6.2.4. Connect to Trafodion</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_configure_squirrel_client">7. Configure SQuirreL Client</a>
<ul class="sectlevel2">
<li><a href="#_prerequisites_4">7.1. Prerequisites</a></li>
<li><a href="#_configuration_instructions_2">7.2. Configuration Instructions</a>
<ul class="sectlevel3">
<li><a href="#_register_jdbc_type_4_driver_2">7.2.1. Register JDBC Type-4 Driver</a></li>
<li><a href="#_connect_to_trafodion_2">7.2.2. Connect to Trafodion</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#odbc-linux-install">8. Install Linux ODBC Driver</a>
<ul class="sectlevel2">
<li><a href="#_installation_requirements">8.1. Installation Requirements</a></li>
<li><a href="#_validate_install_directory">8.2. Validate Install Directory</a></li>
<li><a href="#_install_reinstall_linux_odbc_driver">8.3. Install/Reinstall Linux ODBC Driver</a>
<ul class="sectlevel3">
<li><a href="#linux_odbc_client_env">8.3.1. Set Up Client Environment</a></li>
<li><a href="#_enable_compression">8.3.2. Enable Compression</a></li>
</ul>
</li>
<li><a href="#_use_third_party_driver_manager">8.4. Use Third-Party Driver Manager</a></li>
<li><a href="#_run_sample_program_code_connect_test_code">8.5. Run Sample Program (<code>connect_test</code>)</a></li>
<li><a href="#linux_odbc_run_basicsql">8.6. Run Sample Program (<code>basicsql</code>)</a></li>
</ul>
</li>
<li><a href="#odb-install">9. Install odb</a>
<ul class="sectlevel2">
<li><a href="#_odb_requirements">9.1. odb Requirements</a></li>
<li><a href="#odb-install-unixodbc">9.2. Install and Configure unixODBC</a>
<ul class="sectlevel3">
<li><a href="#_configure_unixodbc">9.2.1. Configure unixODBC</a></li>
<li><a href="#_configure_data_sources">9.2.2. Configure Data Sources</a></li>
</ul>
</li>
<li><a href="#odb-verify-install">9.3. Verify odb Installation</a></li>
<li><a href="#odb-uninstall">9.4. Uninstall odb</a></li>
</ul>
</li>
<li><a href="#install-windows-odbc-driver">10. Install Windows ODBC Driver</a>
<ul class="sectlevel2">
<li><a href="#_installation_requirements_2">10.1. Installation Requirements</a></li>
<li><a href="#win_odbc_install">10.2. Installation Instructions</a></li>
<li><a href="#win_odbc_setup_data_source">10.3. Set Up ODBC Data Source</a>
<ul class="sectlevel3">
<li><a href="#_enable_compression_2">10.3.1. Enable Compression</a></li>
</ul>
</li>
<li><a href="#win_odbc_run_basicsql">10.4. Run Sample Program (<code>basicsql</code>)</a></li>
<li><a href="#_reinstall_windows_odbc_driver">10.5. Reinstall Windows ODBC Driver</a></li>
<li><a href="#win_odbc_uninstall">10.6. Uninstalling Windows ODBC Driver</a></li>
</ul>
</li>
<li><a href="#_configure_tableau_client">11. Configure Tableau Client</a>
<ul class="sectlevel2">
<li><a href="#_prerequisite_software">11.1. Prerequisite Software</a></li>
<li><a href="#_tableau_datasource_configuration_tdc_file">11.2. Tableau Datasource Configuration (.tdc) File</a>
<ul class="sectlevel3">
<li><a href="#_create_tdc_file">11.2.1. Create .tdc File</a></li>
<li><a href="#_install_tdc_file">11.2.2. Install .tdc File</a></li>
</ul>
</li>
<li><a href="#_connnect_to_trafodion">11.3. Connnect to Trafodion</a></li>
</ul>
</li>
<li><a href="#_how_to">12. How To</a>
<ul class="sectlevel2">
<li><a href="#howto-setup-path">12.1. Set Up Path Variable</a>
<ul class="sectlevel3">
<li><a href="#howto-setup-path-windows">12.1.1. Set PATH Variable on Windows</a></li>
<li><a href="#howto-setup-path-linux">12.1.2. Set PATH Variable on Linux</a></li>
<li><a href="#howto-setup-path-verify">12.1.3. Verify PATH Variable</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><strong>License Statement</strong></p>
</div>
<div class="paragraph">
<p>Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at <a href="http://www.apache.org/licenses/LICENSE-2.0" class="bare">http://www.apache.org/licenses/LICENSE-2.0</a></p>
</div>
<div class="paragraph">
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>Acknowledgements</strong></p>
</div>
<div class="paragraph">
<p>Microsoft®, Windows®, Windows NT®, Windows® XP, and Windows Vista® are
U.S. registered trademarks of Microsoft Corporation. Intel® and Intel®
Itanium® are trademarks of Intel Corporation in the U.S. and other
countries. Java® is a registered trademark of Oracle and/or its
affiliates. Motif, OSF/1, UNIX®, X/Open®, and the X device is a
trademark of X/Open Company Ltd. in the UK and other countries.</p>
</div>
<div class="paragraph">
<p>OSF, OSF/1, OSF/Motif, Motif, and Open Software Foundation are trademarks of
the Open Software Foundation in the U.S. and other countries.
© 1990, 1991, 1992, 1993 Open Software Foundation, Inc.</p>
</div>
<div class="paragraph">
<p>The OSF documentation and the OSF software to which it relates are derived in
part from materials supplied by the following: © 1987, 1988, 1989
Carnegie-Mellon University. © 1989, 1990, 1991 Digital Equipment
Corporation. © 1985, 1988, 1989, 1990 Encore Computer Corporation. © 1988 Free
Software Foundation, Inc. © 1987, 1988, 1989, 1990, 1991 Hewlett-Packard
Company. © 1985, 1987, 1988, 1989, 1990, 1991, 1992 International
Business Machines Corporation. © 1988, 1989 Massachusetts Institute of
Technology. © 1988, 1989, 1990 Mentat Inc. © 1988 Microsoft Corporation.
© 1987, 1988, 1989, 1990, 1991,
1992 SecureWare, Inc. © 1990, 1991 Siemens Nixdorf Informations systeme
AG. © 1986, 1989, 1996, 1997 Sun Microsystems, Inc. © 1989, 1990, 1991
Transarc Corporation.</p>
</div>
<div class="paragraph">
<p>OSF software and documentation are based in part
on the Fourth Berkeley Software Distribution under license from The
Regents of the University of California. OSF acknowledges the following
individuals and institutions for their role in its development: Kenneth
C.R.C. Arnold, Gregory S. Couch, Conrad C. Huang, Ed James, Symmetric
Computer Systems, Robert Elz. © 1980, 1981, 1982, 1983, 1985, 1986,
1987, 1988, 1989 Regents of the University of California. OSF MAKES NO
WARRANTY OF ANY KIND WITH REGARD TO THE OSF MATERIAL PROVIDED HEREIN,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. OSF shall not be liable for errors
contained herein or for incidental consequential damages in connection
with the furnishing, performance, or use of this material.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>Revision History</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Version</th>
<th class="tableblock halign-left valign-top">Date</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TBD</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2.1.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">May 1, 2017</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">July 7, 2016</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">June 6, 2016</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1.3.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">January, 2016</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="_about_this_document">1. About This Document</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This manual describes how to install and configure client applications that enable you to connect to and use a Trafodion database.</p>
</div>
<div class="sect2">
<h3 id="_intended_audience">1.1. Intended Audience</h3>
<div class="paragraph">
<p>This manual is intended for users who want to connect to and use a Trafodion database.</p>
</div>
</div>
<div class="sect2">
<h3 id="_new_and_changed_information">1.2. New and Changed Information</h3>
<div class="paragraph">
<p>This manual shows updated versions for Trafodion Release 2.4.0.</p>
</div>
</div>
<div class="sect2">
<h3 id="_notation_conventions">1.3. Notation Conventions</h3>
<div class="paragraph">
<p>This list summarizes the notation conventions for syntax presentation in this manual.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>UPPERCASE LETTERS</p>
<div class="paragraph">
<p>Uppercase letters indicate keywords and reserved words. Type these items exactly as shown. Items not enclosed in brackets are required.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">SELECT</code></pre>
</div>
</div>
</li>
<li>
<p>lowercase letters</p>
<div class="paragraph">
<p>Lowercase letters, regardless of font, indicate variable items that you supply. Items not enclosed in brackets are required.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">file-name</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
<div class="ulist">
<ul>
<li>
<p>&#91; &#93; Brackets</p>
<div class="paragraph">
<p>Brackets enclose optional syntax items.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DATETIME [start-field TO] end-field</code></pre>
</div>
</div>
<div class="paragraph">
<p>A group of items enclosed in brackets is a list from which you can choose one item or none.</p>
</div>
<div class="paragraph">
<p>The items in the list can be arranged either vertically, with aligned brackets on each side of the list, or horizontally, enclosed in a pair of brackets and separated by vertical lines.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DROP SCHEMA schema [CASCADE]
DROP SCHEMA schema [ CASCADE | RESTRICT ]</code></pre>
</div>
</div>
</li>
<li>
<p>{ } Braces</p>
<div class="paragraph">
<p>Braces enclose required syntax items.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">FROM { grantee [, grantee ] ... }</code></pre>
</div>
</div>
<div class="paragraph">
<p>A group of items enclosed in braces is a list from which you are required to choose one item.</p>
</div>
<div class="paragraph">
<p>The items in the list can be arranged either vertically, with aligned braces on each side of the list, or horizontally, enclosed in a pair of braces and separated by vertical lines.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">INTERVAL { start-field TO end-field }
{ single-field }
INTERVAL { start-field TO end-field | single-field }</code></pre>
</div>
</div>
</li>
<li>
<p>| Vertical Line</p>
<div class="paragraph">
<p>A vertical line separates alternatives in a horizontal list that is enclosed in brackets or braces.</p>
</div>
</li>
</ul>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">{expression | NULL}</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
<div class="ulist">
<ul>
<li>
<p>&#8230; Ellipsis</p>
<div class="paragraph">
<p>An ellipsis immediately following a pair of brackets or braces indicates that you can repeat the enclosed sequence of syntax items any number of times.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">ATTRIBUTE[S] attribute [, attribute] ...
{, sql-expression } ...</code></pre>
</div>
</div>
<div class="paragraph">
<p>An ellipsis immediately following a single syntax item indicates that you can repeat that syntax item any number of times.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">expression-n ...</code></pre>
</div>
</div>
</li>
<li>
<p>Punctuation</p>
<div class="paragraph">
<p>Parentheses, commas, semicolons, and other symbols not previously described must be typed as shown.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DAY (datetime-expression)
@script-file</code></pre>
</div>
</div>
<div class="paragraph">
<p>Quotation marks around a symbol such as a bracket or brace indicate the symbol is a required character that you must type as shown.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">&quot;{&quot; module-name [, module-name] ... &quot;}&quot;</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
<div class="ulist">
<ul>
<li>
<p>Item Spacing</p>
<div class="paragraph">
<p>Spaces shown between items are required unless one of the items is a punctuation symbol such as a parenthesis or a comma.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DAY (datetime-expression) DAY(datetime-expression)</code></pre>
</div>
</div>
<div class="paragraph">
<p>If there is no space between two items, spaces are not permitted. In this example, no spaces are permitted between the period and any other items:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">myfile.sh</code></pre>
</div>
</div>
</li>
<li>
<p>Line Spacing</p>
<div class="paragraph">
<p>If the syntax of a command is too long to fit on a single line, each continuation line is indented three spaces and is separated from the preceding line by a blank line.</p>
</div>
<div class="paragraph">
<p>This spacing distinguishes items in a continuation line from items in a vertical list of selections.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">match-value [NOT] LIKE _pattern
[ESCAPE esc-char-expression]</code></pre>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_comments_encouraged">1.4. Comments Encouraged</h3>
<div class="paragraph">
<p>We encourage your comments concerning this document. We are committed to providing documentation that meets your
needs. Send any errors found, suggestions for improvement, or compliments to <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a>.</p>
</div>
<div class="paragraph">
<p>Include the document title and any comment, error found, or suggestion for improvement you have concerning this document.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="introduction">2. Introduction</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This manual describes how to install and configure the following client applications, which enable you to connect to and use a Trafodion
database.</p>
</div>
<div class="sect2">
<h3 id="_client_summary">2.1. Client Summary</h3>
<div class="sect3">
<h4 id="_jdbc_based_clients">2.1.1. JDBC-Based Clients</h4>
<div class="paragraph">
<p>The following table lists JDBC-based clients supported by Trafodion.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 30%;">
<col style="width: 70%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Client Name</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Trafodion JDBC Type 4 Driver</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A driver that enables Java applications that run on a client workstation to connect to a Trafodion database.<br>
<br>
<strong>NOTE:</strong> The Trafodion Command Interface (trafci), DBVisualizer, and SQuirreL SQL Client require this driver to be installed on the client
workstation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Trafodion Command Interface (trafci)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A command-line interface that allows you to connect to a Trafodion database and run SQL statements and other commands interactively or from
script files. For more information, see the <a href="http://trafodion.apache.org/docs/command_interface/index.html">Trafodion Command Interface Guide</a>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>DBVisualizer</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A third-party database tool that allows you to connect to a Trafodion database. For more information, see the <a href="http://www.dbvis.com/">DbVisualizer website</a>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>SQuirreL SQL Client</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A third-party database tool that allows you to connect to a Trafodion database. For more information, see the
<a href="http://squirrel-sql.sourceforge.net/">SQuirreL SQL Client website</a>.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="_odbc_based_clients">2.1.2. ODBC-Based Clients</h4>
<div class="paragraph">
<p>The following table lists ODBC-based clients supported by Trafodion.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 30%;">
<col style="width: 70%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Client Name</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Trafodion ODBC Driver for Linux</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A driver that enables applications, which were developed for the Microsoft ODBC API and run on a Linux workstation, to connect to a
Trafodion database.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Trafodion ODBC Driver for Windows</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>[Not included in this release]</strong><sup>1</sup><br>
<br>
A driver that enables applications, which were developed for the Microsoft Open Database Connectivity (ODBC) application programming
interface (API) and which run on a Windows workstation, to connect to a Trafodion database.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Trafodion odb tool</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A multi-threaded, ODBC-based command-line tool for parallel data loading and extracting. For more information, see the
<a href="http://trafodion.apache.org/docs/odb/index.html">Trafodion odb User Guide</a>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Tableau</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An interactive data visualization products focused on business intelligence
For more information, see the <a href="http://www.tableau.com/">Tableau Software website</a>.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><sup>1</sup> License issues prevent us from including the ODBC Driver for Windows in this release. Contact
<a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> for help obtaining the driver.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_preparation">3. Preparation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Trafodion provides JDBC and ODBC drivers plus clients that use those drivers.
In addition, you can configure third-party JDBC- and ODBC-based tools to work
with Trafodion.</p>
</div>
<div class="paragraph">
<p>Typically, you install and configure the client software in the following order:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>JDBC and/or ODBC drivers. (Depending on what clients you plan to use.)</p>
</li>
<li>
<p>Trafodion clients. For example, trafci and odb.</p>
</li>
<li>
<p>Third-party clients. For example, DBVisualizer, SQuirell, and/or Tableau.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>If you don&#8217;t plan to use JDBC-based clients, then please skip ahead to
<a href="#download-client-software">Download Client Software</a>.</p>
</div>
<div class="sect2">
<h3 id="java-setup">3.1. Java Setup</h3>
<div class="paragraph">
<p>The Trafodion JDBC Type 4 Driver requires Java 1.7 or higher. You need to set
the Java path to the correct location.</p>
</div>
<div class="paragraph">
<p>Depending on your planned usage, you install
the Java Development Kit (JDK, if you plan to develop Java-based applications)
or the Java Runtime Environment (JRE, if you plan to use packaged JDBC-based
products only).</p>
</div>
<div class="sect3">
<h4 id="java-validation">3.1.1. Verify Java Version</h4>
<div class="paragraph">
<p>To display the Java version of the client workstation on the screen, enter:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -version</code></pre>
</div>
</div>
<div class="listingblock">
<div class="title">Example 1: Java Installed and PATH Variable Set Correctly</div>
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">C:\&gt; java -version
java version &quot;1.7.0_45&quot; # This is the version you need to check
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing)
C:\&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the version is not 1.7 or higher, then please upgrade you Java installation
See <a href="#java-install">Install Java</a>.</p>
</div>
<div class="paragraph">
<p>If the version is 1.7 or higher, then skip ahead to <a href="#download-client-software">Download Client Software</a>.</p>
</div>
<div class="listingblock">
<div class="title">Example 2: Path Not Set</div>
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">'java' is not recognized as an internal or external command, operable program or batch file.`</code></pre>
</div>
</div>
<div class="paragraph">
<p>If you have installed Java, then this message indicates that you&#8217;ve not included
the Java directory in your search path. See <a href="#howto-setup-path">Set Up PATH Variable</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="java-install">3.1.2. Install Java</h4>
<div class="paragraph">
<p>Refer to: <a href="http://www.java.com/en/download" class="bare">http://www.java.com/en/download</a>.</p>
</div>
<div class="paragraph">
<p>Once installed, follow the instruction in <a href="#howto-setup-path">Set Up PATH Variable</a>
to ensure that your Java environment has been set up properly.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="download-client-software">3.2. Download Client Software</h3>
<div class="paragraph">
<p>The Trafodion client software is available from the <a href="http://trafodion.apache.org/download.html">Trafodion Download</a> page. There is one
<code>Trafodion Clients</code> package per release listed under <strong>&lt;version&gt; Binaries</strong>.</p>
</div>
<div class="paragraph">
<p>The <code>Trafodion Clients</code> package consists of a zipped tar file that contains the Trafodion Clients tar file.
The Trafodion Client binaries are in the <code>clients</code> folder, which contains the following files:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 30%;">
<col style="width: 70%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">File</th>
<th class="tableblock halign-left valign-top">Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>JDBCT4.zip</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion JDBC Type 4 Driver.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DISCLAIMER</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Apache disclaimer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>LICENCE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Apache license.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>NOTICE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Apache notice.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>odbc64_linux.tar.gz</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion odb tool.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TRAF_ODBC_Linux_Driver_64.tar.gz</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion ODBC driver for Linux.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TRAFODB-2.2.0.exe</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion odb tool for windows.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci.zip</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The Trafodion command interpreter <code>trafci</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TFODBC64-*.exe</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>[Not included in this release]</strong><sup>1</sup> Trafodion ODBC Driver for Windows.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><sup>1</sup> License issues prevent us from including the ODBC Driver for Windows in this release. Contact
<a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> for help obtaining the driver.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="sect3">
<h4 id="download-windows">3.2.1. Windows Download</h4>
<div class="paragraph">
<p>Do the following:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Create a download folder on the client workstation. For example, <code>c:\trafodion</code>.</p>
</li>
<li>
<p>Open a Web browser and navigate to the Trafodion downloads site <a href="http://trafodion.apache.org/download.html" class="bare">http://trafodion.apache.org/download.html</a>.</p>
</li>
<li>
<p>Orient yourself to the binaries for the release you&#8217;re installing.
Click on the <code>Trafodion Clients</code> link to start downloading the Trafodion clients tar file to your workstation.</p>
</li>
<li>
<p>Place the <code>apache-trafodion-clients-*.tar.gz</code> file into the download folder.</p>
<div class="ulist">
<ul>
<li>
<p>Unpack the <code>apache-trafodion-clients-*.tar.gz</code> file using an unzip program of your choice. This creates
an <code>apache-trafodion-clients-*.tar</code> file.</p>
</li>
<li>
<p>Unpack the <code>apache-trafodion-clients-*.tar</code> file using an unzip program of your choice.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Verify content of the <code>clients</code> directory:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">JDBCT4.zip LICENSE NOTICE odb64_linux.tar.gz trafci.zip TRAF_ODBC_Linux_Driver_64.tar.gz</code></pre>
</div>
</div>
<div class="paragraph">
<p>You use these files to install the different Trafodion clients.</p>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="download-linux">3.2.2. Linux Download</h4>
<div class="paragraph">
<p>Do the following:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Create a download directory on the client workstation. For example, <code>$HOME/trafodion</code>.</p>
</li>
<li>
<p>Open a Web browser and navigate to the Trafodion downloads site <a href="http://trafodion.apache.org/download.html" class="bare">http://trafodion.apache.org/download.html</a>.</p>
</li>
<li>
<p>Orient yourself to the binaries for the release you&#8217;re installing.
Right-click on the <code>Trafodion Clients</code> link and select <strong>Copy link address</strong>.</p>
</li>
<li>
<p>Go to the download directory on the client workstation and use <code>wget</code> to download the client package
using the URL you copied in step 3 above.</p>
</li>
<li>
<p>Unpack the <code>apache-trafodion-clients-*.tar.gz</code> using <code>tar</code>.</p>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ mkdir $HOME/trafodion
$ cd $HOME/trafodion
$ wget &lt;link to package&gt;
$ tar -xzvf apache-trafodion_clients-*.tar.gz
$ cd clients
$ ls
LICENSE odb64_linux.tar.gz TRAF_ODBC_Linux_Driver_64.tar.gz
JDBCT4.zip NOTICE trafci.zip
$</code></pre>
</div>
</div>
<div class="paragraph">
<p>You use these files to install the different Trafodion clients.</p>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="unpack-client-software">3.3. Unpack Client Software</h3>
<div class="paragraph">
<p>The client packages are located on the <code>client</code> subdirectory where you unpacked
the Trafodion distribution file. For example, <code>c:\trafodion\clients</code> (Windows)
or <code>$HOME/trafodion/clients</code> (Linux).</p>
</div>
<div class="paragraph">
<p>Unpack the client software and its dependencies you intend to use as follows.</p>
</div>
<div class="sect3">
<h4 id="_unpack_jdbc_based_client_software">3.3.1. Unpack JDBC-Based Client Software</h4>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 30%;">
<col style="width: 30%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">File</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Recommended Target Directory</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>JDBCT4.zip</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">JDBC Type 4 Driver</p></td>
<td class="tableblock halign-left valign-top"><div><div class="ulist">
<ul>
<li>
<p><strong>Windows:</strong> <code>c:\trafodion\jdbct4</code></p>
</li>
<li>
<p><strong>Linux:</strong> <code>$HOME/trafodion/jdbct4</code></p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci.zip</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Command Interface</p></td>
<td class="tableblock halign-left valign-top"><div><div class="ulist">
<ul>
<li>
<p><strong>Windows:</strong> <code>c:\trafodion\trafci</code></p>
</li>
<li>
<p><strong>Linux:</strong> <code>$HOME/trafodion/trafci</code></p>
</li>
</ul>
</div></div></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>Windows</strong></p>
</div>
<div class="paragraph">
<p>Use your favorite compress/uncompress utility to unpack the file to the target directory
defined in the table above.</p>
</div>
<div class="paragraph">
<p><strong>Linux</strong></p>
</div>
<div class="paragraph">
<p>Unpack the <code>.zip</code> file using the <code>unzip &lt;file&gt; -d &lt;target-directory&gt;</code> command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cd $HOME/trafodion/clients
$ unzip JDBCT4.zip -d $HOME/trafodion/jdbct4
.
.
.
$ unzip trafci.zip -d $HOME/trafodion/trafci
.
.
.
$ cd ..
$ ls
apache-trafodion_clients-2.2.0.tar.gz clients jdbct4 trafci
$</code></pre>
</div>
</div>
<div class="paragraph">
<p>Once complete, a fully-installed <code>c:\trafodion</code> (Windows) or
<code>$HOME/trafodion</code> directory should contain the following directories:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>clients</code>: The compressed client software.</p>
</li>
<li>
<p><code>jdbct4</code>: The Trafodion JDBC Type 4 driver installation directory.</p>
</li>
<li>
<p><code>trafci</code>: The Trafodion Command Interpreter installation directory.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_unpack_odbc_based_client_software">3.3.2. Unpack ODBC-Based Client Software</h4>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 30%;">
<col style="width: 30%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">File</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Recommended Target Directory</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TRAF_ODBC_Linux_Driver_64.tar.gz</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Linux ODBC Driver</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>$HOME/trafodion/odbc</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>odb64_linux.tar.gz</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Linux odb Utility</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>$HOME/trafodion/odb</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>Linux</strong></p>
</div>
<div class="paragraph">
<p>Unpack the <code>.tar.gz</code> file using the <code>tar -xzvf &lt;file&gt; -C &lt;target-directory&gt;</code> command.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cd $HOME/trafodion/clients
$ mkdir $HOME/trafodion/odbc
$ tar -xzvf TRAF_ODBC_Linux_Driver_64.tar.gz -C $HOME/trafodion/odbc
.
.
.
$ mkdir $HOME/trafodion/odb
$ tar -xzvf odb64_linux.tar.gz -C $HOME/trafodion/odb
.
.
.
$ cd ..
$ ls
apache-trafodion_clients-2.2.0.tar.gz clients odb odbc</code></pre>
</div>
</div>
<div class="paragraph">
<p>Once complete, a fully-installed <code>c:\trafodion</code> (Windows) or
<code>$HOME/trafodion</code> directory should contain:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>clients</code>: The compressed client software.</p>
</li>
<li>
<p><code>odb</code>: The Trafodion odb utility installation directory.</p>
</li>
<li>
<p><code>odbc</code>: The Trafodion ODBC driver installation directory.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="jdbct4">4. Install JDBC Type-4 Driver</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_prerequisites">4.1. Prerequisites</h3>
<div class="paragraph">
<p>If you have not done so already, please ensure that you have <a href="#java-setup">setup your Java environment</a>
and <a href="#download-software">unpackaged the Trafodion client software</a>.</p>
</div>
<div class="paragraph">
<p>The examples in this chapter assumes that you have unpackaged the JDBC Type 4 driver installation files
to <code>c:\trafodion\jdbct4</code> (Windows) or <code>$HOME/trafodion/jdbct4</code> (Linux).</p>
</div>
</div>
<div class="sect2">
<h3 id="jdbct4-validate-install">4.2. Validate Install Directory</h3>
<div class="paragraph">
<p>The content of the <code>jdbct4</code> installation directory is as follows:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33%;">
<col style="width: 30%;">
<col style="width: 37%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Installation Folder</th>
<th class="tableblock halign-left valign-top">Files</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>/lib</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jdbcT4.jar</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Product JAR file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>/samples</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>t4jdbc.properties</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Properties file that you can configure for your application environment.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>README</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use the common sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>/samples/common</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sampleUtils.java</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample source code for creating, populating, and dropping sample tables.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>/samples/DBMetaSample</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBMetaSample.java</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample source code for getting metadata about the sample tables.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>README</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use this sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>/samples/PreparedStatementSample</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PreparedStatementSample.java</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample code for simple or parameterized SELECT statements that are prepared.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>README</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use this sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>/samples/ResultSetSample</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>README</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use this sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ResultSetSample.java</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample source code for fetching rows from a result set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>/samples/StatementSample</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>README</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use this sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>StatementSample.java</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample source code for fetching rows from a simple SELECT statement.</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="jdbct4-setup-env">4.3. Set Up Client Environment</h3>
<div class="sect3">
<h4 id="jdbct4-java-development">4.3.1. Java Development</h4>
<div class="paragraph">
<p>If you plan to write and run Java applications that use the Trafodion JDBC Type 4 Driver to connect to a Trafodion database, then set these
environment variables on the client workstation, replacing <code><em>jdk-directory</em></code> with the location of your Java Development Kit and
replacing <code><em>jdbc-installation-directory</em></code> with the name of the directory where you downloaded the JDBC Type 4 driver:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 20%;">
<col style="width: 40%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Environment Variable</th>
<th class="tableblock halign-left valign-top">On Windows</th>
<th class="tableblock halign-left valign-top">On Linux</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>JAVA_HOME</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>set JAVA_HOME="<em>jdk-directory</em>"</code><sup>1</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>export JAVA_HOME=<em>jdk-directory</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PATH</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>set PATH=%PATH%;%JAVA_HOME%\bin</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>export PATH=$PATH:$JAVA_HOME/bin</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CLASSPATH</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>set CLASSPATH=%CLASSPATH%;_jdbc-installation-directory_\lib\jdbcT4.jar;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>export CLASSPATH=$CLASSPATH:_jdbc-installation-directory_/lib/jdbcT4.jar:</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><sup>1</sup> Enclose the <em>jdk-directory</em> in quotes to ensure that Windows can find the directory correctly. You can use the <code>set &lt;variable&gt;</code> command to verify the setting.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_configure_applications">4.3.2. Configure Applications</h4>
<div class="paragraph">
<p>Edit the <code>t4jdbc.properties</code> file in the <code>samples</code> folder. Refer to the <code>README</code> file in the <code>samples</code> folder for instructions.</p>
</div>
<div class="paragraph">
<p>Set these values for your environment:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>catalog</code>: Specify a catalog that exists in the database.</p>
</li>
<li>
<p><code>schema</code>: Specify a schema that exists in the database.</p>
</li>
<li>
<p><code>user</code>: Specify the name of a user who will be accessing the database.</p>
</li>
<li>
<p><code>password</code>: Specify the password of a user who will be accessing the database.</p>
</li>
<li>
<p><code>url</code>: Specify this string: <code>jdbc:t4jdbc://&lt;host-name&gt;:&lt;port-number&gt;/:</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><code>&lt;host-name&gt;</code> is the IP address or host name of the database platform.</p>
</div>
<div class="paragraph">
<p><code>&lt;port-number&gt;</code> is the location where the
Trafodion Database Connectivity Service (DCS) is running. (Default: <strong>23400</strong>).</p>
</div>
<div class="paragraph">
<p>See the <a href="http://trafodion.apache.org/docs/dcs_reference/index.html">Trafodion Database Connectivity Services Reference Guide</a>
for information about how to configure the DCS port.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>In this example, Trafodion authentication has not been enabled. Therefore, you can use a dummy
user and password. If authentication is enabled, then use your user and password information.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">catalog = TRAFODION
schema = SEABASE
user = usr
password = pwd
url = jdbc:t4jdbc://trafodion.host.com:23400/:</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The driver’s class name is <code>org.trafodion.jdbc.t4.T4Driver</code>.
</td>
</tr>
</table>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="jdbct4-test-programs">4.4. Test Programs</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
You must use JDK and set up the environmental variables as documented in
<a href="#jdbct4-java-development">Java Development</a> to build the test programs.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The <code>README</code> file in the <code>samples</code> folder provide information for how you build and run sample Java programs.
You can use these programs to verify the setup of the Trafodion JDBC Type-4 driver.</p>
</div>
<div class="paragraph">
<p>See the <a href="#jdbct4-validate-install">Validate Install Directory</a> section above for information on the different
sample programs that are included with the Trafodion JDBC Type-4 driver.</p>
</div>
<div class="paragraph">
<p><strong>Windows Example</strong></p>
</div>
<div class="paragraph">
<p>Build and run the StatementSample test program to verify the JDBC Type-4 driver installation.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">C:\trafodion\jdbct4\samples&gt; cd StatementSample
C:\trafodion\jdbct4\samples\StatementSample&gt; %JAVA_HOME%\bin\javac -classpath ..\..\lib\jdbcT4.jar *.java ..\common\*.java
Note: ..\common\sampleUtils.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
C:\trafodion\jdbct4\samples\StatementSample&gt; %JAVA_HOME%\bin\java -classpath ..\..\lib\jdbcT4.jar;..;. -Dt4jdbc.properties=..\t4jdbc.properties StatementSample
Mar 16, 2016 9:36:54 PM common.sampleUtils getPropertiesConnection
INFO: DriverManager.getConnection(url, props) passed
Inserting TimeStamp
Simple Select
Printing ResultSetMetaData ...
No. of Columns 12
Column 1 Data Type: CHAR Name: C1
Column 2 Data Type: SMALLINT Name: C2
Column 3 Data Type: INTEGER Name: C3
Column 4 Data Type: BIGINT Name: C4
Column 5 Data Type: VARCHAR Name: C5
Column 6 Data Type: NUMERIC Name: C6
Column 7 Data Type: DECIMAL Name: C7
Column 8 Data Type: DATE Name: C8
Column 9 Data Type: TIME Name: C9
Column 10 Data Type: TIMESTAMP Name: C10
Column 11 Data Type: REAL Name: C11
Column 12 Data Type: DOUBLE PRECISION Name: C12
Fetching rows...
Printing Row 1 using getString(), getObject()
Column 1 - Row1 ,Row1
Column 2 - 100,100
Column 3 - 12345678,12345678
Column 4 - 123456789012,123456789012
Column 5 - Selva,Selva
Column 6 - 100.12,100.12
Column 7 - 100.12,100.12
Column 8 - 2000-05-06,2000-05-06
Column 9 - 10:11:12,10:11:12
Column 10 - 2000-05-06 10:11:12.000000,2000-05-06 10:11:12.0
Column 11 - 100.12,100.12
Column 12 - 100.12,100.12
Printing Row 2 using getString(), getObject()
Column 1 - Row2 ,Row2
Column 2 - -100,-100
Column 3 - -12345678,-12345678
Column 4 - -123456789012,-123456789012
Column 5 - Selva,Selva
Column 6 - -100.12,-100.12
Column 7 - -100.12,-100.12
Column 8 - 2000-05-16,2000-05-16
Column 9 - 10:11:12,10:11:12
Column 10 - 2000-05-06 10:11:12.000000,2000-05-06 10:11:12.0
Column 11 - -100.12,-100.12
Column 12 - -100.12,-100.12
Printing Row 3 using getString(), getObject()
Column 1 - TimeStamp ,TimeStamp
Column 2 - -100,-100
Column 3 - -12345678,-12345678
Column 4 - -123456789012,-123456789012
Column 5 - Selva,Selva
Column 6 - -100.12,-100.12
Column 7 - -100.12,-100.12
Column 8 - 2016-03-16,2016-03-16
Column 9 - 21:37:03,21:37:03
Column 10 - 2016-03-16 21:37:03.053,2016-03-16 21:37:03.053
Column 11 - -100.12,-100.12
Column 12 - -100.12,-100.12
End of Data
C:\trafodion\jdbct4\samples\StatementSample&gt;</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>Linux Example</strong></p>
</div>
<div class="paragraph">
<p>Build and run the StatementSample test program to verify the JDBC Type-4 driver installation.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cd $HOME/trafodion/jdbct4/samples/StatementSample
$ $JAVA_HOME/bin/javac -classpath ../../lib/jdbcT4.jar *.java ../common/*.java
Note: ..\common\sampleUtils.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
$ $JAVA_HOME/bin/java -classpath ../../lib/jdbcT4.jar:..:. -Dt4jdbc.properties=../t4jdbc.properties StatementSample
Mar 16, 2016 9:36:54 PM common.sampleUtils getPropertiesConnection
INFO: DriverManager.getConnection(url, props) passed
Inserting TimeStamp
Simple Select
Printing ResultSetMetaData ...
No. of Columns 12
Column 1 Data Type: CHAR Name: C1
Column 2 Data Type: SMALLINT Name: C2
Column 3 Data Type: INTEGER Name: C3
Column 4 Data Type: BIGINT Name: C4
Column 5 Data Type: VARCHAR Name: C5
Column 6 Data Type: NUMERIC Name: C6
Column 7 Data Type: DECIMAL Name: C7
Column 8 Data Type: DATE Name: C8
Column 9 Data Type: TIME Name: C9
Column 10 Data Type: TIMESTAMP Name: C10
Column 11 Data Type: REAL Name: C11
Column 12 Data Type: DOUBLE PRECISION Name: C12
Fetching rows...
Printing Row 1 using getString(), getObject()
Column 1 - Row1 ,Row1
Column 2 - 100,100
Column 3 - 12345678,12345678
Column 4 - 123456789012,123456789012
Column 5 - Selva,Selva
Column 6 - 100.12,100.12
Column 7 - 100.12,100.12
Column 8 - 2000-05-06,2000-05-06
Column 9 - 10:11:12,10:11:12
Column 10 - 2000-05-06 10:11:12.000000,2000-05-06 10:11:12.0
Column 11 - 100.12,100.12
Column 12 - 100.12,100.12
Printing Row 2 using getString(), getObject()
Column 1 - Row2 ,Row2
Column 2 - -100,-100
Column 3 - -12345678,-12345678
Column 4 - -123456789012,-123456789012
Column 5 - Selva,Selva
Column 6 - -100.12,-100.12
Column 7 - -100.12,-100.12
Column 8 - 2000-05-16,2000-05-16
Column 9 - 10:11:12,10:11:12
Column 10 - 2000-05-06 10:11:12.000000,2000-05-06 10:11:12.0
Column 11 - -100.12,-100.12
Column 12 - -100.12,-100.12
Printing Row 3 using getString(), getObject()
Column 1 - TimeStamp ,TimeStamp
Column 2 - -100,-100
Column 3 - -12345678,-12345678
Column 4 - -123456789012,-123456789012
Column 5 - Selva,Selva
Column 6 - -100.12,-100.12
Column 7 - -100.12,-100.12
Column 8 - 2016-03-16,2016-03-16
Column 9 - 21:37:03,21:37:03
Column 10 - 2016-03-16 21:37:03.053,2016-03-16 21:37:03.053
Column 11 - -100.12,-100.12
Column 12 - -100.12,-100.12
End of Data
$</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_uninstall_jdbc_type_4_driver">4.5. Uninstall JDBC Type-4 Driver</h3>
<div class="paragraph">
<p>Run one of these sets of commands to remove the Trafodion JDBC Type 4 Driver:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>On Windows:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rmdir /s /q &lt;jdbc-installation-directory&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rmdir /s /q c:\trafodion\jdbct4</code></pre>
</div>
</div>
</li>
<li>
<p>On Linux:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rm -rf &lt;jdbc-installation-directory&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rm -rf $HOME/trafodion/jdbct4</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Remember to update/remove environmental variables if you&#8217;ve created them in th
<a href="#jdbct4-java-development">Java Development</a>.
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="trafci">5. Install trafci</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_prerequisites_2">5.1. Prerequisites</h3>
<div class="paragraph">
<p>If you have not done so already, please ensure that you have <a href="#java-setup">setup your Java environment</a>,
<a href="#download-software">unpackaged the Trafodion client software</a>, and <a href="#jdbct4">installed the JDBC Type-4 Driver</a>.
.</p>
</div>
<div class="paragraph">
<p>The examples in this chapter assumes that you have unpackaged the trafci installation file
to <code>c:\trafodion\trafci</code> (Windows) or <code>$HOME/trafodion/trafci</code> (Linux).</p>
</div>
</div>
<div class="sect2">
<h3 id="trafci_perl_python">5.2. Install Perl or Python</h3>
<div class="paragraph">
<p>If you plan to use Perl or Python scripts with trafci, verify that you have Perl or Python installed on the client workstation. trafci supports
these versions of Perl and Python:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Perl version 5.8.8</p>
</li>
<li>
<p>Python version 2.3.4</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If you do not have Perl or Python, download it from any open-source software provider. You can perform this installation procedure anytime
before or after installing trafci.</p>
</div>
<div class="paragraph">
<p>If you plan to run the sample scripts provided with trafci, verify that you have the Perl JavaServer and Jython (Java implementation of Python)
installed on your client workstation. Use the trafci Installation Wizard to automatically download and install both the Perl JavaServer and
Jython open source extensions. To download them manually, see the <code>README</code> in the samples directory.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="trafci-verify-install">5.3. Verify Installation</h3>
<div class="paragraph">
<p>Verify that <code>c:\trafodion\trafci</code> (Windows) or <code>$HOME/trafodion/trafci</code> (Linux) contains the following files:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>README</code></p>
</li>
<li>
<p><code>trafciInstaller.jar</code></p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="trafci-run-installer">5.4. Run trafci Installer</h3>
<div class="paragraph">
<p><code>trafciInstaller.jar</code> is used to install trafci.</p>
</div>
<div class="paragraph">
<p>Two modes are supported:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#trafci-wizard-install">GUI Wizard Install</a></p>
</li>
<li>
<p><a href="#trafci-cmd-install">Command-Line Install</a></p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="trafci-wizard-install">5.4.1. GUI Wizard Install</h4>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
You must have the X Window system installed on your Linux client workstation to run the trafci Installer Wizard.
If you do not, then use the <a href="#trafci-cmd-install">Command-Line Install</a> instructions below.
&lt;&lt;&lt;
==== Launch the Installer Wizard
</td>
</tr>
</table>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Move to the trafci install directory.</p>
<div class="ulist">
<ul>
<li>
<p><strong>Windows:</strong> <code>c:\trafodion\trafci</code></p>
</li>
<li>
<p><strong>Linux:</strong> <code>$HOME/trafodion/trafci</code></p>
</li>
</ul>
</div>
</li>
<li>
<p>Double-click on <code>trafciInstaller.jar</code></p>
</li>
</ol>
</div>
<div class="paragraph">
<p>If the trafci Installer Wizard does not start, then do the following from a command prompt:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Change director to the trafci install directory.</p>
<div class="ulist">
<ul>
<li>
<p><strong>Windows:</strong> <code>cd c:\trafodion\trafci</code></p>
</li>
<li>
<p><strong>Linux:</strong> <code>cd $HOME/trafodion/trafci</code></p>
</li>
</ul>
</div>
</li>
<li>
<p>Launch the trafci Installer Wizard: <code>java -jar trafciInstaller.jar</code></p>
</li>
</ol>
</div>
<div class="sect4">
<h5 id="trafci-using-wizard">Using the Installer Wizard</h5>
<div class="paragraph">
<p>When you execute <code>trafciInstaller.jar</code>, the Installer Wizard appears:</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/InstallerWizardWelcome.jpg" alt="trafci Installer Wizard welcome screen"></span></p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Click one of the buttons for the type of installation that you would like to perform:</p>
<div class="ulist">
<ul>
<li>
<p><strong>Standard Installation</strong> to start the Installer Wizard. Guides you through installing both the core trafci components and the optional open
source extensions.</p>
</li>
<li>
<p><strong>Core Components</strong> for a quick installation of the core trafci files.</p>
</li>
<li>
<p><strong>Optional Components</strong> if you have already installed the core trafci files but want to install only the optional open source extensions.</p>
</li>
</ul>
</div>
</li>
<li>
<p>After you have selected the components you wish to install, browse and select the JDBC JAR file and then specify an installation directory
where you will install trafci.</p>
<div class="paragraph">
<p><span class="image"><img src="images/InstallerWizardPaths.jpg" alt="trafci select path dialog"></span></p>
</div>
</li>
<li>
<p>To locate the <strong>JDBC Type 4 Driver JAR file</strong>, click <strong>Browse</strong> next to the <strong>JDBC Type 4 Driver JAR File</strong>.</p>
<div class="paragraph">
<p>Navigate to the lib folder of the Trafodion JDBC driver and select the <code>jdbcT4.jar</code> file
(<code>c:\trafodion\jdbct4\lib\jdbcT4.jar</code> on Windows, <code>$HOME/trafodion/jdbct4/lib/jdbcT4.jar</code> on Linux), and then click <strong>Select</strong>.</p>
</div>
<div class="paragraph">
<p>The Installer Wizard now displays the path of the JDBC driver JAR file for <strong>JDBC Type 4 Driver JAR File</strong>.</p>
</div>
</li>
<li>
<p>To select the <strong>Trafodion Command Interface installation directory</strong>, click <strong>Browse</strong> next to the <strong>Trafodion Command Interface installation directory</strong></p>
<div class="paragraph">
<p>Navicate to <code>c:\trafodion</code> (Windows) or <code>$HOME/trafodion</code> (Linux)and click on <strong>Select</strong>.</p>
</div>
<div class="paragraph">
<p>The Installer Wizard now displays the path of the installation directory for <strong>Trafodion Command Interface installation directory</strong>.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/trafci_Installation_Choices.jpg" alt="trafci installation choices"></span></p>
</div>
</li>
<li>
<p>Click <strong>Next</strong> to review the open-source legal disclaimer.</p>
</li>
<li>
<p>If you agree to the terms and conditions, select the check box, and click <strong>Next</strong>.</p>
<div class="paragraph">
<p>The Installer Wizard dialog box shows which components are available for you to download and install.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/OptionalComponents.jpg" alt="trafci component selection"></span></p>
</div>
</li>
<li>
<p>Select the optional components to be downloaded and installed. Each optional component is installed if the component box is checked.</p>
<div class="paragraph">
<p>If you want to change the download URL for the extensions, click <strong>Edit URL</strong>, and this dialog box appears:</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/PerlJavaServerURL.jpg" alt="trafci edit download URL"></span></p>
</div>
<div class="paragraph">
<p>Type a new path, and click <strong>OK</strong>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Perl and Python must be installed for the respective extensions to work.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>If you do not require a proxy server, proceed to Step 12.</p>
</li>
<li>
<p>If you require a proxy server, select <strong>Use the following proxy settings</strong> and enter the proxy server and port for downloading the open
source extensions.</p>
<div class="paragraph">
<p><span class="image"><img src="images/ProxySettings.jpg" alt="trafci proxy settings"></span></p>
</div>
</li>
<li>
<p>Click <strong>Detect Proxy Server(s)</strong> to try to auto-detect your proxy settings. If trafci detects one or more proxy servers, it displays
them in a drop-down menu next to the <strong>Detect Proxy Server(s)</strong> button.</p>
</li>
<li>
<p>Click <strong>Install</strong> to start the installation.</p>
</li>
<li>
<p>After the core trafci files are installed, the <strong>Installation Status</strong> dialog box appears indicating how many files were extracted to the
installation directory:</p>
<div class="paragraph">
<p><span class="image"><img src="images/Extracted_Files.jpg" alt="trafci extracted files" width="600" height="600"></span></p>
</div>
<div class="paragraph">
<p>Click <strong>OK</strong> to continue the installation.</p>
</div>
</li>
<li>
<p>If you chose to install the optional components, the installer attempts to download and install them. The progress bar indicates the
download progress of each file. In addition, an installation log provides details about the status of the download and installation of
the components.</p>
<div class="paragraph">
<p><span class="image"><img src="images/InstallComplete.jpg" alt="trafci installation complete"></span></p>
</div>
</li>
<li>
<p>After all trafci files are installed, the Installer Wizard completes.</p>
</li>
<li>
<p>Click <strong>Exit</strong>.</p>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect3">
<h4 id="trafci-cmd-install">5.4.2. Command-Line Installation Steps</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>At a command prompt, change to the directory where you extracted the contents of the distribution (.zip) file:</p>
<div class="paragraph">
<p><strong>Windows</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">c:\&gt; cd c:\trafodion\trafci
c:\trafodion\trafci&gt; dir
README trafciInstaller.jar</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Linux</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cd $HOME/trafodion/trafci
$ ls
README trafciInstaller.jar</code></pre>
</div>
</div>
</li>
<li>
<p>Before launching the command-line installer, see the command options below:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -jar trafciInstaller.jar -help
Usage: java -jar &lt;installer jar&gt; [ -help] | &lt;-cm|-silent&gt;
[-jdbcFile &lt;jdbc filename&gt;] [-installDir &lt;install dir&gt;] ]</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>-silent</code> option installs the client without prompting you for options.</p>
</div>
<div class="paragraph">
<p><strong>Windows</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -jar trafciInstaller.jar -silent -jdbcFile &quot;C:\trafodion\jdbct4\lib\jdbcT4.jar&quot; -installDir C:\trafodion\trafci</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Linux</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -jar trafciInstaller.jar -silent -jdbcFile &quot;$HOME/jdbct4/lib/jdbcT4.jar&quot; -installDir $HOME/trafodion/trafci</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>-jdbcFile</em> and <em>-installDir</em> are optional parameters. If you do not specify those parameters, you will be prompted to enter them during
installation.</p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Launch the command-line installer by entering this command:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -jar trafciInstaller.jar -cm</code></pre>
</div>
</div>
<div class="paragraph">
<p>The command-line installer starts and prompts you to enter the type of installation:</p>
</div>
<div class="paragraph">
<p><strong>Windows</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">c:\&gt; cd c:\trafodion\trafci
c:\trafodion\trafci&gt; java -jar trafciInstaller.jar -cm
********************************************************************
**** **
**** Welcome to Trafodion Command Interface Installer **
**** **
**** NOTE: The installer requires a the JDBC Type 4 **
**** Driver to be installed a on your workstation. **
********************************************************************
Type Y for a standard installation, or N for optional components only.
Standard Installation [Y]:</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Linux</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cd $HOME/trafodion/trafci
$ java -jar trafciInstaller.jar -cm
********************************************************************
**** **
**** Welcome to Trafodion Command Interface Installer **
**** **
**** NOTE: The installer requires a the JDBC Type 4 **
**** Driver to be installed a on your workstation. **
********************************************************************
Type Y for a standard installation, or N for optional components only.
Standard Installation [Y]:</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>For a standard installation, type <strong>Y</strong> and press <strong>Enter</strong>.</p>
</li>
<li>
<p>To install the optional components only, type <strong>N</strong>, press <strong>Enter</strong>, and proceed to Step 7.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
All items in square brackets are default values. Press Enter to accept the default value.
</td>
</tr>
</table>
</div>
<div style="page-break-after: always;"></div>
</li>
</ul>
</div>
</li>
<li>
<p>Enter the full directory path and file name of the JDBC driver JAR file, <code>jdbcT4.jar</code>, which is located in the JDBC driver lib directory:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">JDBC Type 4 Driver JAR File
--------------------------------
Enter the location and file name:</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Windows</strong>: <code>c:\trafodion\jdbct4\lib\jdbcT4.jar</code></p>
</li>
<li>
<p><strong>Linux</strong>: <code>/opt/user/trafodion/lib/jdbcT4.jar</code></p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Don&#8217;t use environmental variables on Linux (such as <code>$HOME</code>). Instead, specify the full path to the
<code>jdbcT4.jar</code> file.
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
</li>
<li>
<p>Enter an existing directory where you would like to install trafci:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Trafodion Command Interface
--------------------------------
Enter the installation directory:</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Windows</strong>: <code>c:\trafodion\trafci</code></p>
</li>
<li>
<p><strong>Linux</strong>: <code>/opt/user/trafodion/trafci</code></p>
<div class="paragraph">
<p>The installation status appears, indicating how many files are installed in the installation directory:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Extracted 18 files from the
/opt/user/trafodion/trafci/trafciInstaller.jar archive into the
/opt/user/trafodion/trafci directory.
Core TRAFCI files installed.
Do you want to install the optional components? [Y]:</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Don&#8217;t use environmental variables on Linux (such as <code>$HOME</code>). Instead, specify the full path to the
<code>jdbcT4.jar</code> file.
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
</li>
<li>
<p>If you do not wish to download and install the optional components, type <strong>N</strong> at the prompt and press Enter, and your installation
is complete. Otherwise, type <strong>Y</strong>, press <strong>Enter</strong>, and proceed through the remainder of the installation.</p>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Type <strong>Y</strong> and press <strong>Enter</strong> if you agree to the terms. If you are doing an optional install only, you are prompted to enter a valid trafci
installation directory:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Do you agree to these terms? (Y or N): Y
Enter your installation directory:</code></pre>
</div>
</div>
</li>
<li>
<p>If you do not require a proxy server, type <strong>N</strong>, press <strong>Enter</strong>, and proceed to Step 10. Otherwise, type <strong>Y</strong>, press <strong>Enter</strong>,
and proceed to Step 9.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Use a proxy server? [N]:</code></pre>
</div>
</div>
</li>
<li>
<p>When prompted to auto-detect proxy servers, type <strong>Y</strong> and press <strong>Enter</strong> to direct trafci to detect your proxy settings.
If trafci finds proxy servers, it displays them. If you type <strong>N</strong> and press <strong>Enter</strong>, trafci prompts you to enter the proxy server and port:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Use a proxy server? [Y]: Y
Attempt to auto-detect proxy server(s)? [Y]: N
Enter the proxy server (do not include the port): myproxyserver.com
Enter the proxy port: 8080</code></pre>
</div>
</div>
</li>
<li>
<p>You are prompted to select which optional components you wish to download and install. You can also change the download URL.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Install Perl JavaServer extensions? [Y]: Y
Perl JavaServer requires 3 files: Java.pm, JavaArray.pm, and JavaServer.jar
http://search.cpan.org/src/METZZO/Java-4.7/[URL of the folder which contains these files [http://search.cpan.org/src/METZZO/Java-4.7/]:]
Install Perl XML SAX Module? [Y]: Y
Perl SAX XML Module URL (PerlSAX.pm)
Install Jython, a Java implementation of Python? [Y]: Y
Jython URL (jython_installer-2.2.jar)</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>The setup proceeds to download and install the optional open-source components. As each component is retrieved, dots (.) are printed to
indicate the progress of the download.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Downloading Perl JavaServer [1 of 3] - Java.pm
......................... 100%
Downloading Perl JavaServer [2 of 3] - JavaArray.pm1
......................... 100%
Downloading Perl JavaServer [3 of 3] - JavaServer.jar
......................... 100%
Successfully added settings.pl
Downloading Perl XML SAX Module [1 of 1] - PerlSAX.pm
......................... 100%
Downloading Jython [1 of 1] - jython_installer-2.2.jar
......................... 100%
Successfully Installed Jython. Successfully added settings.py
Trafodion Command Interface Installation Complete.
$</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="_verify_installed_software_files">5.5. Verify Installed Software Files</h3>
<div class="paragraph">
<p>After downloading and running the installer file, verify that the trafci software files are installed in the correct locations.
<code>c:\trafodion\trafci</code> (Windows) or <code>$HOME/trafodion/trafci</code> (Linux).</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 15%;">
<col style="width: 20%;">
<col style="width: 65%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Folder</th>
<th class="tableblock halign-left valign-top">Files</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bin</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci.cmd</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows launch file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci.pl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Perl wrapper script. <em>trafci-perl.pl</em> is renamed <em>trafci.pl</em>. To run this script, see the
<a href="http://trafodion.apache.org/docs/command_interface/index.html"><em>Trafodion Command Interface Guide</em></a>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci.py</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Python wrapper script. trafci-python.py is renamed as trafci.py. To run this script, see the
<a href="http://trafodion.apache.org/docs/command_interface/index.html"><em>Trafodion Command Interface Guide</em></a>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci.sh</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Linux launch file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci-perl.pl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Perl wrapper script. This script has been modified to invoke trafci.pl. This script is retained for backward compatibility.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci-python.py</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Python wrapper script. This script has been modified to invoke trafci.py. This script is retained for backward compatibility.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lib</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trafci.jar</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Product JAR file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lib/perl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Session.pm</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Product file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lib/python</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Session.py</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Product file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>samples</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>README</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that describes how to use the sample scripts.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>arrayDML.pl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Perl program that executes DML statements and returns results in an array format.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sample.pl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Perl program that supports multiple sessions in one script.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sample.sql</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample SQL script.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sampleDDL.py</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Python file that uses Jython to execute DDL statements.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sampleDML.py</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Python file that uses Jython to execute DML statements.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sampleTables.pl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Perl file that lists all tables and respective row counts. The file accepts a wild-card argument on the command line.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sampleTables.py</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Python file that lists all tables and respective row counts. The file accepts a wild-card argument on the command line.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_modify_path_variable">5.6. Modify PATH variable</h3>
<div class="paragraph">
<p>Modify the PATH variable:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Windows:</strong> <code>c:\trafodion\trafci\bin\</code></p>
</li>
<li>
<p><strong>Linux:</strong> <code>$HOME/trafodion/trafci/bin</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>See <a href="#howto-setup-path">Set Up Path Variable</a> for further instructions.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_test_launching_trafci">5.7. Test Launching trafci</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For information about setting up and using trafci, such as choosing the look and feel of the interface or presetting launch parameters, see the
<a href="http://trafodion.apache.org/docs/command_interface/index.html">Trafodion Command Interface Guide</a>.
</td>
</tr>
</table>
</div>
<div class="sect3">
<h4 id="_windows_example">5.7.1. Windows Example</h4>
<div class="paragraph">
<p>On Windows, do the following:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Go to the directory where you installed trafci. For example, <code>c:\trafodion\trafci</code></p>
</li>
<li>
<p>Go to the <code>bin</code> directory</p>
</li>
<li>
<p>Invoke the <code>trafci.cmd</code> file.</p>
</li>
<li>
<p>Answer prompts.</p>
</li>
</ol>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd &quot;c:\trafodion\trafci\bin&quot;
trafci.cmd
&lt;screen is cleared&gt;
Welcome to Apache Trafodion Command Interface
Copyright (c) 2015 Apache Software Foundation
Host Name/IP Address: trafodion.host.com:23400
User Name: usr
Password:
Connected to Trafodion
SQL&gt; show schemas ;
SCHEMA NAMES
--------------------------------------------------------------------------------
SEABASE _MD_ _REPOS_ _LIBMGR_
SQL&gt;</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_linux_example">5.7.2. Linux Example</h4>
<div class="paragraph">
<p>On Linux, do the following:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Go to the directory where you installed trafci. For example, <code>$HOME/trafodion/trafci</code></p>
</li>
<li>
<p>Go to the <code>bin</code> directory</p>
</li>
<li>
<p>Invoke the <code>trafci.sh</code> file.</p>
</li>
<li>
<p>Answer prompts.</p>
</li>
</ol>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cd $HOME/trafodion/trafci/bin
$ . ./trafci.sh -h trafodion.home.com:23400 -u usr -p pwd
Welcome to Apache Trafodion Command Interface
Copyright (c) 2015 Apache Software Foundation
Connected to Trafodion
SQL&gt;show schemas;
SCHEMA NAMES
--------------------------------------------------------------------------------
SEABASE _MD_ _REPOS_ _LIBMGR_
SQL&gt;</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="trafci-uninstall">5.8. Uninstall trafci</h3>
<div class="paragraph">
<p>If you used the executable JAR file, <code>trafciInstaller.jar</code>, to install trafci, delete the entire
folder/directory when you installed trafci.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>On Windows:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rmdir /s /q &lt;trafci-installation-directory&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rmdir /s /q c:\trafodion\trafci</code></pre>
</div>
</div>
</li>
<li>
<p>On Linux:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rm -rf &lt;jdbc-installation-directory&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rm -rf $HOME/trafodion/trafci</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Remember to remove the trafci reference in the PATH variable.
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_configure_dbvisualizer">6. Configure DBVisualizer</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_prerequisites_3">6.1. Prerequisites</h3>
<div class="paragraph">
<p>If you have not done so already, please ensure that you have <a href="#java-setup">setup your Java environment</a>,
<a href="#download-software">unpackaged the Trafodion client software</a>, and <a href="#jdbct4">installed the JDBC Type-4 Driver</a>.</p>
</div>
<div class="paragraph">
<p>You also need DBVisualizer 9.x.x. See the <a href="http://www.dbvis.com/"><em>DbVisualizer website</em></a>.
In addition, see DBVisualizer’s FAQ “How to” page:
<a href="http://confluence.dbvis.com/pages/viewpage.action?pageId=3146120"><em>How do I change the Java version that DBVisualizer uses?</em></a></p>
</div>
<div class="paragraph">
<p>The examples in this chapter assumes that you have unpackaged the trafci installation file
to <code>c:\trafodion\trafci</code> (Windows) or <code>$HOME/trafodion/trafci</code> (Linux).</p>
</div>
</div>
<div class="sect2">
<h3 id="_configuration_instructions">6.2. Configuration Instructions</h3>
<div class="sect3">
<h4 id="_register_jdbc_type_4_driver">6.2.1. Register JDBC Type-4 Driver</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Select <strong>Tools&gt;Driver Manager</strong>.</p>
</li>
<li>
<p>Click on the green plus sign to add a new driver.</p>
<div class="paragraph">
<p><span class="image"><img src="images/DbVisualizer_Driver_Manager.jpg" alt="DBVizualizer Add New Driver" width="500" height="500"></span></p>
</div>
<div class="ulist">
<ul>
<li>
<p>Use the Open File icon and locate the Trafodion JDBC Type-4 Driver.
<code>c:\trafodion\jdbct4\lib\jdbcT4.jar</code> (Windows) or <code>$HOME/trafodion/jdbct4/lib/jdbcT4.jar</code> (Linux).</p>
</li>
<li>
<p>Use the JDBC URL format (literary, do not replace the placeholders):</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">jdbc:t4jdbc://&lt;host-name or ip-address&gt;:23400/:</code></pre>
</div>
</div>
</li>
</ul>
</div>
</li>
<li>
<p>Close the dialog box to save the settings.</p>
</li>
</ol>
</div>
</div>
<div class="sect3">
<h4 id="_create_database_connection">6.2.2. Create Database Connection</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Select <strong>Database&gt;Create Database Connection</strong>.</p>
</li>
<li>
<p>Click on the <strong>Driver (JDBC)</strong> field. This presents you with a drop-down list of drivers.</p>
</li>
<li>
<p>Select the driver you created in the step above. (<code>Trafodion</code>)</p>
</li>
<li>
<p>Right-click the <strong>Database URL</strong> field. Select the URL format that pops up.</p>
<div class="paragraph">
<p>The field should be populated with: <code>jdbc:t4jdbc://&lt;host-name or ip-address&gt;:23400/:</code></p>
</div>
</li>
<li>
<p>Edit (double-click the field) the database URL to match your target host name and port number.</p>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">jdbc:t4jdbc://node01.host.com:23400/:</code></pre>
</div>
</div>
</li>
<li>
<p>Add your <strong>Database Userid</strong>.</p>
</li>
<li>
<p>Add your <strong>Database Password</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/Database_Connection_in_DbVisualizer.jpg" alt="DBVizualizer Make Connection" width="500" height="500"></span></p>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_disable_connection_validation_select_option">6.2.3. Disable Connection Validation Select Option</h4>
<div class="sect4">
<h5 id="_dbvisualizer_9_2_or_a_later_version">DBVisualizer 9.2 (or a later version)</h5>
<div class="paragraph">
<p>Set the <strong>Physical Connection</strong> property to keep your connections alive. Follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Open the database connection you created earlier if it&#8217;s not open.</p>
</li>
<li>
<p>Select the <strong>Properties</strong> tab.</p>
</li>
<li>
<p>In the left navigation tree, expand the <strong>Generic</strong> connection properties, and select <strong>Physical Connection</strong>.</p>
</li>
<li>
<p>Under <strong>Validation SQL</strong>, enter <code>values(current_timestamp)</code> and click <strong>Apply</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/Physical_Connection.jpg" alt="DBVisualizer Physical Connection" width="500" height="500"></span></p>
</div>
</li>
</ol>
</div>
</div>
<div class="sect4">
<h5 id="_dbvisualizer_9_1_or_an_earlier_version">DBVisualizer 9.1 (or an earlier version)</h5>
<div class="paragraph">
<p>Edit the <code><em>DBVisualizer-Install-Dir</em>\resources\dbvis-custom.prefs</code> file and
disable the <code>ConnectionValidationSelect</code> option as shown below:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">dbvis.generic.-ConnectionValidationSelect=disabled</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_connect_to_trafodion">6.2.4. Connect to Trafodion</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Right click on the database connection.</p>
</li>
<li>
<p>Select <strong>Connect</strong>.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>Once connected:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Select <strong>SQL Commander&gt;New SQL Commander</strong>. (CTRL+T)</p>
</li>
<li>
<p>Browse the tree structure in the left pane under <strong>Connections</strong>.</p>
</li>
<li>
<p>Try a query.</p>
</li>
</ol>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_configure_squirrel_client">7. Configure SQuirreL Client</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_prerequisites_4">7.1. Prerequisites</h3>
<div class="paragraph">
<p>If you have not done so already, please ensure that you have <a href="#java-setup">setup your Java environment</a>,
<a href="#download-software">unpackaged the Trafodion client software</a>, and <a href="#jdbct4">installed the JDBC Type-4 Driver</a>.</p>
</div>
<div class="paragraph">
<p>You also need SQuirreL SQL Client 3.7.0 or later. See the <a href="http://squirrel-sql.sourceforge.net/"><em>SQuirreL SQL Client website</em></a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="_configuration_instructions_2">7.2. Configuration Instructions</h3>
<div class="sect3">
<h4 id="_register_jdbc_type_4_driver_2">7.2.1. Register JDBC Type-4 Driver</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Start SQuirreL SQL Client</p>
</li>
<li>
<p>Click in the rectangle box in the upper left of the window that has “Drivers” printed sideways.</p>
</li>
<li>
<p>Select the "+ New Driver. . ." under "Drivers" from the top menu.</p>
<div class="paragraph">
<p><span class="image"><img src="images/SQuirrel_New_Driver.jpg" alt="SQuirreL New Driver Dialog Box"></span></p>
</div>
</li>
<li>
<p>In the <strong>Add Driver</strong> dialog box:</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Enter <code>Trafodion</code> in the <strong>Name</strong> field.</p>
</li>
<li>
<p>Enter <code>jdbc:t4jdbc://&lt;host-name or ip-address:23400/:</code> in the <strong>Example URL</strong> field.</p>
<div class="paragraph">
<p>The default port number is 23400. If you have configured JDBC server on Trafodion with a different port number,
then you will need to change the 23400 value to match.</p>
</div>
</li>
<li>
<p>Select the <strong>Extra Class Path</strong> tab and then click the <strong>Add</strong> button.</p>
<div class="paragraph">
<p>Use the file browser to navigate to the directory where you installed the
drivers and select the driver. (<code>jdbct4\lib\jdbcT4.jar</code>)</p>
</div>
</li>
<li>
<p>Enter <code>org.trafodion.jdbc.t4.T4Driver</code> in the Class Name field at the bottom of the dialog box and then click on <strong>OK</strong>.</p>
</li>
<li>
<p>If configured correctly, you will see a message stating
"Driver class org.trafodion.jdbc.t4.T4Driver successfully registered for driver definition: Trafodion" in the text box
at the bottom of the SQuirreL SQL window.</p>
<div class="paragraph">
<p><span class="image"><img src="images/SQuirrel_Extra_Class_Path.jpg" alt="SQuirreL Extra Class Path Dialog Box"></span></p>
</div>
</li>
</ol>
</div>
</li>
<li>
<p>Click in the rectangle box in the upper left of the window that has "Drivers" printed sideways.</p>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_connect_to_trafodion_2">7.2.2. Connect to Trafodion</h4>
<div class="paragraph">
<p>Use the Add Alias dialog box and create an alias for your Trafodion System.</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Select the "+ New Alias. . ." under <strong>Aliases</strong> from the top menu.</p>
</li>
<li>
<p>In the <strong>Add Alias</strong> dialog box:</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Enter <code>Trafodion Cluster</code> or however you want to identify the cluster in the Name field.</p>
</li>
<li>
<p>Select <strong>Trafodion</strong> from the Driver select menu.</p>
</li>
<li>
<p>Enter &lt;your user name&gt; in the User Name field.</p>
</li>
<li>
<p>Enter &lt;your password&gt; in the Password field.</p>
</li>
<li>
<p>Click on the <strong>Properties</strong> button. In the Schema tab, select the <strong>Load all and cache all Schemas</strong> radio button.</p>
</li>
<li>
<p>Click on the <strong>OK</strong> button to close the Properties dialog and then click on the <strong>OK</strong> button to close the <strong>Add Aliases</strong> window.</p>
<div class="paragraph">
<p><span class="image"><img src="images/SQuirrel_Add_Alias.jpg" alt="SQuirreL Add Alias Dialog Box"></span></p>
</div>
</li>
</ol>
</div>
</li>
<li>
<p>You will now be presented with a dialog to connect. Click on the <strong>Connect</strong> button and then issue a query to test the connection.</p>
</li>
</ol>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="odbc-linux-install">8. Install Linux ODBC Driver</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_installation_requirements">8.1. Installation Requirements</h3>
<div class="paragraph">
<p>If you have not done so already, please ensure that you have <a href="#download-software">unpackaged the Trafodion
client software</a>.</p>
</div>
<div class="paragraph">
<p>In addition, the ODBC driver for Linux requires <code>libgcc 3.4.3</code> and <code>libstd++ 6.0</code>.</p>
</div>
<div class="paragraph">
<p>If you are building ODBC applications, please use the preferred build platform, RedHat 6.x or CentOS 6.x.</p>
</div>
<div class="paragraph">
<p>The examples in this chapter assumes that you have unpackaged the JDBC Type for installation files
to <code>$HOME/trafodion/odbc</code>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_validate_install_directory">8.2. Validate Install Directory</h3>
<div class="paragraph">
<p><code>$HOME/trafodion/odbc/PkgTmp</code> should contain:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">connect_test.cpp
install.sh
libicudataNv44.so.44
libicuucNv44.so.44
libtrafodbc_l64.so
libtrafodbc_l64_drvr.so
LICENSE
license.txt
MD5SUM
TRAFDSN</code></pre>
</div>
</div>
<div class="paragraph">
<p>By default, a new version of the Trafodion ODBC driver is installed in the following directories
unless you specify a different directory during installation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>/usr/lib64</code></p>
</li>
<li>
<p><code>/etc/odbc</code></p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The following header files are not packaged with the Trafodion ODBC driver:<br>
<br>
- <code>sql.h</code><br>
- <code>sqlext.h</code><br>
- <code>sqltypes.h</code><br>
- <code>sqlucode.h</code><br>
<br>
To install those header files, <a href="#linux_odbc_client_env">Set Up Client Environment</a> below.
</td>
</tr>
</table>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_install_reinstall_linux_odbc_driver">8.3. Install/Reinstall Linux ODBC Driver</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
You must have root (<code>sudo</code>) access to install the Trafodion ODBC Driver for Linux at the default system location.
If you don&#8217;t have such access, the install the ODBC driver to an alternate location; for example: <code>$HOME/trafodion/odbc</code>.
</td>
</tr>
</table>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Install the product by entering these commands:</p>
<div class="paragraph">
<p><strong>With <code>sudo</code> Access</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd $HOME/trafodion/odbc/PkgTmp
sudo ./install.sh</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Without <code>sudo</code> Access</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd $HOME/trafodion/odbc/PkgTmp
./install.sh</code></pre>
</div>
</div>
<div class="paragraph">
<p>Except for the sample file, the <code>install.sh</code> script saves a copy (<code>.SAV</code>) of your previous installation files if they exist.</p>
</div>
</li>
<li>
<p>Accept the terms of the license agreement by entering <strong>yes</strong>.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Don&#8217;t use environmental variables when specifying alternative location. Instead, use
the full path. For example, specify <code>/opt/user/trafodion/odbc</code> instead of <code>$HOME/trafodion/odbc</code>.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>Enter a directory for the library files, or press Enter to use the default directory (<code>/usr/lib64</code>).</p>
</li>
<li>
<p>Enter a directory for the data-source template file, or press <strong>Enter</strong> to use the default directory (<code>/etc/odbc</code>).</p>
</li>
<li>
<p>Enter a directory for the sample program, or press <strong>Enter</strong> to use the default directory (<code>/etc/odbc</code>).</p>
</li>
<li>
<p>If you installed the library files, data-source template file, and the sample program in an
alternative location, then verify the directory content:</p>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
<div class="sect3">
<h4 id="linux_odbc_client_env">8.3.1. Set Up Client Environment</h4>
<div class="paragraph">
<p>If you selected default options during installation, ensure that:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The libraries are located in the <code>/usr/lib64</code> directory.</p>
</li>
<li>
<p>A <code>TRAFDSN</code> file is in the <code>/etc/odbc</code> directory.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If you select non-default locations during installation, ensure that the files are installed
in the directories that you specified during installation:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cd $HOME/trafodion/odbc
$ ls
connect_test.cpp libicuuc.so libtrafodbc_drvr64.so libtrafodbc_l64.so PkgTmp
libicudata.so libicuuc.so.44 libtrafodbc_l64_drvr.so libtrafodbc_l64.so.1 TRAFDSN
libicudata.so.44 libtrafodbc64.so libtrafodbc_l64_drvr.so.1 MD5SUM
$</code></pre>
</div>
</div>
<div class="paragraph">
<p>The driver expects the <code>TRAFDSN</code> file to be present in either the default location (<code>/etc/odbc</code>)
or the current working direct or (<code>CWD</code>) of the application. As a best practice, copy
the <code>TRAFDSN</code> file to the application directory.</p>
</div>
<div class="paragraph">
<p>Edit the <code>TRAFDSN</code> file. Make changes to the <code>Default_DataSource</code> section. At a minimum,
change the value for <code>Server</code> to the address of the host you are connecting to.</p>
</div>
<div class="paragraph">
<p><strong>Before</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[Default_DataSource]
Description = Default Data Source
Catalog = TRAFODION
Schema = SEABASE
DataLang = 0
FetchBufferSize = SYSTEM_DEFAULT
Server = TCP:1.2.3.4:23400
SQL_ATTR_CONNECTION_TIMEOUT = SYSTEM_DEFAULT
SQL_LOGIN_TIMEOUT = SYSTEM_DEFAULT
SQL_QUERY_TIMEOUT = NO_TIMEOUT</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>After</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[Default_DataSource]
Description = Default Data Source
Catalog = TRAFODION
Schema = SEABASE
DataLang = 0
FetchBufferSize = SYSTEM_DEFAULT
Server = TCP:node01.host.com:23400
SQL_ATTR_CONNECTION_TIMEOUT = SYSTEM_DEFAULT
SQL_LOGIN_TIMEOUT = SYSTEM_DEFAULT
SQL_QUERY_TIMEOUT = NO_TIMEOUT</code></pre>
</div>
</div>
<div class="paragraph">
<p>If you are building ODBC applications, you need to install these header files in your build environment:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>sql.h</code></p>
</li>
<li>
<p><code>sqlext.h</code></p>
</li>
<li>
<p><code>sqltypes.h</code></p>
</li>
<li>
<p><code>sqlucode.h</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To install those header files from the latest packages, run this <code>yum</code> command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">sudo yum -y install libiodbc libiodbc-devel</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>yum</code> command automatically installs the header files in the <code>/usr/include</code> and <code>/usr/include/libiodbc</code> directories.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_enable_compression">8.3.2. Enable Compression</h4>
<div class="paragraph">
<p>When compression is enabled in the ODBC driver, the ODBC driver can send and receive large volumes of data quickly and efficiently to and from
the Trafodion Database Connectivity Services (DCS) server over a TCP/IP network. By default, compression is disabled.</p>
</div>
<div class="paragraph">
<p>To enable compression in the ODBC driver or to change the compression setting, follow these steps:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If you are using the Trafodion ODBC driver manager, add</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Compression = compression-level</code></pre>
</div>
</div>
<div class="paragraph">
<p>to the <code>DSN</code> section of <code>TRAFDSN</code> file.</p>
</div>
</li>
<li>
<p>If you are using a third-party driver manager, such as unixODBC, add</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Compression = compression-level</code></pre>
</div>
</div>
<div class="paragraph">
<p>to the <code>DSN</code> section of the <code>odbc.ini</code> file.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The <code><em>compression-level</em></code> is one of these values:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>SYSTEM_DEFAULT</code>, which is the same as no compression</p>
</li>
<li>
<p><code>no compression</code></p>
</li>
<li>
<p><code>best speed</code></p>
</li>
<li>
<p><code>best compression</code></p>
</li>
<li>
<p><code>balance</code></p>
</li>
<li>
<p>An integer from <code>0</code> to <code>9</code>, with <code>0</code> being <code>no compression</code> and <code>9</code> being the <code>maximum available compression</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[Default_DataSource]
Description = Default Data Source
Catalog = TRAFODION
Schema = SEABASE
DataLang = 0
FetchBufferSize = SYSTEM_DEFAULT
Server = TCP:node01.host.com:23400
SQL_ATTR_CONNECTION_TIMEOUT = SYSTEM_DEFAULT
SQL_LOGIN_TIMEOUT = SYSTEM_DEFAULT
SQL_QUERY_TIMEOUT = NO_TIMEOUT
Compression = Best Compression</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="_use_third_party_driver_manager">8.4. Use Third-Party Driver Manager</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For better performance, we recommend that you use at least version <code>2.3.<em>x</em></code> of unixODBC.
</td>
</tr>
</table>
</div>
<div class="ulist">
<ul>
<li>
<p>If you are using an external driver manager, then you must point to <code>libtrafodbc_drvr64.so</code> and not to <code>libtrafodbc64.so</code>.</p>
</li>
<li>
<p>The driver, <code>libtrafodbc_l64_drvr.so</code>, has been verified with iODBC and unixODBC driver managers.</p>
</li>
<li>
<p>These driver managers, as well as documentation, can be found at these Web sites:</p>
<div class="ulist">
<ul>
<li>
<p><a href="http://www.iodbc.org/" class="bare">http://www.iodbc.org/</a></p>
</li>
<li>
<p><a href="http://www.unixodbc.org/" class="bare">http://www.unixodbc.org/</a></p>
</li>
</ul>
</div>
</li>
<li>
<p>For information on the necessary data-source configuration options, you will need to add to the respective configuration files (for example,
to <code>odbc.ini</code>).</p>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_run_sample_program_code_connect_test_code">8.5. Run Sample Program (<code>connect_test</code>)</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The examples after each step assume that you have default installation directories.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If you have a previous version of the Trafodion ODBC driver installed,
you need to re-link your existing application to ensure that you pick up
the correct version of the driver. If you are unsure of the version,
check the version of your application with this command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">ldd object-file</code></pre>
</div>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Move to the directory where you installed the sample program:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd /etc/odbc</code></pre>
</div>
</div>
</li>
<li>
<p>Set the environment variable <code>LD_LIBRARY_PATH</code>:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">export LD_LIBRARY_PATH=&lt;path-to-odbc-library-files or /usr/lib64&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">export LD_LIBRARY_PATH=/usr/lib64</code></pre>
</div>
</div>
</li>
<li>
<p>In the <code>/etc/odbc/TRAFDSN</code> file, add the correct IP address to the <code>Server</code> parameter for the <code>Default_DataSource</code>.</p>
<div class="paragraph">
<p><strong>Example (connecting to <code>node01.host.com:23400</code>)</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[Default_DataSource]
Description = Default Data Source
Catalog = TRAFODION
Schema = SEABASE
DataLang = 0
FetchBufferSize = SYSTEM_DEFAULT
Server = TCP:node01.host.com:23400
SQL_ATTR_CONNECTION_TIMEOUT = SYSTEM_DEFAULT
SQL_LOGIN_TIMEOUT = SYSTEM_DEFAULT
SQL_QUERY_TIMEOUT = NO_TIMEOUT
Compression = Best Compression</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Compile the sample program.</p>
<div class="paragraph">
<p><strong>Default Installation</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">g++ -g connect_test.cpp -L/usr/lib64 -I/usr/include/odbc -ltrafodbc64 -o connect_test</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Alterntiave Installation</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">g++ -g connect_test.cpp -L$HOME/trafodion/odbc -I/usr/include/odbc -ltrafodbc64 -o connect_test</code></pre>
</div>
</div>
</li>
<li>
<p>Run the sample program:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">./connect_test -d Default_DataSource -u username -p password</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>If the sample program runs successfully, you should see output similar to the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Using Connect String: DSN=Default_DataSource;UID=username;PWD=****;
Connect Test Passed...</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="linux_odbc_run_basicsql">8.6. Run Sample Program (<code>basicsql</code>)</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The Basic SQL sample program is not currently bundled with the ODBC Linux driver. To obtain the source code for this program, see
<a href="#odbc_sample_program"><code>basicsql</code> (Sample ODBC Program)</a>.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If you have a previous version of the Trafodion ODBC driver installed,
you need to re-link your existing application to ensure that you pick up
the correct version of the driver.</p>
</div>
<div class="paragraph">
<p>If you are unsure of the version, check the version of your application with this command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">ldd object-file</code></pre>
</div>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Move to the directory where you put the <code>basicsql.cpp</code> file.</p>
</li>
<li>
<p>Set the environment variable <code>LD_LIBRARY_PATH</code>:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">export LD_LIBRARY_PATH=&lt;path-to-odbc-driver-dlls&gt;</code></pre>
</div>
</div>
</li>
<li>
<p>In the <code>/etc/odbc/TRAFDSN</code> file, add the correct IP address to the <code>Server</code> parameter for the <code>Default_DataSource</code>. For example:</p>
<div class="paragraph">
<p><strong>Example (connecting to <code>node01.host.com:23400</code>)</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[Default_DataSource]
Description = Default Data Source
Catalog = TRAFODION
Schema = SEABASE
DataLang = 0
FetchBufferSize = SYSTEM_DEFAULT
Server = TCP:node01.host.com:23400
SQL_ATTR_CONNECTION_TIMEOUT = SYSTEM_DEFAULT
SQL_LOGIN_TIMEOUT = SYSTEM_DEFAULT
SQL_QUERY_TIMEOUT = NO_TIMEOUT
Compression = Best Compression</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Compile the sample program.</p>
<div class="paragraph">
<p><strong>Default Installation</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">g++ -g basicsql.cpp -L/usr/lib64 -I/usr/include/odbc -ltrafodbc64 -o basicsql</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Alterntiave Installation</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">g++ -g basicsql.cpp -L$HOME/trafodion/odbc -I/usr/include/odbc -ltrafodbc64 -o basicsql</code></pre>
</div>
</div>
</li>
<li>
<p>Run the sample program:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">./basicsql Default_DataSource &lt;username&gt; &lt;password&gt;</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>If the sample program runs successfully, you should see output similar to the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Using Connect String: DSN=Default_DataSource;UID=user1;PWD=pwd1;
Successfully connected using SQLDriverConnect.
Drop sample table if it exists... Creating sample table TASKS...
Table TASKS created using SQLExecDirect.
Inserting data using SQLBindParameter, SQLPrepare, SQLExecute Data
Data inserted.
Fetching data using SQLExecDirect, SQLFetch, SQLGetData
Data selected: 1000 CREATE REPORTS 2014-3-22
Basic SQL ODBC Test Passed!</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="odb-install">9. Install odb</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If you have not done so already, please ensure that you have
<a href="#download-software">unpackaged the Trafodion client software</a> and
<a href="#odbc-linux-install">setup the Trafodion Linux ODBC Driver</a>.</p>
</div>
<div class="paragraph">
<p>The examples in this chapter assumes that you have unpackaged the odb installation file
to <code>$HOME/trafodion/odb</code>.</p>
</div>
<div class="sect2">
<h3 id="_odb_requirements">9.1. odb Requirements</h3>
<div class="paragraph">
<p>odb requires:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>pthread libraries (Generally installed by default)</p>
</li>
<li>
<p>unixODBC. See installation instructions <a href="#odb-install-unixodbc">below</a>.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="odb-install-unixodbc">9.2. Install and Configure unixODBC</h3>
<div class="paragraph">
<p>This section explains how to install and configure <code>unixODBC</code>.
Refer to the <a href="http://www.unixodbc.org/doc/">unixODBC documentation</a> for additional
configuration information.</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Obtain the source code tar ball from <a href="http://www.unixodbc.org/" class="bare">http://www.unixodbc.org/</a> Use version 2.3.<strong><em>x</em></strong> or later.</p>
</li>
<li>
<p>Unpack the tar ball:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ tar -xzvf unixODBC-2.3.1.tar.gz</code></pre>
</div>
</div>
</li>
<li>
<p>Configure unixODBC installation (root access required):</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cd unixODBC-2.3.1
$ sudo ./configure --disable-gui --enable-threads --disable-drivers</code></pre>
</div>
</div>
<div class="paragraph">
<p>unixODBC is installed under <code>/usr/local</code>.</p>
</div>
<div class="paragraph">
<p>If you don&#8217;t have root privileges or you want to install unixODBC somewhere else
then <code>add --prefix=&lt;installation_path&gt;</code> to the <code>configure</code> command here above.</p>
</div>
<div class="paragraph">
<p><strong>Example - Install unixODBC in Alternate Location</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ ./configure --prefix=$HOME/trafodion/unixodbc --disable-gui --enable-threads --disable-drivers</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Compile unixODBC sources:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ make</code></pre>
</div>
</div>
</li>
<li>
<p>Install unixODBC:</p>
</li>
</ol>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ make install</code></pre>
</div>
</div>
<div class="sect3">
<h4 id="_configure_unixodbc">9.2.1. Configure unixODBC</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Define environment variables.</p>
</li>
<li>
<p>Define data sources.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>Start with the environment variables (which you can add to your profile script):</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Set the <code>ODBCHOME</code> variable to the unixODBC installation directory (the one configured via <code>--prefix</code> here above).</p>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ export ODBCHOME=$HOME/trafodion/unixodbc</code></pre>
</div>
</div>
</li>
<li>
<p>Configure the system data sources directory (the one containing <code>odbc.ini</code> and <code>odbcinst.ini</code>).
Normally, the <code>etc/</code> directory under <code>$ODBCHOME</code>:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ export ODBCSYSINI=$ODBCHOME/etc</code></pre>
</div>
</div>
</li>
<li>
<p>Configure the <code>ODBCINI</code> variable to the full path of the <code>odbc.ini</code> file:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ export ODBCINI=$ODBCSYSINI/odbc.ini</code></pre>
</div>
</div>
</li>
<li>
<p>Add the unixODBC lib directory to your <code>LD_LIBRARY_PATH</code> (Linux) or <code>LIBPATH</code> (IBM AIX) or <code>SHLIB_PATH</code> (HP/UX):</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ODBCHOME/lib</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_configure_data_sources">9.2.2. Configure Data Sources</h4>
<div class="sect4">
<h5 id="__code_odbc_ini_code"><code>odbc.ini</code></h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[ODBC]
[&lt;DATA_SOURCE_NAME&gt;]
Description = DSN Description
Driver = &lt;odbcinst.ini corresponding section&gt;
...
Other (Driver specific) parameters
...</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="__code_odbcinst_ini_code"><code>odbcinst.ini</code></h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[&lt;Driver name in odbc.ini&gt;]
Description = Driver description
Driver = &lt;ODBC driver&gt;
FileUsage = 1
UsageCount = 1</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>Trafodion Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cat odbc.ini
[ODBC]
[traf]
Description = traf DSN
Driver = Trafodion
Catalog = TRAFODION
Schema = QA
DataLang = 0
FetchBufferSize = SYSTEM_DEFAULT
Server = TCP:&lt;server-name&gt;:&lt;port-no&gt;
SQL_ATTR_CONNECTION_TIMEOUT = SYSTEM_DEFAULT
SQL_LOGIN_TIMEOUT = SYSTEM_DEFAULT
SQL_QUERY_TIMEOUT = NO_TIMEOUT
ServiceName = TRAFODION_DEFAULT_SERVICE
$ cat odbcinst.ini
[Trafodion]
Description = {project-name} ODBC Stand Alone Driver
Driver = /&lt;dir-name&gt;/conn/clients/odbc/libtrafodbc_drvr64.so
FileUsage = 1
UsageCount = 1
[ODBC]
Threading = 1
Trace = Off
Tracefile = uodbc.trc
$</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p>The <code>Threading</code> setting is defined as follows
(extracted from unixODBC sources <code>DriverManager/handles.c</code>):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cplusplus"><span class="comment">/*
* ...
* If compiled with thread support the DM allows four different
* thread strategies
*
* Level 0 - Only the DM internal structures are protected
* the driver is assumed to take care of it's self
*
* Level 1 - The driver is protected down to the statement level
* each statement will be protected, and the same for the connect
* level for connect functions, note that descriptors are considered
* equal to statements when it comes to thread protection.
*
* Level 2 - The driver is protected at the connection level. only
* one thread can be in a particular driver at one time
*
* Level 3 - The driver is protected at the env level, only one thing
* at a time.
*
* By default the driver open connections with a lock level of 0,
* drivers should be expected to be thread safe now.
* this can be changed by adding the line
*
* Threading = N
*
* to the driver entry in odbcinst.ini, where N is the locking level
*
*/</span></code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="odb-verify-install">9.3. Verify odb Installation</h3>
<div class="paragraph">
<p><code>$HOME/trafodion/odb</code> should contain the following files.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>README</code></p>
</li>
<li>
<p><code>/bin/odb64luo</code> (the odb executable)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>See the <a href="http://trafodion.apache.org/docs/odb/index.html">Trafodion odb User Guide</a> for information how to use odb.</p>
</div>
</div>
<div class="sect2">
<h3 id="odb-uninstall">9.4. Uninstall odb</h3>
<div class="paragraph">
<p>To uninstall odb, delete the <code>README</code> and <code>/bin/odb64luo</code> files from their installed location.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rm -rf $HOME/trafodion/odb</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="install-windows-odbc-driver">10. Install Windows ODBC Driver</h2>
<div class="sectionbody">
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
License issues prevent us from including the ODBC Driver for Windows in this release. Contact the
Trafodion user e-mail list (<a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a>) for help obtaining the driver.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If you have not done so already, please ensure that you have unpackaged the
<a href="#download-software">unpackaged the Trafodion client software</a>.</p>
</div>
<div class="paragraph">
<p>The examples in this chapter assumes that you have unpackaged the installation files
to <code>c:\trafodion\odbc</code>.</p>
</div>
<div class="sect2">
<h3 id="_installation_requirements_2">10.1. Installation Requirements</h3>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Item</th>
<th class="tableblock halign-left valign-top">Requirement</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Computer</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows compatible PC workstation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Memory</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Recommended minimum 32 MB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Disk Space</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Minimum 30 MB additional free space</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Operating System</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x64 Edition of Microsoft Windows 7, Windows 8, Windows 10, or Windows Server 2008</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Network Software</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TCP/IP</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="win_odbc_install">10.2. Installation Instructions</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
To install the driver on your PC, you must be logged on with a user ID that has administrator privileges.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The ODBC client installation file (<code>c:\trafodion\odbc\TFODBC64-*.exe</code>) installs or links to
multiple client components:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">This client component&#8230;</th>
<th class="tableblock halign-left valign-top">Does this&#8230;</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Microsoft ODBC Driver Manager</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Manages access to ODBC drivers for applications. The driver manager loads and unloads drivers and passes calls for ODBC functions to the
correct driver.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Trafodion ODBC driver</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implements ODBC function calls to enable an ODBC client application to access the Trafodion database.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Microsoft ODBC Administrator</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Adds, configures, and removes ODBC data sources on client workstations.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>By default, a new version of the ODBC driver is installed in this directory and its folders unless you specify a different directory
during installation:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Default Installation Directory</th>
<th class="tableblock halign-left valign-top">Client Operating System</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>C:\Program Files\Trafodion\TRAF</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ODBC <em>version</em> Windows 64-bit</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p>To install the Trafodion ODBC driver, do the following:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Double-click the <code>TFODBC64-*.exe</code> distribution file to start the InstallShield wizard.</p>
</li>
<li>
<p>On the <strong>Welcome</strong> page, click <strong>Next</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_welcome.jpg" alt="Windows ODBC Installer Welcome Screen"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Read and select the <strong>I accept the agreement</strong> radio button. Click <strong>Next</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_license.jpg" alt="Windows ODBC Installer License Screen"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>On the <strong>Destination Folder</strong> page, click <strong>Install</strong> to select the default location: <code>C:\Program Files\Trafodion\TRAF ODBC <em>version</em>\</code></p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_destination.jpg" alt="Windows ODBC Installer Destination Screen"></span></p>
</div>
<div class="paragraph">
<p>This location is the installation directory for ODBC header and help files. All other ODBC files are installed in <code>%SYSTEMROOT%\system32</code>.</p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Validate the Destination and click <strong>Install</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_ready_to_install.jpg" alt="Windows ODBC Ready to Install Screen"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>The Windows ODBC driver is installed. Click <strong>Finish</strong> to exit the installation wizard.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_install_finished.jpg" alt="Windows ODBC Install Finished Screen"></span></p>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="win_odbc_setup_data_source">10.3. Set Up ODBC Data Source</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Start the Microsoft ODBC Administrator:</p>
<div class="ulist">
<ul>
<li>
<p>On Windows 7: <strong>Start &gt; All Programs&gt;Trafodion ODBC <em>version</em> &gt; MS ODBC Administrator</strong></p>
</li>
<li>
<p>On Windows 8: <strong>Start &gt; Control Panel &gt; System and Security &gt; Administrative Tool &gt; ODBC Data Sources (64-bit)</strong></p>
</li>
<li>
<p>On Windows 10: Click the Windows icon in the menu bar. Select <strong>Control Panel</strong>. Search for <strong>Set up ODBC data sources (64-bit)</strong>. Click on the found item.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_admin_intro.jpg" alt="Windows ODBC Admin Intro Screen"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
</ul>
</div>
</li>
<li>
<p>In the <strong>ODBC Data Source Administrator</strong> dialog box, click <strong>Add</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_admin_add.jpg" alt="Windows ODBC Admin Create Data Source Screen"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Select <strong>TRAF ODBC <em>version</em></strong>, and then click <strong>Finish</strong> to start the <strong>Create a New Trafodion ODBC Data Source</strong> wizard.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_admin_add_general.jpg" alt="Windows ODBC Admin Create Data Source General Screen"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Enter the data source name (for example, <code>Default_DataSource_Schema1</code>) and an optional description, and click <strong>Next</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_admin_add_general_edited.jpg" alt="Windows ODBC Admin Create Data Source Edited General Screen"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Enter the <code>IP address</code> or <code>host name</code> for the database platform. Enter the default port number as <strong>23400</strong><sup>1</sup>. Leave the defaults as is, and click <strong>Next</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_admin_add_network.jpg" alt="Windows ODBC Admin Create Data Source Network Screen"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Enter the schema name. The default schema name is <code>SEABASE</code>. Click <strong>Next</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_admin_add_schema.jpg" alt="Windows ODBC Admin Create Data Source Schema Screen"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Enter the translate DLL name and its option, if you have one. If not, leave it blank. Leave the localization defaults as is.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_admin_add_translate_dll.jpg" alt="Windows ODBC Admin Create Data Source Translate DLL Screen"></span></p>
</div>
<div class="paragraph">
<p>The Replacement Character replaces any character that is incompatible for translation when retrieving data. It is one character (one or two
bytes long). The Replacement Character is assumed to be in the character set specified in the Client/Server Character Set Interaction. If it is not specified, <code>?</code> is used as the default.</p>
</div>
<div class="paragraph">
<p>Click <strong>Finish</strong>.</p>
</div>
</li>
<li>
<p>The wizard gives you an opportunity to test the connection. Click <strong>Test Connection</strong> and click <strong>OK</strong>.</p>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>The server ID and schema are filled in for you. Enter a valid user name and password, and click <strong>OK</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/winodbc_admin_add_test_connection.jpg" alt="Windows ODBC Admin Create Data Source Test Connection Screen"></span></p>
</div>
<div class="paragraph">
<p>The wizard attempts to connect to the data source and displays a message stating whether it was successful or not.</p>
</div>
</li>
<li>
<p>Click <strong>OK</strong> to save the data source, or click <strong>Cancel</strong> <em>twice</em> to quit the <strong>Create Data Source</strong> wizard.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p><sup>1</sup> Your specific installation may use a different port number. Check with your Trafodion administrator.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="sect3">
<h4 id="_enable_compression_2">10.3.1. Enable Compression</h4>
<div class="paragraph">
<p>When compression is enabled in the ODBC driver, the ODBC driver can send and receive large volumes of data quickly and efficiently to and from
the Trafodion Database Connectivity Services (DCS) server over a TCP/IP network. By default, compression is disabled.</p>
</div>
<div class="paragraph">
<p>To enable compression in the ODBC driver or to change the compression setting, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Launch the MS ODBC Administrator.</p>
<div class="ulist">
<ul>
<li>
<p>On Windows 7: <strong>Start &gt; All Programs &gt; Trafodion ODBC <em>version</em> &gt; MS ODBC Administrator</strong></p>
</li>
<li>
<p>On Windows 8: <strong>Start &gt; Control Panel &gt; System and Security &gt; Administrative Tools &gt; ODBC Data Sources (64-bit)</strong></p>
</li>
<li>
<p>On Windows 10: Right-click the Windows icon in the menu bar. Select <strong>Control Panel</strong>. Search for <strong>Set up ODBC data sources (64-bit)</strong>. Click on the found item.</p>
</li>
</ul>
</div>
</li>
<li>
<p>In the <strong>ODBC Data Source Administrator</strong> dialog box, select the <strong>User DSN</strong> tab, select the name of your data source under
<strong>User Data Sources</strong>, and click <strong>Configure</strong>. If you did not create a data source, please refer to
<a href="#win_odbc_client_env">Setting Up the Client Environment</a>.</p>
<div class="paragraph">
<p>A new dialog box appears, showing the configuration of your data source.</p>
</div>
</li>
<li>
<p>Select the <strong>Network</strong> tab, and then select one of these values for <strong>Compression</strong>:</p>
<div class="ulist">
<ul>
<li>
<p><code>SYSTEM_DEFAULT</code>, which is the same as no compression</p>
</li>
<li>
<p><code>no compression</code></p>
</li>
<li>
<p><code>best speed</code></p>
</li>
<li>
<p><code>best compression</code></p>
</li>
<li>
<p><code>balance</code></p>
</li>
<li>
<p>An integer from 0 to 9, with 0 being no compression and 9 being the
maximum available compression</p>
</li>
</ul>
</div>
</li>
<li>
<p>Click <strong>OK</strong> to accept the change.</p>
</li>
<li>
<p>Click <strong>OK</strong> to exit the <strong>ODBC Data Source Administrator</strong> dialog box.</p>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="win_odbc_run_basicsql">10.4. Run Sample Program (<code>basicsql</code>)</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The Basic SQL sample program is not currently bundled with the ODBC Windows driver. To obtain the source code and the build and run
files for this program, please refer to <a href="#odbc_sample_program">ODBC Sample Program</a>.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>To build and run the executable file, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Open a Visual Studio x64 Win64 Command Prompt. Make sure to select the x64 version of the command prompt. For example, on Windows 7, select
<strong>Start&gt;All Programs&gt;Microsoft Visual Studio 2010&gt;Visual Studio Tools&gt;Visual Studio x64 Win64 Command Prompt</strong>.</p>
</li>
<li>
<p>At the command prompt, move to the directory where you put the <code>basicsql.cpp</code> and build files.</p>
</li>
<li>
<p>Run build at the command prompt. You will see <code>basicsql.exe</code> created in the same directory as the source file.</p>
</li>
<li>
<p>Before running the sample program, create a Trafodion data source named <code>Default_DataSource</code> on the client workstation using MS ODBC
Administrator. For instructions, please refer to <a href="#win_odbc_client_env">Set Up Client Environment</a>.</p>
</li>
<li>
<p>From the command prompt, run the sample program by entering either run or this command:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">basicsql DefaultDataSource &lt;username&gt; &lt;password&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the sample program executes successfully, you should see this output:</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Using Connect String: DSN=Default_DataSource;UID=user1;PWD=pwd1;
Successfully connected using SQLDriverConnect.
Drop sample table if it exists...
Creating sample table TASKS...
Table TASKS created using SQLExecDirect.
Inserting data using SQLBindParameter, SQLPrepare, SQLExecute
Data inserted.
Fetching data using SQLExecDirect, SQLFetch, SQLGetData
Data selected: 1000 CREATE REPORTS 2014-3-22
Basic SQL ODBC Test Passed!</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_reinstall_windows_odbc_driver">10.5. Reinstall Windows ODBC Driver</h3>
<div class="paragraph">
<p>To reinstall the driver, we recommend that you fully remove your ODBC driver and then install the new version. Please refer to
<a href="#win_odbc_uninstall">Uninstalling the Trafodion ODBC Driver for Windows</a> and then <a href="#win_odbc_install">Installing the Trafodion ODBC Driver for Windows</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="win_odbc_uninstall">10.6. Uninstalling Windows ODBC Driver</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Start to remove the ODBC driver:</p>
<div class="ulist">
<ul>
<li>
<p>On Windows 7: <strong>Start &gt; All Programs&gt;Trafodion ODBC <em>version</em> &gt; Remove TRAF ODBC <em>version</em></strong></p>
</li>
<li>
<p>On Windows 8: <strong>Start</strong> &gt; <strong>Control Panel</strong> &gt; <strong>Uninstall a program</strong> &gt; Locate <strong>Trafodion ODBC64 <em>version</em></strong> &gt; <strong>Uninstall Trafodion ODBC64 <em>version</em></strong></p>
</li>
<li>
<p>On Windows 10: Right-click the Windows icon in the menu bar. Select <strong>Control Panel</strong>. Click on <strong>Apps and features</strong>. Locate <strong>Trafodion ODBC64 <em>version</em></strong> and right-click it. Select <strong>Uninstall</strong>.</p>
</li>
</ul>
</div>
</li>
<li>
<p>When the <strong>Windows Installer</strong> dialog box asks you if you want to uninstall this product, click <strong>Yes</strong>.</p>
</li>
<li>
<p>The <strong>Trafodion ODBC <em>version</em></strong> dialog box displays the status and asks you to wait while <code>Windows configures Trafodion ODBC <em>version</em></code> (that is, removes
the Trafodion ODBC Driver from your Windows workstation).</p>
<div class="paragraph">
<p>After this dialog box disappears, Trafodion ODBC <em>version</em> is no longer on your workstation.</p>
</div>
</li>
</ol>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Uninstalling the ODBC driver does not remove pre-existing data source definitions from the Windows registry.
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_configure_tableau_client">11. Configure Tableau Client</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_prerequisite_software">11.1. Prerequisite Software</h3>
<div class="paragraph">
<p>Make sure that you have this software installed on your workstation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Trafodion Windows ODBC Driver. See <a href="#install-windows-odbc-driver">Install Windows ODBC Driver</a>.</p>
</li>
<li>
<p>Tableau Software. See the <a href="http://www.tableau.com/trial/download-tableau"><em>Tableau website</em></a>.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_tableau_datasource_configuration_tdc_file">11.2. Tableau Datasource Configuration (.tdc) File</h3>
<div class="sect3">
<h4 id="_create_tdc_file">11.2.1. Create .tdc File</h4>
<div class="paragraph">
<p>The Tableau Datasource Configuration (<code>.tdc</code>) file is used to customize and tune ODBC connections.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
You can download each sample documented herein by clicking the link provided with the
sample name. For example, click on <a href="../../resources/tableau/trafodion.tdc">trafodion.tdc</a>
to download a <code>.tdc</code> file for Tableau 9.3 using Trafodion ODBC 2.1.<br>
<br>
You can access the complete source directory at: <a href="http://trafodion.apache.org/docs/client_install/resources/tableau/" class="bare">http://trafodion.apache.org/docs/client_install/resources/tableau/</a>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The <code>.tdc</code> file contains version-specific settings that you need to modify.</p>
</div>
<div class="listingblock">
<div class="title">Template: <a href="resources/tableau/trafodion.tdc.template"><code>trafodion.tdc.template</code></a></div>
<div class="content">
<pre class="CodeRay highlight"><code data-lang="xml"><span class="preprocessor">&lt;?xml version='1.0' encoding='utf-8' ?&gt;</span>
<span class="tag">&lt;connection-customization</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">'</span><span class="content">genericodbc</span><span class="delimiter">'</span></span> <span class="attribute-name">enabled</span>=<span class="string"><span class="delimiter">'</span><span class="content">true</span><span class="delimiter">'</span></span> <span class="attribute-name">version</span>=<span class="string"><span class="delimiter">'</span><span class="content">&lt;tableau-version</span></span><span class="error">&gt;</span>' dbname='TRAFODION' odbc-native-protocol='yes' odbc-use-connection-pooling='yes'<span class="error">&gt;</span>
<span class="tag">&lt;vendor</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">Trafodion</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;driver</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">&lt;trafodion-driver-name</span></span><span class="error">&gt;</span>' /<span class="error">&gt;</span>
<span class="tag">&lt;customizations&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ISOLATION_LEVEL_SERIALIZABLE</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">no</span><span class="delimiter">'</span></span><span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ISOLATION_LEVEL_READ_UNCOMMITTED</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_SET_ISOLATION_LEVEL_VIA_ODBC_API</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">no</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_CREATE_TEMP_TABLES</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">no</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_SUPPRESS_DISCOVERY_QUERIES</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ODBC_METADATA_SUPPRESS_PREPARED_QUERY</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ODBC_METADATA_SUPPRESS_SELECT_STAR</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ODBC_METADATA_SUPPRESS_EXECUTED_QUERY</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ODBC_METADATA_SUPRESS_SQLSTATISTICS_API</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;/customizations&gt;</span>
<span class="tag">&lt;/connection-customization&gt;</span></code></pre>
</div>
</div>
<div class="paragraph">
<p>Save this file as <code>trafodion.tdc</code> and change the following placeholders:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>&lt;tableau-version&gt;</code> - Change to the version of Tableau you&#8217;re using. For example: <code>9.3</code></p>
</li>
<li>
<p><code>&lt;trafodion-driver-name&gt;</code> - Change to the name of the Trafodion ODBC driver you&#8217;re using. For example: <code>TRAF ODBC 2.1</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Once edited, your <code>trafodion.tdc</code> file should look similar to the example below.</p>
</div>
<div class="listingblock">
<div class="title">Example: <a href="resources/tableau/trafodion.tdc"><code>trafodion.tdc</code></a></div>
<div class="content">
<pre class="CodeRay highlight"><code data-lang="xml"><span class="preprocessor">&lt;?xml version='1.0' encoding='utf-8' ?&gt;</span>
<span class="tag">&lt;connection-customization</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">'</span><span class="content">genericodbc</span><span class="delimiter">'</span></span> <span class="attribute-name">enabled</span>=<span class="string"><span class="delimiter">'</span><span class="content">true</span><span class="delimiter">'</span></span> <span class="attribute-name">version</span>=<span class="string"><span class="delimiter">'</span><span class="content">9.3</span><span class="delimiter">'</span></span> <span class="attribute-name">dbname</span>=<span class="string"><span class="delimiter">'</span><span class="content">TRAFODION</span><span class="delimiter">'</span></span> <span class="attribute-name">odbc-native-protocol</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="attribute-name">odbc-use-connection-pooling</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span><span class="tag">&gt;</span>
<span class="tag">&lt;vendor</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">Trafodion</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;driver</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">TRAF ODBC 2.1</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customizations&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ISOLATION_LEVEL_SERIALIZABLE</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">no</span><span class="delimiter">'</span></span><span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ISOLATION_LEVEL_READ_UNCOMMITTED</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_SET_ISOLATION_LEVEL_VIA_ODBC_API</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">no</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_CREATE_TEMP_TABLES</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">no</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_SUPPRESS_DISCOVERY_QUERIES</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ODBC_METADATA_SUPPRESS_PREPARED_QUERY</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ODBC_METADATA_SUPPRESS_SELECT_STAR</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ODBC_METADATA_SUPPRESS_EXECUTED_QUERY</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;customization</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">'</span><span class="content">CAP_ODBC_METADATA_SUPRESS_SQLSTATISTICS_API</span><span class="delimiter">'</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">'</span><span class="content">yes</span><span class="delimiter">'</span></span> <span class="tag">/&gt;</span>
<span class="tag">&lt;/customizations&gt;</span>
<span class="tag">&lt;/connection-customization&gt;</span></code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_install_tdc_file">11.2.2. Install .tdc File</h4>
<div class="paragraph">
<p>Copy the <code>trafodion.tdc</code> file to the <code>C:\Users\%USERNAME%\Documents\My Tableau Repository\Datasources</code> folder.</p>
</div>
<div class="paragraph">
<p>Restart Tableay if it&#8217;s running to pick up the configuration change.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_connnect_to_trafodion">11.3. Connnect to Trafodion</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Configure a ODBC data source using the MS ODBC Administrator. See <a href="#win_odbc_setup_data_source">Set Up ODBC Data Source</a>.</p>
</li>
<li>
<p>Start Tableau.</p>
</li>
<li>
<p>Create a <strong>New Database Connection</strong> by selecting <strong>Other Databases (ODBC)</strong>.</p>
</li>
<li>
<p>Select your data source in the <strong>DSN</strong> dropdown.</p>
</li>
<li>
<p>Enter <strong>Trafodion</strong> in the <strong>Database:</strong> field.</p>
</li>
<li>
<p>Enter your <strong>Username</strong> and <strong>Password</strong>.</p>
</li>
<li>
<p>Click <strong>OK</strong> to connect to your Trafodion database.</p>
<div class="paragraph">
<p><span class="image"><img src="images/tableau_connect.jpg" alt="Tableau Database Connection Screen" width="400" height="400"></span></p>
</div>
</li>
</ol>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_how_to">12. How To</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="howto-setup-path">12.1. Set Up Path Variable</h3>
<div class="paragraph">
<p>You need to update your PATH variable for Java and the Trafodion clients.
The examples below show how to add Java to your PATH variable. The process
is similar for the different Trafodion clients.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
You typically point the PATH variable to the <code>bin</code> directory, if it exists.
Otherwise, you point the PATH variable to the directory containing the client executable.
The examples below point to the Java <code>bin</code> directory.
</td>
</tr>
</table>
</div>
<div class="sect3">
<h4 id="howto-setup-path-windows">12.1.1. Set PATH Variable on Windows</h4>
<div class="sect4">
<h5 id="_windows_10">Windows 10</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Right-click on the Windows icon on the menu bar. Select <strong>System</strong>.</p>
</li>
<li>
<p>Click on <strong>Advanced System Settings</strong>.</p>
</li>
<li>
<p>In the <strong>System Properties</strong> dialog box, click the <strong>Advanced</strong> tab.</p>
</li>
<li>
<p>Click the <strong>Environment Variables</strong> button.</p>
</li>
<li>
<p>Under <strong>System</strong> variables, select the variable named <strong>Path</strong>, and then click <strong>Edit. . .</strong>:</p>
<div class="paragraph">
<p><span class="image"><img src="images/win10_edit_path.jpg" alt="Windows 10 Edit Path Variable"></span></p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Click <strong>Browse. . .</strong>. Find the directory where you installed Java or the Trafodion client. Select the <code>bin</code> directory as applicable.</p>
<div class="paragraph">
<p><span class="image"><img src="images/win10_select_java.jpg" alt="image"></span></p>
</div>
</li>
<li>
<p>Click <strong>OK</strong> to close the browse window. Click <strong>OK</strong> to close the edit window.</p>
</li>
<li>
<p>Verify that the updated <strong>Path</strong> appears under <strong>System</strong> variables, and click <strong>OK</strong>.</p>
</li>
<li>
<p>In the <strong>System Properties</strong> dialog box, click <strong>OK</strong> to accept the changes.</p>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect4">
<h5 id="_windows_8">Windows 8</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Right-click the <strong>Computer</strong> icon on your desktop, and then select <strong>Properties</strong>. The <strong>Control Panel &gt; System and Security &gt; System</strong> window appears.</p>
</li>
<li>
<p>In the left navigation bar, click the <strong>Advanced</strong> system settings link.</p>
</li>
<li>
<p>In the <strong>System Properties</strong> dialog box, click the <strong>Environment Variables</strong> button.</p>
</li>
<li>
<p>Under <strong>System</strong> variables, select the variable named <strong>Path</strong>, and then click <strong>Edit</strong>:</p>
<div class="paragraph">
<p><span class="image"><img src="images/path2.jpg" alt="image"></span></p>
</div>
</li>
<li>
<p>Place the cursor at the start of the <strong>Variable</strong> value field and
enter the path of the Java or Trafodion client <code>bin</code> directory, ending with a semicolon (;):</p>
<div class="paragraph">
<p><span class="image"><img src="images/varval2.jpg" alt="image"></span></p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">&quot;c:\Program Files (x86)\Java\jre7\bin&quot;;</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Check that no space exists after the semicolon (;) in the path. If there are spaces in the directory name, delimit the entire directory path in double quotes (") before the semicolon.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>Click <strong>OK</strong>.</p>
</li>
<li>
<p>Verify that the updated <strong>Path</strong> appears under <strong>System</strong> variables, and click <strong>OK</strong>.</p>
</li>
<li>
<p>In the <strong>System Properties</strong> dialog box, click <strong>OK</strong> to accept the changes.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>For a full installation, a sample PATH variable may contain:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">SET PATH=%PATH%;C:\Program Files\Java\jre1.8.0_101\;C:\trafodion\trafci\bin\;</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="howto-setup-path-linux">12.1.2. Set PATH Variable on Linux</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Open the user profile (<code>.profile</code> or <code>.bash_profile</code> for the Bash shell) in the <code>$HOME</code> directory.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd $HOME
vi .profile</code></pre>
</div>
</div>
</li>
<li>
<p>In the user profile, set the <code>PATH</code> environment variable to include the path of the Java
or Trafodion client <code>bin</code> directory.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">export PATH=$PATH:/usr/lib/jvm/java-1.7.0/bin</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Place the path of the Java bin directory after <code>$PATH</code> separated by colon (<code>:</code>).
</td>
</tr>
</table>
</div>
</li>
<li>
<p>To activate the changes, either log out and log in again or source in the user profile.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">source profile</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>For a full installation, a sample PATH variable may contain:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">export PATH=$PATH:/usr/lib/jvm/java-1.7.0/bin:/opt/user/trafodion/trafci/bin</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="howto-setup-path-verify">12.1.3. Verify PATH Variable</h4>
<div class="paragraph">
<p>Ensure that you can access the Java or Trafodion client
from the command line.</p>
</div>
<div class="paragraph">
<p><strong>Examples</strong></p>
</div>
<div class="paragraph">
<p>Display the Java version.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">c:\trafodion&gt; java -version
java version &quot;1.7.0_45&quot; # This is the version you need to check
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing)
c:\trafodion&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Display the trafci version.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">c:\trafodion&gt; trafci -version
Welcome to EsgynDB Enterprise Command Interface
Copyright (c) 2015-2016 Esgyn Corporation
JDBC Type 4 Driver Build ID : Traf_JDBC_Type4_Build_439d96b
Command Interface Build ID : TrafCI_Build_439d96b
c:\trafodion&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>If you cannot display the version information, then you need to
check your PATH variable settings again.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Version 2.4.0<br>
Last updated 2020-04-17 22:23:23 PDT
</div>
</div>
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount','UA-72491210-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>