blob: 2cf6c3dddb710df9c47fc34b5044b7bcc54ca128 [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>JDBC Type 4 Programmer&#8217;s Reference 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>JDBC Type 4 Programmer&#8217;s Reference 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="#type-4-driver-api-package">2.1. Type 4 Driver API Package</a></li>
<li><a href="#installation">2.2. Installation</a></li>
</ul>
</li>
<li><a href="#accessing-project-name-sql-databases">3. Accessing Trafodion SQL Databases</a>
<ul class="sectlevel2">
<li><a href="#data-sources">3.1. Data Sources</a>
<ul class="sectlevel3">
<li><a href="#jdbc-data-source-client-side">3.1.1. JDBC Data Source (client-side)</a></li>
</ul>
</li>
<li><a href="#security">3.2. Security</a></li>
<li><a href="#connection-by-using-the-datasource-interface">3.3. Connection by Using the DataSource Interface</a>
<ul class="sectlevel3">
<li><a href="#overview-of-tasks-to-deploy-datasource-objects">3.3.1. Overview of Tasks to Deploy DataSource Objects</a></li>
<li><a href="#datasource-object-properties">3.3.2. DataSource Object Properties</a></li>
<li><a href="#programmatically-creating-an-instance-of-the-datasource-class">3.3.3. Programmatically Creating an Instance of the DataSource Class</a></li>
<li><a href="#programmatically-registering-the-datasource-object">3.3.4. Programmatically Registering the DataSource Object</a></li>
<li><a href="#retrieving-a-datasource-instance-by-using-jndi-and-connecting-to-the-data-source">3.3.5. Retrieving a DataSource Instance by Using JNDI and Connecting to the Data Source</a></li>
<li><a href="#specifying-the-properties-file-that-configures-the-data-source">3.3.6. Specifying the Properties File that Configures the Data Source</a></li>
</ul>
</li>
<li><a href="#connection-by-using-the-drivermanager-class">3.4. Connection by Using the DriverManager Class</a>
<ul class="sectlevel3">
<li><a href="#loading-and-registering-the-driver">3.4.1. Loading and Registering the Driver</a></li>
<li><a href="#establishing-the-connection">3.4.2. Establishing the Connection</a></li>
<li><a href="#guidelines-for-connections-using-the-driver-manager">3.4.3. Guidelines for Connections Using the Driver Manager</a></li>
</ul>
</li>
<li><a href="#connection-pooling">3.5. Connection Pooling</a></li>
<li><a href="#statement-pooling">3.6. Statement Pooling</a>
<ul class="sectlevel3">
<li><a href="#guidelines-for-statement-pooling">3.6.1. Guidelines for Statement Pooling</a></li>
<li><a href="#troubleshooting-statement-pooling">3.6.2. Troubleshooting Statement Pooling</a></li>
</ul>
</li>
<li><a href="#thread-safe-database-access">3.7. Thread-Safe Database Access</a></li>
<li><a href="#update-where-current-of-operations">3.8. "Update . . . Where Current of" Operations</a></li>
<li><a href="#infostats-command-for-obtaining-query-costs">3.9. INFOSTATS Command for Obtaining Query Costs</a>
<ul class="sectlevel3">
<li><a href="#use-of-the-infostats-command">3.9.1. Use of the INFOSTATS Command</a></li>
</ul>
</li>
<li><a href="#internationalization-support">3.10. Internationalization Support</a>
<ul class="sectlevel3">
<li><a href="#when-string-literals-are-used-in-applications">3.10.1. When String Literals Are Used in Applications</a></li>
<li><a href="#controlling-string-literal-conversion-by-using-the-character-set-properties">3.10.2. Controlling String Literal Conversion by Using the Character-Set Properties</a></li>
<li><a href="#localizing-error-messages-and-status-messages">3.10.3. Localizing Error Messages and Status Messages</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#type-4-driver-properties">4. Type 4 Driver Properties</a>
<ul class="sectlevel2">
<li><a href="#summary-of-type-4-driver-properties">4.1. Summary of Type 4 Driver Properties</a>
<ul class="sectlevel3">
<li><a href="#client-side-properties">4.1.1. Client-Side Properties</a></li>
<li><a href="#server-side-properties">4.1.2. Server-Side Properties</a></li>
</ul>
</li>
<li><a href="#how-to-specify-jdbc-type-4-properties">4.2. How to Specify JDBC Type 4 Properties</a>
<ul class="sectlevel3">
<li><a href="#where-to-set-properties">4.2.1. Where to Set Properties</a></li>
<li><a href="#creating-and-using-a-properties-file">4.2.2. Creating and Using a Properties File</a></li>
<li><a href="#setting-properties-in-the-command-line">4.2.3. Setting Properties in the Command Line</a></li>
<li><a href="#precedence-of-property-specifications">4.2.4. Precedence of Property Specifications</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#type-4-driver-property-descriptions">5. Type 4 Driver Property Descriptions</a>
<ul class="sectlevel2">
<li><a href="#catalog">5.1. catalog Property</a></li>
<li><a href="#connectiontimeout">5.2. connectionTimeout Property</a></li>
<li><a href="#fetchbuffersize">5.3. fetchBufferSize Property</a></li>
<li><a href="#initialpoolsize">5.4. initialPoolSize Property</a></li>
<li><a href="#iso88591">5.5. ISO88591 Property</a></li>
<li><a href="#kanji">5.6. KANJI Property</a></li>
<li><a href="#ksc5601">5.7. KSC5601 Property</a></li>
<li><a href="#language">5.8. language Property</a></li>
<li><a href="#logintimeout">5.9. loginTimeout Property</a></li>
<li><a href="#maxidletime">5.10. maxIdleTime Property</a></li>
<li><a href="#maxpoolsize">5.11. maxPoolSize Property</a></li>
<li><a href="#maxstatements">5.12. maxStatements Property</a></li>
<li><a href="#minpoolsize">5.13. minPoolSize Property</a></li>
<li><a href="#networktimeout">5.14. networkTimeout Property</a></li>
<li><a href="#password">5.15. password Property</a></li>
<li><a href="#properties">5.16. properties Property</a></li>
<li><a href="#reservedatalocators">5.17. reserveDataLocators Property</a></li>
<li><a href="#roundingmode">5.18. roundingMode Property</a></li>
<li><a href="#schema">5.19. schema Property</a></li>
<li><a href="#t4logfile">5.20. T4LogFile Property</a></li>
<li><a href="#t4loglevel">5.21. T4LogLevel Property</a>
<ul class="sectlevel3">
<li><a href="#t4loglevel-considerations">5.21.1. T4LogLevel Considerations</a></li>
</ul>
</li>
<li><a href="#translationverification">5.22. translationVerification Property</a></li>
<li><a href="#url">5.23. url Property</a>
<ul class="sectlevel3">
<li><a href="#url-property-considerations">5.23.1. url Property Considerations</a></li>
</ul>
</li>
<li><a href="#user">5.24. user Property</a></li>
</ul>
</li>
<li><a href="#type-4-driver-compliance">6. Type 4 Driver Compliance</a>
<ul class="sectlevel2">
<li><a href="#compliance-overview">6.1. Compliance Overview</a></li>
<li><a href="#unsupported-features">6.2. Unsupported Features</a></li>
<li><a href="#deviations">6.3. Deviations</a></li>
<li><a href="#project-name-extensions">6.4. Trafodion Extensions</a>
<ul class="sectlevel3">
<li><a href="#internationalization-of-messages">6.4.1. Internationalization of Messages</a></li>
<li><a href="#additional-databasemetadata-apis">6.4.2. Additional DatabaseMetaData APIs</a></li>
</ul>
</li>
<li><a href="#conformance-of-databasemetadata-methods-handling-of-null-parameters">6.5. Conformance of DatabaseMetaData Methods' Handling of Null Parameters</a></li>
<li><a href="#type-4-driver-conformance-to-sql-data-types">6.6. Type 4 Driver Conformance to SQL Data Types</a>
<ul class="sectlevel3">
<li><a href="#jdbc-data-types">6.6.1. JDBC Data Types</a></li>
</ul>
</li>
<li><a href="#floating-point-support">6.7. Floating-Point Support</a></li>
<li><a href="#sqlj-support">6.8. SQLJ Support</a></li>
<li><a href="#jdbc-3-0-features-not-supported-by-the-type-4-driver">6.9. JDBC 3.0 Features Not Supported by the Type 4 Driver</a></li>
<li><a href="#restrictions">6.10. Restrictions</a></li>
</ul>
</li>
<li><a href="#tracing-and-logging-facilities">7. Tracing and Logging Facilities</a>
<ul class="sectlevel2">
<li><a href="#standard-jdbc-tracing-and-logging-facility">7.1. Standard JDBC Tracing and Logging Facility</a></li>
<li><a href="#the-type-4-driver-logging-facility">7.2. The Type 4 Driver Logging Facility</a>
<ul class="sectlevel3">
<li><a href="#controlling-type-4-driver-logging-output">7.2.1. Controlling Type 4 Driver Logging Output</a></li>
<li><a href="#message-format">7.2.2. Message Format</a></li>
<li><a href="#examples-of-logging-output">7.2.3. Examples of Logging Output</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#messages">8. Messages</a>
<ul class="sectlevel2">
<li><a href="#about-the-message-format">8.1. About the Message Format</a></li>
<li><a href="#getting-help">8.2. Getting Help</a></li>
<li><a href="#type-4-driver-error-messages">8.3. Type 4 Driver Error Messages</a>
<ul class="sectlevel3">
<li><a href="#_01032_08s01">8.3.1. 01032 08S01</a></li>
<li><a href="#_01056_25000">8.3.2. 01056 25000</a></li>
<li><a href="#_01118_s1008">8.3.3. 01118 S1008</a></li>
<li><a href="#_08001_hy000">8.3.4. 08001 HY000</a></li>
<li><a href="#_08004_hy000">8.3.5. 08004 HY000</a></li>
<li><a href="#_29001_hyc00">8.3.6. 29001 HYC00</a></li>
<li><a href="#_29002_08003">8.3.7. 29002 08003</a></li>
<li><a href="#_29003_hy000">8.3.8. 29003 HY000</a></li>
<li><a href="#_29004_hy024">8.3.9. 29004 HY024</a></li>
<li><a href="#_29005_hy024">8.3.10. 29005 HY024</a></li>
<li><a href="#_29006_hy000">8.3.11. 29006 HY000</a></li>
<li><a href="#_29007_07009">8.3.12. 29007 07009</a></li>
<li><a href="#_29008_24000">8.3.13. 29008 24000</a></li>
<li><a href="#_29009_hy109">8.3.14. 29009 HY109</a></li>
<li><a href="#_29010_07009">8.3.15. 29010 07009</a></li>
<li><a href="#_29011_07009">8.3.16. 29011 07009</a></li>
<li><a href="#_29012_07006">8.3.17. 29012 07006</a></li>
<li><a href="#_29013_hy024">8.3.18. 29013 HY024</a></li>
<li><a href="#_29015_hy024">8.3.19. 29015 HY024</a></li>
<li><a href="#_29017_hy004">8.3.20. 29017 HY004</a></li>
<li><a href="#_29018_22018">8.3.21. 29018 22018</a></li>
<li><a href="#_29019_07002">8.3.22. 29019 07002</a></li>
<li><a href="#_29020_07009">8.3.23. 29020 07009</a></li>
<li><a href="#_29021_hy004">8.3.24. 29021 HY004</a></li>
<li><a href="#_29022_hy010">8.3.25. 29022 HY010</a></li>
<li><a href="#_29026_hy000">8.3.26. 29026 HY000</a></li>
<li><a href="#_29027_hy011">8.3.27. 29027 HY011</a></li>
<li><a href="#_29029_hy011">8.3.28. 29029 HY011</a></li>
<li><a href="#_29031_hy000">8.3.29. 29031 HY000</a></li>
<li><a href="#_29032_23000">8.3.30. 29032 23000</a></li>
<li><a href="#_29033_23000">8.3.31. 29033 23000</a></li>
<li><a href="#_29035_hy000">8.3.32. 29035 HY000</a></li>
<li><a href="#_29036_hy000">8.3.33. 29036 HY000</a></li>
<li><a href="#_29037_hy106">8.3.34. 29037 HY106</a></li>
<li><a href="#_29038_hy107">8.3.35. 29038 HY107</a></li>
<li><a href="#_29039_hy092">8.3.36. 29039 HY092</a></li>
<li><a href="#_29040_hy000">8.3.37. 29040 HY000</a></li>
<li><a href="#_29041_hy000">8.3.38. 29041 HY000</a></li>
<li><a href="#_29042_hy000">8.3.39. 29042 HY000</a></li>
<li><a href="#_29043_hy000">8.3.40. 29043 HY000</a></li>
<li><a href="#_29044_hy000">8.3.41. 29044 HY000</a></li>
<li><a href="#_29045_01s07">8.3.42. 29045 01S07</a></li>
<li><a href="#_29046_22003">8.3.43. 29046 22003</a></li>
<li><a href="#_29047_hy000">8.3.44. 29047 HY000</a></li>
<li><a href="#_29048_hy009">8.3.45. 29048 HY009</a></li>
<li><a href="#_29049_25000">8.3.46. 29049 25000</a></li>
<li><a href="#_29050_hy107">8.3.47. 29050 HY107</a></li>
<li><a href="#_29051_01s02">8.3.48. 29051 01S02</a></li>
<li><a href="#_29053_hy000">8.3.49. 29053 HY000</a></li>
<li><a href="#_29054_hy000">8.3.50. 29054 HY000</a></li>
<li><a href="#_29056_hy000">8.3.51. 29056 HY000</a></li>
<li><a href="#_29057_hy000">8.3.52. 29057 HY000</a></li>
<li><a href="#_29058_hy000">8.3.53. 29058 HY000</a></li>
<li><a href="#_29059_hy000">8.3.54. 29059 HY000</a></li>
<li><a href="#_29060_hy000">8.3.55. 29060 HY000</a></li>
<li><a href="#_29061_hy00">8.3.56. 29061 HY00</a></li>
<li><a href="#_29063_hy00">8.3.57. 29063 HY00</a></li>
<li><a href="#_29067_07009">8.3.58. 29067 07009</a></li>
<li><a href="#_29068_07009">8.3.59. 29068 07009</a></li>
<li><a href="#_29069_hy000">8.3.60. 29069 HY000</a></li>
<li><a href="#_29100_hy000">8.3.61. 29100 HY000</a></li>
<li><a href="#_29101_hy000">8.3.62. 29101 HY000</a></li>
<li><a href="#_29102_hy000">8.3.63. 29102 HY000</a></li>
<li><a href="#_29103_hy000">8.3.64. 29103 HY000</a></li>
<li><a href="#_29104_hy000">8.3.65. 29104 HY000</a></li>
<li><a href="#_29105_hy000">8.3.66. 29105 HY000</a></li>
<li><a href="#_29106_hy000">8.3.67. 29106 HY000</a></li>
<li><a href="#_29107_hy000">8.3.68. 29107 HY000</a></li>
<li><a href="#_29108_hy000">8.3.69. 29108 HY000</a></li>
<li><a href="#_29109_hy000">8.3.70. 29109 HY000</a></li>
<li><a href="#_29110_hy000">8.3.71. 29110 HY000</a></li>
<li><a href="#_29111_hy000">8.3.72. 29111 HY000</a></li>
<li><a href="#_29112_hy000">8.3.73. 29112 HY000</a></li>
<li><a href="#_29113_hy000">8.3.74. 29113 HY000</a></li>
<li><a href="#_29114_hy000">8.3.75. 29114 HY000</a></li>
<li><a href="#_29115_hy000">8.3.76. 29115 HY000</a></li>
<li><a href="#_29116_hy000">8.3.77. 29116 HY000</a></li>
<li><a href="#_29117_hy000">8.3.78. 29117 HY000</a></li>
<li><a href="#_29118_hy000">8.3.79. 29118 HY000</a></li>
<li><a href="#_29119_hy000">8.3.80. 29119 HY000</a></li>
<li><a href="#_29120_hy000">8.3.81. 29120 HY000</a></li>
<li><a href="#_29121_hy000">8.3.82. 29121 HY000</a></li>
<li><a href="#_29122_hy000">8.3.83. 29122 HY000</a></li>
<li><a href="#_29123_hy000">8.3.84. 29123 HY000</a></li>
<li><a href="#_29124_hy000">8.3.85. 29124 HY000</a></li>
<li><a href="#_29125_hy000">8.3.86. 29125 HY000</a></li>
<li><a href="#_29126_hy000">8.3.87. 29126 HY000</a></li>
<li><a href="#_29127_hy000">8.3.88. 29127 HY000</a></li>
<li><a href="#_29128_hy000">8.3.89. 29128 HY000</a></li>
<li><a href="#_29129_hy000">8.3.90. 29129 HY000</a></li>
<li><a href="#_29130_hy000">8.3.91. 29130 HY000</a></li>
<li><a href="#_29131_hy000">8.3.92. 29131 HY000</a></li>
<li><a href="#_29132_hy000">8.3.93. 29132 HY000</a></li>
<li><a href="#_29133_hy000">8.3.94. 29133 HY000</a></li>
<li><a href="#_29134_hy000">8.3.95. 29134 HY000</a></li>
<li><a href="#_29135_hy000">8.3.96. 29135 HY000</a></li>
<li><a href="#_29136_hy000">8.3.97. 29136 HY000</a></li>
<li><a href="#_29137_hy000">8.3.98. 29137 HY000</a></li>
<li><a href="#_29138_hy000">8.3.99. 29138 HY000</a></li>
<li><a href="#_29139_hy000">8.3.100. 29139 HY000</a></li>
<li><a href="#_29140_hy000">8.3.101. 29140 HY000</a></li>
<li><a href="#_29141_hy000">8.3.102. 29141 HY000</a></li>
<li><a href="#_29142_hy000">8.3.103. 29142 HY000</a></li>
<li><a href="#_29143_hy000">8.3.104. 29143 HY000</a></li>
<li><a href="#_29144_hy000">8.3.105. 29144 HY000</a></li>
<li><a href="#_29145_hy000">8.3.106. 29145 HY000</a></li>
<li><a href="#_29146_hy000">8.3.107. 29146 HY000</a></li>
<li><a href="#_29147_hy000">8.3.108. 29147 HY000</a></li>
<li><a href="#_29148_hy000">8.3.109. 29148 HY000</a></li>
<li><a href="#_29149_hy000">8.3.110. 29149 HY000</a></li>
<li><a href="#_29150_hy000">8.3.111. 29150 HY000</a></li>
<li><a href="#_29151_hy000">8.3.112. 29151 HY000</a></li>
<li><a href="#_29152_hy000">8.3.113. 29152 HY000</a></li>
<li><a href="#_29153_hy000">8.3.114. 29153 HY000</a></li>
<li><a href="#_29154_hy000">8.3.115. 29154 HY000</a></li>
<li><a href="#_29155_hy000">8.3.116. 29155 HY000</a></li>
<li><a href="#_29156_hy000">8.3.117. 29156 HY000</a></li>
<li><a href="#_29157_hy000">8.3.118. 29157 HY000</a></li>
<li><a href="#_29158_hy000">8.3.119. 29158 HY000</a></li>
<li><a href="#_29159_hy000">8.3.120. 29159 HY000</a></li>
<li><a href="#_29160_hy000">8.3.121. 29160 HY000</a></li>
<li><a href="#_29161_s1000">8.3.122. 29161 S1000</a></li>
<li><a href="#_29162_s1000">8.3.123. 29162 S1000</a></li>
<li><a href="#_29163_08001">8.3.124. 29163 08001</a></li>
<li><a href="#_29164_08001">8.3.125. 29164 08001</a></li>
<li><a href="#_29165_hy000">8.3.126. 29165 HY000</a></li>
<li><a href="#_29166_hy000">8.3.127. 29166 HY000</a></li>
<li><a href="#_29167_hy000">8.3.128. 29167 HY000</a></li>
<li><a href="#_29168_hy000">8.3.129. 29168 HY000</a></li>
<li><a href="#_29169_hy000">8.3.130. 29169 HY000</a></li>
<li><a href="#_29170_hy000">8.3.131. 29170 HY000</a></li>
<li><a href="#_29172_hy000">8.3.132. 29172 HY000</a></li>
<li><a href="#_29173_hy000">8.3.133. 29173 HY000</a></li>
<li><a href="#_29174_hy000">8.3.134. 29174 HY000</a></li>
<li><a href="#_29175_hy000">8.3.135. 29175 HY000</a></li>
<li><a href="#_29177_hy000">8.3.136. 29177 HY000</a></li>
<li><a href="#_29178_hy000">8.3.137. 29178 HY000</a></li>
<li><a href="#_29182_hy000">8.3.138. 29182 HY000</a></li>
<li><a href="#_s1000_hy000">8.3.139. S1000 HY000</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#avoiding-driver-server-version-mismatch">9. Avoiding Driver-Server Version Mismatch</a>
<ul class="sectlevel2">
<li><a href="#compatible-versions">9.1. Compatible Versions</a></li>
<li><a href="#considerations-for-mixed-version-jdbc-clients-connecting-to-project-name-platforms">9.2. Considerations for Mixed-Version JDBC Clients Connecting to Trafodion Platforms</a></li>
<li><a href="#version-mismatch-error-message">9.3. Version Mismatch Error Message</a></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 document describes how to use the Trafodion JDBC Type 4 Driver (subsequently called the Type 4 driver).
This driver provides Java applications running on a foreign platform with JDBC access to Trafodion.</p>
</div>
<div class="sect2">
<h3 id="_intended_audience">1.1. Intended Audience</h3>
<div class="paragraph">
<p>This Trafodion JDBC Type 4 Driver Programmer&#8217;s Reference Guide is for
experienced Java programmers who want to access Trafodion SQL
databases.</p>
</div>
<div class="paragraph">
<p>This document assumes you are already familiar with the Java
documentation, which is located at <a href="http://docs.oracle.com/en/java/" class="bare">http://docs.oracle.com/en/java/</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="_new_and_changed_information">1.2. New and Changed Information</h3>
<div class="paragraph">
<p>This is a new manual.</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 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 style="page-break-after: always;"></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 document describes how to use the Trafodion JDBC Type 4
Driver. This driver provides Java applications running on a foreign
platform with JDBC access to Trafodion SQL databases on the
Trafodion.</p>
</div>
<div class="paragraph">
<p><strong>Supported Java Releases:</strong> The Type 4 driver requires Java enabled
platforms that support JDK 1.7 or higher.</p>
</div>
<div class="sect2">
<h3 id="type-4-driver-api-package">2.1. Type 4 Driver API Package</h3>
<div class="paragraph">
<p>The Type 4 driver package, <code>org.trafodion.jdbc.t4</code>, is shipped with the
driver software. For class and method descriptions, see the
<em>Trafodion JDBC Type 4 Driver API Reference</em>.</p>
</div>
<div class="paragraph">
<p>The Trafodion JDBC Type 4 Driver (hereafter, Type 4 driver)
implements JDBC technology that conforms to the standard JDBC 3.0 Data
Access API.</p>
</div>
<div class="paragraph">
<p>To obtain detailed information on the standard JDBC API, download the
JDBC API documentation: <a href="http://docs.oracle.com/en/java/" class="bare">http://docs.oracle.com/en/java/</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="installation">2.2. Installation</h3>
<div class="paragraph">
<p>Refer to the <a href="http://trafodion.apache.org/docs/client_install/index.html">Trafodion Client Installation Guide</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="accessing-project-name-sql-databases">3. Accessing Trafodion SQL Databases</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="data-sources">3.1. Data Sources</h3>
<div class="paragraph">
<p>The term <strong>data source</strong> logically refers to a database or other data
storage entity. A JDBC (client) data source is physically a Java object that
contains properties such as the URL of the physical database, the
catalog to use when connecting to this database, and the schema to use
when connecting to this database. The JDBC data source also contains
methods for obtaining a JDBC connection to the underlying database.</p>
</div>
<div class="sect3">
<h4 id="jdbc-data-source-client-side">3.1.1. JDBC Data Source (client-side)</h4>
<div class="paragraph">
<p>All JDBC data source classes implement either the <code>javax.sql.DataSource</code>
interface or the <code>javax.sql.ConnectionPoolDataSource</code> interface. The Type
4 driver data source classes are <code>org.trafodion.jdbc.t4.TrafT4DataSource</code> and
<code>org.trafodion.jdbc.t4.TrafT4ConnectionPoolDataSource</code>. (These classes are
defined by the JDBC 3.0 specification.)</p>
</div>
<div class="paragraph">
<p>Typically, a user or system administrator uses a tool to create a data
source, and then registers the data source by using a JNDI service
provider. At run time, a user application typically retrieves the data
source through JNDI, and uses the data source&#8217;s methods to establish a
connection to the underlying database.</p>
</div>
<div class="paragraph">
<p>A DataSource object maps to an instance of a database. In the Type 4
driver product, the DataSource object acts as an interface between the
application code and the database and enables connection with a DCS
(Data Connectivity Services) data source.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="security">3.2. Security</h3>
<div class="paragraph">
<p>Clients connect to the Trafodion platform with a valid user name
and password, using standard JDBC 3.0 APIs. An application can make multiple
connections using different user IDs, and creating different Connection
objects.</p>
</div>
<div class="paragraph">
<p>The Type 4 driver provides for user name and password authentication.
The password is encrypted.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="connection-by-using-the-datasource-interface">3.3. Connection by Using the DataSource Interface</h3>
<div class="paragraph">
<p>The <code>javax.sql.DataSource</code> interface is the preferred way to establish a
connection to the database because this interface enhances the application
portability. Portability is achieved by allowing the application to use a
logical name for a data source instead of providing driver-specific information
in the application. A logical name is mapped to a <code>javax.sql.DataSource</code>
object through a naming service that uses the Java Naming and Directory
Interface (JNDI). Using this DataSource method is particularly recommended
for application servers.</p>
</div>
<div class="paragraph">
<p>When an application requests a connection by using the <code>getConnection</code> method
in the <code>DataSource</code>, then the method returns a <code>Connection</code> object.</p>
</div>
<div class="paragraph">
<p>A <code>DataSource</code> object is a factory for <code>Connection</code> objects. An object that
implements the <code>DataSource</code> interface is typically registered with a JNDI
service provider.</p>
</div>
<div class="sect3">
<h4 id="overview-of-tasks-to-deploy-datasource-objects">3.3.1. Overview of Tasks to Deploy DataSource Objects</h4>
<div class="paragraph">
<p>Before an application can connect to a <code>DataSource</code> object, typically
the system administrator deploys the <code>DataSource</code> object so that
the application programmers can start using it.</p>
</div>
<div class="paragraph">
<p>Data source properties are usually set by a system administrator using
a GUI tool as part of the installation of the data source. Users to
the data source do not get or set properties. Management tools can get
at properties by using introspection.</p>
</div>
<div class="paragraph">
<p>Tasks involved in creating and registering a database object are:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Creating an instance of the <code>DataSource</code> class.</p>
</li>
<li>
<p>Setting the properties of the <code>DataSource</code> object.</p>
</li>
<li>
<p>Registering the <code>DataSource</code> object with a naming service that uses
the Java Naming and Directory Interface (JNDI) API.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>An instance of the <code>DataSource</code> class and the <code>DataSource</code> object
properties are usually set by an application developer or system
administrator using a GUI tool as part of the installation of the
data source. If you are using an installed data source, then see
<a href="#programmatically-creating-an-instance-of-the-datasource-class">Programmatically Creating an Instance of the DataSource Class</a>.</p>
</div>
<div class="paragraph">
<p>The subsequent topics show an example of performing these tasks programmatically.</p>
</div>
<div class="paragraph">
<p>For more information about using data sources, see <a href="https://docs.oracle.com/javase/tutorial/jdbc/basics/sqldatasources.html">Connecting with DataSource Objects</a>
in the <a href="https://docs.oracle.com/javase/tutorial/jdbc/TOC.html">JDBC&#8482; Database Access: Table of Contents</a> documentation
or other information available in the field.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="datasource-object-properties">3.3.2. DataSource Object Properties</h4>
<div class="paragraph">
<p>A <code>DataSource</code> object has properties that identify and describe the actual
data source that the object represents. These properties include such
information as the URL (the primary IP address or host name of the database),
the database schema and catalog names, the location of the database server,
the name of the database, and so forth.</p>
</div>
<div class="paragraph">
<p>For details about Type 4 driver properties that you can use with the <code>DataSource</code> object, see <a href="#type-4-driver-properties">Type 4 Driver Properties</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="programmatically-creating-an-instance-of-the-datasource-class">3.3.3. Programmatically Creating an Instance of the DataSource Class</h4>
<div class="paragraph">
<p>A JDBC application can set <code>DataSource</code> properties programmatically and
register with a DataSource object. To get or set <code>DataSource</code> object properties programmatically, use the
appropriate getter or setter methods on the <code>TrafT4DataSource</code> object or
the <code>TrafT4ConnectionPoolDataSource</code> object.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">TrafT4DataSource temp = <span class="keyword">new</span> TrafT4DataSource() ;
temp.setCatalog( <span class="string"><span class="delimiter">&quot;</span><span class="content">TRAFODION</span><span class="delimiter">&quot;</span></span> ) ;</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the following example, the code fragment illustrates the methods that a
<code>DataSource</code> object <code>ds</code> needs to include if the object supports the
<code>serverDataSource</code> property <code>ds.setServerDataSource( "my_server_datasource" )</code>.
In this example, the code shows setting properties for the <code>TrafT4DataSource</code> object
to use the Type 4 driver to access a Trafodion database:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">TrafT4DataSource ds = <span class="keyword">new</span> TrafT4DataSource() ;
ds.setUrl( <span class="string"><span class="delimiter">&quot;</span><span class="content">jdbc:t4jdbc://&lt;primary IP addr or host name&gt;:23400/</span><span class="delimiter">&quot;</span></span> );
ds.setSchema( <span class="string"><span class="delimiter">&quot;</span><span class="content">myschema</span><span class="delimiter">&quot;</span></span> ) ;
ds.setUser( <span class="string"><span class="delimiter">&quot;</span><span class="content">gunnar</span><span class="delimiter">&quot;</span></span> ) ;
ds.setPassword( <span class="string"><span class="delimiter">&quot;</span><span class="content">my_userpassword</span><span class="delimiter">&quot;</span></span> ) ;
<span class="comment">// Properties relevant for Type 4 connection pooling.</span>
<span class="comment">// Set ds.setMaxPoolSize(-1) for turning OFF connection pooling</span>
ds.setMaxPoolSize( <span class="string"><span class="delimiter">&quot;</span><span class="content">100</span><span class="delimiter">&quot;</span></span> ) ;
ds.setMinPoolSize( <span class="string"><span class="delimiter">&quot;</span><span class="content">10</span><span class="delimiter">&quot;</span></span> ) ;
<span class="comment">// Properties relevant for Type 4 statement pooling.</span>
<span class="comment">// Set ds.setMaxStatement(0) for turning statement pooling OFF</span>
<span class="comment">// Statement pooling is enabled only when connection pooling is</span>
<span class="comment">// enabled.</span>
ds.setMaxStatements( <span class="string"><span class="delimiter">&quot;</span><span class="content">7000</span><span class="delimiter">&quot;</span></span> ) ;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This technique essentially builds a properties file. For more information,
see <a href="#creating-and-using-a-properties-file">Creating and Using a Properties File</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="programmatically-registering-the-datasource-object">3.3.4. Programmatically Registering the DataSource Object</h4>
<div class="paragraph">
<p>In the following example, the code shows how to register, programmatically,
the <code>TrafT4DataSource</code> object <code>ds</code> that was created using the preceding code with JNDI.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">java.util.Hashtable env = <span class="keyword">new</span> java.util.Hashtable() ;
env.put( <span class="predefined-type">Context</span>.INITIAL_CONTEXT_FACTORY, <span class="string"><span class="delimiter">&quot;</span><span class="content">Factory class name here</span><span class="delimiter">&quot;</span></span> ) ;
javax.naming.Context ctx = <span class="keyword">new</span> javax.naming.InitialContext( env ) ;
ctx.rebind( <span class="string"><span class="delimiter">&quot;</span><span class="content">myDataSource</span><span class="delimiter">&quot;</span></span>, ds ) ;</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="retrieving-a-datasource-instance-by-using-jndi-and-connecting-to-the-data-source">3.3.5. Retrieving a DataSource Instance by Using JNDI and Connecting to the Data Source</h4>
<div class="paragraph">
<p>Typically, the JDBC application looks up the data source JNDI name from a
context object. Once the application has the <code>DataSource</code> object, then the application
does a <code>getConnection()</code> call on the data source and gets a connection.</p>
</div>
<div class="paragraph">
<p>The steps that JDBC application does to connect to and use the data source associated
with the database are listed below together with the application code to perform the
operation.</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Import the packages.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="keyword">import</span> <span class="include">javax.naming</span>.* ;
<span class="keyword">import</span> <span class="include">java.sql</span>.* ;
<span class="keyword">import</span> <span class="include">javax.sql.DataSource</span> ;</code></pre>
</div>
</div>
</li>
<li>
<p>Create the initial context.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">Hashtable</span> env = <span class="keyword">new</span> <span class="predefined-type">Hashtable</span>() ;
env.put( <span class="predefined-type">Context</span>.INITIAL_CONTEXT_FACTORY, <span class="string"><span class="delimiter">&quot;</span><span class="content">com.sun.jndi.fscontext.RefFSContextFactory</span><span class="delimiter">&quot;</span></span> ) ;
<span class="keyword">try</span>
{
<span class="predefined-type">Context</span> ctx = <span class="keyword">new</span> <span class="predefined-type">InitialContext</span>( env ) ;
}
<span class="keyword">catch</span>( ... )
{
...
}</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Look up the JNDI name associated with the data source <code>myDataSource</code>, where <code>myDataSource</code>
is the logical name that will be associated with the real-world data source - server.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">DataSource</span> ds = (<span class="predefined-type">DataSource</span>)ctx.lookup( <span class="string"><span class="delimiter">&quot;</span><span class="content">myDataSource</span><span class="delimiter">&quot;</span></span> ) ;</code></pre>
</div>
</div>
</li>
<li>
<p>Create the connection using the data source.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">con = ds.getConnection() ;</code></pre>
</div>
</div>
</li>
<li>
<p>Do work with the connection. The following statements are just a simple example.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">stmt = con.createStatement() ;
<span class="keyword">try</span>
{
stmt.executeUpdate( <span class="string"><span class="delimiter">&quot;</span><span class="content">drop table tdata</span><span class="delimiter">&quot;</span></span> ) ;
}
<span class="keyword">catch</span> ( <span class="exception">SQLException</span> e ) {}</code></pre>
</div>
</div>
</li>
</ol>
</div>
</div>
<div class="sect3">
<h4 id="specifying-the-properties-file-that-configures-the-data-source">3.3.6. Specifying the Properties File that Configures the Data Source</h4>
<div class="paragraph">
<p>To use the properties file method to configure a <code>DataSource</code> object, the properties
file must exist on disk and contain the <code>property_name=property_value</code> pairs that
configure the data source.
See <a href="#creating-and-using-a-properties-file">Creating and Using a Properties File</a>
for more information about creating this file.</p>
</div>
<div class="paragraph">
<p>When the JDBC application makes the connection, then the application should
pass the properties file as a command-line parameter:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -Dt4jdbc.properties=&lt;path of properties file on disk&gt;</code></pre>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="connection-by-using-the-drivermanager-class">3.4. Connection by Using the DriverManager Class</h3>
<div class="paragraph">
<p>The <code>java.sql.DriverManager</code> class is widely used to get a connection, but
is less portable than the <code>DataSource</code> class. The <code>DriverManager</code> class
works with the Driver interface to manage the set of drivers loaded.
When an application issues a request for a connection using the
<code>DriverManager.getConnection</code> method and provides a URL, the <code>DriverManager</code>
finds a suitable driver that recognizes this URL and obtains a database
connection using that driver.</p>
</div>
<div class="paragraph">
<p><code>org.trafodion.jdbc.t4.T4Driver</code> is the Type 4 driver class that
implements the <code>java.sql.Driver</code> interface.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="sect3">
<h4 id="loading-and-registering-the-driver">3.4.1. Loading and Registering the Driver</h4>
<div class="paragraph">
<p>Before connecting to the database, the application loads the Driver
class and registers the Type 4 driver with the DriverManager class in
one of the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Specifies the Type 4 driver class in the <code>-Djdbc.drivers</code> option in the
command line of the Java program:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">-Djdbc.drivers=org.trafodion.jdbc.t4.T4Driver</code></pre>
</div>
</div>
</li>
<li>
<p>Uses the <code>Class.forName</code> method programmatically within the application:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">Class</span>.forName(<span class="string"><span class="delimiter">&quot;</span><span class="content">org.trafodion.jdbc.t4.T4Driver</span><span class="delimiter">&quot;</span></span>)</code></pre>
</div>
</div>
</li>
<li>
<p>Adds the Type 4 driver class to the <code>java.lang.System</code> property
<code>jdbc.drivers</code> property within the application:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">jdbc.drivers=org.trafodion.jdbc.t4.T4Driver</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="establishing-the-connection">3.4.2. Establishing the Connection</h4>
<div class="paragraph">
<p>The <code>DriverManager.getConnection</code> method accepts a string containing a
Type 4 driver URL. The JDBC URL for the Type 4 driver is</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">jdbc:t4jdbc://&lt;ip addr or host name&gt;:23400/[:][property=value[;property2=value2]...]</code></pre>
</div>
</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">Parameter</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>&lt;ip addr or host name&gt;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The primary IP address or host name for the Trafodion database.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>23400</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The port number for the Trafodion SQL database.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>property = value</code> and <code>property2=value2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies a Type 4 driver property name-property value pair. The pairs must be separated by a
semicolon (<code>;</code>). For example, <code>T4LogLevel=ALL;T4LogFile=temp1.log</code>.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For information about the properties file, see <a href="#type-4-driver-properties">Type 4 Driver Properties</a>.</p>
</div>
<div class="paragraph">
<p>To establish a connection, the JDBC application can use this code:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">Class</span>.forName( <span class="string"><span class="delimiter">&quot;</span><span class="content">org.trafodion.jdbc.t4.T4Driver</span><span class="delimiter">&quot;</span></span> ) ; <span class="comment">//loads the driver</span>
<span class="predefined-type">String</span> url = <span class="string"><span class="delimiter">&quot;</span><span class="content">jdbc:t4jdbc://&lt;database primary IP address&gt;:23400/</span><span class="delimiter">&quot;</span></span>
<span class="predefined-type">Connection</span> con = <span class="predefined-type">DriverManager</span>.getConnection( url, <span class="string"><span class="delimiter">&quot;</span><span class="content">userID</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">Passwd</span><span class="delimiter">&quot;</span></span> ) ;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The variable con represents a connection to the data source that can be
used to create and execute SQL statements.</p>
</div>
</div>
<div class="sect3">
<h4 id="guidelines-for-connections-using-the-driver-manager">3.4.3. Guidelines for Connections Using the Driver Manager</h4>
<div class="ulist">
<ul>
<li>
<p>The Type 4 driver defines a set of properties that you can use to
configure the driver. For detailed information about these properties,
see <a href="#type-4-driver-properties">Type 4 Driver Properties</a>.</p>
</li>
<li>
<p>Java applications can specify the properties in these ways (listed in
the order of precedence):</p>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Using the <code>java.util.Properties</code> parameter in the <code>getConnection</code> method of DriverManager class.</p>
</li>
<li>
<p>Using the database URL in the <code>DriverManager.getconnection</code> method, where the URL is:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">jdbc:t4jdbc://&lt;ip addr or host name&gt;:23400/:property=value</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>&lt;ip addr or host name&gt;</code> is the primary IP address or host name for the Trafodion database.</p>
</div>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Using a properties file for the JDBC driver. The properties file is
passed as a command-line parameter. The format to enter the properties
file in the command line is:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">-Dt4jdbc.properties=&lt;path of properties file on disk&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>For example, <code>-Dt4jdbc.properties=C:\temp\t4props</code></p>
</div>
<div class="paragraph">
<p>For information about the properties file, see <a href="#creating-and-using-a-properties-file">Creating and Using a Properties File</a>.</p>
</div>
</li>
<li>
<p>Using JDBC properties with the <code>-D</code> option in the command line. If
used, this option applies to all JDBC connections using the
<code>DriverManager</code> within the Java application. The format in the command
line is:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">-Dt4jdbc.property_name=&lt;property value&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>For example, <code>-Dt4jdbc.maxStatements=1024</code></p>
</div>
</li>
</ol>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="connection-pooling">3.5. Connection Pooling</h3>
<div class="paragraph">
<p>The Type 4 driver provides an implementation of connection pooling,
where a cache of physical database connections are assigned to a client
session and reused for the database activity. If connection pooling is
active, connections are not physically closed. The connection is
returned to its connection pool when the <code>Connection.close()</code> method is
called. The next time a connection is requested by the client, the
driver will return the pooled connection, and not a new physical
connection.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The connection pooling feature is available when the JDBC application
uses either the <code>DriverManager</code> class or <code>DataSource</code> interface to obtain a
JDBC connection. The connection pool size is determined by the
<code>maxPoolSize</code> property value and <code>minPoolSize</code> property value.</p>
</li>
<li>
<p>By default, connection pooling is disabled. To enable connection
pooling, set the maxPoolSize property to an integer value greater than 0
(zero).</p>
</li>
<li>
<p>Manage connection pooling by using these Type 4 driver properties:</p>
<div class="ulist">
<ul>
<li>
<p><code>maxPoolSize</code> under <a href="#maxpoolsize-property">maxpoolsize Property</a></p>
</li>
<li>
<p><code>minPoolSize</code> under <a href="#minpoolsize-property">minPoolSize Property</a></p>
</li>
<li>
<p><code>initialPoolSize</code> under <a href="#initialpoolsize-property">initialPoolSize Property</a></p>
</li>
<li>
<p><code>maxStatements</code> under <a href="#maxstatements-property">maxStatements Property</a></p>
</li>
</ul>
</div>
</li>
<li>
<p>When used with the DriverManager class, the Type 4 driver has a
connection-pool manager that determines which connections are pooled
together by a unique value for these combination of properties:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">url
catalog
schema
username
password</code></pre>
</div>
</div>
<div class="paragraph">
<p>Therefore, connections that have the same values for the combination of
a set of properties are pooled together.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The connection-pooling property values used at the first
connection of a given combination are effective throughout the life of
the process. An application cannot change any of these property values
after the first connection for a given combination.
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="statement-pooling">3.6. Statement Pooling</h3>
<div class="paragraph">
<p>The statement pooling feature allows applications to reuse the
PreparedStatement object in the same way that they can reuse a
connection in the connection pooling environment. Statement pooling is
completely transparent to the application.</p>
</div>
<div class="sect3">
<h4 id="guidelines-for-statement-pooling">3.6.1. Guidelines for Statement Pooling</h4>
<div class="ulist">
<ul>
<li>
<p>To enable statement pooling, set the <code>maxStatements</code> property to an
integer value greater than 0 and enable connection pooling. For more
information, see <a href="#initialpoolsize-property">initialPoolSize Property</a> and
<a href="#connection-pooling">Connection Pooling</a>.</p>
</li>
<li>
<p>Enabling statement pooling for your JDBC applications might
dramatically improve the performance.</p>
</li>
<li>
<p>Explicitly close a prepared statement by using the <code>Statement.close</code>
method because <code>PreparedStatement</code> objects that are not in scope are also
not reused unless the application explicitly closes them.</p>
</li>
<li>
<p>To ensure that your application reuses a <code>PreparedStatement</code>, call
either of these methods:</p>
<div class="ulist">
<ul>
<li>
<p><code>Statement.close method</code>: called by the application.</p>
</li>
<li>
<p><code>Connection.close method</code>: called by the application. All the
<code>PreparedStatement</code> objects that were in use are ready to be reused when
the connection is reused.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="troubleshooting-statement-pooling">3.6.2. Troubleshooting Statement Pooling</h4>
<div class="paragraph">
<p>Note the following Type 4 driver implementation details if you are
troubleshooting statement pooling:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The Type 4 driver looks for a matching <code>PreparedStatement</code> object in the
statement pool and reuses the <code>PreparedStatement</code>. The matching criteria
include the SQL string, catalog, current schema, current transaction
isolation, and result set holdability.</p>
<div class="paragraph">
<p>If the Type 4 driver finds the matching <code>PreparedStatement</code> object, then the
driver returns the same <code>PreparedStatement</code> object to the application for reuse
and marks the <code>PreparedStatement</code> object as in use.</p>
</div>
</li>
<li>
<p>The algorithm, <em>earlier used are the first to go</em>, is used to make
room for caching subsequently generated <code>PreparedStatement</code> objects when
the number of statements reaches the <code>maxStatements</code> limit.</p>
</li>
<li>
<p>The Type 4 driver assumes that any SQL CONTROL statements in effect at
the time of execution or reuse are the same as those in effect at the time
of SQL compilation.</p>
<div class="paragraph">
<p>If this condition is not true, then reuse of a <code>PreparedStatement</code> object might
result in unexpected behavior.</p>
</div>
</li>
<li>
<p>Avoid recompiling to yield performance improvements from statement
pooling. The SQL executor automatically recompiles queries when certain conditions are met.
Some of these conditions are:</p>
<div class="ulist">
<ul>
<li>
<p>A run-time version of a table has a different redefinition timestamp
than the compile-time version of the same table.</p>
</li>
<li>
<p>An existing open operation on a table was eliminated by a DDL or SQL
utility operation.</p>
</li>
<li>
<p>The transaction isolation level and access mode at execution time is
different from that at the compile time.</p>
</li>
</ul>
</div>
</li>
<li>
<p>When a query is recompiled, then the SQL executor stores the recompiled query;
therefore, the query is recompiled only once until any of the previous conditions
are met again.</p>
</li>
<li>
<p>The Type 4 driver does not cache <code>Statement</code> objects.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="thread-safe-database-access">3.7. Thread-Safe Database Access</h3>
<div class="paragraph">
<p>In the Type 4 driver, API layer classes are implemented as
instance-specific objects to ensure thread safety:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>TrafT4DataSource.getConnection()</code> is implemented as a synchronized method
to ensure thread safety in getting a connection.</p>
</li>
<li>
<p>Once a connection is made, the <code>Connection</code> object is instance-specific.</p>
</li>
<li>
<p>If multiple statements are run on different threads in a single
connection, then statement objects are serialized to prevent data corruption.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="update-where-current-of-operations">3.8. "Update . . . Where Current of" Operations</h3>
<div class="paragraph">
<p>The fetch size on a <code>ResultSet</code> must be 1 when performing an
<code>update . . . where current of</code> <em>cursor</em> SQL statement.</p>
</div>
<div class="paragraph">
<p>If the value of the fetch size is greater than 1, the result of the
<code>update . . . where current</code> of operation might be one of the following:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>An incorrect row might be updated based on the actual cursor position.</p>
</li>
<li>
<p>An SQLException might occur because the cursor being updated might
have already been closed.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following is an example of setting a result set&#8217;s fetch size to 1
and executing an <code>update . . . where current</code> of <em>cursor</em> SQL statement.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">ResultSet</span> rs ;
...
rs.setFetchSize( <span class="integer">1</span> ) ;
<span class="predefined-type">String</span> st1 = rs.getCursorName() ;
<span class="predefined-type">Statement</span> stmt2 =
connection.createStatement( <span class="predefined-type">ResultSet</span>.TYPE_FORWARD_ONLY
, <span class="predefined-type">ResultSet</span>.CONCUR_UPDATABLE
) ;
stmt2.executeUpdate( <span class="string"><span class="delimiter">&quot;</span><span class="content">UPDATE cat2.sch2.table1
SET j = 'update row' WHERE CURRENT OF </span><span class="delimiter">&quot;</span></span>
+ st1
) ;</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="infostats-command-for-obtaining-query-costs">3.9. INFOSTATS Command for Obtaining Query Costs</h3>
<div class="paragraph">
<p>The INFOSTATS command reports the roll-up costs of a particular query.
INFOSTATS is a pass-through command that collects statistics for a
prepared statement. Statistics are returned to the JDBC application as a
result set as soon as the prepare is finished. The result set has these
columns:</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">Column</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>Query ID (SQL_CHAR)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The unique identifier for the query.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CPUTime (SQL_DOUBLE)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An estimate of the number of seconds of processor time it might take to execute the instructions for this query. A value of 1.0 is 1 second.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>IOTime (SQL_DOUBLE)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An estimate of the number of seconds of I/O time (seeks plus data transfer) to perform the I/O for this query.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MsgTime (SQL_DOUBLE)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An estimate of the number of seconds it takes for the messaging for this query. The estimate includes the time for the number of local and remote
messages and the amount of data sent.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>IdleTime (SQL_DOUBLE)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An estimate of the maximum number of seconds to wait for an event to happen for this query. The estimate includes the amount of time to open
a table or start an ESP process.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TotalTime (SQL_DOUBLE)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Estimated cost associated to execute the query.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Cardinality (SQL_DOUBLE)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Estimated number of rows that will be returned.</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
<div class="sect3">
<h4 id="use-of-the-infostats-command">3.9.1. Use of the INFOSTATS Command</h4>
<div class="paragraph">
<p>The INFOSTATS command can only be used with PreparedStatement objects.
The syntax is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">INFOSTATS cursor_name</code></pre>
</div>
</div>
<div class="paragraph">
<p>where <code>cursor_name</code> is the name of the prepared statement. If the cursor name is case-sensitive,
then enclose it in single quotes.</p>
</div>
<div class="paragraph">
<p>To get the cursor name, use the <code>getStatementLabel()</code> method that is
defined for the Trafodion JDBC Type 4 driver with class:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">org.trafodion.jdbc.t4.T4PreparedStatement: <span class="directive">public</span> <span class="predefined-type">String</span>
getStatementLabel() ;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Considerations</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p>You can use INFOSTATS in these methods only:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">java.sql.Statement.executeQuery(<span class="predefined-type">String</span> sql)
java.sql.Statement.execute(<span class="predefined-type">String</span> sql)</code></pre>
</div>
</div>
</li>
<li>
<p><code>setCursorName</code> is not supported with INFOSTATS.</p>
</li>
<li>
<p>If you invoke INFOSTATS incorrectly, the Type 4 driver issues this error:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Message: INFOSTATS command can only be executed
by calling execute(String sql) method.
Sqlstate HY000
Sqlcode 29180</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>Example of INFOSTATS</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">Statement</span> s = conn.createStatement( ) ;
TrafT4PreparedStatement p =
(TrafT4PreparedStatement)conn.prepareStatement(
<span class="string"><span class="delimiter">&quot;</span><span class="content">SELECT * FROM t WHERE i = ?</span><span class="delimiter">&quot;</span></span> ) ;
<span class="type">boolean</span> results = s.execute( <span class="string"><span class="delimiter">&quot;</span><span class="content">INFOSTATS </span><span class="delimiter">&quot;</span></span> + p.getStatementLabel() ) ;
<span class="keyword">if</span> ( results )
{
<span class="predefined-type">ResultSet</span> rs = s.getResultSet( ) ;
<span class="keyword">while</span> ( rs.next( ) )
{
<span class="comment">//process data</span>
}
}</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Sample Output</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">QueryID: MXID001001128212016369912348191_16_SQL_CUR_9829657
CPUTime: 0.09975778464794362
IOTime: 0.10584000146627659
MsgTime: 0.09800000134418951
IdleTime: 0.09800000134418951
TotalTime: 0.10584000146627659
Cardinality: 100.0</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="internationalization-support">3.10. Internationalization Support</h3>
<div class="sect3">
<h4 id="when-string-literals-are-used-in-applications">3.10.1. When String Literals Are Used in Applications</h4>
<div class="paragraph">
<p>Internationalization support in the driver affects the handling of
string literals. The Type 4 driver handles string literals in two
situations.</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>When the driver processes an SQL statement. For example,</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">Statement</span> stmt = connection.getStatement() ;
stmt.execute( <span class="string"><span class="delimiter">&quot;</span><span class="content">SELECT * FROM table1 WHERE col1 = 'abcd'</span><span class="delimiter">&quot;</span></span> ) ;</code></pre>
</div>
</div>
</li>
<li>
<p>When the driver processes JDBC parameters. For example,</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">PreparedStatement</span> pStmt = connection.prepareStatement(
<span class="string"><span class="delimiter">&quot;</span><span class="content">SELECT * FROM table1 WHERE col1 = ?</span><span class="delimiter">&quot;</span></span> ) ;
pStmt.setString( <span class="integer">1</span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">abcd</span><span class="delimiter">&quot;</span></span> ) ;</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>To convert a string literal from the Java to an array of bytes for
processing by the Trafodion, the Type 4 driver uses
the column type in the database.</p>
</div>
</div>
<div class="sect3">
<h4 id="controlling-string-literal-conversion-by-using-the-character-set-properties">3.10.2. Controlling String Literal Conversion by Using the Character-Set Properties</h4>
<div class="paragraph">
<p>The Type 4 driver provides character-set mapping properties. These
properties allow you to explicitly define the translation of internal
SQL character-set formats to and from the Java string Unicode (<code>UnicodeBigUnmarked</code>)
encoding.</p>
</div>
<div class="paragraph">
<p>The Type 4 driver provides character-set mapping properties through key
values as shown in the following table.</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">Key</th>
<th class="tableblock halign-left valign-top">Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ISO88591</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ISO88591_1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>KANJI</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SJIS</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>KSC5601</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>EUC_KR</code></p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p>A description of these character sets appears in table below, which
summarizes the character sets supported by Trafodion.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 25%;">
<col style="width: 35%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Trafodion Character Set</th>
<th class="tableblock halign-left valign-top">Corresponding Java Encoding Set<sup>1</sup></th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ISO88591</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ISO88591_1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Single-character, 8-bit character-data type ISO88591 supports English and other Western European languages.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><sup>1</sup> Canonical Name for <code>java.io</code> and <code>java.lang</code> API.</p>
</div>
<div class="paragraph">
<p>For detailed information, see <a href="#iso88591-property">ISO88591 Property</a>.</p>
</div>
<div class="sect4">
<h5 id="using-the-character-set-properties">Using the Character-Set Properties</h5>
<div class="paragraph">
<p>The <code>java.sql.PreparedStatement</code> class contains the methods <code>setString()</code>
and <code>setCharacterStream()</code>. These methods take a String and Reader
parameter, respectively.</p>
</div>
<div class="paragraph">
<p>The <code>java.sql.ResultSet</code> class contains the methods <code>getString()</code> and
<code>getCharacterStream()</code>. These methods return a String and Reader, respectively.</p>
</div>
<div class="sect5">
<h6 id="retrieving-a-column">Retrieving a Column</h6>
<div class="paragraph">
<p>When you retrieve a column as a string (for example, call the
<code>getString()</code> or <code>getCharacterStream</code> methods), the Type 4 driver uses the
character-set mapping property key to instantiate a String object (where
that key corresponds to the character set of the column).</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>The following <code>SQL CREATE TABLE</code> statement creates a table that has an
<code>ISO88591</code> column.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="sql"><span class="class">CREATE</span> <span class="type">TABLE</span> t1 ( c1 <span class="predefined-type">CHAR</span>(<span class="integer">20</span>) CHARACTER <span class="class">SET</span> ISO88591 ) ;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The JDBC program uses the following java command to set the ISO88591
property and issues the <code>getString()</code> method.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">java -Dt4jdbc.ISO88591=SJIS test1.java
<span class="comment">// The following method invocation returns a String object, which</span>
<span class="comment">// was created using the &quot;SJIS&quot; Java canonical name as the charset</span>
<span class="comment">// parameter to the String constructor.</span>
<span class="predefined-type">String</span> s1 = rs.getString( <span class="integer">1</span> ) ; <span class="comment">// get column 1 as a String</span></code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="setting-a-parameter">Setting a Parameter</h6>
<div class="paragraph">
<p>When you set a parameter by using a String (for example, call the
<code>setString()</code> method), the Type 4 driver uses the key&#8217;s value when
generating the internal representation of the String (where that
key corresponds to the character set of the column). The
character-set parameter to the String <code>getBytes</code> method is the Java
Canonical name that corresponds to the column&#8217;s character set.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>The following <code>SQL CREATE TABLE</code> statement creates a table
that has an ISO88591 column:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">CREATE TABLE t1 ( c1 CHAR(20) CHARACTER SET ISO88591) ;
&gt; java -DISO88591=SJIS test1.java</code></pre>
</div>
</div>
<div class="paragraph">
<p>The following method invocation sets column one of <code>stmt</code> to the String
"abcd" where "abcd" is encoded as SJIS. The charset parameter to the
String <code>getBytes</code> method is SJIS <code>stmt.setString( 1, "abcd" ) ;</code>.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="controlling-what-happens-on-an-exception">Controlling What Happens on an Exception</h5>
<div class="paragraph">
<p>You can use the <code>translationVerification</code> property to explicitly define
the behavior of the driver if the driver cannot translate all or part of
an SQL parameter. The value portion of the property can be <code>TRUE</code> or
<code>FALSE</code>. (The default value is <code>FALSE</code>).</p>
</div>
<div class="paragraph">
<p>If the <code>translationVerification</code> property&#8217;s value is <code>FALSE</code> and the driver
cannot translate all or part of an SQL statement, then the translation is
unspecified. In most cases, the characters that are untranslatable are
encoded as ISO88591 single-byte question marks (<code>'?'</code> or <code>0x3F</code>). No
exception or warning is thrown.</p>
</div>
<div class="paragraph">
<p>If the <code>translationVerification</code> property&#8217;s value is TRUE and the driver
cannot translate all or part of an SQL statement, then the driver throws an
<code>SQLException</code> with the following text:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Translation of parameter to {0} failed. Cause: {1}</code></pre>
</div>
</div>
<div class="paragraph">
<p>where <code>{0}</code> is replaced with the target character set and <code>{1}</code> is
replaced with the cause of the translation failure.</p>
</div>
<div class="paragraph">
<p>For more information, see
<a href="#translationverification-property">translationVerification Property</a>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect3">
<h4 id="localizing-error-messages-and-status-messages">3.10.3. Localizing Error Messages and Status Messages</h4>
<div class="paragraph">
<p>The Type 4 driver supports Internationalization through resource bundles
for localized error messages and status messages. The driver uses a set
of static strings from a property file to map error messages and status
messages to their textual representation.</p>
</div>
<div class="sect4">
<h5 id="file-name-format-for-the-localized-messages-file">File-Name Format for the Localized-Messages File</h5>
<div class="paragraph">
<p>The property file that has the messages must have a file name in the
form:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">T4Messages_xx.properties</code></pre>
</div>
</div>
<div class="paragraph">
<p>where <code>xx</code> is the locale name. The locale name is defined by the current
default locale or by the language property.</p>
</div>
<div class="paragraph">
<p>The Type 4 driver is shipped with an error messages and status messages
property file that contains the textual representation of errors and
status messages for the English locale. The file is named
<code>T4Messages_en.properties</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="localized-message-string-format">Localized-Message String Format</h5>
<div class="paragraph">
<p>A localized message file contains strings in the form:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">message=message_text</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">driver_err_error_from_server_msg=An error was returned from the server.
Error: {0} Error detail: {1}</code></pre>
</div>
</div>
<div class="paragraph">
<p>where the <code>message</code> is <code>driver_err_error_from_server_msg</code>. The
<code>message_text</code> is: <code>An error was returned from the server. Error: {0} Error detail: {1}</code></p>
</div>
<div class="paragraph">
<p>The pattern <code>{n}</code> in <code>message_text</code>, where <code>n</code> equals 1, 2, 3, and
so forth, is a placeholder that is filled in at run time by the Type 4
driver. Any translation must include these placeholders.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect4">
<h5 id="procedure-to-create-a-localized-message-file">Procedure to Create a Localized-Message File</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Extract the <code>T4Messages_en.properties file</code>, which is in the
<code>jdbcT4-*.jar file</code>.</p>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>From a UNIX prompt, use the jar Java tool: <code>jar -x T4Messages_en.properties &lt; jdbcT4-*.jar</code></p>
</div>
</li>
<li>
<p>Copy the file.</p>
</li>
<li>
<p>Edit the file and replace the English text with the text for your locale.</p>
</li>
<li>
<p>Save the file, giving it a file name that meets the naming
requirements described under
<a href="#file-name-format-for-the-localized-messages-file">File-Name Format for the Localized-Messages File</a>.</p>
</li>
<li>
<p>Put the file in a directory anywhere in the class path for running the JDBC application.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>The new messages file can be anywhere in the class path for running the
user application.</p>
</div>
<div class="paragraph">
<p>At run time, if driver cannot read the messages property file, the
driver uses the <code>message</code> portion of the property as the text of the
message. For a description of the message portion, see the
<a href="#localized-message-string-format">Localized-Message String Format</a>.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="type-4-driver-properties">4. Type 4 Driver Properties</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="summary-of-type-4-driver-properties">4.1. Summary of Type 4 Driver Properties</h3>
<div class="paragraph">
<p>Type 4 driver properties that effect client-side operations are
summarized in the following tables. For the detailed description, click
the link provided in the property name.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Unless otherwise noted in the brief description, the particular
property applies to the <code>DataSource</code> object, <code>DriverManager</code> object, and
<code>ConnectionPoolDataSource</code> object.
</td>
</tr>
</table>
</div>
<div class="sect3">
<h4 id="client-side-properties">4.1.1. Client-Side Properties</h4>
<div class="paragraph">
<p><strong>Connection-Control Properties</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 22.7272%;">
<col style="width: 50%;">
<col style="width: 27.2728%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Property Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#dataSourceName">dataSourceName</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the registered DataSource or ConnectionPoolDataSource name. (Can be set only on the DriverManager object.)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#loginTimeout">loginTimeout</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the time limit that a connection can be attempted before the connection disconnects.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">60 (seconds)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#networkTimeout">networkTimeout</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets a time limit that the driver waits for a reply from the database server.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 (No network timeout is specified.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>Pooling Management Properties</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 22.7272%;">
<col style="width: 50%;">
<col style="width: 27.2728%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Property Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#initialPoolSize">initialPoolSize</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the initial connection pool size when connection pooling is used with the Type 4 driver. (Ignored for
connections made through the ConnectionPoolDataSource object.)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-1 (Do not create an initial connection pool.)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#maxIdleTime">maxIdleTime</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the number of seconds that a physical connection can remain unused in the pool before the connection is closed.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 (Specifies no limit.)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#maxPoolSize">maxPoolSize</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the maximum number of physical connections that the pool can contain.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-1 (Disables connection pooling.)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#maxStatements">maxStatements</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the total number of PreparedStatement objects that the connection pool should cache.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 (Disables statement pooling.)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#minPoolSize">minPoolSize</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Limits the number of physical connections that can be in the free connection pool.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-1 (The minPoolSize value is ignored.)</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>Internationalization Properties</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 22.7272%;">
<col style="width: 50%;">
<col style="width: 27.2728%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Property Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#ISO88591">ISO88591</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets character-set mapping that corresponds to the ISO88591 character set.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ISO88591_1</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#KANJI">KANJI</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets character-set mapping that corresponds to the KANJI character set.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">SJIS (which is shift-JIS, Japanese)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#KSC5601">KSC5601</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets character-set mapping that corresponds to the KSC5601 character set.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ECU_KR (which is KS C 5601, ECU encoding, Korean)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#language">language</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the language used for error messages.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#translationVerification">translationVerification</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the behavior of the driver if the driver cannot translate all or part of an SQL statement or SQL parameter.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">FALSE</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>Logging and Tracing Properties</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 22.7272%;">
<col style="width: 50%;">
<col style="width: 27.2728%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Property Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#T4LogFile">T4LogFile</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the name of the logging file for the Type 4 driver.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The name is defined by the following pattern: <code>%h/t4jdbc%u.log</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#T4LogLevel">T4LogLevel</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the logging levels that control logging output for the Type 4 driver.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">OFF</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>Miscellaneous Client-Side Properties</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 22.7272%;">
<col style="width: 50%;">
<col style="width: 27.2728%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Property Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#description">description</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the registered source name.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#fetchBufferSize">fetchBufferSize</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Provides the benefits of bulk fetch when rows are fetched from a <code>ResultSet</code> object.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4 kilobytes</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#properties">properties</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the location of the properties file that contains keyword-value pairs
that specify property values for configuring the Type 4 driver.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#roundingMode">roundingMode</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the rounding behavior of the Type 4 driver.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ROUND_DOWN</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="server-side-properties">4.1.2. Server-Side Properties</h4>
<div class="paragraph">
<p>The Type 4 driver properties that effect server-side operations are
summarized in the following tables. Unless otherwise noted in the
description, the particular property applies to the DataSource object,
<code>DriverManager</code> object, and <code>ConnectionPoolDataSource</code> object.</p>
</div>
<div class="paragraph">
<p><strong>Type 4 Driver Server-Side Properties</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 22.7272%;">
<col style="width: 50%;">
<col style="width: 27.2728%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Property Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#catalog">catalog</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the default catalog used to access SQL objects referenced in SQL
statements if the SQL objects are not fully qualified.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None. Must be "TRAFODION" in the current release.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#connectionTimeout">connectionTimeout</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the number of seconds a connection can be idle before the connection is physically closed by DCS.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-1 (Use the ConnTimeout value set on the server data source.)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#password">password</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the password value for passing to the database. Can also change the password.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Empty string.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#schema">schema</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the database schema that accesses SQL objects referenced in SQL statements if the SQL objects are not fully qualified.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#url">url</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the URL value for the database. Can be set only on the <code>DriverManager</code> object.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="#user">user</a></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the user value for the database.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">None.</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect2">
<h3 id="how-to-specify-jdbc-type-4-properties">4.2. How to Specify JDBC Type 4 Properties</h3>
<div class="paragraph">
<p>The Type 4 JDBC driver properties configure the driver. These properties
can be specified in a data source, a connection URL (the primary IP
address or host name on the database), a properties file,
or in the java command line.</p>
</div>
<div class="paragraph">
<p>Java properties have the form:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">key=value</code></pre>
</div>
</div>
<div class="paragraph">
<p>At run time, the driver looks for a specific set of property keys and
takes action based on their associated values.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="sect3">
<h4 id="where-to-set-properties">4.2.1. Where to Set Properties</h4>
<div class="ulist">
<ul>
<li>
<p>For connections made through a <code>DataSource</code> or a <code>ConnectionPoolDataSource</code>,
set the property on the <code>DataSource</code> or the <code>ConnectionPoolDataSource</code> object.</p>
</li>
<li>
<p>For the <code>DriverManager</code> class, set properties in either of two ways:</p>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Using the option <code>-Dproperty_name=property_value</code> in the command line.</p>
</li>
<li>
<p>Using the <code>java.util.Properties</code> parameter in the <code>getConnection()</code> method
of the <code>DriverManager</code> class.</p>
</li>
</ol>
</div>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="creating-and-using-a-properties-file">4.2.2. Creating and Using a Properties File</h4>
<div class="paragraph">
<p>JDBC applications can provide property values to configure a connection
by using a file that contains properties for the JDBC driver. This
property file is passed as a java command-line parameter. The format to
enter the properties file in the command line is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">-Dt4jdbc.properties=&lt;path of the properties file on disk&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">-Dt4jdbc.properties=C:\temp\t4props\myprops.properties</code></pre>
</div>
</div>
<div class="paragraph">
<p>To create the file, use the editor of your choice on your workstation to
type in the property values. The entries in properties file must have a
<code>property_name=property_value</code> value-pair format:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">property_name=property_value</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">maxStatements=1024</code></pre>
</div>
</div>
<div class="paragraph">
<p>To configure a <code>DataSource</code> connection, the properties file might contain
property names and values as indicated in the following list:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">url=jdbc:t4jdbc://&lt;primary IP addr or host name of database&gt;:23400/
user=database_username
password=mypassword
description=&lt;a string&gt;
catalog=TRAFODION
schema=myschema
maxPoolSize=20
minPoolSize=5
maxStatements=20
loginTimeout=15
initialPoolSize=10
connectionTimeout=10
T4LogLevel=OFF
T4LogFile=/mylogdirectory/mylogfile</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="setting-properties-in-the-command-line">4.2.3. Setting Properties in the Command Line</h4>
<div class="paragraph">
<p>When a Type 4 driver property is specified on the command line through
the java <code>-D</code> option, the property must include the prefix: <code>t4jdbc</code>.</p>
</div>
<div class="paragraph">
<p>This notation, which includes the period (.), ensures that all the Type
4 driver property names are unique for a Java application.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>The maxStatements property becomes:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">-Dt4jdbc.maxStatements=10</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="precedence-of-property-specifications">4.2.4. Precedence of Property Specifications</h4>
<div class="paragraph">
<p>If a particular property is set several ways by an application, the
value used depends on how the value was set according to the following
order of precedence:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Set on the <code>DataSource</code> object, <code>DriverManager</code> object, or
<code>ConnectionPoolDataSource</code> object.</p>
</li>
<li>
<p>Set through the <code>java.util.Properties</code> parameter in the <code>getConnection</code>
method of <code>DriverManager</code> class.</p>
</li>
<li>
<p>Set the property in a properties file specified by the
<code>t4jdbc.properties</code> property.</p>
</li>
<li>
<p>Set the <code>-Dt4jdbc.property_name=&lt;property value&gt;</code> in the java command line.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>For more information, see order of precedence for properties specified
in various ways for use with the Driver Manager.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="type-4-driver-property-descriptions">5. Type 4 Driver Property Descriptions</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The properties are listed in alphabetic order with their descriptions.
For the properties summarized in categories, see
<a href="#summary-of-type-4-driver-properties">Summary of Type 4 Driver Properties</a>.</p>
</div>
<div class="sect2">
<h3 id="catalog">5.1. catalog Property</h3>
<div class="paragraph">
<p>The <code>catalog</code> property sets the default catalog used to access SQL objects
referenced in SQL statements if the SQL objects are not fully qualified.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object. For information about how to set
properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: none</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>Specifying the catalog TRAFODION:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">catalog=TRAFODION</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="connectiontimeout">5.2. connectionTimeout Property</h3>
<div class="paragraph">
<p>The <code>connectionTimeout</code> property sets the number of seconds a connection
can be idle before the connection is physically closed by DCS.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object. For information about how to set
properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: short
Units: seconds
Default: -1 (Use the ConnTimeout value set on the server-side data source.)
Range: -1, 0 to 32767</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>Zero (0) specifies infinity as the timeout value.</p>
</li>
<li>
<p>A non-zero positive value overrides the value set on the
Trafodion data source, if allowed by the connectivity settings.</p>
</li>
<li>
<p>A negative value is treated as -1.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>Consider the following scenario.</p>
</div>
<div class="paragraph">
<p>Even if a connection is not being used, it takes up resources. The application
abandons connections; that is, the application does not physically close a
connection after the application finishes using the connection.</p>
</div>
<div class="paragraph">
<p>However, you can configure the connection to close itself after 300 seconds by setting
the <code>connectionTimeout</code> property. Then, when a connection is not referenced for 300 seconds,
the connection automatically closes itself.</p>
</div>
<div class="paragraph">
<p>In this example, the specification to set the <code>connectionTimeout</code> property is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">connectionTimeout=300</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="fetchbuffersize">5.3. fetchBufferSize Property</h3>
<div class="paragraph">
<p>The <code>fetchBufferSize</code> property provides the benefits of bulk fetch.</p>
</div>
<div class="paragraph">
<p>This property sets the value in kilobytes (KB) of the size of the fetch
buffer that is used when rows are fetched from a <code>ResultSet</code> object after
a successful <code>executeQuery()</code> operation on a statement.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DriverManager</code> object. For information about how to set
properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: short
Default size: 4
Range: 4 through 32767</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>Zero and negative values are treated as default values.</p>
</li>
<li>
<p>The Type 4 driver guarantees that the number of rows internally
fetched will be no less than the minimum of the row size (set using
the <code>setFetchSize</code> method) and the number of rows that will fit in the
memory specified by the <code>setFetchSize</code> (set using the property).</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">fetchBufferSize=32</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="initialpoolsize">5.4. initialPoolSize Property</h3>
<div class="paragraph">
<p>The <code>initialPoolSize</code> property sets the initial connection pool size when
connection pooling is used with the Type 4 driver.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object. For information about how to set
properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="paragraph">
<p>The driver creates <em>n</em> connections (where <em>n</em> is <code>initialPoolSize</code>) for
each connection pool when the first connection is requested. For
example, if <code>initialPoolSize</code> is set to <code>5</code> for a data source, then the driver
attempts to create and pool five connections the first time the
application calls the data source&#8217;s <code>getConnection()</code> method.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: int
Units: number of physical connections
Default: -1 (Do not create an initial connection pool.)
Range: -1 to maxPoolSize</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>Any negative value is treated as -1.</p>
</li>
<li>
<p>Values can be less than <code>minPoolSize</code>, but must not exceed <code>maxPoolSize</code>.
If the specified value is greater than <code>maxPoolSize</code>, the <code>maxPoolSize</code>
property value is used.</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">initialPoolSize=10</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="iso88591">5.5. ISO88591 Property</h3>
<div class="paragraph">
<p>The <code>ISO88591</code> character-set mapping property corresponds to the
SQL ISO88591 character set, which is a single-byte
8-bit character set for character data types. This property supports
English and other Western European languages. For more information, see
<a href="#internationalization-support">Internationalization Support</a>.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object or <code>DriverManager</code> object. This
property is ignored for connections made through the
<code>ConnectionPoolDataSource</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: ISO88591_1</code></pre>
</div>
</div>
<div class="paragraph">
<p>The value can be any valid Java Canonical Name as listed in the
"Canonical Name for java.io and java.lang API" column of the
<a href="http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html">Java documentation</a>.</p>
</div>
<div class="paragraph">
<p>For more information, see
<a href="#internationalization-support">Internationalization Support</a>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="kanji">5.6. KANJI Property</h3>
<div class="paragraph">
<p>The <code>KANJI</code> character-set mapping property corresponds to the
SQL KANJI character set, which is a double-byte character set widely used on Japanese mainframes.
This property is a subset of Shift JIS: the double character portion. The encoding for
this property is big endian.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: SJIS (which is shift-JIS, Japanese)</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">java -Dt4jdbc.KANJI=SJIS</code></pre>
</div>
</div>
<div class="paragraph">
<p>For more information, see
<a href="#internationalization-support">Internationalization Support</a>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="ksc5601">5.7. KSC5601 Property</h3>
<div class="paragraph">
<p>The <code>KSC5601</code> character-set mapping property corresponds to the
SQL KSC5601 character set, which is a double-byte
character set.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: ECU_KR (which is KS C 5601, ECU encoding, Korean)</code></pre>
</div>
</div>
<div class="paragraph">
<p>The value can be any valid Java Canonical Name as listed in the
"Canonical Name for java.io and java.lang API" column of the
<a href="http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html">Java documentation</a>.</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">java -Dt4jdbc.KSC5601=ECU_KR</code></pre>
</div>
</div>
<div class="paragraph">
<p>For more information, see
<a href="#internationalization-support">Internationalization Support</a>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="language">5.8. language Property</h3>
<div class="paragraph">
<p>The <code>language</code> property sets the language used for the error messages. For
more information about using this property, see
<a href="#localizing-error-messages-and-status-messages">Localizing Error Messages and Status Messages</a></p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: none</code></pre>
</div>
</div>
<div class="paragraph">
<p>The value can be any valid Java Canonical Name as listed in the
"Canonical Name for java.io and java.lang API" column of the
<a href="http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html">Java documentation</a>.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>To set the language to shift-JIS, Japanese:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">language=SJIS</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="logintimeout">5.9. loginTimeout Property</h3>
<div class="paragraph">
<p>The <code>loginTimeout</code> property sets the time limit that a connection can be
attempted before the connection disconnects. When a connection is
attempted for a period longer than the set value, in seconds, the
connection disconnects.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: int
Units: seconds
Default: 60
Range: 0 to 2147483647</code></pre>
</div>
</div>
<div class="paragraph">
<p>If set to 0 (zero), no login timeout is specified.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="maxidletime">5.10. maxIdleTime Property</h3>
<div class="paragraph">
<p>The <code>maxIdleTime</code> property determines the number of seconds that a
physical connection should remain unused in the pool before the
connection is closed. 0 (zero) indicates no limit.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: int
Units: seconds
Default: 0 (No timeout)
Range: 0 through 2147483647</code></pre>
</div>
</div>
<div class="paragraph">
<p>Any negative value is treated as 0, which indicates that no time limit
applies.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>To set the maximum idle time to 5 minutes (300 seconds):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -Dt4jdbc.maxIdleTime=300</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="maxpoolsize">5.11. maxPoolSize Property</h3>
<div class="paragraph">
<p>The <code>maxPoolSize</code> property sets the maximum number of physical connections
that the pool can contain. These connections include both free
connections and connections in use. When the maximum number of physical
connections is reached, the Type 4 driver throws an SQLException and
sends the message, Maximum pool size is reached.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: int
Units: number of physical connections
Default: -1 (Disables connection pooling.)
Range: -1, 0 through 2147483647, but greater than minPoolSize</code></pre>
</div>
</div>
<div class="paragraph">
<p>The value determines connection-pool use as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Any negative value is treated like -1.</p>
</li>
<li>
<p>0 means no maximum pool size.</p>
</li>
<li>
<p>A value of -1 disables connection pooling.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Any positive value less than <code>minPoolSize</code> is changed to the <code>minPoolSize</code> value.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="maxstatements">5.12. maxStatements Property</h3>
<div class="paragraph">
<p>The <code>maxStatements</code> property sets the total number of <code>PreparedStatement</code>
objects that the connection pool should cache. This total includes both
free objects and objects in use.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: int
Units: number of objects
Default: 0 (Disables statement pooling.)
Range: 0 through 2147483647</code></pre>
</div>
</div>
<div class="paragraph">
<p>The value 0 disables statement pooling. Any negative value is treated
like 0 (zero).</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
To improve performance, we recommend that you enable statement pooling for
your JDBC applications because this pooling can dramatically help the
performance of many applications.
</td>
</tr>
</table>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Statement pooling can be in effect only if connection pooling is
enabled.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>To specify statement pooling, type:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">maxStatements=10</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="minpoolsize">5.13. minPoolSize Property</h3>
<div class="paragraph">
<p>The <code>minPoolSize</code> property limits the number of physical connections that
can be in the free connection pool.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: int
Default: -1 (The minPoolSize value is ignored.)
Range: -1, 0 through n, but less than maxPoolSize</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>Any negative value is treated like -1.</p>
</li>
<li>
<p>Any value greater than <code>maxPoolSize</code> is changed to the <code>maxPoolSize</code> value.</p>
</li>
<li>
<p>The value of <code>minPoolSize</code> is set to -1 when <code>maxPoolSize</code> is -1. The value determines
connection pool use as follows:</p>
<div class="ulist">
<ul>
<li>
<p>When the number of physical connections in the free pool reaches the
<code>minPoolSize</code> value, the Type 4 driver closes subsequent connections by
physically closing them and not adding them to the free pool.</p>
</li>
<li>
<p>0 (zero) means that the connections are not physically closed; the
connections are always added to the free pool when the connection is
closed.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>Use the following specification to set the <code>minPoolSize</code>
value to 1, which ensures that one connection is always retained:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">minPoolSize=1</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="networktimeout">5.14. networkTimeout Property</h3>
<div class="paragraph">
<p>The <code>networkTimeout</code> property sets a time limit that the driver waits for
a reply from the database server. When an operation is attempted for a
period longer than the set value, in seconds, the driver stops waiting
for a reply and returns an SQLException to the user application.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="admonitionblock caution">
<table>
<tr>
<td class="icon">
<i class="fa icon-caution" title="Caution"></i>
</td>
<td class="content">
Be careful when using this property. A network timeout causes
the socket connection between the Type 4 driver and the connectivity
server to timeout. If the server is engaged in a transaction or an SQL
operation, then the server continues to perform that transaction or
operation until the transaction or operation fails, the transaction
manager times out, or the server realizes that the Type 4 driver client
has gone away. A network timeout can result in an open transaction or
operation that continues for a significant time before failing or
rolling back. As a result of a network timeout, the connection becomes
unavailable.
</td>
</tr>
</table>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: int
Units: seconds
Default: 0 (No network timeout is specified.)
0 through to 2147483647</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="password">5.15. password Property</h3>
<div class="paragraph">
<p>The <code>password</code> property sets the password value for passing to the DCS
server. By using this property, you can also change the password. The
password is encrypted when it is passed to the server.</p>
</div>
<div class="paragraph">
<p>The format for specifying the password is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">password=old [, new, new ]</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p><code>old</code> is the current password</p>
</li>
<li>
<p><code>new</code> is the new password. Passwords must be 6 to 8 characters long and
cannot contain double quotes (").</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: empty string</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">password=eye0weU$</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="properties">5.16. properties Property</h3>
<div class="paragraph">
<p>The <code>properties</code> property specifies the location of the properties file
that contains keyword-value pairs that specify property values for
configuring the Type 4 driver. For more information, see
<a href="#creating-and-using-a-properties-file">Creating and Using a Properties File</a>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="reservedatalocators">5.17. reserveDataLocators Property</h3>
<div class="paragraph">
<p>The <code>reserveDataLocators</code> property sets the number of data locators to be
reserved for a process that stores data in a LOB table.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: int
Units: number of data locators to be reserved
Default: 100
Range: 1 to 9,223,372,036,854,775,807 (2**63 -1)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Do not set a value much greater than the number of data locators
actually needed. If the specified value is 0 (zero) or less, the default
value (100) is used.</p>
</div>
<div class="paragraph">
<p>Base the setting of the value of the <code>reserveDataLocators</code> property on the
application profile being executed. If the application inserts a large
number of LOB items, then a higher value of the <code>reserveDataLocators</code> property
can prevent frequent updating of the <code>ZZ_DATA_LOCATOR</code> value in the LOB
table. However, if the application inserts only a small number of LOB
items, then a smaller value is better. If a large value is used, then holes
(unused data-locator numbers) could occur in the LOB table. These holes
represent unused space.</p>
</div>
<div class="paragraph">
<p>Also, the administrator should avoid setting high values for the
<code>reserveDataLocators</code> (for example, in the range of trillions or so).
Setting high values prevents other Type 4 applications that use LOB
table from reserving data locators.</p>
</div>
<div class="paragraph">
<p>For additional information about data locator use, see
<a href="#reserving-data-locators">Reserving Data Locators</a>.</p>
</div>
<div class="paragraph">
<p>To change this value for a JDBC application, specify this property from
the command line.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>The following command reserves 150 data
locators for program class <code>myProgramClass</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -Dt4jdbc.reserveDataLocators=150 myProgramClass</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="roundingmode">5.18. roundingMode Property</h3>
<div class="paragraph">
<p>The <code>roundingMode</code> property specifies the rounding behavior of the Type 4
driver. For example, if the data is 1234.127 and column definition is
<code>NUMERIC(6, 2)</code> and the application does <code>setDouble()</code> and <code>getDouble()</code>,
then the value returned is 1234.12, which is truncated as specified by the
default rounding mode, <code>ROUND_DOWN</code>.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: ROUND_DOWN</code></pre>
</div>
</div>
<div class="paragraph">
<p>Values for roundingMode are:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">ROUND_CEILING
ROUND_DOWN
ROUND_FLOOR
ROUND_HALF_DOWN
ROUND_HALF_EVEN
ROUND_HALF_UP
ROUND_UNNECESSARY
ROUND_UP</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>For the definition of rounding mode values, see the
<a href="https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html">java.math.BigDecimal</a> documentation.</p>
</li>
<li>
<p>If the application sets erroneous values for the <code>roundingMode</code> property, no error is thrown by the Type 4 driver.
The driver uses <code>ROUND_DOWN</code> value instead.</p>
</li>
<li>
<p>To have the application get the <code>DataTruncation</code> exception when data is
truncated, set the <code>roundingMode</code> property to <code>ROUND_UNNECESSARY</code>.</p>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="schema">5.19. schema Property</h3>
<div class="paragraph">
<p>The <code>schema</code> property sets the database schema that accesses SQL objects
referenced in SQL statements if the SQL objects are not fully qualified.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: none</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">schema=sales</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="t4logfile">5.20. T4LogFile Property</h3>
<div class="paragraph">
<p>The <code>T4LogFile</code> property sets the name of the logging file for the Type 4 driver.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String</code></pre>
</div>
</div>
<div class="paragraph">
<p>Default file name is defined by the following pattern:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">%h/t4jdbc%u.log</code></pre>
</div>
</div>
<div class="paragraph">
<p>where</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>/</code> represents the local pathname separator.</p>
</li>
<li>
<p><code>%h</code> represents the value of the user.home system property. <em>%u</em>
represents a unique number to resolve conflicts.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Any valid file name for your system is allowed.</p>
</div>
<div class="paragraph">
<p>If you explicitly specify a log file, then that file is overwritten each time
a <code>FileHandler</code> is established using that file name.</p>
</div>
<div class="paragraph">
<p>To retain previously created log files, use the standard
`java.util.logging `file syntax to append a unique number onto each log
file.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>You can have the following property in a data source:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">T4LogFile = C:/temp/MyLogFile%u.log</code></pre>
</div>
</div>
<div class="paragraph">
<p>That name causes the Type 4 driver to create a new log file using a
unique name for each connection made through that data source.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">C:/temp/MyLogFile43289.log
C:/temp/MyLogFile87634.log
C:/temp/MyLogFile27794.log</code></pre>
</div>
</div>
<div class="paragraph">
<p>If you explicitly specify a log file that is not fully qualified, the
Type 4 driver creates the file in the current working directory, for
example, in the directory from which the JVM was invoked.</p>
</div>
<div class="paragraph">
<p>For detailed information about java.util.logging, see the
<a href="https://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html">logging summary</a> documentation.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="t4loglevel">5.21. T4LogLevel Property</h3>
<div class="paragraph">
<p>The <code>T4LogLevel</code> property sets the logging levels that control logging
output for the Type 4 driver. The Java package java.util.logging logs
error messages and traces messages in the driver.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: OFF</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Logging Levels</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Level</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>OFF</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A special level that turns off logging; the default setting.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SEVERE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates a serious failure; usually applies to SQL exceptions generated by the Type 4 driver.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>WARNING</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates a potential problem, which usually applies to SQL warnings generated by the Type 4 driver.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>INFO</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Provides informational messages, typically about connection pooling, statement pooling, and resource usage. This information can
help in tuning application performance.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CONFIG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Provides static configuration messages that can include property values and other Type 4 driver configuration information.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FINE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Provides tracing information from the Type 4 driver methods described in the Type 4 driver API. The level of tracing is equivalent
to the level of tracing provided when calling the <code>setLogWriter()</code> method of the <code>DriverManager</code> class or the DataSource class.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FINER</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates a detailed tracing message for which internal Type 4 driver methods provide messages. These messages can be useful in debugging the Type 4 driver.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FINEST</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates a highly detailed tracing message. The driver provides detailed internal data messages that can be useful in debugging the Type 4 driver.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ALL</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Logs all messages.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>To enable tracing, use the <code>t4jdbc.T4LogLevel</code> property specified in the command line:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">-Dt4jdbc.T4LogLevel=FINE</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
<div class="sect3">
<h4 id="t4loglevel-considerations">5.21.1. T4LogLevel Considerations</h4>
<div class="ulist">
<ul>
<li>
<p>If a security manager is defined by your application using an AppServer,
then <code>LoggingPermission</code> must be must be granted in the <code>java.policy</code> file as
follows:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">permission java.util.logging.LoggingPermission &quot;control&quot;, &quot;&quot; ;</code></pre>
</div>
</div>
</li>
<li>
<p>The Type 4 driver is not designed to inherit the <code>java.util.logging.FileHandler.level</code> settings at program startup.</p>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="translationverification">5.22. translationVerification Property</h3>
<div class="paragraph">
<p>The <code>translationVerification</code> property defines the behavior of the driver
if the driver cannot translate all or part of an SQL statement or SQL
parameter.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="paragraph">
<p>The value can be TRUE or FALSE.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: FALSE</code></pre>
</div>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 10%;">
<col style="width: 45%;">
<col style="width: 45%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Value</th>
<th class="tableblock halign-left valign-top">Scenario</th>
<th class="tableblock halign-left valign-top">What Happens</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FALSE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The driver is unable to translate all or part of an SQL statement, then the translation is unspecified.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">In most cases, the characters that are untranslatable are encoded as ISO88591 single-byte question marks (<code>?</code> or <code>0x3F</code>). No
exception or warning is thrown.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TRUE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The driver cannot translation all or part of an SQL statement or parameter.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The driver throws an SQLException with this text.<br>
<br>
<code>Translation of parameter to {0} failed. Cause: {1}</code><br>
<br>
where <code>{0}</code> is replaced with the target character set and <code>{1}</code> is
replaced with the cause of the translation failure.</p></td>
</tr>
</tbody>
</table>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
If the <code>translationVerification</code> property is set to TRUE, then the process can
use significantly more system resources. For better performance, set this property to FALSE.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>For more information, see <a href="#internationalization-support">Internationalization Support</a>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="url">5.23. url Property</h3>
<div class="paragraph">
<p>The <code>url</code> property sets the URL value for the database.
This property is used in the <code>DriverManager</code> object. The format
to specify the URL is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">jdbc:t4jdbc//&lt;primary IP addr or hostname of database&gt;:23400/[:]
[ property=value [ ; property2=value ] ... ]</code></pre>
</div>
</div>
<div class="paragraph">
<p>where <code>&lt;primary IP_addr or hostname of database&gt;:23400&gt;</code> specifies the location of the database.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: none</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">url=jdbc:t4jdbc://mynode.mycompanynetwork.net:23400/</code></pre>
</div>
</div>
<div class="sect3">
<h4 id="url-property-considerations">5.23.1. url Property Considerations</h4>
<div class="ulist">
<ul>
<li>
<p>If the url parameter is not specified and <code>DriverManager.getConnection()</code> is called, then the Type 4 driver throws an SQLException.</p>
</li>
<li>
<p>If you use a literal IPV4 or IPV6 address in a URL, note these guidelines:</p>
<div class="ulist">
<ul>
<li>
<p><strong>For IPV6 only</strong>: enclose the address in brackets (<code>[</code> and <code>]</code>).</p>
</li>
<li>
<p>The port number is optional according to both the IPV4 and IPV6 standard.</p>
</li>
<li>
<p>The default port number for the database is <code>23400</code>.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="user">5.24. user Property</h3>
<div class="paragraph">
<p>The <code>user</code> property sets the role value for the connectivity service. The
role name passed must have adequate access permissions for SQL data
accessed through the connectivity service.</p>
</div>
<div class="paragraph">
<p>Set this property on a <code>DataSource</code> object, <code>ConnectionPoolDataSource</code>
object, or <code>DriverManager</code> object.
For information about how to set properties, see
<a href="#how-to-specify-jdbc-type-4-properties">How to Specify JDBC Type 4 Properties</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Data type: String
Default: empty string</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">user=System_rolename</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="type-4-driver-compliance">6. Type 4 Driver Compliance</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="compliance-overview">6.1. Compliance Overview</h3>
<div class="paragraph">
<p>The Type 4 driver conforms where applicable to the JDBC
3.0 API specification. However, this driver differs from the JDBC
standard in some ways. This subsection describes the JDBC methods that
are not supported, the methods and features that deviate from the
specification, and features that are Trafodion extensions to the JDBC standard.
JDBC features that conform to the specification are not described in this subsection.</p>
</div>
<div class="paragraph">
<p>In addition, this chapter lists features of Trafodion SQL that are not supported by the Trafodion JDBC Type 4 driver, other
unsupported features, and restrictions.</p>
</div>
</div>
<div class="sect2">
<h3 id="unsupported-features">6.2. Unsupported Features</h3>
<div class="paragraph">
<p>These methods in the java.sql package throw an SQLException with the
message <code>Unsupported feature - &lt;method-name&gt;</code>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 65%;">
<col style="width: 35%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Method</th>
<th class="tableblock halign-left valign-top">Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CallableStatement.getArray(int parameterIndex)</code><br>
<code>CallableStatement.getArray(String parameterName)</code><br>
<code>CallableStatement.getBlob(int parameterIndex)</code><br>
<code>CallableStatement.getBlob(String parameterName)</code><br>
<code>CallableStatement.getClob(int parameterIndex)</code><br>
<code>CallableStatement.getClob(String parameterName)</code><br>
<code>CallableStatement.getObject(int parameterIndex, Map map)</code><br>
<code>CallableStatement.getObject(String parameterName, Map map)</code><br>
<code>CallableStatement.getRef(int parameterIndex)</code><br>
<code>CallableStatement.getRef(String parameterName)</code><br>
<code>CallableStatement.getURL(int parameterIndex)</code><br>
<code>CallableStatement.getURL(String parameterName)</code><br>
<code>CallableStatement.executeBatch()</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The particular <code>CallableStatement</code> method is not supported.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Connection.releaseSavepoint(Savepoint savepoint)</code><br>
<code>Connection.rollback(Savepoint savepoint)</code><br>
<code>Connection.setSavepoint()</code><br>
<code>Connection.setSavepoint(String name)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The particular <code>Connection</code> methods are not supported.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PreparedStatement.setArray(int parameterIndex, Array x)</code><br>
<code>PreparedStatement.setRef(int parameterIndex, Ref x)</code><br>
<code>PreparedStatement.setURL(int parameterIndex, URL x)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The particular <code>PreparedStatement</code> methods are not supported.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ResultSet.getArray(int columnIndex)</code><br>
<code>ResultSet.getArray(String columnName)</code><br>
<code>ResultSet.getObject(int columnIndex, Map map)</code><br>
<code>ResultSet.getObject(String columnName, Map map)</code><br>
<code>ResultSet.getRef(int columnIndex)ResultSet.getRef(String columnName)</code><br>
<code>ResultSet.getURL(int columnIndex)</code><br>
<code>ResultSet.getURL(String columnName)</code><br>
<code>ResultSet.updateArray(int columnIndex)</code><br>
<code>ResultSet.updateArray(String columnName)</code><br>
<code>ResultSet.updateRef(int columnIndex)</code><br>
`ResultSet.updateRef(String columnName)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The particular <code>ResultSet</code> methods are not supported.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Statement.getQueryTimeout()</code><br>
<code>Statement.setQueryTimeout()</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The particular <code>Statement</code> methods are not supported.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The following methods in the java.sql package throw an SQLException with
the message <code>Auto generated keys not supported</code>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 65%;">
<col style="width: 35%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Method</th>
<th class="tableblock halign-left valign-top">Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Connection.prepareStatement(String sql, int autoGeneratedKeys)</code><br>
<code>Connection.prepareStatement(String sql, int[] columnIndexes)</code><br>
<code>Connection.prepareStatement(String sql, String[] columnNames)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Automatically generated keys are not supported.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Statement.executeUpdate(String sql, int autoGeneratedKeys)</code><br>
<code>Statement.executeUpdate(String sql, int[] columnIndexes)</code><br>
<code>Statement.executeUpdate(String sql, String[] columnNames)</code><br>
<code>Statement.getGeneratedKeys()</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Automatically generated keys are not supported.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The following methods in the java.sql package throw an SQLException with
the message <code>Data type not supported</code>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 65%;">
<col style="width: 35%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Method</th>
<th class="tableblock halign-left valign-top">Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CallableStatement.getBytes(int parameterIndex)</code><br>
<code>CallableStatement.setBytes(String parameterIndex, bytes[] x)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The particular data type is not supported.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The following interfaces in the <code>java.sql</code> package are not implemented in
the Type 4 driver:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 65%;">
<col style="width: 35%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Method</th>
<th class="tableblock halign-left valign-top">Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.Array</code><br>
<code>java.sql.Ref</code><br>
<code>java.sql.Savepoint</code><br>
<code>java.sql.SQLData</code><br>
<code>java.sql.SQLInput</code><br>
<code>java.sql.SQLOutput</code><br>
<code>java.sql.Struct</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The underlying data types are not supported by Trafodion.</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p>The following interfaces in the <code>javax.sql</code> package are not implemented in the Type 4 driver:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 65%;">
<col style="width: 35%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Method</th>
<th class="tableblock halign-left valign-top">Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>javax.sql.XAConnection</code><br>
<code>javax.sql.XADataSource</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Distributed Transactions, as described in the JDBC 3.0 API specification, are not yet implemented.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For additional information about deviations for some methods, see <a href="#deviations">Deviations</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="deviations">6.3. Deviations</h3>
<div class="paragraph">
<p>The following table lists methods that differ in execution from the JDBC
specification. When an argument in a method is ignored, the Type 4
driver does not throw an SQLException,thus allowing the application to
continue processing. The application might not obtain the expected
results, however. Other methods listed do not necessarily throw an
SQLException, unless otherwise stated, although they differ from the
specification.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The <code>java.sql.DatabaseMetaData.getVersionColumns()</code> method mimics the
<code>java.sql.DatabaseMetaData.getBestRowIdentifier()</code> method because
Trafodion SQL does not support <code>SQL_ROWVER</code> (a columns function that
returns the column or columns in the specified table, if any, that are
automatically updated by the data source when any value in the row is
updated by any transaction).
</td>
</tr>
</table>
</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">Method</th>
<th class="tableblock halign-left valign-top">Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.DatabaseMetaData.getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The column is added to the column data, but its value is set to NULL because Trafodion SQL does not support the column type for these types:<br>
<br>
<code>SCOPE_CATALOG,</code><br>
<code>SCOPE_SCHEMA,</code><br>
<code>SCOPE_TABLE,</code><br>
and <code>SOURCE_DATA_TYPE</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.DatabaseMetaData.getTables(String catalog, String schemaPattern, String[] types)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The column is added to the column data, but its value is set to NULL because Trafodion SQL does not support the column type for these types:<br>
<br>
<code>TYPE_CAT,</code><br>
<code>TYPE_SCHEMA,</code><br>
<code>TYPE_NAME,</code><br>
<code>SELF_REFERENCING_COL_NAME,</code><br>
and <code>REF_GENERATION.</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.DatabaseMetaData.getUDTs(String catalog, String schemaPattern, String tableNamePattern, int[] types)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BASE_TYPE is added to the column data, but its value is set to NULL because Trafodion SQL does not support the base type.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.DatabaseMetaData.getVersionColumns()</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mimics the <code>DatabaseMetaData.getBestRowIdentifier()</code> method because Trafodion SQL does not support <code>SQL_ROWVER</code> (a columns function that returns the
column or columns in the specified table, if any, that are automatically updated by the data source when any value in the row is updated by any transaction).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.Connection.createStatement(. . .)</code><br>
<code>java.sql.Connection.prepareStatement(. . .)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The Type 4 driver does not support the scroll-sensitive result set type, so an SQL Warning is issued if an application requests that type. The result set is changed to
a scroll-insensitive type.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.ResultSet.setFetchDirection(. . .)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The fetch direction attribute is ignored.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.Statement.cancel()</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">In some instances, drops the connection to the server instead of just canceling the query. You must then reconnect to the server.
Note that the connection is dropped if <code>cancel()</code> is issued for a statement that is being processed. Otherwise the connection is maintained.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.Statement.setEscapeProcessing(. . .)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Because Trafodion SQL parses the escape syntax, disabling escape processing has no effect.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.sql.Statement.setFetchDirection(. . .)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The fetch direction attribute is ignored.</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="project-name-extensions">6.4. Trafodion Extensions</h3>
<div class="paragraph">
<p>The Trafodion extensions to the JDBC standard implemented in the Type 4 driver are as follows.</p>
</div>
<div class="sect3">
<h4 id="internationalization-of-messages">6.4.1. Internationalization of Messages</h4>
<div class="paragraph">
<p>The Type 4 driver is designed so that Java messages can be adopted for
various languages. The error messages are stored outside the source code
in a separate property file and retrieved dynamically based on the
locale setting. The error messages in different languages are stored in
separate property files based on the language and country. This
extension does not apply to all messages that can occur when running
JDBC applications.</p>
</div>
<div class="paragraph">
<p>For details, see <a href="#localizing-error-messages-and-status-messages">Localizing Error Messages and Status Messages</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="additional-databasemetadata-apis">6.4.2. Additional DatabaseMetaData APIs</h4>
<div class="paragraph">
<p>APIs added to the <code>T4DatabaseMetaData</code> class provide these capabilities:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Get a description of a table&#8217;s synonyms.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> java.sql.ResultSet getSynonymInfo(<span class="predefined-type">String</span> catalog, <span class="predefined-type">String</span> schema, <span class="predefined-type">String</span> table) <span class="directive">throws</span> <span class="exception">SQLException</span></code></pre>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="conformance-of-databasemetadata-methods-handling-of-null-parameters">6.5. Conformance of DatabaseMetaData Methods' Handling of Null Parameters</h3>
<div class="paragraph">
<p>This topic describes how the Type 4 driver determines the value of null
parameters passed as a parameter value on DatabaseMetaData methods.
Since other vendors might implement the JDBC specification differently,
this information explains the Type 4 driver results on the affected
queries.</p>
</div>
<div class="paragraph">
<p>This implementation applies to methods that take parameters that can
represent a pattern. The names of these parameters have the format:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">attributePattern</code></pre>
</div>
</div>
<div class="paragraph">
<p>The many methods of the java.sql.DatabaseMetaData class are affected;
for example, the <code>getColumns()</code> method.</p>
</div>
<div class="paragraph">
<p>For another example, schema is the attribute in the parameter
<code>schemaPattern</code>, which is a parameter to the <code>java.sql.ResultSet.getAttributes</code> method.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="predefined-type">ResultSet</span> getAttributes( <span class="predefined-type">String</span> catalog
, <span class="predefined-type">String</span> schemaPattern
, <span class="predefined-type">String</span> typeNamePattern
, <span class="predefined-type">String</span> attributeNamePattern
) <span class="directive">throws</span> <span class="exception">SQLException</span></code></pre>
</div>
</div>
<div class="paragraph">
<p>If the application passes a null value, the null is treated as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a parameter name contains the suffix Pattern, the null is interpreted as a <code>%</code> wild card.</p>
</li>
<li>
<p>If the parameter name does not contain the suffix <code>Pattern</code>, nulls are interpreted as the default value for that parameter.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Using this example, null parameters are interpreted as follows:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>catalog</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The default catalog name.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>schemaPattern</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A <code>%</code> wild card retrieves data for all schemas of the specified catalog</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="type-4-driver-conformance-to-sql-data-types">6.6. Type 4 Driver Conformance to SQL Data Types</h3>
<div class="sect3">
<h4 id="jdbc-data-types">6.6.1. JDBC Data Types</h4>
<div class="paragraph">
<p>The following table shows the JDBC data types that are supported by Type
4 driver and their corresponding Trafodion SQL data types:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 30%;">
<col style="width: 40%;">
<col style="width: 30%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">JDBC Data Type</th>
<th class="tableblock halign-left valign-top">Support by JDBC Driver for Trafodion SQL</th>
<th class="tableblock halign-left valign-top">Trafodion SQL Data Type</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.Array</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Not applicable.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.BIGINT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>LARGEINT</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.BINARY</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Data type is mapped by Trafodion SQL. Data type varies from that used for table creation.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHAR(n)</code><sup>1</sup></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.BIT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Data type is mapped by Trafodion SQL. Data type varies from that used for table creation.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHAR(1)</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.CHAR</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHAR(n)</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.DATE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DATE</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.DECIMAL</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DECIMAL(p,s)</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.DISTINCT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Not applicable.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.DOUBLE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DOUBLE PRECISION</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.FLOAT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLOAT(p)</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.INTEGER</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>INTEGER</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.JAVA_OBJECT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Not applicable.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.LONGVARBINARY</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Data type is mapped by Trafodion SQL. Data type varies from that used for table creation.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>VARCHAR(n)</code><sup>1</sup></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.LONGVARCHAR</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes. Maximum length is 4018.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>VARCHAR[(n)]</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.NULL</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Not applicable.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.NUMERIC</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>NUMERIC(p,s)</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.REAL</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLOAT(p)</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.REF</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Not applicable.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.SMALLINT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SMALLINT</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.STRUCT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Not applicable.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.TIME</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TIME</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.TIMESTAMP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TIMESTAMP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.TINYINT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Data type is mapped by Trafodion SQL. Data type varies from that used for table creation.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SMALLINT</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.VARBINARY</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Data type is mapped by Trafodion SQL. Data type varies from that used for table creation.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>VARCHAR(n)</code><sup>1</sup></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.VARCHAR</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>VARCHAR(n)</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.BOOLEAN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Data type is mapped by Trafodion SQL. Data type varies from that used for table creation.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHAR(1)</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Types.DATALINK</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Not applicable.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><sup>1</sup> Because of mapping provided by Trafodion, a <code>ResultSet.getObject()</code> method returns a string object instead of an array of bytes.</p>
</div>
<div class="paragraph">
<p>The Type 4 driver maps the following data types to the JDBC data type <code>Types.OTHER</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">INTERVAL YEAR(p)
INTERVAL YEAR(p) TO MONTH
INTERVAL MONTH(p)
INTERVAL DAY(p)
INTERVAL DAY(p) TO HOUR
INTERVAL DAY(p) TO MINUTE
INTERVAL DAY(p) TO SECOND
INTERVAL HOUR(p)
INTERVAL HOUR(p) TO MINUTE
INTERVAL HOUR(p) TO SECOND
INTERVAL MINUTE(p)
INTERVAL MINUTE(p) TO SECOND
INTERVAL SECOND(p)</code></pre>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="floating-point-support">6.7. Floating-Point Support</h3>
<div class="paragraph">
<p>The Type 4 driver supports only IEEE floating-point data to be passed between the application client and the Type 4 driver.</p>
</div>
</div>
<div class="sect2">
<h3 id="sqlj-support">6.8. SQLJ Support</h3>
<div class="paragraph">
<p>The Type 4 driver supports non-customized SQLJ applications, but does not support customized SQLJ applications.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="jdbc-3-0-features-not-supported-by-the-type-4-driver">6.9. JDBC 3.0 Features Not Supported by the Type 4 Driver</h3>
<div class="paragraph">
<p>These features are not required for JDBC 3.0 compliance, and they are not supported by the Trafodion JDBC Type 4 driver.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Multiple result sets returned by batch statements.</p>
</li>
<li>
<p>Database savepoint support. (Not provided in Trafodion SQL )</p>
</li>
<li>
<p>Retrieval of auto generated keys.</p>
</li>
<li>
<p>Transform group and type mapping.</p>
</li>
<li>
<p>Relationship between connector architecture and JDBC 3.0 SPI.</p>
</li>
<li>
<p>Secured socket communication or encryption for the interaction between the Type 4 driver and DCS.</p>
</li>
<li>
<p>Security context (user name and password) implicit propagation from AppServer to the Type 4 driver.</p>
</li>
<li>
<p>IPV6 protocol stack. (IPV6 addressing is emulated over IPV4 on the Trafodion platform - server side)</p>
</li>
<li>
<p>Distributed transactions.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="restrictions">6.10. Restrictions</h3>
<div class="ulist">
<ul>
<li>
<p>The Type 4 driver supports only database features that are supported by Trafodion SQL and SPJ.
Therefore, the Type 4 driver is not fully compliant with JDBC 3.0 specifications.</p>
</li>
<li>
<p>The Type 4 driver depends on DCS (Data Connectivity Service) for all server side manageability related features.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="tracing-and-logging-facilities">7. Tracing and Logging Facilities</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Type 4 driver provides two tracing and logging facilities:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Standard JDBC tracing and logging functionality as defined by the JDBC standard</p>
</li>
<li>
<p>Type 4 driver logging facility</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Server-side tracing (logging) is enabled by configuring DCS.</p>
</div>
<div class="sect2">
<h3 id="standard-jdbc-tracing-and-logging-facility">7.1. Standard JDBC Tracing and Logging Facility</h3>
<div class="paragraph">
<p>The JDBC standard provides a logging and tracing facility, which allows
tracing JDBC method calls by setting the log writer. To set the log
writer, either call the <code>setLogWriter()</code> method on the <code>DriverManager</code> class
or call the <code>setLogWriter()</code> method on the <code>DataSource</code> class
(or <code>ConnectionPoolDataSource</code> class).</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A <code>DriverManager</code> log writer is a character output stream to which all
logging and tracing messages for all connections made through the
<code>DriverManager</code> are printed. This stream includes messages printed by the
methods of this connection, messages printed by methods of other objects
manufactured by the connection, and so on. The <code>DriverManager</code> log writer
is initially null, that is, the default is for logging to be disabled.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For information about using the setLogWriter method, see the
<a href="https://docs.oracle.com/javase/7/docs/api/java/sql/DriverManager.html">DriverManager class API</a>.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A <code>DataSource</code> log writer is a character output stream to which all
logging and tracing messages for this data source are printed. This
stream includes messages printed by the methods of this object, messages
printed by methods of other objects manufactured by this object, and so
on. Messages printed to a data-source-specific log writer are not
printed to the log writer associated with the <code>java.sql.DriverManager</code>
class. When a <code>DataSource</code> object is created, the log writer is initially
null; that is, the default is for logging to be disabled.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For information about using the setLogWriter method, see the
<a href="https://docs.oracle.com/cd/E16338_01/appdev.112/e13995/oracle/jdbc/pool/OracleDataSource.html">DriverSource interface API</a>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="the-type-4-driver-logging-facility">7.2. The Type 4 Driver Logging Facility</h3>
<div class="paragraph">
<p>The Type 4 driver Logging facility allows you to retrieve internal
tracing information, which you can use in debugging the driver. It also
allows you to capture error and warning messages.</p>
</div>
<div class="paragraph">
<p>In addition to the standard JDBC tracing and logging facility, the Type
4 driver provides an independent logging facility (Type 4 Driver
Logging). The Type 4 Driver Logging provides the same level of logging
and tracing as the standard JDBC tracing and logging facility with the
following additional information:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>More detail about the internals of the Type 4 driver and internal tracing information</p>
</li>
<li>
<p>Type 4 driver performance-tuning information</p>
</li>
<li>
<p>Finer control over the amount and type of logging information</p>
</li>
<li>
<p>Error and warning messages</p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="controlling-type-4-driver-logging-output">7.2.1. Controlling Type 4 Driver Logging Output</h4>
<div class="paragraph">
<p>The Type 4 driver provides two properties that you can use to control logging output.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>T4LogLevel</code>: Specifies the level of logging. For information about using this property, see <a href="#t4loglevel-property">T4LogLevel Property</a>.</p>
</li>
<li>
<p><code>T4LogFile</code>: Specifies the file to which the driver is to write logging information. For information about using this property,
see <a href="#t4logfile-property">T4LogFile Property</a>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the application sets several property values, see
<a href="#precedence-of-property-specifications">Precedence of Property Specifications</a> to determine which setting applies.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>These properties file entries set the logging level to SEVERE and specify a log file name:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">T4LogLevel= SEVERE
T4LogFile=c:/T4logfile1.log</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="message-format">7.2.2. Message Format</h4>
<div class="paragraph">
<p>The format of the trace output is</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">sequence-number ~ time-stamp ~ thread-id
~ [connection-id] ~ [server-id] ~ [dialogue-id]
~ [class].[method][(parameters)] ~ [text]</code></pre>
</div>
</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">Identifier</th>
<th class="tableblock halign-left valign-top">Provides</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sequence-number</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A unique sequence number in increasing order.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>time-stamp</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The time of the message, for example 10/17/2004 12:48:23.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>thread-id</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The thread identifier within the Java VM.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>connection-id</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If applicable, a unique ID for the connection associated with the message.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>server-id</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If applicable, information about the connectivity server associated with the message. The <em>server-id</em> is of the form:<br>
<br>
<code>TCP:node-name.server-name/port-number:ODBC</code><br>
<br>
where<br>
<br>
<code>node-name</code> is the name of the Trafodion database node.<br>
<code>server-name</code> is the name of the Trafodion platform.<br>
<code>port-number</code> is the port to which the server is connected.<br>
<br>
<strong>Example</strong><br>
<br>
<code>TCP:\banshee-tcp.$Z0133/46003:ODBC</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>dialogue-id</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If applicable, the <code>dialogue-id</code> used for the DCS connection.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>class</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If applicable, the name of the class that issued the logging request.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>method</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If applicable, the name of the method that issued the logging request.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>parameters</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An optional set of parameters associated with the method.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>text</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Optional textual information for the message.</p></td>
</tr>
</tbody>
</table>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The tilde (<code>~</code>) character separates message parts. This separator
allows you to format the message using tools, such as Excel, Word, UNIX
sort, and so forth. For example, you can format and sort messages based
on sequence number or thread ID. You can edit the log file and change
the separator (the tilde) to any character you want. When possible,
numbers (such as <code>thread-id</code> and <code>sequence-number</code>) are prepended with
zeros (0) to allow for readable formatting.
</td>
</tr>
</table>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="examples-of-logging-output">7.2.3. Examples of Logging Output</h4>
<div class="ulist">
<ul>
<li>
<p>Output where <code>T4LogLevel</code> is set to <code>SEVERE</code>:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">00000036 ~ Dec 8, 2006 10:05:55 AM PST ~ 10 ~ 4508606 ~ null
~ null ~ T4Messages.createSQLException(&quot;en_US&quot;,
&quot;socket_write_error&quot;, &quot;null&quot;) ~</code></pre>
</div>
</div>
</li>
<li>
<p>Output where <code>T4LogLevel</code> is set to <code>FINER</code>:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">0000006 ~ 10/22/2004 10:34:45 ~ 001234 ~ 0049934 ~ FetchRowSetMessage ~ marshal
~ Entering FetchRowSetMessage.marshal( en_US
, 48345
, STMT_MX_8843
, 5
, 4192,
, 0
, 0 )</code></pre>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="messages">8. Messages</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="about-the-message-format">8.1. About the Message Format</h3>
<div class="paragraph">
<p>Messages are listed in numerical SQLCODE order. Descriptions include:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">SQLCODE SQLSTATE message-text
Cause [ What occurred to trigger the message.]
Effect [ What is the result when this occurs. ]
Recovery [ How to diagnose and fix the problem. ]</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="getting-help">8.2. Getting Help</h3>
<div class="paragraph">
<p>Some messages have no recovery information. Please contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> for assistance.</p>
</div>
</div>
<div class="sect2">
<h3 id="type-4-driver-error-messages">8.3. Type 4 Driver Error Messages</h3>
<div class="sect3">
<h4 id="_01032_08s01">8.3.1. 01032 08S01</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">01032 08S01 Communication link failure. The server timed out or disappeared.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The connection timed out.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Reconnect. Set the connection timeout to an appropriate value.</p>
</div>
</div>
<div class="sect3">
<h4 id="_01056_25000">8.3.2. 01056 25000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">01056 25000 Invalid transaction state.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Transaction state is incorrect.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Retry.</p>
</div>
</div>
<div class="sect3">
<h4 id="_01118_s1008">8.3.3. 01118 S1008</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">01118 S1008 Operation canceled.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The operation was canceled.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Retry operation.</p>
</div>
</div>
<div class="sect3">
<h4 id="_08001_hy000">8.3.4. 08001 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">08001 HY000 Retry attempts to connect to the datasource failed. May be
ODBC server not able to register to the ODBC service process.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A server error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server errors and
to analyze accompanying errors and warnings.</p>
</div>
</div>
<div class="sect3">
<h4 id="_08004_hy000">8.3.5. 08004 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">08004 HY000 Data source rejected establishment of connection since the
ODBC server is connected to a different client now</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Connection with server has been lost. Server is now connected to a different connection.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Reconnect.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29001_hyc00">8.3.6. 29001 HYC00</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">HYC00 Unsupported feature - {0}</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The feature listed is not supported by the JDBC driver.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: An unsupported exception is thrown, and a NULL <code>resultSet</code> is returned.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Remove the feature functionality from the program.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29002_08003">8.3.7. 29002 08003</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29002 08003 Connection does not exist</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An action was attempted when the connection to the database was closed.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The database is inaccessible.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Retry the action after the connection to the database is established.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29003_hy000">8.3.8. 29003 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29003 HY000 Statement does not exist</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A validation attempt was made on the getter or exec invocation on a closed statement.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The getter or exec invocation validation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Issue <code>validateGetInvocation()</code> or <code>validateExecDirectInvocation</code> when the statement is open.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29004_hy024">8.3.9. 29004 HY024</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29004 HY024 Invalid transaction isolation value.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to set the transaction isolation level to an invalid value.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: <code>TrafT4Connection.setTransactionIsolation</code> does not set the transaction isolation value.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Valid isolation values are:
<code>SQL_TXN_READ_COMMITTED</code>,
<code>SQL_TXN_READ_UNCOMMITTED</code>,
<code>SQL_TXN_REPEATABLE_READ</code>, and
<code>SQL_TXN_SERIALIZABLE</code>.
If no isolation value is specified, the default is <code>SQL_TXN_READ_COMMITTED</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29005_hy024">8.3.10. 29005 HY024</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29005 HY024 Invalid ResultSet type</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to set an invalid <code>ResultSet</code> Type value.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The SQL Statement call with the <code>resultSetType</code> parameter fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Valid ResultSet types are:
<code>TYPE_FORWARD_ONLY</code>,
<code>TYPE_SCROLL_INSENSITIVE</code>, and
<code>TYPE_SCROLL_SENSITIVE</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29006_hy000">8.3.11. 29006 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29006 HY000 Invalid Result Set concurrency</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to set an invalid result-set concurrency value.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The <code>TrafT4Statement</code> call with <code>resultSetConcurrency</code> fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Valid resultSetConcurrency values are: CONCUR_READ_ONLY and
CONCUR_UPDATABLE.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29007_07009">8.3.12. 29007 07009</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29007 07009 Invalid descriptor index</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A <code>ResultSetMetadata</code> column parameter or a <code>ParameterMetaData</code> param
parameter is outside of the descriptor range.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The <code>ResultSetMetadata</code> or <code>ParameterMetaData</code> method data is not returned as expected.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Validate the column or parameter that is supplied to the method.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29008_24000">8.3.13. 29008 24000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29008 24000 Invalid cursor state</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The <code>ResultSet</code> method was called when the connection was closed.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The method call does not succeed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Make sure the connection is open before making the <code>ResultSet</code> method call.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29009_hy109">8.3.14. 29009 HY109</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29009 HY109 Invalid cursor position</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to perform a <code>deleteRow()</code> method or <code>updateRow()</code>
method or <code>cancelRowUpdates</code> method when the <code>ResultSet</code> row cursor was on
the insert row. Or, an attempt was made to perform the <code>insertRow()</code> method
when the <code>ResultSet</code> row cursor was not on the insert row.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The row changes and cursor manipulation do not succeed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: To insert a row, move the cursor to the insert row. To delete, cancel, or update a row, move the cursor from the insert row.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29010_07009">8.3.15. 29010 07009</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29010 07009 Invalid column name</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A column search does not contain <code>columnName</code> string.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The column comparison or searches do not succeed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Supply a valid columnName string to the <code>findColumn()</code>,
<code>validateGetInvocation()</code>, and <code>validateUpdInvocation()</code> methods.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29011_07009">8.3.16. 29011 07009</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29011 07009 Invalid column index or descriptor index</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A <code>ResultSet</code> method was issued that has a column parameter that is
outside of the valid range.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The <code>ResultSet</code> method data is not returned as expected.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Make sure to validate the column that is supplied to the method.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29012_07006">8.3.17. 29012 07006</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29012 07006 Restricted data type attribute violation.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to execute a method either while an invalid
data type was set or the data type did not match the SQL column type.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The interface method is not executed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Make sure the correct method and Java data type is used for the column type.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29013_hy024">8.3.18. 29013 HY024</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29013 HY024 Fetch size is less than 0.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The size set for ResultSet.setFetchSize rows to fetch is less than zero.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The number of rows that need to be fetched from the database when
more rows are needed for a ResultSet object is not set.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Set the <code>setFetchSize()</code> method rows parameter to a value greater
than zero.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29015_hy024">8.3.19. 29015 HY024</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29015 HY024 Invalid fetch direction</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The <code>setFetchDirection()</code> method direction parameter is set to an invalid value.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The direction in which the rows in this <code>ResultSet</code> object are processed is not set.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Valid fetch directions are: <code>ResultSet.FETCH_FORWARD</code>,
<code>ResultSet.FETCH_REVERSE</code>, and <code>ResultSet.FETCH_UNKNOWN</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29017_hy004">8.3.20. 29017 HY004</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29017 HY004 SQL data type not supported</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An unsupported <code>getBytes()</code> or <code>setBytes()</code> JDBC method call was
issued using a <code>BINARY</code>, <code>VARBINARY</code>, or <code>LONGVARBINARY</code> data type.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: <code>BINARY</code>, <code>VARBINARY</code>, and <code>LONGVARBINARY</code> data types are not supported.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Informational message only; no corrective action is needed.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29018_22018">8.3.21. 29018 22018</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29018 2018 Invalid character value in cast specification</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to convert a string to a numeric type but the
string does not have the appropriate format.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Strings that are obtained through a getter method cannot be cast
to the method type.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Validate the string in the database to make sure it is a
compatible type.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29019_07002">8.3.22. 29019 07002</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29019 07002 Parameter {0, number, integer} for {1, number, integer} set
of parameters is not set.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An input descriptor contains a parameter that does not have a value set.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The method <code>checkIfAllParamsSet()</code> reports the parameter that is not set.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Set a value for the listed parameter.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29020_07009">8.3.23. 29020 07009</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29020 07009 Invalid parameter index.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A getter or setter method parameter count index is outside of the
valid input-descriptor range, or the input-descriptor range is null.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The getter and setter method invocation validation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Change the getter or setter parameter index to a valid parameter value.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29021_hy004">8.3.24. 29021 HY004</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29021 HY004 Object type not supported</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A <code>PreparedStatement.setObject()</code> method call contains an unsupported Object Type.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The <code>setObject()</code> method does not set a value for the designated parameter.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Informational message only; no corrective action is needed.
Valid Object Types are: <code>null</code>, <code>BigDecimal</code>, <code>Date</code>, <code>Time</code>, <code>Timestamp</code>, <code>Double</code>,
<code>Float</code>, <code>Long</code>, <code>Short</code>, <code>Byte</code>, <code>Boolean</code>, <code>String</code>, and <code>byte[]</code>, <code>Blob</code>, and <code>Clob</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29022_hy010">8.3.25. 29022 HY010</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29022 HY010 Function sequence error.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The <code>PreparedStatement.execute()</code> method does not support the use of
the <code>PreparedStatement.addBatch()</code> method.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: An exception is reported; the operation is not completed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Use the <code>PreparedStatement.executeBatch()</code> method.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29026_hy000">8.3.26. 29026 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29026 HY000 Transaction can't be committed or rolled back when AutoCommitmode is on.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to commit a transaction while AutoCommit mode is enabled.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The transaction is not committed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Disable AutoCommit. Use the method only when the AutoCommit mode is disabled.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29027_hy011">8.3.27. 29027 HY011</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29027 HY011 SetAutoCommit not possible, since a transaction is active.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to call the <code>setAutoCommit()</code> mode while a transaction was active.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The current AutoCommit mode is not modified.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Complete the transaction, then attempt to set the AutoCommit mode.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29029_hy011">8.3.28. 29029 HY011</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29029 HY011 SetTransactionIsolation not possible, since a transaction is active.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to set transaction isolation level while a
transaction was active.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Attempts to change the transaction isolation level for this
Connection object fail.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Complete the transaction, then attempt to set the transaction
isolation level.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29031_hy000">8.3.29. 29031 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29031 HY000 SQL SELECT statement in batch is illegal</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A <code>SELECT SQL</code> statement was used in the <code>executeBatch()</code> method.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: An exception is reported; the <code>SELECT SQL</code> query cannot be used in batch queries.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Use the <code>executeQuery()</code> method to issue the <code>SELECT SQL</code> statement.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29032_23000">8.3.30. 29032 23000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29032 23000 Row has been modified since it is last read.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to update or delete a <code>ResultSet</code> object row while the cursor was on the insert row.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The <code>ResultSet</code> row modification does not succeed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Move the <code>ResultSet</code> object cursor away from the row before updating or deleting the row.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29033_23000">8.3.31. 29033 23000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29033 23000 Primary key column value can't be updated.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to update the primary-key column in a table.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The column is not updated.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Columns in the primary-key definition cannot be updated and
cannot contain null values, even if you omit the NOT NULL clause in the
column definition.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29035_hy000">8.3.32. 29035 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29035 HY000IO Exception occurred {0}
message_text</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An ASCII or Binary or Character stream setter or an updater method
resulted in a <code>java.io.IOException</code>.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The designated setter or updater method does not modify the ASCII
or Binary or Character stream.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Informational message only; no corrective action is needed.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29036_hy000">8.3.33. 29036 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29036 HY000 Unsupported encoding {0}</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The character encoding is not supported.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: An exception is thrown when the requested character encoding is not supported.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: <code>ASCII (ISO88591)</code>, <code>KANJI</code>, <code>KSC5601</code>, and <code>UCS2</code> are the only
supported character encodings.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29037_hy106">8.3.34. 29037 HY106</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29037 HY106 ResultSet type is TYPE_FORWARD_ONLY.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to point a <code>ResultSet</code> cursor to a previous row
when the object type is set as <code>TYPE_FORWARD_ONLY</code>.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The ResultSet object cursor manipulation does not occur.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: <code>TYPE_FORWARD_ONLYResultSet</code> object type cursors can move forward
only. <code>TYPE_SCROLL_SENSITIVE</code> and <code>TYPE_SCROLL_INSENSITIVE</code> types are
scrollable.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29038_hy107">8.3.35. 29038 HY107</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29038 HY107 Row number is not valid.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A <code>ResultSet</code> <code>absolute()</code> method was called when the row number was set to 0.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The cursor is not moved to the specified row number.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Supply a positive row number (specifying the row number
counting from the beginning of the result set), or supply a negative row
number (specifying the row number counting from the end of the result set).</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29039_hy092">8.3.36. 29039 HY092</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29039 HY092 Concurrency mode of the ResultSet is CONCUR_READ_ONLY.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An action was attempted on a <code>ResultSet</code> object that cannot be
updated because the concurrency is set to <code>CONCUR_READ_ONLY</code>.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The <code>ResultSet</code> object is not modified.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: For updates, you must set the <code>ResultSet</code> object concurrency to <code>CONCUR_UPDATABLE</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29040_hy000">8.3.37. 29040 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29040 HY000 Operation invalid. Current row is the insert row.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to retrieve update, delete, or insert information on the current insert row.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The <code>ResultSet</code> row information retrieval does not succeed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: To retrieve row information, move the <code>ResultSet</code> object cursor away from the insert row.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29041_hy000">8.3.38. 29041 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29041 HY000 Operation invalid. No primary key for the table.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The <code>getKeyColumns()</code> method failed on a table that was created without a primary-key column defined.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: No primary-key data is returned for the table.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Change the table to include a primary-key column.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29042_hy000">8.3.39. 29042 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29042 HY000 Fetch size value is not valid.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to set the fetch-row size to a value that is less than 0.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The number of rows that are fetched from the database when more rows are needed is not set.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: For the <code>setFetchSize()</code> method, supply a valid row value that is greater than or equal to 0.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29043_hy000">8.3.40. 29043 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29043 HY000 Max rows value is not valid.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to set a limit of less than 0 for the maximum
number of rows that any <code>ResultSet</code> object can contain.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The limit for the maximum number of rows is not set.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: For the <code>setMaxRows()</code> method, use a valid value that is greater than or equal to 0.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29044_hy000">8.3.41. 29044 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29044 HY000 Query timeout value is not valid.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to set a value of less than 0 for the number
of seconds the driver waits for a Statement object to execute.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The query timeout limit is not set.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: For the <code>setQueryTimeout()</code> method, supply a valid value that is
greater than or equal to 0.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29045_01s07">8.3.42. 29045 01S07</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29045 01S07 Fractional truncation.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The data retrieved by the <code>ResultSet</code> getter method has been truncated.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The data retrieved is truncated.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Make sure that the data to be retrieved is within a valid data-type range.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29046_22003">8.3.43. 29046 22003</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29046 22003 Numeric value out of range.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A value retrieved from the ResultSet getter method is outside the range for the data type.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The ResultSet getter method does not retrieve the data.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Make sure the data to be retrieved is within a valid data-type range.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29047_hy000">8.3.44. 29047 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29047 HY000 Batch update failed. See next exception for details.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: One of the commands in a batch update failed to execute properly.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Not all the batch-update commands succeed. See the subsequent
exception for more information.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: View the subsequent exception for possible recovery actions.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29048_hy009">8.3.45. 29048 HY009</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29048 HY009 Invalid use of null.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A parameter that has an expected table name is set to null.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The <code>DatabaseMetadata</code> method does not report any results.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: For the <code>DatabaseMetaData</code> method, supply a valid table name that is not null.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29049_25000">8.3.46. 29049 25000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29049 25000 Invalid transaction state.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The <code>begintransaction()</code> method was called when a transaction was in progress.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: A new transaction is not started.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Before calling the <code>begintransaction()</code> method, validate whether
other transactions are currently started.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29050_hy107">8.3.47. 29050 HY107</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29050 HY107 Row value out of range.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A call to <code>getCurrentRow</code> retrieved is outside the first and last row range.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The current row is not retrieved.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: It is an informational message only; no recovery is needed.
Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29051_01s02">8.3.48. 29051 01S02</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29051 01S02 ResultSet type changed to TYPE_SCROLL_INSENSITIVE.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The Result Set Type was changed.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: None.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: This message is reported as an SQL Warning. It is an informational message only; no recovery is needed.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29053_hy000">8.3.49. 29053 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29053 HY000 SQL SELECT statement is invalid in executeUpdate() methodCause.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A select SQL statement was used in the <code>executeUpdate()</code> method.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The SQL query not performed exception is reported.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Use the <code>executeQuery()</code> method to issue the select SQL statement.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29054_hy000">8.3.50. 29054 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29054 HY000 Only SQL SELECT statements are valid in executeQuery() method.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A non-select SQL statement was used in the <code>executeQuery()</code> method.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The exception reported is "SQL query not performed".</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Use the <code>executeUpdate()</code> method to issue the non-select SQL statement.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29056_hy000">8.3.51. 29056 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29056 HY000 Statement is already closed.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A <code>validateSetInvocation()</code> or <code>validateExecuteInvocation</code> method was used on a closed statement.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The validation on the statement fails and returns an exception.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Use the <code>validateSetInvocation()</code> or <code>validateExecuteInvocation</code> method prior to the statement close.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29057_hy000">8.3.52. 29057 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29057 HY000 Auto generated keys not supported.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to use the Auto-generated keys feature.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The attempt does not succeed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: The Auto-generated keys feature is not supported.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29058_hy000">8.3.53. 29058 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29058 HY000 Connection is not associated with a PooledConnection object.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The <code>getPooledConnection()</code> method was invoked before the <code>PooledConnection</code> object was established.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: A connection from the pool cannot be retrieved.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Make sure a <code>PooledConnection</code> object is established before using
the <code>getPooledConnection()</code> method.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29059_hy000">8.3.54. 29059 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29059 HY000 'blobTableName' property is not set or set to null value or set to invalid value.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Attempted to access a BLOB column without setting the property
<code>t4jdbc.blobTableName</code>, or the property is set to an invalid value.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The application cannot access BLOB columns.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Set the <code>t4jdbc.blobTableName</code> property to a valid LOB table
name. The LOB table name is of format <code>catalog.schema.lobTableName</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29060_hy000">8.3.55. 29060 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29060 HY000 't4jdbc.clobTableName' property is not set or set to null value or set to invalid value.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Attempted to access a CLOB column without setting the
property <code>t4jdbc.clobTableName</code>, or the property is set to null
value or set to an invalid value.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The application cannot access CLOB columns.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Set the <code>t4jdbc.clobTableName</code> property to a valid LOB table
name. The LOB table name is of format <code>catalog.schema.lobTableName</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29061_hy00">8.3.56. 29061 HY00</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29061 HY00 Lob object {0} is not current.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Attempted to access LOB column data after the cursor moved or the
result set from which the LOB data was obtained had been closed.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The application cannot access LOB data.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Read the LOB data before moving the cursor or closing the result-set object.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29063_hy00">8.3.57. 29063 HY00</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29063 HY00 Transaction error {0} - {1} while obtaining start data locator.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A transaction error occurred when the Type 4 driver attempted to
reserve the data locators for the given process while inserting or
updating a LOB column.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The application cannot insert or update the LOB columns.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Check the file-system error in the message and take recovery action accordingly.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29067_07009">8.3.58. 29067 07009</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">2067 07009 Invalid input value in the method {0}.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: One or more input values in the given method is invalid.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The given input method failed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Check the input values for the given method.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29068_07009">8.3.59. 29068 07009</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29068 07009 The value for position can be any value between 1 and one more than the length of the LOB data.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The position input value in <code>Blob.setBinaryStream</code>,
<code>Clob.setCharacterStream</code>, or <code>Clob.setAsciiStream</code> can be between 1 and one
more than the length of the LOB data.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The application cannot write the LOB data at the specified position.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Correct the position input value.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29069_hy000">8.3.60. 29069 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29069 HY000 Autocommit is on and LOB objects are involved.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An attempt was made to access a LOB column when autocommit made is enabled.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The application cannot access LOB columns.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Disable the autocommit mode.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29100_hy000">8.3.61. 29100 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29100 HY000 An internal error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Internal error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29101_hy000">8.3.62. 29101 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29101 HY000 Contact your service provider.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Internal error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> (the service provider) and report the entire message.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29102_hy000">8.3.63. 29102 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29101 HY000 Error while parsing address &lt;address&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The address format was not recognized.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Refer to <a href="#url">url Property</a> for the valid address format.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29103_hy000">8.3.64. 29103 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29103 HY000 Address is null.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The address was empty.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Refer to <a href="#url">url Property</a> for the valid address format.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29104_hy000">8.3.65. 29104 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29104 HY000 Expected suffix: &lt;suffix&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The address suffix was incorrect or missing.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Refer to <a href="#url">url Property</a> for the valid address format.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29105_hy000">8.3.66. 29105 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29105 HY000 Unknown prefix for address.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The address prefix was incorrect or missing.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Refer to <a href="#url">url Property</a> for the valid address format.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29106_hy000">8.3.67. 29106 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29016 HY000 Expected address format: jdbc:subprotocol::subname.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Not applicable.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Not applicable.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: This is an informational message.
Refer to <a href="#url">url Property</a> for the valid address format.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29107_hy000">8.3.68. 29107 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29107 HY000 Address not long enough to be a valid address.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The address length was too short to be a valid address.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Refer to <a href="#url">url Property</a> for the valid address format.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29108_hy000">8.3.69. 29108 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29108 HY000 Expecting \\&lt;machine-name&gt;&lt;process-name&gt;/&lt;port-number&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The DCS address format was invalid.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: The address returned by the Trafodion platform was not in
the expected format. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29109_hy000">8.3.70. 29109 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29109 HY000 //&lt;{IP Address|Machine Name}[:port]/database name&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Informational message.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Not applicable.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Not applicable.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29110_hy000">8.3.71. 29110 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29110 HY000 Address is missing an IP address or machine name.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An IP address or machine name is required, but missing.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Include a valid IP address or machine name.
Refer to <a href="#url">url Property</a> for the valid address format.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29111_hy000">8.3.72. 29111 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29111 HY000 Unable to evaluate address &lt;address&gt; Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The driver could not determine the IP address for a host.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: The address or machine name may not be properly qualified or
there my exist a security restriction. See the documentation for the
<code>getAllByName</code> method in the <code>java.net.InetAddress</code> class. Include a valid
IP address or machine name. Refer to <a href="#url">url Property</a> for the
valid address format.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29112_hy000">8.3.73. 29112 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29112 HY000 Missing ']'.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The driver could not determine the IP address for a host.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: The address or machine name may not be properly formatted.
Refer to <a href="#url">url Property</a> for the valid address format.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29113_hy000">8.3.74. 29113 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29113 HY000 Error while opening socket. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Socket error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Use the <code>getCause</code> method on the <code>Exception</code> to determine the
appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29114_hy000">8.3.75. 29114 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29114 HY000 Error while writing to socket.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Socket write error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Use the <code>getCause</code> method on the <code>Exception</code> to determine the
appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29115_hy000">8.3.76. 29115 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29115 HY000 Error while reading from socket. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Socket read error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Use the <code>getCause</code> method on the <code>Exception</code> to determine the
appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29116_hy000">8.3.77. 29116 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29116 HY000 Socket is closed.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Socket close error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29117_hy000">8.3.78. 29117 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29117 HY000 Error while closing session. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An error was encountered while closing a session.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29118_hy000">8.3.79. 29118 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29118 HY000 A write to a bad map pointer occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Internal error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29119_hy000">8.3.80. 29119 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29119 HY000 A write to a bad par pointer occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Internal error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29120_hy000">8.3.81. 29120 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29120 HY000 An association server connect message error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to connect to the DCS association server.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29121_hy000">8.3.82. 29121 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29121 HY000 A close message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29122_hy000">8.3.83. 29122 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29122 HY000 An end transaction message error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform the operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29123_hy000">8.3.84. 29123 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29123 HY000 An execute call message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29124_hy000">8.3.85. 29124 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29124 HY000 An execute direct message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29125_hy000">8.3.86. 29125 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29125 HY000 An execute direct rowset message error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29126_hy000">8.3.87. 29126 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29126 HY000 An execute N message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29127_hy000">8.3.88. 29127 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29127 HY000 An execute rowset message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29128_hy000">8.3.89. 29128 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29128 HY000 A fetch perf message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29129_hy000">8.3.90. 29129 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29129 HY000 A fetch rowset message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29130_hy000">8.3.91. 29130 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29130 HY000 A get sql catalogs message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29131_hy000">8.3.92. 29131 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29131 HY000 An initialize dialogue message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29132_hy000">8.3.93. 29132 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29132 HY000 A prepare message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29133_hy000">8.3.94. 29133 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29133 HY000 A prepare rowset message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29134_hy000">8.3.95. 29134 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29134 HY000 A set connection option message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29135_hy000">8.3.96. 29135 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29135 HY000 A terminate dialogue message error occurred. Cause: &lt;cause&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29136_hy000">8.3.97. 29136 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29136 HY000 An association server connect reply occurred.
Exception: &lt;exception&gt; Exception detail: &lt;exception_detail&gt;
Error text/code: &lt;error text or code&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate any error or error detail information accompanying
this message and contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server
(Trafodion platform) errors and to analyze accompanying errors and
warnings.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29137_hy000">8.3.98. 29137 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29137 HY000 A close reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29138_hy000">8.3.99. 29138 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29138 HY000 An end transaction reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29139_hy000">8.3.100. 29139 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29139 HY000 An execute call reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29140_hy000">8.3.101. 29140 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29140 HY000 An execute direct reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29141_hy000">8.3.102. 29141 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29141 HY000 An execute direct rowset reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29142_hy000">8.3.103. 29142 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29142 HY000 An execute N reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29143_hy000">8.3.104. 29143 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29143 HY000 An execute rowset reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29144_hy000">8.3.105. 29144 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29144 HY000 A fetch perf reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29145_hy000">8.3.106. 29145 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29145 HY000 A fetch rowset reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29146_hy000">8.3.107. 29146 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29146 HY000 A get sql catalogs reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29147_hy000">8.3.108. 29147 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29147 HY000 An initialize dialogue reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29148_hy000">8.3.109. 29148 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29148 HY000 A prepare reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29149_hy000">8.3.110. 29149 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29149 HY000 A prepare rowset reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29150_hy000">8.3.111. 29150 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29150 HY000 A set connection option reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29151_hy000">8.3.112. 29151 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29151 HY000 A terminate dialogue reply error occurred.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate the returned value from the <code>getCause</code> method on the
<code>Exception</code> to determine the appropriate recovery action.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29152_hy000">8.3.113. 29152 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29152 HY000 No more ports available to start ODBC servers.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server (Trafodion
platform) errors. Evaluate the returned value from the <code>getCause</code> method
on the <code>Exception</code> to determine the appropriate recovery action.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29153_hy000">8.3.114. 29153 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29153 HY000 Invalid authorization specification.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Incorrect user name and/or password.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Retry with correct user name and/or password.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29154_hy000">8.3.115. 29154 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29154 HY000 Timeout expired.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Unable to perform this operation.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Retry and/or change the timeout value for the operation.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29155_hy000">8.3.116. 29155 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29155 HY000 Unknown message type.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Internal error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server (Trafodion
platform) errors and to analyze errors and warnings.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29156_hy000">8.3.117. 29156 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29156 HY000 An error was returned from the server. Error: &lt;error&gt;
Error detail: &lt;error_detail&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The server reported an error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate any error or error detail information accompanying the
message. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server (Trafodion
platform) errors and to analyze accompanying errors and warnings.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29157_hy000">8.3.118. 29157 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29157 HY000 There was a problem reading from the server.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The server reported an error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate any error or error detail information accompanying the
message. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server (Trafodion
platform) errors and to analyze accompanying errors and warnings.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29158_hy000">8.3.119. 29158 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29158 HY000 The message header contained the wrong version.
Expected: &lt;expected_version&gt; Actual: &lt;actual_version&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The server&#8217;s version differs from the expected version.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate any error or error detail information accompanying the
message. Install compatible versions of the driver and Trafodion connectivity
server.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29159_hy000">8.3.120. 29159 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29159 HY000 The message header contained the wrong signature.
Expected: &lt;expected_signature&gt; Actual: &lt;actual_signature&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The server&#8217;s signature differs from the expected version.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Evaluate any error or error detail information accompanying the
message. Install compatible versions of the driver and Trafodion connectivity
server.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29160_hy000">8.3.121. 29160 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29160 HY000 The message header was not long enough.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The message returned by the server was too short to be a valid message.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29161_s1000">8.3.122. 29161 S1000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29161 S1000 Unable to authenticate the user because of an NT error: {0}</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A message returned by the server.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29162_s1000">8.3.123. 29162 S1000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29162 S1000 Unexpected programming exception has been found: &lt;exception&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p>Check the server event log on node <em>node</em> for details.</p>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A message returned by the server.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server (Trafodion
platform) errors and to analyze accompanying errors and warnings.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29163_08001">8.3.124. 29163 08001</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29163 08001 ODBC Services not yet available: &lt;server&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A message returned by the server.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Retry and/or wait for a server to become available. Configure
server-side data source with more servers.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29164_08001">8.3.125. 29164 08001</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29164 08001 DataSource not yet available or not found: &lt;error&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A message returned by the server.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Create server data source and/or configure server data source
with more servers.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29165_hy000">8.3.126. 29165 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29165 HY000 Unknown connect reply error: &lt;error&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A message returned by the server.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server (Trafodion
platform) errors and to analyze accompanying errors and warnings.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29166_hy000">8.3.127. 29166 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29166 HY000 This method is not implemented.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Internal error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29167_hy000">8.3.128. 29167 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29167 HY000 Internal error. An internal index failed consistency check.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Internal error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29168_hy000">8.3.129. 29168 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29168 HY000 Unknown reply message error: &lt;error&gt; error detail: &lt;error_detail&gt;.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Server returned an error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server (Trafodion
platform) errors and to analyze accompanying errors and warnings.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29169_hy000">8.3.130. 29169 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29169 HY000 Invalid connection property setting</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The message returned by the server was too short to be a valid message.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29170_hy000">8.3.131. 29170 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29170 HY000 Invalid parameter value.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Internal error.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: None. Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> and report the entire message.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29172_hy000">8.3.132. 29172 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29172 HY000 Translation of parameter to {0} failed.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Translation errors occurred when translating the parameter into
the target character set reported in the {0} replacement variable.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The method fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Set the parameter to use characters within the appropriate
character set. You can also turn off translation validation by setting
the <code>translationVerification</code> property to FALSE.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29173_hy000">8.3.133. 29173 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29173 HY000 Translation of SQL statement {0} failed.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Translation errors occurred when translating the SQL statement
into the target character set reported in the {0} replacement
variable.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The method fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Edit the SQL statement to use characters within the appropriate
character set. You can also turn off translation validation by setting
the <code>translationVerification</code> property to FALSE.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29174_hy000">8.3.134. 29174 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29174 HY000 Autocommit is on and updateRow was called on the ResultSetobject.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The <code>ResultSet.updateRow()</code> method is called when autocommit is set on.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Warning is thrown. Subsequent <code>ResultSet.next()</code> calls will fail
because all the <code>ResultSet(cursors)</code> are closed.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Call the <code>ResultSet.updateRow()</code> method with autocommit set to off.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29175_hy000">8.3.135. 29175 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29175 HY000 Unknown Error {0}.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: An unknown error occurred during connection {0}.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The connection fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Retry the connection.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29177_hy000">8.3.136. 29177 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29177 HY000 Data cannot be null.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: Attempted to get column value data in String format, but passed a null input value.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check logs for server (Trafodion
platform) errors regarding the DCS server.</p>
</div>
</div>
<div class="sect3">
<h4 id="_29178_hy000">8.3.137. 29178 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29178 HY000 No column value has been inserted.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The value for a required column was not specified.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Ensure that all required column values are specified, and retry
the operation.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_29182_hy000">8.3.138. 29182 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">29182 HY000 General warning. Connected to the default data source:
TDM_Default_DataSource</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: The user application specified a data source that does not exist
on the server side, the Trafodion platform.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: The connection uses the Trafodion platform default data
source <code>TDM_Default_DataSource</code>.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Ignore the warning or contact your Trafodion database
administrator to add the server-side data source that the application
specified.</p>
</div>
</div>
<div class="sect3">
<h4 id="_s1000_hy000">8.3.139. S1000 HY000</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">S1000 HY000 A TIP transaction error &lt;error&gt; has been detected. Check the
server event log on Node &lt;segment&gt; for Transaction Error details.</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Cause</strong>: A message was returned by the server.</p>
</div>
<div class="paragraph">
<p><strong>Effect</strong>: Operation fails.</p>
</div>
<div class="paragraph">
<p><strong>Recovery</strong>: Contact <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a> to check for errors in the server event log
on the reported segment.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="avoiding-driver-server-version-mismatch">9. Avoiding Driver-Server Version Mismatch</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Trafodion JDBC type 4 driver described in this
document can connect only with an version-equivalent platform
(server). It cannot connect with an earlier version platform.</p>
</div>
<div class="paragraph">
<p>To make a connection with the Trafodion platform, JDBC clients,
through the driver, connect with the Trafodion database
connectivity service (DCS) on the Trafodion platform. In some
situations, Trafodion JDBC clients need to make connections to
older-version platforms (servers) from the same client boxes.
To make a connection, the driver version
must be compatible with the Trafodion platform version.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The DCS release version and Trafodion platform release
version are always the same.
</td>
</tr>
</table>
</div>
<div class="sect2">
<h3 id="compatible-versions">9.1. Compatible Versions</h3>
<div class="paragraph">
<p>Ensure that you install the driver version that is compatible with the
Trafodion platform version.</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">Driver version</th>
<th class="tableblock halign-left valign-top">Compatible versions of the Trafodion platform</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion Release 2.0 driver</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All versions up to, but not including, Trafodion Release 2.2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion Release 2.1 driver</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All versions up to, but not including, Trafodion Release 2.2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion Release 2.2 driver</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion Release 2.2 and later versions</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>If a compatible version is not installed, you can obtain the software to
download from the Trafodion download site.</p>
</div>
</div>
<div class="sect2">
<h3 id="considerations-for-mixed-version-jdbc-clients-connecting-to-project-name-platforms">9.2. Considerations for Mixed-Version JDBC Clients Connecting to Trafodion Platforms</h3>
<div class="paragraph">
<p>On the client platform, you can install multiple versions of the
Trafodion JDBC type 4 driver to connect to Trafodion
platforms of different platform versions.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Assuming you have installed the Release 2.2 Trafodion JDBC type
4 driver on your workstation and set up the client environment, the 2.2
driver&#8217;s classes are set your java CLASSPATH.</p>
</li>
<li>
<p>To connect to a Release 2.1 or 2.0 server (Trafodion platform)
from the same client machine, you must load the 2.1 driver by making
sure that it is in your java CLASSPATH.</p>
</li>
<li>
<p>Connecting to both a 2.1 and 2.2 server from the same application at
the same time is not possible.</p>
</li>
<li>
<p>A given application must use either the 2.2 driver or the 2.1 driver
when launched. The only way to switch is to reload the application when
pointing to a new CLASSPATH that contains a different driver.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="version-mismatch-error-message">9.3. Version Mismatch Error Message</h3>
<div class="paragraph">
<p>If an Trafodion JDBC client attempts to connect to an invalid DCS
version, the driver returns the error:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">SQLCODE: 29162
SQLSTATE S1000
Error text:
Unexpected programming exception has been found: &lt;errortext&gt;. Check
the server event log on node &lt;logfile_location&gt; for details.</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>&lt;errortext&gt; is the error text from the server.</p>
</li>
<li>
<p>&lt;logfile_location&gt; is the location of the log file.</p>
</li>
</ul>
</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>