<!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’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’s Reference Guide</h1> | |
<div class="details"> | |
<span id="revnumber">version 2.3.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’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>[ ] 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>… 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">"{" module-name [, module-name] ... "}"</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’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™ 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">"</span><span class="content">TRAFODION</span><span class="delimiter">"</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">"</span><span class="content">jdbc:t4jdbc://<primary IP addr or host name>:23400/</span><span class="delimiter">"</span></span> ); | |
ds.setSchema( <span class="string"><span class="delimiter">"</span><span class="content">myschema</span><span class="delimiter">"</span></span> ) ; | |
ds.setUser( <span class="string"><span class="delimiter">"</span><span class="content">gunnar</span><span class="delimiter">"</span></span> ) ; | |
ds.setPassword( <span class="string"><span class="delimiter">"</span><span class="content">my_userpassword</span><span class="delimiter">"</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">"</span><span class="content">100</span><span class="delimiter">"</span></span> ) ; | |
ds.setMinPoolSize( <span class="string"><span class="delimiter">"</span><span class="content">10</span><span class="delimiter">"</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">"</span><span class="content">7000</span><span class="delimiter">"</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">"</span><span class="content">Factory class name here</span><span class="delimiter">"</span></span> ) ; | |
javax.naming.Context ctx = <span class="keyword">new</span> javax.naming.InitialContext( env ) ; | |
ctx.rebind( <span class="string"><span class="delimiter">"</span><span class="content">myDataSource</span><span class="delimiter">"</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">"</span><span class="content">com.sun.jndi.fscontext.RefFSContextFactory</span><span class="delimiter">"</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">"</span><span class="content">myDataSource</span><span class="delimiter">"</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">"</span><span class="content">drop table tdata</span><span class="delimiter">"</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=<path of properties file on disk></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">"</span><span class="content">org.trafodion.jdbc.t4.T4Driver</span><span class="delimiter">"</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://<ip addr or host name>: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><ip addr or host name></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">"</span><span class="content">org.trafodion.jdbc.t4.T4Driver</span><span class="delimiter">"</span></span> ) ; <span class="comment">//loads the driver</span> | |
<span class="predefined-type">String</span> url = <span class="string"><span class="delimiter">"</span><span class="content">jdbc:t4jdbc://<database primary IP address>:23400/</span><span class="delimiter">"</span></span> | |
<span class="predefined-type">Connection</span> con = <span class="predefined-type">DriverManager</span>.getConnection( url, <span class="string"><span class="delimiter">"</span><span class="content">userID</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">Passwd</span><span class="delimiter">"</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://<ip addr or host name>:23400/:property=value</code></pre> | |
</div> | |
</div> | |
<div class="paragraph"> | |
<p><code><ip addr or host name></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=<path of properties file on disk></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=<property value></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’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">"</span><span class="content">UPDATE cat2.sch2.table1 | |
SET j = 'update row' WHERE CURRENT OF </span><span class="delimiter">"</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">"</span><span class="content">SELECT * FROM t WHERE i = ?</span><span class="delimiter">"</span></span> ) ; | |
<span class="type">boolean</span> results = s.execute( <span class="string"><span class="delimiter">"</span><span class="content">INFOSTATS </span><span class="delimiter">"</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">"</span><span class="content">SELECT * FROM table1 WHERE col1 = 'abcd'</span><span class="delimiter">"</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">"</span><span class="content">SELECT * FROM table1 WHERE col1 = ?</span><span class="delimiter">"</span></span> ) ; | |
pStmt.setString( <span class="integer">1</span>, <span class="string"><span class="delimiter">"</span><span class="content">abcd</span><span class="delimiter">"</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 "SJIS" 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’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’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) ; | |
> 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’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’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 < 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=<path of the properties file on disk>`</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://<primary IP addr or host name of database>:23400/ | |
user=database_username | |
password=mypassword | |
description=<a string> | |
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=<property value></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’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 "control", "" ;</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//<primary IP addr or hostname of database>:23400/[:] | |
[ property=value [ ; property2=value ] ... ]</code></pre> | |
</div> | |
</div> | |
<div class="paragraph"> | |
<p>where <code><primary IP_addr or hostname of database>:23400></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 - <method-name></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’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("en_US", | |
"socket_write_error", "null") ~</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 <address>.</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: <suffix>.</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 \\<machine-name><process-name>/<port-number>.</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 //<{IP Address|Machine Name}[:port]/database name></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 <address> Cause: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <cause>.</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: <exception> Exception detail: <exception_detail> | |
Error text/code: <error text or code>.</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: <error> | |
Error detail: <error_detail>.</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: <expected_version> Actual: <actual_version>.</code></pre> | |
</div> | |
</div> | |
<div class="paragraph"> | |
<p><strong>Cause</strong>: The server’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: <expected_signature> Actual: <actual_signature>.</code></pre> | |
</div> | |
</div> | |
<div class="paragraph"> | |
<p><strong>Cause</strong>: The server’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: <exception>.</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: <server>.</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: <error>.</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: <error>.</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: <error> error detail: <error_detail>.</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 <error> has been detected. Check the | |
server event log on Node <segment> 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’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: <errortext>. Check | |
the server event log on node <logfile_location> for details.</code></pre> | |
</div> | |
</div> | |
<div class="ulist"> | |
<ul> | |
<li> | |
<p><errortext> is the error text from the server.</p> | |
</li> | |
<li> | |
<p><logfile_location> is the location of the log file.</p> | |
</li> | |
</ul> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div id="footer"> | |
<div id="footer-text"> | |
Version 2.3.0<br> | |
Last updated 2018-03-12 18:11:56 CST | |
</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> |