スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

18.2.2 getConnectionメソッドによるHiRDBへの接続

DriverManagerクラスのgetConnectionメソッドには,引数が異なる次の三つの形式があります。

これらのメソッドの引数(url,user,password,及びinfo)には,HiRDBへの接続に必要な接続情報を指定します。

正常にHiRDBに接続した場合,JDBCドライバはこれらのメソッドを呼び出した結果として,Connectionクラスのインスタンスの参照を返却します。ただし,次の場合には,これらのメソッドはSQLExceptionを投入します。

getConnectionメソッドの引数の指定内容を次の表に示します。

表18-1 getConnectionメソッドの引数の指定内容

引数 指定内容 外部ドライバ※1 内部ドライバ※2
String url URLを指定します。詳細については,「(1) URLの構文」を参照してください。
String user 認可識別子を指定します。
指定値がナル値の場合は,認可識別子の指定がないものとみなされます。長さ0の文字列の場合は,SQLExceptionを投入し,KFPJ20212-Eメッセージの埋字となる"aa....aa"には"user"が設定されます。
指定の優先順位については,「18.11 接続情報の優先順位」を参照してください。
×
String password パスワードを指定します。指定の優先順位については,「18.11 接続情報の優先順位」を参照してください。
指定値がナル値,又は長さ0の文字列の場合は,パスワードの指定がないものとみなされます。
×
Properties info 各種接続情報を指定します。詳細については,「(2) ユーザプロパティ」を参照してください。

(凡例)
○:指定は有効になります。
×:指定は無効になります。

注※1
Javaアプリケーションで使用するJDBCドライバのことです。

注※2
Javaストアドプロシジャで使用するJDBCドライバのことです。
<この項の構成>
(1) URLの構文
(2) ユーザプロパティ

(1) URLの構文

JDBCドライバで指定できるURLの構文について説明します。

なお,URL内の各項目及び項目間にはスペースを入れないでください。また,各項目名称の大文字と小文字を区別するため,注意してください。

(a) URLの構文
 
  jdbc:hitachi:hirdb[://[DBID=接続付加情報]
                    [,DBHOST=DBホスト名称]
                    [,ENCODELANG=変換文字セット]
                    [,HIRDB_CURSOR=カーソル動作モード]
                    [,STATEMENT_COMMIT_BEHAVIOR=ステートメントのコミット実行後の状態]
                    [,JDBC_IF=JDBCインタフェースメソッドトレースの取得の有無]
                    [,TRC_NO=トレースのエントリ数]
                    [,SQLWARNING_IGNORE=警告情報を保持するかどうか]
                    [,LONGVARBINARY_ACCESS=BLOB型,BINARY型のアクセス方法]
                    [,SQL_IN_NUM=?パラメタ数]
                    [,SQL_OUT_NUM=出力パラメタ数]
                    [,SQLWARNING_LEVEL=警告保持レベル]
                    [,LONGVARBINARY_ACCESS_SIZE=LONGVARBINARYデータアクセスサイズ]
                    [,MAXBINARYSIZE=LONGVARBINARYデータの最大長]
                    [,LONGVARBINARY_TRUNCERROR=例外を投入するかどうか]
                    [,HiRDB_INI=HiRDB.INIファイルのディレクトリパス]
                    [,USER=ユーザ名称]
                    [,PASSWORD=パスワード]
                    [,UAPNAME=アプリケーション名称]
                    [,BATCHEXCEPTION_BEHAVIOR=JDBC規格に準拠した更新カウントを設定するか
                    どうか]
                    ]
(b) URLの各項目の説明

jdbc:hitachi:hirdb
プロトコル名称,サブプロトコル名称,及びサブネームです。必ず指定してください。また,大文字と小文字の区別をするため,注意してください。

DBID=接続付加情報
HiRDBサーバのポート番号を指定します(クライアント環境定義のPDNAMEPORTに相当します)。又は,HiRDBの環境変数グループを指定します。
HiRDBサーバのポート番号を指定しなかった場合,そのほかの方法で設定した値が有効となります。HiRDBのポート番号の設定方法,及び優先順位については,「18.11 接続情報の優先順位」を参照してください。
どちらも指定されていない場合は,getConnectionメソッド実行時にSQLExceptionを投入します。
なお,内部ドライバの場合,HiRDBのポート番号指定は無効です。
<注意事項>
接続付加情報にHiRDBの環境変数グループを指定する場合,次の点に注意してください。
  • HiRDBの環境変数グループ名を指定する場合は,「@HIRDBENVGRP=」に続けて絶対パス名を指定します。「@HIRDBENVGRP=,」のように,"="の後に何も指定しないと,この項目による指定がないものとみなされます。
  • 環境変数グループ名は大文字と小文字を区別するため,注意してください。なお,環境変数グループ名はOSに依存します。
  • 環境変数グループ名に半角スペース,又は半角@文字を含む場合,半角引用符(")で囲んでください。環境変数グループ名を半角引用符で囲んだ場合,最後の半角引用符から次の設定項目,又は文字終端までの文字は無視されます。また,半角引用符,及び半角コンマを含む環境変数グループ名は指定できません。
    エラーになる指定例を次に示します。
     
    @△HIRDBENVGRP=/HiRDB_P/Client/HiRDB.ini
    @HIRDBENVGRP△=/HiRDB_P/Client/HiRDB.ini
    @HIRDBENVGRP=△/HiRDB_P/Client/HiRDB.ini
    @HIRDBENVGRP=/HiRDB_P/Client/HiRDB.ini△
     
    注 △は半角スペースを示します。

DBHOST=DBホスト名称
HiRDBのホスト名を指定します。
この指定を省略した場合,そのほかの方法で設定した値が有効となります。HiRDBのホスト名称の設定方法,及び優先順位については,「18.11 接続情報の優先順位」を参照してください。
どちらも指定されていない場合は,getConnectionメソッド実行時にSQLExceptionを投入します。
なお,内部ドライバの場合は,この指定は無効です。

ENCODELANG=変換文字セット
StringクラスでHiRDBとのデータ受け渡しをする場合に,接続先のHiRDBの文字コードに対応する変換文字セットを指定します。指定できる変換文字セットは,「JavaTM 2 SDK, Standard Editionドキュメント」の「国際化」で示されるエンコーディング一覧から選択して指定してください。
HiRDBの文字コードと対応する変換文字セットを次の表に示します。

表18-2 HiRDBの文字コードと対応する変換文字セット

HiRDBの文字コード
(pdntenv又はpdsetupコマンドで設定した文字コード)
指定する変換文字セット
lang-c ISO8859_1
sjis SJIS又はMS932
ujis EUC_JP
utf-8 UTF-8
chinese EUC_CN
chinese-gb18030 GB18030
注※
SJISかMS932の指定は,アプリケーションでのWindows特殊文字の扱いによります。
"OFF"を指定すると,HiRDBの文字コードに対して表18-2の変換文字セットが指定されたものとして動作します。HiRDBの文字コードがsjisの場合は,JDBCドライバが動作するOSによって変換文字セットは次のようになります。
UNIXの場合:SJIS
Windowsの場合:MS932
 
なお,"OFF"以外の指定値は大文字と小文字を区別するため,注意してください。
Java仮想マシンがサポートしていない変換文字セット名称を指定した場合は,HiRDBサーバとの接続時にSQLExceptionを投入します。
この指定を省略した場合,JDBCドライバは表18-2に合わせた変換文字セットで文字の変換をします。ただし,次のものについては,Java仮想マシンのデフォルトの変換文字セットで変換します。
  • UAP名称(プロパティのUAPNAMEなどで設定)の指定値
  • 認可識別子又はパスワード(getConnectionメソッドなどで指定)
  • EnvironmentVariablesで指定したクライアント環境定義の指定値
  • HiRDBクライアントの環境変数グループ名で指定した各環境変数の指定値

HIRDB_CURSOR=カーソル動作モード
HiRDBがコミットした場合に,ResultSetクラスのオブジェクトを有効とするかどうかを指定します。
TRUE:コミットした場合でも,ResultSetクラスのオブジェクトを有効とします。
FALSE:コミットした場合,ResultSetクラスのオブジェクトを無効とします。
この指定を省略した場合,FALSEが仮定されます。
TRUE又はFALSE以外の値が指定された場合は,SQLExceptionを投入します。
また,無効となったResultSetオブジェクトでcloseメソッド呼び出し以外の操作をした場合は,SQLExceptionを投入します。
<注意事項>
HIRDB_CURSOR指定時の注意事項については,「(c) HIRDB_CURSOR及びSTATEMENT_COMMIT_BEHAVIOR指定時の注意事項」を参照してください。

STATEMENT_COMMIT_BEHAVIOR=ステートメントのコミット実行後の状態
HiRDBがコミットした場合に,Statementクラス,PreparedStatementクラス,及びCallableStatementクラス(以降,この三つのクラスをまとめてステートメントと表記します)のオブジェクトを,コミット実行後も有効とするかどうかを指定します。
TRUE:コミットした場合でも,ステートメントのオブジェクトを有効とします。
FALSE:コミットした場合,ステートメントのオブジェクトを無効とします。
なお,コミット実行後に無効とするのは,ConnectionクラスのprepareStatementメソッド,若しくはprepareCallメソッドでプリコンパイルしたSQL文,又はステートメントのexecuteQueryメソッドで取得したResultSetクラスのオブジェクトです。
この指定を省略した場合,TRUEが仮定されます。
<注意事項>
STATEMENT_COMMIT_BEHAVIOR指定時の注意事項については,「(c) HIRDB_CURSOR及びSTATEMENT_COMMIT_BEHAVIOR指定時の注意事項」を参照してください。

JDBC_IF=JDBCインタフェースメソッドトレースの取得の有無
JDBCインタフェースメソッドトレースの取得の有無を指定します。
ON:取得します。
OFF:取得しません。
この指定を省略した場合,OFFが仮定されます。上記以外の値を指定した場合は,SQLExceptionを投入します。
この指定の詳細については,「18.2.2(2)(d) JDBC_IF」を参照してください。

TRC_NO=トレースのエントリ数
JDBCインタフェースメソッドトレースのエントリ数を指定します。
この指定の詳細については,「18.2.2(2)(e) TRC_NO」を参照してください。

SQLWARNING_IGNORE=警告情報を保持するかどうか
データベースから返される警告をConnectionオブジェクトで保持するかどうかを指定します。
TRUE:警告を保持しません。
FALSE:警告を保持します。
この指定を省略した場合,FALSEが仮定されます。
上記以外の値を指定した場合は,SQLExceptionを投入します。
この指定の詳細については,「18.2.2(2)(g) SQLWARNING_IGNORE」を参照してください。

LONGVARBINARY_ACCESS=BLOB型,BINARY型のアクセス方法
JDBCのSQLデータ型LONGVARBINARY型(HiRDBのBLOB型,BINARY型)のデータベースのアクセス方法を指定します。
REAL:実データでアクセスします。
LOCATOR:HiRDBの位置付け子機能を使用してアクセスします。
上記以外の場合はSQLExceptionを投入します。
この指定の詳細については,「18.2.2(2)(i) LONGVARBINARY_ACCESS」を参照してください。

SQL_IN_NUM=?パラメタ数
実行するSQLの入力?パラメタの最大数を指定します。
この指定の詳細については,「18.2.2(2)(j) HiRDB_for_Java_SQL_IN_NUM」を参照してください。

SQL_OUT_NUM=出力パラメタ数
実行するSQLの出力項目数の最大数を指定します。
この指定の詳細については,「18.2.2(2)(k) HiRDB_for_Java_SQL_OUT_NUM」を参照してください。

SQLWARNING_LEVEL=警告保持レベル
SQL実行時に発生した警告情報の保持レベルを指定します。警告情報の保持レベルの詳細については,「18.4.12(2)(b) SQLWarningオブジェクトの生成条件」を参照してください。
IGNORE:警告情報をIGNOREレベルで保持します。
SQLWARN:警告情報をSQLWARNレベルで保持します。
ALLWARN:警告情報をALLWARNレベルで保持します。
この指定を省略した場合,SQLWARNが仮定されます。
指定値が不正な場合は,SQLExceptionを投入します。

LONGVARBINARY_ACCESS_SIZE=LONGVARBINARYデータアクセスサイズ
HiRDBサーバに対して一度に要求するJDBCのSQLデータ型LONGVARBINARYのデータ長を指定します(単位:キロバイト)。
この指定の詳細については,「18.2.2(2)(o) HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZE」を参照してください。

MAXBINARYSIZE=LONGVARBINARYデータの最大長
JDBCのSQLデータ型LONGVARBINARY型データ取得時のデータサイズの上限を設定します(単位:バイト)。
この指定の詳細については,「18.2.2(2)(p) HiRDB_for_Java_MAXBINARYSIZE」を参照してください。

LONGVARBINARY_TRUNCERROR=例外を投入するかどうか
JDBCのSQLデータ型LONGVARBINARY型データ取得時に切り捨てが発生した場合に,例外を投入するかどうかを指定します。
TRUE:例外を投入します。
FALSE:例外を投入しません。
この指定の詳細については,「18.2.2(2)(q) HiRDB_for_Java_LONGVARBINARY_TRUNCERROR」を参照してください。

HiRDB_INI=HiRDB.INIファイルのディレクトリパス
HiRDB.INIファイル内に記述されているHiRDBクライアント環境変数を有効にする場合に,HiRDB.INIファイルが存在するディレクトリの絶対パスを指定します。ここで指定したディレクトリのHiRDB.iniファイルのHiRDBクライアント環境変数が有効になります。指定したディレクトリにHiRDB.iniファイルがない場合,及び内部ドライバの場合,この指定は無効になります。
また,この指定を省略した場合,HiRDB.iniファイルの内容は無視されます。

USER=ユーザ名称
ユーザ名称を指定します。
この指定の詳細については,「18.2.2(2)(a) user」を参照してください。

PASSWORD=パスワード
パスワードを指定します。
この指定の詳細については,「18.2.2(2)(b) password」を参照してください。

UAPNAME=アプリケーション名称
HiRDBサーバに対してアクセスするUAPの識別情報(UAP識別子)を指定します。
この指定の詳細については,「18.2.2(2)(c) UAPNAME」を参照してください。

BATCHEXCEPTION_BEHAVIOR=JDBC規格に準拠した更新カウントを設定するかどうか
java.sql.BatchUpdateExceptionのgetUpdateCountsメソッドの戻り値に,JDBC規格に準拠した更新カウントを設定するかどうかを指定します。
この指定の詳細については,「18.2.2(2)(u) HiRDB_for_Java_BATCHEXCEPTION_BEHAVIOR」を参照してください。
(c) HIRDB_CURSOR及びSTATEMENT_COMMIT_BEHAVIOR指定時の注意事項

HIRDB_CURSOR及びSTATEMENT_COMMIT_BEHAVIOR指定時の注意事項を次に示します。

<HIRDB_CURSOR又はSTATEMENT_COMMIT_BEHAVIORにTRUEを指定した場合>
  • クライアント環境定義PDDDLDEAPRPEXEがNO,かつPDDDLDEAPRPがNOの場合,SELECT文,INSERT文,DELETE文,UPDATE文,PURGE TABLE文,又はCALL文のどれかでアクセスするスキーマ資源(表やインデクスなど)に対して,ほかのユーザが定義系SQLを実行すると,スキーマ資源にアクセスしていたコネクションを切断するまでの間,又はスキーマ資源にアクセスしていたステートメントオブジェクトをクローズしコミットするまでの間,定義系SQLは排他待ちの状態になります。
  • クライアント環境定義PDDDLDEAPRPEXEがYES,又はPDDDLDEAPRPがYESの場合,SELECT文,INSERT文,DELETE文,UPDATE文,PURGE TABLE文,又はCALL文のどれかでアクセスするスキーマ資源(表やインデクスなど)に対して,ほかのユーザが定義系SQLを実行すると,SELECT文,INSERT文,DELETE文,UPDATE文,PURGE TABLE文,又はCALL文の前処理結果は無効になります。前処理結果が無効となったSQLを実行すると,SQLException例外(getErrorCodeメソッドで取得できる値は-1542)が発生します。
  • HIRDB_CURSOR又はSTATEMENT_COMMIT_BEHAVIORにTRUEを指定※1することで,コミット※2後もプリコンパイルしたSQL文※3が有効になるのは,SELECT文,INSERT文,DELETE文,UPDATE文,PURGE TABLE文,及びCALL文だけです。
注※1
次のどちらかの指定の場合も該当します。
  • getConnectionメソッドで指定するプロパティ中の次の項目にTRUEを設定した。
    ・HIRDB_CURSOR
    ・HiRDB_for_Java_STATEMENT_COMMIT_BEHAVIOR
  • PrdbDataSourceクラス,PrdbConnectionPoolDataSourceクラス,又はPrdbXADataSourceクラスの次のメソッドでtrueを指定した。
    ・setHiRDBCursorMode
    ・setStatementCommitBehavior
注※2
commitメソッドによる明示的なコミットのほかに,次の場合も該当します。
  • 自動コミットによる暗黙的なコミット
  • 定義系SQLの実行
  • PURGE TABLE文の実行
  • rollbackメソッドによる明示的なロールバック
  • SQL実行エラーによる暗黙的なロールバック
注※3
ConnectionクラスのprepareStatementメソッド又はprepareCallメソッドを実行することでSQL文をプリコンパイルできます。
 
SELECT文,INSERT文,DELETE文,UPDATE文,PURGE TABLE文,及びCALL文以外のSQL文では,コミット時にプリコンパイル済みのSQL文は無効になります。
無効になったプリコンパイルしたSQL文を格納したPreparedStatementクラス又はCallableStatementクラスのオブジェクトでSQL文を実行するとエラーになります。エラーとなる例を次に示します。
 
  PreparedStatement pstmt1 = con.prepareStatement("lock table tb1");
  PreparedStatement pstmt2 = con.prepareStatement("lock table tb2");
  pstmt1.execute();  //エラーになりません。
  con.commit();
  pstmt2.execute();  //エラーになります。
  pstmt1.close();
  pstmt2.close();
 
この例では,実行するSQL文がLOCK文であるため,STATEMENT_COMMIT_BEHAVIORにTRUEを指定していても,コミット後はPreparedStatementが無効となって,エラーが発生します。

注※
コミット時にカーソルがクローズされないため,ResultSetオブジェクトのクローズ,若しくはResultSetオブジェクトを生成したCallableStatementオブジェクト又はConnectionオブジェクトをクローズするまでカーソルは開いたままとなります。

<HIRDB_CURSOR及びSTATEMENT_COMMIT_BEHAVIORの組み合わせ>
コミット実行後にResultSetオブジェクト及びステートメントオブジェクトが有効になるかどうかを,HIRDB_CURSOR,STATEMENT_COMMIT_BEHAVIORの組み合わせごとに次の表に示します。

表18-3 コミット実行後のResultSetオブジェクト及びステートメントオブジェクトの状態

STATEMENT_COMMIT_BEHAVIORの指定値 HIRDB_CURSORの指定値
TRUE FALSE
TRUE

ResultSetオブジェクト:
有効

ステートメントオブジェクト:
有効

ResultSetオブジェクト:
無効

ステートメントオブジェクト:
有効
FALSE

ResultSetオブジェクト:
無効

ステートメントオブジェクト:
無効
 
また,DatabaseMetaDataのメソッドの戻り値を,HIRDB_CURSOR,STATEMENT_COMMIT_BEHAVIORの組み合わせごとに次の表に示します。

表18-4 DatabaseMetaDataのメソッドの戻り値

STATEMENT_COMMIT_BEHAVIORの指定値 HIRDB_CURSORの指定値
TRUE FALSE
TRUE

supportsOpenStatementsAcrossCommit:
true

supportsOpenCursorsAcrossCommit:
true

supportsOpenStatementsAcrossCommit:
true

supportsOpenCursorsAcrossCommit:
false
FALSE

supportsOpenStatementsAcrossCommit:
false

supportsOpenCursorsAcrossCommit:
false
 

<コミット実行時のJDBCドライバの動作例>
コミット実行時のJDBCドライバの動作は,HIRDB_CURSOR及びSTATEMENT_COMMIT_BEHAVIORの指定によって異なります。
指定例
 
[A]
pstmt1=con.prepareStatement("select c1 from tb1");  [1]
[B]
rs1=pstmt1.executeQuery();                          [2]
[C]
rs1.next()                                          [3]
[D]
v1=rs1.getInt(1)                                    [4]
[E]
rs1.next()                                          [5]
[F]
v1=rs1.getInt(1)                                    [6]
[G]
rs1.close()                                         [7]
 
コミット実行時の動作
コミットのタイミング H=T,S=T※1 H=F,S=T※2 H=F,S=F※3
[A] [1]~[7]は正常に動作します。
[B] [1]~[7]は正常に動作します。 [1],[2],[7]:正常に動作します。
[3]~[6]:SQLExceptionを投入します。
[C] [1]~[7]は正常に動作します。 [1],[2],[7]:正常に動作します。
[3]~[6]:SQLExceptionを投入します。
[D] [1]~[7]は正常に動作します。 [1]~[3],[7]:正常に動作します。
[4]~[6]:SQLExceptionを投入します。
[E] [1]~[7]は正常に動作します。 [1]~[4],[7]:正常に動作します。
[5],[6]:SQLExceptionを投入します。
[F] [1]~[7]は正常に動作します。 [1]~[5],[7]:正常に動作します。
[6]:SQLExceptionを投入します。
[G] [1]~[7]は正常に動作します。
注※1 HIRDB_CURSORにTRUE,STATEMENT_COMMIT_BEHAVIORにTRUEを指定した場合を示します。
注※2 HIRDB_CURSORにFALSE,STATEMENT_COMMIT_BEHAVIORにTRUEを指定した場合を示します。
注※3 HIRDB_CURSORにFALSE,STATEMENT_COMMIT_BEHAVIORにFALSEを指定した場合を示します。

<そのほかの注意事項>
クライアント環境定義PDDDLDEAPRPについての注意事項は,「6.6.4 クライアント環境定義の設定内容」を参照してください。
また,DECLARE CURSORのホールダブルカーソルについての規則は,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

(2) ユーザプロパティ

DriverManagerクラスのgetConnectionメソッドに指定できるプロパティを次の表に示します。なお,プロパティの指定値がナル値の場合,指定を省略したものとして扱われます。

表18-5 getConnectionメソッドに指定できるプロパティ

項番 プロパティ 指定内容
(a) user 認可識別子
(b) password パスワード
(c) UAPNAME UAP識別子
(d) JDBC_IF JDBCインタフェースメソッドトレースの取得の有無
(e) TRC_NO JDBCインタフェースメソッドトレースのエントリ数
(f) ENCODELANG 接続先のHiRDBの文字コードに対応する変換文字セット
(g) SQLWARNING_IGNORE データベースから返される警告をConnectionオブジェクトで保持するかどうか
(h) HIRDB_CURSOR カーソル動作モード
(i) LONGVARBINARY_ACCESS JDBC SQLタイプLONGVARBINARY(HiRDBのデータ型であるBLOB型,及びBINARY型)のデータへのアクセス方法
(j) HiRDB_for_Java_SQL_IN_NUM 実行するSQLの入力?パラメタの最大数
(k) HiRDB_for_Java_SQL_OUT_NUM 実行するSQLの出力項目の最大数
(l) HiRDB_for_Java_SQLWARNING_LEVEL SQL実行時に発生した警告情報の保持レベル
(m) HiRDB_for_Java_ENV_VARIABLES HiRDBクライアント環境変数
(n) HiRDB_for_Java_STATEMENT_COMMIT_BEHAVIOR ステートメントのコミット実行後の状態
(o) HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZE HiRDBサーバに対して一度に要求するJDBC SQLタイプLONGVARBINARY型データの長さ
(p) HiRDB_for_Java_MAXBINARYSIZE JDBC SQLタイプLONGVARBINARY型データ取得時のデータサイズの上限
(q) HiRDB_for_Java_LONGVARBINARY_TRUNCERROR JDBC SQLタイプLONGVARBINARY型データ取得時に切り捨てが発生した場合に,例外を投入するかどうか
(r) HiRDB_for_Java_DBID 接続付加情報
(s) HiRDB_for_Java_DBHOST ホスト名称
(t) HiRDB_for_Java_HiRDB_INI HiRDB.INIファイルのディレクトリパス
(u) HiRDB_for_Java_BATCHEXCEPTION_BEHAVIOR JDBC規格に準拠した更新カウントを設定するかどうか
(a) user

認可識別子を指定します。

指定値がナル値の場合は,認可識別子の指定がないものとみなされます。長さ0の文字列の場合は,SQLExceptionを投入します。

この指定を省略した場合,getConnectionメソッドの引数Properties中の,HiRDB_for_Java_ENV_VARIABLESで指定したHiRDBクライアント環境定義のPDNAMEPORT,又はURL中のDBIDに指定したHiRDB環境変数グループ内のPDUSERの指定値が有効となります。指定の優先順位については,「18.11 接続情報の優先順位」を参照してください。

どちらも指定されていない場合は,getConnectionメソッド実行時にSQLExceptionを投入します。

なお,内部ドライバの場合は,このプロパティの指定は無効です。

(b) password

パスワードを指定します。

指定値がナル値の場合又は長さが0の場合は,パスワードの指定がないものとみなされます。

この指定を省略した場合については,「18.11 接続情報の優先順位」を参照してください。

なお,内部ドライバの場合は,このプロパティの指定は無効です。

(c) UAPNAME

HiRDBサーバに対してアクセスする,UAPの識別情報(UAP識別子)を指定します。

次の場合は,認可識別子の指定がないものとみなされます。

指定できる文字列の詳細については,「6.6.4 クライアント環境定義の設定内容」のクライアント環境定義PDCLTAPNAMEを参照してください。

この指定を省略した場合については,「18.11 接続情報の優先順位」を参照してください。

なお,内部ドライバの場合は,このプロパティの指定は無効です。

《注意事項》
このプロパティで指定したUAPは,ENCODELANGで指定された変換文字セットでエンコードされ,エンコード後のUAP識別子の先頭から30バイトがHiRDBサーバに転送されます(30バイト目が文字の途中であっても,30バイトまでで打ち切られます)。そのため,HiRDBサーバで取得できるUAP識別子は,エンコード後の先頭30バイトまでです。
(d) JDBC_IF

JDBCインタフェースメソッドトレースの取得の有無を指定します。

ON:JDBCインタフェースメソッドトレースを取得します。

OFF:JDBCインタフェースメソッドトレースを取得しません。

この指定を省略した場合,OFFが仮定されます。

また,これらの値以外を指定すると,SQLExceptionを投入します。

なお,次に示す場合,このプロパティの指定は無効です。

JDBCインタフェースメソッドトレースの詳細は,「18.14 JDBCインタフェースメソッドトレース」を参照してください。

(e) TRC_NO

   ~<符号なし整数>((10~1000))《500》

JDBCインタフェースメソッドトレースのエントリ数を指定します。

このプロパティは,次の条件をすべて満たしている場合に有効になります。

なお,内部ドライバの場合は,このプロパティの指定は無効です。

プロパティの指定が有効な状態で,かつ指定値が不正な場合は,SQLExceptionを投入します。

JDBCインタフェースメソッドトレースの詳細は,「18.14 JDBCインタフェースメソッドトレース」を参照してください。

(f) ENCODELANG

StringクラスでHiRDBとのデータ受け渡しをする場合に,接続先のHiRDBの文字コードに対応する変換文字セットを指定します。

指定できる変換文字セットは,「JavaTM 2 SDK, Standard Editionドキュメント」の「国際化」で示されるエンコーディング一覧から選択してください。

HiRDBの文字コードと対応する変換文字セットは,「表18-2 HiRDBの文字コードと対応する変換文字セット」を参照してください。

OFFを指定すると,HiRDBの文字コードに対して「表18-2 HiRDBの文字コードと対応する変換文字セット」の変換文字セットが指定されたものとして動作します。なお,HiRDBの文字コードがsjisの場合,JDBCドライバが動作するOSによって変換文字セットは次のようになります。

UNIXの場合:SJIS

Windowsの場合:MS932

また,OFF以外の指定値は大文字と小文字を区別するため,注意してください。

Java仮想マシンがサポートしていない変換文字セット名称を指定した場合は,HiRDBサーバとの接続時にSQLExceptionを投入します。

この指定を省略した場合,JDBCドライバはURL中のENCODELANGで指定した変換文字セットで文字の変換をします。

(g) SQLWARNING_IGNORE

データベースから返される警告をConnectionオブジェクトで保持するかどうかを指定します。

TRUE:警告を保持しません。

FALSE:警告を保持します。

この指定を省略した場合,URL中のSQLWARNING_IGNOREで指定した値が有効になります。TRUE又はFALSE以外を指定すると,SQLExceptionを投入します。

Connectionオブジェクトの警告保持は,このプロパティと,HiRDB_for_Java_SQLWARNING_LEVELの指定値で決定します。警告保持レベルについては,「18.4.12(2)(b) SQLWarningオブジェクトの生成条件」を参照してください。なお,このプロパティでは,指定した内容について大文字と小文字を区別しません。

(h) HIRDB_CURSOR

HiRDBがコミットした場合に,ResultSetクラスのオブジェクトを有効とするかどうか(カーソル動作モード)を指定します。

TRUE:コミットした場合でも,ResultSetクラスのオブジェクトを有効とします。

FALSE:コミットした場合,ResultSetクラスのオブジェクトを無効とします。

この指定を省略した場合,URL中のHIRDB_CURSORで指定した値が有効になります。TRUE又はFALSE以外を指定すると,SQLExceptionを投入します。

また,無効となったResultSetオブジェクトでcloseメソッド呼び出し以外の操作をした場合,SQLExceptionを投入します。

《注意事項》
このプロパティを指定するときの注意事項については,「(1)(c) HIRDB_CURSOR及びSTATEMENT_COMMIT_BEHAVIOR指定時の注意事項」を参照してください。
(i) LONGVARBINARY_ACCESS

JDBC SQLタイプLONGVARBINARY(HiRDBのデータ型であるBLOB型,及びBINARY型)のデータへのアクセス方法を指定します。

REAL:実データでアクセスします。

LOCATOR:HiRDBの位置付け子機能を使用してアクセスします。
ただし,定義長が1024バイト以下のBINARY列のアクセス時は,実データでアクセスします。

この指定を省略した場合,REALが仮定されます。

また,これらの値以外を指定すると,SQLExceptionを投入します。

《注意事項》
LONGVARBINARY_ACCESS指定時の注意事項を次に示します。
<HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZEと併せて指定した場合の注意事項>
HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZE,及びLONGVARBINARY_ACCESSの指定による,BLOB型又はBINARY型データ(HiRDBのデータ型)の取得方法の違いを次の表に示します。

表18-6 BLOB型又はBINARY型データ(HiRDBのデータ型)の取得方法の違い

実行メソッド LONGVARBINARY_ACCESSの指定値※1
REAL LOCATOR
CallableStatment.execute
ResultSet.next
BLOB型又はBINARY型データの全体を,接続先DBから取得します。 BLOB型又はBINARY型データの全体ではなく,接続先DB内のBLOB型又はBINARY型データを示す位置付け子を取得します。
CallableStatement.getBytes
CallableStatement.getString
CallableStatement.getObject
ResultSet.getBytes
ResultSet.getString
ResultSet.getObject
ResultSet.nextで取得したBLOB型又はBINARY型データを使用します。 BLOB型又はBINARY型データの全体を,接続先DBからACCESSSIZE×1024バイト単位に分割して取得します。
Blob.getBytes ResultSet.nextで取得したBLOB型又はBINARY型データから,引数で指定された範囲を切り出して取得します。 引数で指定された範囲のBLOB型又はBINARY型データを,接続先DBからACCESSSIZE×1024バイト単位に分割して取得します。
CallableStatement.getBinaryStream
ResultSet.getBinaryStream
ResultSet.getAsciiStream
ResultSet.getUnicodeStream
Blob.getBinaryStream
実行メソッドによって取得したInputStreamのreadメソッドを実行した場合,ResultSet.nextで取得したBLOB型又はBINARY型データから抽出して取得します。 実行メソッドによって取得したInputStreamのreadメソッドを実行した場合,接続先DBからデータを取得します。
Blob.length ResultSet.nextで取得したBLOB型又はBINARY型データからデータ長を取得します。 接続先DBからデータ長を取得します。
Blob.position ResultSet.nextで取得したBLOB型又はBINARY型データから,検索パターンに一致する位置を取得します。 接続先DBから,検索パターンに一致する位置を取得します。
CallableStatement.getBinaryStream,ResultSet.getBinaryStream,Blob.getBinaryStreamで取得したInputStream InputStream.available 位置付け子が示す実データの長さ以下の値を返却します。 ACCESSSIZE×1024バイト以下の値を返却します。
InputStream.skip 位置付け子が示す実データの長さ以下までの範囲で読み飛ばします。 最大ACCESSSIZE×1024バイト以下で読み飛ばします。
CallableStatement.getCharcterStream
ResultSet.getCharcterStream
getCharcterStreamによって取得したReaderのreadメソッドを実行した場合,ResultSet.nextで取得したBLOB型又はBINARY型データから抽出して取得します。 getCharcterStreamによって取得したReaderのreadメソッドを実行した場合,接続先DBからデータを取得します。

注※1
定義長が1024バイト以下のBINARY列のアクセス時は,"REAL"が指定されたものとして動作する。

(凡例)
ACCESSSIZE:HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZEの指定値を示します。
InputStream及びReader:JDBCドライバのgetBinaryStream,getAsciiStream,getCharacterStreamが返したオブジェクトのクラスを示します。

<実行性能に関する注意事項>
LONGVARBINARY_ACCESSに"LOCATOR"を指定すると,"REAL"を指定した場合に比べて性能が低下するおそれがあります。
"REAL"を指定した場合,ResultSet.next時又はCallableStatment.execute時に位置付け子を取得するために1回接続先DBにアクセスします。それに対して"LOCATOR"を指定すると,ResultSet.next時又はCallableStatment.execute時のアクセス1回に加えて,getBytesなどのデータを取得するメソッド実行時などにデータ長取得のために1回,データ取得のために1回以上接続先DBにアクセスします。
<AUTOコミットが有効な場合の注意事項>
AUTOコミットが有効な場合でも,次のタイミングではコミットを実行しません。
  • LONGVARBINARY_ACCESSに"LOCATOR"を指定し,以下に該当する出力パラメタを指定しているストアドプロシジャの実行
    ・出力パラメタが1024バイトより大きいサイズのBINARY型
    ・出力パラメタがBLOB型
  • 結果集合返却機能を使用したストアドプロシジャの実行
<トランザクション終了後のデータ操作に間する注意事項>
LONGVARBINARY_ACCESSに"LOCATOR"を指定した場合,SQLの実行結果取得(ResultSet.next,又はCallableStatement.execute)からデータ操作(Blob.getBytesやInputStream.readなど)までにトランザクションが終了すると,データ操作ができません。また,HIRDB_CURSORの指定が"TRUE"であっても,トランザクション終了後のデータ操作は実行できません。
そのため,データ操作はトランザクション終了前に実行してください。
(j) HiRDB_for_Java_SQL_IN_NUM

   ~<符号なし整数>((1~30000))《300》

実行するSQLの入力?パラメタの最大数を指定します。

この指定は,SQLの前処理時に取得する入力?パラメタ情報の数となります。実際の入力?パラメタの数がこのプロパティの指定値よりも多い場合,JDBCドライバはSQLの前処理の後にHiRDBサーバから入力?パラメタ情報を取得します。

指定値が不正な場合は,SQLExceptionを投入します。

《注意事項》
入力?パラメタのあるSQL文を実行しない場合は,1を指定することを推奨します。
(k) HiRDB_for_Java_SQL_OUT_NUM

   ~<符号なし整数>((1~30000))《300》

実行するSQLの出力項目の最大数を指定します。

この指定は,SQLの前処理時に取得する出力項目情報の数となります。実際の出力項目情報の数がこのプロパティの指定値よりも多い場合,JDBCドライバはSQLの前処理の後にHiRDBサーバから出力項目情報を取得します。

指定値が不正な場合は,SQLExceptionを投入します。

《注意事項》
出力項目のあるSQL文を実行しない場合は,1を指定することを推奨します。
(l) HiRDB_for_Java_SQLWARNING_LEVEL

SQL実行時に発生した警告情報の保持レベルを指定します。警告情報の保持レベルの詳細については,「18.4.12(2)(b) SQLWarningオブジェクトの生成条件」を参照してください。

IGNORE:警告情報をIGNOREレベルで保持します。

SQLWARN:警告情報をSQLWARNレベルで保持します。

ALLWARN:警告情報をALLWARNレベルで保持します。

この指定を省略した場合,"SQLWARN"が仮定されます。

指定値が不正な場合は,SQLExceptionを投入します。

(m) HiRDB_for_Java_ENV_VARIABLES

HiRDBクライアント環境定義を指定します。次のように指定してください。

 
  変数名=値;変数名=値; ..<省略>.. ;変数名=値
 

JDBCドライバで指定できるクライアント環境定義は,「18.10 指定できるクライアント環境定義」を参照してください。変数名にJDBCドライバで指定できないクライアント環境定義が指定された場合,指定を無視します。なお,変数名は大文字と小文字を区別するため,注意してください。

複数の設定方法を持つ接続情報の優先順位については,「18.11 接続情報の優先順位」を参照してください。

《指定例》
java.util.Properties prop;
prop=new java.util.Properties();
prop.setProperty("HiRDB_for_Java_ENV_VARIABLES",
 "PDFESHOST=FES1;PDCWAITTIME=0");
 
(n) HiRDB_for_Java_STATEMENT_COMMIT_BEHAVIOR

HiRDBがコミットした場合に,ステートメントのオブジェクトをコミット実行後も有効とするかどうかを指定します。

TRUE:コミットした場合でも,ステートメントのオブジェクトを有効とします。

FALSE:コミットした場合,ステートメントのオブジェクトを無効とします。
なお,コミット実行後に無効とするのは,ConnectionクラスのprepareStatementメソッドでプリコンパイルしたSQL文,ConnectionクラスのprepareCallメソッドでプリコンパイルしたSQL文,又はステートメントのexecuteQueryメソッドで取得したResultSetクラスのオブジェクトです。

この指定を省略した場合,URL中のSTATEMENT_COMMIT_BEHAVIORで指定した値が有効になります。

《注意事項》
このプロパティを指定するときの注意事項については,「(1)(c) HIRDB_CURSOR及びSTATEMENT_COMMIT_BEHAVIOR指定時の注意事項」を参照してください。
(o) HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZE

   ~<符号なし整数>((0~2097151))《0》(単位:キロバイト)

HiRDBサーバに対して一度に要求するJDBC SQLタイプLONGVARBINARY型データの長さを指定します。LONGVARBINARY_ACCESSでLOCATOR以外を指定している場合,この指定は無効です。

例えば,このプロパティに20を指定した場合,データベースに格納している100キロバイトのJDBC SQLタイプLONGVARBINARY型データをResultSetのgetBytesメソッドで取得しようとすると,JDBCドライバはデータを20キロバイトずつ5回に分けて取得し,返却します。0の場合はデータ全体を一度に要求します。

指定値が不正な場合は,SQLExceptionを投入します。

《注意事項》
このプロパティを指定するときの注意事項については,「(i) LONGVARBINARY_ACCESS」を参照してください。
(p) HiRDB_for_Java_MAXBINARYSIZE

   ~<符号なし整数>((0~2147483647))(単位:バイト)

JDBC SQLタイプLONGVARBINARY型データ取得時のデータサイズの上限を指定します。

JDBC SQLタイプLONGVARBINARY型データを取得する際,JDBCドライバはデータを取得するまで実際のデータ長を認識できないため,定義長分のメモリを確保します。そのため,定義長にHiRDBのデータ型であるBINARY型又はBLOB型の最大長である2,147,483,647バイトのように長大なサイズを指定した列の値を取得する場合は,その定義長である2,147,483,647バイトのメモリを確保しようとします。そのため,実行環境によってはメモリ不足が発生することがあります。

したがって,このプロパティで,実際に格納されているデータの最大長を指定してください。取得対象となるHiRDBのデータ型であるBINARY型又はBLOB型データの定義長が,このプロパティで指定したサイズよりも大きい場合,取得データをこのプロパティで指定したサイズに切り捨てます。実際にデータを切り捨てた場合,ResultSetのnextメソッド実行時に,JDBCドライバはHiRDBサーバから警告を受け取ります。受け取った警告に対しては,setLONGVARBINARY_TruncErrorの指定値に従ってSQLExceptionの投入,SQLWarningの生成(又は無視)をします。

このプロパティで上限を設定していない場合は,取得対象データの定義長を上限とします。

指定値が不正な場合は,SQLExceptionを投入します。

《注意事項》
LONGVARBINARY_ACCESSに"LOCATOR"を指定し,BLOB列,又は定義長が1024バイト超のBINARY列をアクセスする場合は,このプロパティの指定値は無効です。実際のデータ長に基づいて領域を確保し,全データを取得します。
(q) HiRDB_for_Java_LONGVARBINARY_TRUNCERROR

JDBC SQLタイプLONGVARBINARY型データ取得時に切り捨てが発生した場合に,例外を投入するかどうかを指定します。

TRUE:切り捨てが発生した場合に例外を投入します。

FALSE:切り捨てが発生した場合に例外を投入しません。

この指定を省略した場合,TRUEが仮定されます。

HiRDB_for_Java_SQLWARNING_LEVELにIGNOREを指定している場合は,FALSEが指定されたものとして動作します。

なお,JDBC SQLタイプLONGVARBINARY型データ取得時に発生する切り捨てとは,次の条件を満たしている場合を指します。

 
SQLの実行で得られるJDBC SQLタイプLONGVARBINARY型データの実際の長さ > HiRDB_for_Java_MAXBINARYSIZEで指定したデータ長
 
(r) HiRDB_for_Java_DBID

HiRDBのポート番号(PDNAMEPORTに当たる情報),又はHiRDBクライアントの環境変数グループファイル名を指定します。この指定の詳細については,「18.2.2(1)(b) URLの各項目の説明」のDBIDの説明を参照してください。

(s) HiRDB_for_Java_DBHOST

HiRDBのホスト名称を指定します。この指定の詳細については,「18.2.2(1)(b) URLの各項目の説明」のDBHOSTの説明を参照してください。

(t) HiRDB_for_Java_HiRDB_INI

HiRDB.INIファイル内に記述されているHiRDBクライアント環境変数を有効にする場合に,HiRDB.INIファイルが存在するディレクトリの絶対パスを指定します。ここで指定したディレクトリのHiRDB.iniファイルのHiRDBクライアント環境変数が有効になります。指定したディレクトリにHiRDB.iniファイルがない場合,及び内部ドライバの場合,この指定は無効になります。

また,この指定を省略した場合,URL中の項目HiRDB_INIの指定値が仮定されます。URL中に指定がない場合は,このファイルの内容を無視します。

(u) HiRDB_for_Java_BATCHEXCEPTION_BEHAVIOR

java.sql.BatchUpdateExceptionのgetUpdateCountsメソッドの戻り値に,JDBC規格に準拠した更新カウントを設定するかどうかを指定します。

なお,このプロパティの指定は,接続先がバージョン08-02以降のHiRDBの場合に有効です。

TRUE:JDBC規格に準拠した更新カウントを設定します。

FALSE:HiRDB独自の更新カウントを設定します。

このプロパティは,指定した内容について大文字と小文字を区別しません。

また,この指定を省略した場合,URL中の項目BATCHEXCEPTION_BEHAVIORの指定値が有効になります。URL中に指定がない場合は,TRUEが指定されたものとして動作します。