Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


18.7.4 データベース接続の設定

DABroker Libraryで開発するアプリケーションでは,次の項目を設定します。ただし,トレースを取得するための情報の設定は任意です。

ここでは,それぞれの設定内容について説明します。

なお,アプリケーション運用時に必要となる,アプリケーションの組み込みやインタフェースの定義については,「18.3.1(5) J2EEアプリケーション運用のための設定」を参照してください。

〈この項の構成〉

(1) 使用するJDBCドライバの設定

JDBCドライバのロードに,次のドライバ名称およびパッケージ名称を設定します。なお,DABroker Libraryで提供するJDBCドライバは,JDBC2.1の規格に準拠しています。

設定項目

設定値

ドライバ名称

JdbcDbpsvDriver

パッケージ名称

JP.co.Hitachi.soft.DBPSV_Driver

ドライバ名称およびパッケージ名称は,次のどちらかの方法で設定してください。

JDBCドライバの使用方法の詳細については,JDBC関連ドキュメントを参照してください。

(2) 接続するデータベースの設定

DABroker Libraryで開発するアプリケーションは,DABrokerに接続してデータベースに接続します。DABrokerおよびデータベースは,次のどちらかの方法で設定してください。

同時に多数のユーザが接続するシステムの場合,ドライバマネージャを使用する接続方法では,ドライバマネージャ内で待ちが発生することがあります。多数のユーザが同時に接続することが想定されるシステムでは,Driver.connectメソッドの直接呼び出しの接続方法でアプリケーションを開発することをお勧めします。

次の表に,DriverManager.getConnectionメソッド,およびDriver.connectメソッドの引数の内容を示します。

表18‒50  getConnectionメソッドおよびconnectメソッドの引数の内容

引数

設定内容

指定

String url

データベースに接続するための各種情報の設定用URL構文(「18.7.4(3) データベースに接続するための各種情報の設定」参照)

必須

String user

データベース接続のユーザID※1

必須

String password

データベース接続のパスワード※1

任意

Properties info

データベース接続のユーザID※1

(キーワード:"user")

必須

データベース接続のパスワード※1

(キーワード:"password")

任意

アプリケーションの名称※2

(キーワード:"UAPNAME")

任意

DABrokerからの受信データのバッファ長※3

(キーワード:"BUF_SIZE")

任意

トレース取得の有無

(キーワード:"JDBC_IF,SV_EVENT,TRC_NO",

18.7.4(4) トレースを取得するための情報の設定」参照)

任意

エンコード文字形態※4

(キーワード:"ENCODELANG")

任意

JDBCで取り扱うバッファ長※5

(キーワード:"ROW_SIZE")

任意

OS認証機能使用の有無※6

(キーワード:"DAB_OSAUTH")

任意

警告の保持※7

(キーワード:"SQLWARNING_IGNORE")

任意

HiRDBのカーソルの保持※8

(キーワード:"HIRDB_CURSOR")

任意

複数のパラメタセットの処理方法※9

(キーワード:"BLOCK_UPDATE")

任意

Execute Direct機能使用の有無※10

(キーワード:"EXECUTE_DIRECT_MODE")

任意

LONGVARBINARY型データアクセスモード※11

(キーワード:"LONGVARBINARY_ACCESS")

任意

DABrokerからの受信データのバッファプール数※12

(キーワード:"BUF_POOL_SIZE")

任意

注※1

データベースに接続するためのユーザID,およびパスワードは,あらかじめデータベースに登録しておいてください。

なお,ユーザIDだけを指定し,パスワードの指定を省略した場合でも,データベースに接続できます。ただし,ユーザIDの指定を省略し,パスワードだけを指定した場合は,データベースに接続できません(データベースの仕様に従っています)。

注※2

開発するアプリケーションを一意に識別するための名称です。DABrokerで取得する,アプリケーションとの通信トレースのPAPNAMEに使用されます。指定を省略した場合は,「DABroker for Java Version 2」が使用されます。

アプリケーションの名称は,30バイト以内の文字列で指定してください。31バイト以上の文字列を指定した場合,31バイト以降は切り捨てられます。

注※3

DABrokerからの受信データを格納するためのバッファ長を,キロバイト単位の数字文字列で指定します。BLOBデータなどの長大データを使用する場合,想定されるデータ長以上の値をこの項目に指定します。

指定値

1〜16000

指定を省略した場合,数字以外を指定した場合,または1より小さい値を指定した場合は64が仮定されます。16000より大きい値を指定した場合は16000が仮定されます。

値が仮定されたときは,Exceptionトレースログに値が仮定されたことを表すメッセージ(KFDJ01009-W)が出力されます。出力される契機はDriverManager.getConnectionメソッドなどでConnectionオブジェクトを取得するときです。メッセージについては,マニュアル「アプリケーションサーバ メッセージ(構築/運用/開発用)」の「KFDJ01009-W」を参照してください。

ただし,BUF_SIZEの上限が16,000キロバイトのため,BLOBデータなどの16,000キロバイトを超えるデータに一度にアクセスすることはできません。データベース種別がHiRDBの場合は,指定したバイト数を取り出すSTRING のインタフェース(BLOBデータの部分抽出機能)があるため,ここで指定したサイズ以下のサイズに分割して取り出してください。BLOBデータの部分抽出機能の詳細については,マニュアル「HiRDB UAP開発ガイド」,およびマニュアル「HiRDB SQLリファレンス」を参照してください。

注※4

Stringクラスで文字変換に使用するエンコード文字形態を指定します。

指定値

Javaがサポートしている文字エンコーディング:

MS932など,指定したエンコード文字形態を使用します。

OFF:

JavaVMがサポートしている標準エンコードを使用します。

次にDABrokerの漢字コードセットの値とJDBC内のエンコーディングの対応を示します。

DABroker(UNIX)のDAB_LANGの値,またはDABroker(Windows)のDABLANGMODEの漢字コードセットの値

JDBC内の文字エンコーディング

SJIS(シフトJIS)モード

VMの標準エンコードを使用します。

EUCモード

EUCJIS

ASCIIモード

8859_1

UTF-8モード

UTF-8

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

注※5

JDBCで取り扱うバッファ長を指定します。指定はメガバイト単位の数字文字列で指定します。利用するデータベースの1レコードの長さより大きい値を指定してください。

指定値

16〜512

指定を省略した場合,数字以外を指定した場合,または16より小さい値を指定した場合は16が仮定されます。

512より大きい値を指定した場合は512が仮定されます。

注※6

OS認証機能を使用したデータベース接続をするかどうか指定します。

指定値

TRUE :使用します。

FALSE:使用しません。

指定を省略した場合は,FALSEが仮定されます。この指定は,Oracle9i 9.2.0に接続する場合だけ有効です。それ以外のバージョンのOracleに対して指定した場合は動作を保証しません。接続するデータベースがOracle以外の場合は,指定値に関係なく,OS認証機能を使用しません。

注※7

データベースから返される警告を,Connectionクラスで保持するかどうかを指定します。

指定値

TRUE :保持しません。

FALSE:保持します。

指定を省略した場合は,FALSEが仮定されます。

注※8

HiRDBでの検索時,カーソルが複数のCommitにわたって有効かどうかを指定します。

指定値

TRUE:カーソルは保持されます。アプリケーションは,続けてFetchできます(LOCK TABLE UNTIL DISCONNECTが前提です)。

FALSE:カーソルはクローズされます。

指定を省略した場合は,FALSEが仮定されます。Oracleでは,カーソルは常に複数のCommit,またはRollbackにわたって有効です。通常,Fetch時,DABrokerにFetchデータをバッファリングするため,Commit直後のFetchでエラーが発生するとは限りません。

MetaDataを取得する場合,「TRUE」を指定してLOCK TABLE UNTIL DISCONNECTをしないで,複数のCommitにわたってFetchを行うとエラーが発生します。MetaDataを取得する場合は,「TRUE」を設定しないでください。

MetaDataを取得する場合,「FALSE」,またはデフォルトの状態でResultSetのFetch実行中にCommitを実行するとエラーが発生します。

この機能については,マニュアル「HiRDB SQLリファレンス」を参照してください。

注※9

接続データベースがHiRDBの場合,?パラメタを使用したデータベースの更新で,複数のパラメタセットを一度に処理するかどうかを指定します。

指定値

TRUE :一度に処理します。

FALSE:パラメタセットを一つずつ分割して処理します。

指定を省略した場合は,FALSEが仮定されます。この指定は,接続データベースがHiRDBのときだけ有効です。HiRDB以外のデータベースの場合は,常にパラメタセットを一つずつ分割して処理します。また,実際にパラメタセットが一度に処理されるかどうかは,DABrokerおよびHiRDBの仕様に従います。

注※10

接続データベースがHiRDBの場合,INSERT,UPDATE,DELETEなど,Statementクラスを使用したデータベースの更新でHiRDBのEXECUTE DIRECT機能を使用するかどうかを指定します。

指定値

TRUE :EXECUTE DIRECT機能を使用します。

FALSE:EXECUTE DIRECT機能を使用しません。

指定を省略した場合は,FALSEが仮定されます。この指定は,接続データベースがHiRDBのときだけ有効であり,HiRDB以外のデータベースの場合は,常にEXECUTE DIRECT機能を使用しません。

注※11

LONGVARBINARY(列属性BLOB,列属性BINARY)のデータベースのアクセス方法を指定します。

指定値

REAL:実データでアクセスします(デフォルト)。

LOCATOR:HiRDBの位置づけ子(locator)機能を使用してアクセスします。

上記以外:「REAL」を指定したものとします。なお,次のどれかの場合,「LOCATOR」を指定しても「REAL」が指定されたと見なします。

  • 接続先DBがHiRDB 以外

  • 接続先DBであるHiRDBのHiRDBサーバ,またはHiRDBクライアントライブラリのバージョンが07-00以前

LONGVARBINARY_ACCESSを指定した場合の注意事項を次に示します。

  • BUF_SIZEとLONGVARBINARY_ACCESSを指定した場合

    BUF_SIZEおよびLONGVARBINARY_ACCESSの指定によって,BLOB/BINARYデータの取得方法が変化します。BLOB/BINARYデータの取得方法については,「18.7.4(3)(b) URLに指定する各種情報」の「BLOB/BINARYデータの取得方法」を参照してください。

  • 実行性能

    LONGVARBINARY_ACCESSに「REAL」を指定すると,データベースへのアクセスは,ResultSet.nextまたはCallableStatement.execute実行時に1回行われるのに対し,「LOCATOR」を指定すると,ResultSet.nextまたはCallableStatement.execute実行時と,getBytesなどのデータを取得するメソッド実行時の2回行われます。そのため,「LOCATOR」を指定すると「REAL」を指定した場合に比べて性能が低下する場合があります。

  • AUTOコミット

    LONGVARBINARY_ACCESSが「LOCATOR」でかつ,AUTOコミットが有効の場合,ストアドプロシジャのBLOB/BINARY型出力パラメタを受け取れません(getBytesなどでデータを取得できません)。ストアドプロシジャの出力パラメタを受け取るにはAUTOコミットを無効にしてください。

  • トランザクション終了後のデータ操作

    LONGVARBINARY_ACCESSが「LOCATOR」の場合,SQLの実行結果取得(ResultSet.next,CallableStatement.execute)からデータ操作(Blob.getBytes,InputStream.readなど)までにトランザクションが終了すると,データ操作ができません。また,HIRDB_CURSORが「TRUE」であってもトランザクション終了後のデータ操作は実行できません。

    そのため,データ操作はトランザクション終了前に行ってください。

注※12

DABrokerからの受信データを格納するためのバッファプール数を設定します。指定しない場合は,0(デフォルト)が仮定されます。受信バッファプール数指定機能については,「18.5.2 受信バッファプール数の指定」を参照してください。

指定値
  • 0(デフォルト)

    受信バッファプール数指定機能を使用しません。受信バッファをすべてプールします。

  • 1〜1024

    引数に指定された値を受信バッファプール数に設定します。ただし,接続するデータベースがHiRDBまたはORACLE以外の場合は,受信バッファプール数は1〜64になります。この場合,64より大きい値を指定しても64個までしかプールできません。

  • 上記以外

    0より小さい値を指定した場合,または数字以外を指定した場合は0が仮定されます。1024より大きい値を設定した場合は1024が仮定されます。

    値が仮定されたときは,Exceptionトレースログにメッセージ(KFDJ01011-W)が出力されます。このメッセージが出力される契機はDriverManager.getConnectionメソッドなどでConnectionオブジェクトを取得するときです。メッセージについては,マニュアル「アプリケーションサーバ メッセージ(構築/運用/開発用)」の「KFDJ01011-W」を参照してください。

    ただし,SQLWarnningは作成されません。

(3) データベースに接続するための各種情報の設定

ここでは,DABrokerおよびデータベースの各種情報の設定について説明します。

(a) URLの指定形式

引数URLは,次の形式で指定します。

なお,任意に指定する項目については,[](角括弧)で示しています。

jdbc:hitachi:dbplib://DB =データベース種別[,DBID = データベースの接続情報][,DBENV = 接続先データベース定義情報][,DBHOST = データベース(HiRDB)のホスト名][,BUF_SIZE = 受信バッファ長][,ENCODELANG = 変換文字指定]
[,HIRDB_CURSOR = HiRDBカーソル動作モード]
  • 必須の指定を省略した場合は,エラー(SQLExceptionをthrowする)となります。

  • URLで指定する項目の中または項目の間でスペースを指定すると,指定値が無効となります。

(b) URLに指定する各種情報

各種情報に指定する内容を,次に示します。

  • URLでの指定項目

    表18‒51 URLでの指定項目

    各種情報

    指定内容

    データベース種別

    (DB=)

    DABrokerから接続するデータベースの種別を指定します。

    指定値:表18-52参照

    指定は必須です。

    データベースの

    接続情報

    (DBID=)

    接続するデータベース情報を指定します。

    指定値:表18-53参照

    接続先データベース定義情報

    (DBENV=)

    DABrokerの接続先データベース定義情報を次の形式で指定します。

    データベース種別名:データベース名

    データベース種別がDABroker−Database Connection Serverの場合は,必ずこの項目を指定します。それ以外のデータベース種別の場合は,ここでの指定値は無視されます。

    データベースのホスト名

    (DBHOST=)

    データベースの種別にHiRDBを指定する場合,HiRDBのホスト名を指定します。なお,HiRDB以外のデータベースを指定する場合,ここでの指定値は無視されます。

    指定値:ホスト名

    指定は任意です。

    受信バッファ長

    (BUF_SIZE=)

    DABrokerからの受信データを格納するためのバッファ長を,キロバイト単位の数字文字列で指定します。BLOBデータなどの長大データを使用する場合,想定されるデータ長以上の値をこの項目に指定します。

    指定値:1〜16000

    指定を省略した場合,数字以外を指定した場合,または1より小さい値を指定した場合は64が仮定されます。16000より大きい値を指定した場合は16000が仮定されます。

    値が仮定されたときは,Exceptionトレースログに値が仮定されたことを表すメッセージ(KFDJ01009-W)が出力されます。出力される契機はDriverManager.getConnectionメソッドなどでConnectionオブジェクトを取得するときです。メッセージについては,マニュアル「アプリケーションサーバ メッセージ(構築/運用/開発用)」の「KFDJ01009-W」を参照してください。

    ただし,BUF_SIZEの上限が16,000キロバイトのため,BLOBデータなどの16,000キロバイトを超えるデータに一度にアクセスすることはできません。データベース種別がHiRDBの場合は,指定したバイト数を取り出すSTRING のインタフェース(BLOBデータの部分抽出機能)があるため,ここで指定したサイズ以下のサイズに分割して取り出してください。BLOBデータの部分抽出機能の詳細については,マニュアル「HiRDB UAP開発ガイド」,およびマニュアル「HiRDB SQLリファレンス」を参照してください。

    受信バッファプール数(BUF_POOL_SIZE)

    DABrokerからの受信データを格納するためのバッファプール数を設定します。指定しない場合は,0(デフォルト)が仮定されます。受信バッファプール数指定機能については,「18.5.2 受信バッファプール数の指定」を参照してください。

    指定値:

    0(デフォルト)

    受信バッファプール数指定機能を使用しません。受信バッファをすべてプールします。

    1〜1024

    引数に指定された値を受信バッファプール数に設定します。ただし,接続するデータベースがHiRDBまたはORACLE以外の場合は,受信バッファプール数は1〜64になります。この場合,64より大きい値を指定しても64個までしかプールできません。

    上記以外

    0より小さい値を指定した場合,または数字以外を指定した場合は0が仮定されます。1024より大きい値を設定した場合は1024が仮定されます。

    値が仮定されたときは,Exceptionトレースログにメッセージ(KFDJ01011-W)が出力されます。このメッセージが出力される契機はDriverManager.getConnectionメソッドなどでConnectionオブジェクトを取得するときです。メッセージについては,マニュアル「アプリケーションサーバ メッセージ(構築/運用/開発用)」の「KFDJ01011-W」を参照してください。

    ただし,SQLWarnningは作成されません。

    変換文字指定

    (ENCODELANG=)

    Stringクラスで文字変換に使用するエンコード文字形態を指定します。

    指定値:Javaがサポートしている文字エンコーディング(MS932など),またはOFF(JavaVMがサポートしている標準エンコードを使用します)

    指定は任意です。指定を省略した場合,OFFが仮定されます。

    HiRDBカーソル動作モード

    (HIRDB_CURSOR=)

    HiRDBでの検索時,カーソルが複数のCommitにわたって有効かどうかを指定します。

    指定値:

    TRUE

    カーソルは保持されます。アプリケーションは,続けてFetchできます(LOCK TABLE UNTIL DISCONNECTが前提です)。

    FALSE

    カーソルはクローズされます。

    指定を省略した場合は,FALSEが仮定されます。Oracleでは,カーソルは常に複数のCommit,またはRollbackにわたって有効です。通常,Fetch時,DABrokerにFetchデータをバッファリングするため,Commit直後のFetchでエラーが発生するとは限りません。

    MetaDataを取得する場合,「TRUE」を指定してLOCK TABLE UNTIL DISCONNECTをしないで,複数のCommitにわたってFetchを行うとエラーが発生します。MetaDataを取得する場合は,「TRUE」を設定しないでください。

    MetaDataを取得する場合,「FALSE」またはデフォルトの状態で,ResultSetのFetch実行中にCommitを実行するとエラーが発生します。

    接続データベースがHiRDBで検索SQL(SELECT文)に「UNTIL DISCONNECT」を記述した場合は,「TRUE」を指定するか,DataSourceクラスのsetHiRDBCursorModeメソッドで「true」を設定してください。設定しない場合,Commitをわたった検索中のResultSetクラスオブジェクトに対してcloseメソッドを実行してもカーソルをクローズしません。

    この機能を使用する場合,マニュアル「HiRDB SQLリファレンス」を参照してください。

  • データベースの指定値

    表18‒52 データベース種別の指定値

    データベース種別

    データベース種別の指定値

    Oracle

    oracleまたはORACLE

    Oracle8i

    oracle8iまたはORACLE8I

    HiRDB

    hirdbまたはHIRDB

    ・指定値の文字列は,大文字,小文字のどちらでもかまいません。

    ・「=」の前後に,空白またはタブ文字を指定した場合は,エラー(SQLExceptionをthrowする)となります。

    注※

    データベース種別にOracle8iの指定値を指定して,DABroker環境設定の「使用するOracleのバージョン」にOracle9iを指定した場合はOracle9iに,Oracle10gを指定した場合はOracle10gに接続できます。

    表18‒53 データベースの接続情報の指定値

    データベース種別

    データベースの接続情報の指定内容

    指定の省略可否

    Oracle

    SQL*Netの接続文字列※1

    任意※1

    Oracle8i

    HiRDB

    HiRDBのシステムポート番号※1※2

    任意※1

    ・「=」の前後に,空白またはタブ文字を指定した場合は,エラー(SQLExceptionをthrowする)となります。

    ・「DB=データベース種別」との区切りに「,(コンマ)」を使用します。

    データベースの接続情報の指定値「,(コンマ)」を2回以上指定した場合は,最後の「,(コンマ)」以降がデータベースの接続情報の指定となります。

    ・データの区切りに「,(コンマ)」以外のキーを使用した場合は,データベース接続情報の指定は無効となります。

    注※1

    指定を省略する場合は,DABrokerの動作環境定義ファイルでの指定が有効になります。

    注※2

    HiRDBクライアントの環境変数グループ名を指定する場合は,グループ名の先頭に@を付加します。

    (例1)

    Windowsの場合

    HiRDBクライアントの環境変数グループ名がHiRDB_ENV_GROUPのときは,次のように指定します。

    DBID=@DABENVGRP=HiRDB_ENV_GROUP

    (例2)

    UNIXの場合

    HiRDBクライアントの環境変数グループ名のパスが/HiRDB_P/Client/HiRDB.iniのときは,次のように指定します。

    DBID=@DABENVGRP=/HiRDB_P/Client/HiRDB.ini

    DBID=@DABENVGRP=<環境変数グループ名>を指定する場合は,指定内容に半角の空白を含めないでください。指定内容が次に示す例のどれかに該当する場合,DBIDは正しく設定されません。

    (例)

    DBID=@DABENVGRP=<環境変数グループ名>の指定内容に半角スペースを含みます。OSはWindowsで,環境変数グループ名はHiRDB_ENV_GROUPとします。

    半角の空白を△で示します。

    DBID△=@DABENVGRP=HiRDB_ENV_GROUP

    DBID=△@DABENVGRP=HiRDB_ENV_GROUP

    DBID=@△DABENVGRP=HiRDB_ENV_GROUP

    DBID=@DABENVGRP△=HiRDB_ENV_GROUP

    DBID=@DABENVGRP=△HiRDB_ENV_GROUP

    DBID=@DABENVGRP=HiRDB_ENV_GROUP△

  • BLOB/BINARYデータの取得方法

    LONGVARBINARY_ACCESSを指定した場合の各メソッド実行時の動作を次に示します。

    接続先データベースにHiRDBを指定した場合

    表18‒54 BLOB/BINARYデータの取得方法(1)

    指定値

    CallableStatement.execute

    および

    ResultSet.next

    CallableStatement.getBytes

    および

    ResultSet.getBytes

    Blob.getBytes

    REAL

    BLOB/BINARYデータの全体を接続先データベースから取得します。

    ResultSet.nextで取得したBLOB/BINARYデータを使用します。

    ResultSet.nextで取得したBLOB/BINARYデータから,引数で指定された範囲を切り出して取得します。

    LOCATOR

    BLOB/BINARYデータの全体ではなく,接続先データベース内のBLOB/BINARYデータを示すロケータを取得します。

    BLOB/BINARYデータの全体を接続先データベースからBUF_SIZE×1,024バイト単位に分割して取得します。

    引数で指定された範囲のBLOB/BINARYデータを接続先データベースからBUF_SIZE×1,024バイト単位に分割して取得します。

    表18‒55 BLOB/BINARYデータの取得方法(2)

    指定値

    CallableStatement.getBinaryStream

    および

    ResultSet.getBinaryStreamBlob.getBinaryStream

    Blob.length

    Blob.position

    REAL

    getBinaryStreamによって取得したInputStreamのreadメソッドを実行した場合,ResultSet.nextで取得したBLOB/BINARYデータから抽出して取得します。

    ResultSet.nextメソッドで取得したBLOB/BINARYデータから,データ長を取得します。

    ResultSet.nextで取得したBLOB/BINARYデータから,検索パターンに一致する位置を取得します。

    LOCATOR

    getBinaryStreamによって取得したInputStreamのreadメソッドを実行した場合,接続先データベースからデータを取得します。

    接続先データベースからデータ長を取得します。

    接続先データベースから,検索パターンに一致する位置を取得します。

    表18‒56 BLOB/BINARYデータの取得方法(3)

    指定値

    InputStream.available

    InputStream.skip

    REAL

    ロケータの示す実データの長さ以下の値を返します。

    ロケータの示す実データの長さ以下の値を返します。

    LOCATOR

    BUF_SIZE×1,024バイト以下の値を返します。

    BUF_SIZE×1,024バイト以下の値を返します。

    注※

    CallableStatement.getBinaryStream,ResultSet.getBinaryStream,またはBlob.getBinaryStreamで取得したInputStreamです。

    接続先データベースにOracleを指定した場合

    表18‒57 BLOB/BINARYデータの取得方法(4)

    指定値

    CallableStatement.execute

    および

    ResultSet.next

    CallableStatement.getBytes

    および

    ResultSet.getBytes

    Blob.getBytes

    REAL

    BLOB/BINARYデータの全体を接続先データベースからBUF_SIZE ×1,024バイト単位に分割して取得します。

    ResultSet.nextで取得したBLOB/BINARYデータを使用します。

    ResultSet.nextで取得したBLOB/BINARYデータから,引数で指定された範囲を切り出して取得します。

    LOCATOR

    表18‒58 BLOB/BINARYデータの取得方法(5)

    指定値

    CallableStatement.getBinaryStream

    および

    ResultSet.getBinaryStreamBlob.getBinaryStream

    Blob.length

    Blob.position

    REAL

    ResultSet.nextで取得したBLOB/BINARYデータを使用します。

    ResultSet.nextで取得したBLOB/BINARYデータから,データ長を取得します。

    ResultSet.nextで取得したBLOB/BINARYデータから,検索パターンに一致する位置を取得します。

    LOCATOR

    表18‒59 BLOB/BINARYデータの取得方法(6)

    指定値

    InputStream.available

    InputStream.skip

    REAL

    ロケータの示す実データの長さ以下の値を返します。

    ロケータの示す実データの長さ以下の値を返します。

    LOCATOR

    注※

    CallableStatement.getBinaryStream,ResultSet.getBinaryStream,またはBlob.getBinaryStreamで取得したInputStreamです。

(4) トレースを取得するための情報の設定

JDBCドライバでは,次のトレースを取得できます。トレースの出力内容については,「14. 性能解析トレース」を参照してください。

(a) トレースの取得および出力ストリームの設定方法

次の項目を指定して,トレースの取得を設定してください。次の項目が指定されていない場合は,トレースを取得できません。

  1. DriverManager.getConnectionメソッドまたはDriver.connectメソッドの引数Properties infoでのトレース取得有無の指定

  2. DriverManager.setLogWriterメソッドでの,トレースの出力ストリームの指定

1.のProperties infoで指定する値を次の表に示します。1.のメソッドと引数については,「18.7.4(3) データベースに接続するための各種情報の設定」を参照してください。

表18‒60  トレースを取得するための指定値

トレースの種類

およびトレース関連項目

Properties infoの

キーワード

Properties infoの値

JDBCインタフェースメソッド

トレース※1

JDBC_IF

指定値

ON:トレースを取得する

OFF:トレースを取得しない

DABrokerとのイベント

トレース※1

SV_EVENT

指定値

ON:トレースを取得する

OFF:トレースを取得しない

各トレースのエントリ数※2

TRC_NO

デフォルト値

500(エントリ)

指定範囲

10〜1000(エントリ)

注※1

ONまたはOFF以外の値を指定した場合は「トレースを取得しない」設定となります。

注※2

数字以外の値を指定した場合は「トレースを取得しない」設定となります。

(b) 指定したストリームへの出力タイミング

トレースは,各トレースのエントリ数分,JDBCドライバで保持されます。

保持されたトレースは,次のタイミングでDriverManager.setLogWriterメソッドで指定した出力ストリームに出力されます。

  • Connection.Closeメソッドの呼び出し(正常終了時)

  • エラー発生時(SQLExceptionのthrow時)

(c) JDBCドライバでのトレース取得時の注意事項

  • JDBCドライバは,JDBCドライバ内でトレース情報の数がエントリ数を超えた場合は,トレースの古い順にトレース情報を上書きします。

  • JDBCインタフェースメソッドトレース(キーワード:JDBC_IF)は,EntryおよびReturnでそれぞれ1エントリのトレース領域を使用します。

  • DABrokerとのイベントトレース(キーワード:SV_EVENT)は,送信または受信イベントでそれぞれ1エントリのトレース領域を使用します。