ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverタイプ4 JDBCドライバ
11g リリース1(10.3.5)
B61001-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストヘ移動
製品
目次へ移動
目次

前
 
次
 

3 DB2ドライバ

次の項では、DB2用のOracleタイプ4 JDBCドライバの構成方法と使用方法について説明します。

DB2ドライバ・クラス

Oracleタイプ4 JDBC DB2ドライバのドライバ・クラスは次のとおりです。

XA: weblogic.jdbcx.db2.DB2DataSource
Non-XA: weblogic.jdbc.db2.DB2Driver

WebLogic ServerドメインにJDBCデータ・ソースを構成する場合に、これらのドライバ・クラスを使用します。

J2EEコネクタ・アーキテクチャ・リソース・アダプタ・クラス

Informixリソース・アダプタ用のManagedConnectionFactoryクラスは、次のとおりです。

com.weblogic.resource.spi.InformixManagedConnectionFactory

DB2 URL

DB2ドライバの接続URLの形式は次のとおりです。

jdbc:weblogic:db2://hostname:port[;property=value[;...]]

説明:

例:

Linux、UNIX、Windows上のDB2 UDB

jdbc:weblogic:db2://server1:50000;DatabaseName=jdbc;User=test;Password=secret

z/OSおよびiSeries上のDB2 UDB

jdbc:weblogic:db2://server1:446;LocationName=Sample;User=test;Password=secret

DB2接続プロパティ

表3-1では、DB2ドライバでサポートされるJDBC接続プロパティを示し、各プロパティについて説明します。WebLogic ServerドメインのJDBCデータ・ソースの構成でこれらの接続プロパティを使用できます。


注意:

すべての接続プロパティ名で大文字と小文字は区別されません。たとえば、Passwordはpasswordと同じです。必須のプロパティかどうかが記載されています。各接続プロパティで示されているデータ型は、JDBCデータ・ソースのプロパティ値に使用されるJavaデータ型です。

プロパティを指定するには、JDBCデータ・ソースの構成で、property=valueの形式を使用します。

表3-1 DB2接続プロパティ

プロパティ 説明

AccountingInfo

データベースに格納する会計情報。この値で、データベースのCURRENT CLIENT_ACCTNGレジスタ(Linux/UNIX/Windows上のDB2)またはCLIENT ACCTNGレジスタ(z/OS上のDB2およびiSeries上のDB2)が設定されます。この値は、データベースの管理/監視用の値です。

データ型: String

有効な値: string(ここで、stringは会計情報です)。デフォルトは、空の文字列です。

AddToCreateTable

すべてのCREATE文の末尾に追加される文字列。このフィールドは主に「in database」句を追加する必要のあるユーザー用。

データ型: String

有効な値: string(ここで、stringは、すべてのCREATE文に追加される一連の文字です)。

AllowImplicitResultSetCloseForXA

Trueまたはfalse。DB2には、結果セットのすべての行がフェッチされたときに結果セットを自動的に閉じるメカニズムがあります。このメカニズムによりデータベースへのラウンド・トリップ数が減少するため、アプリケーションのパフォーマンス向上が実現されています。WebLogic DB2ドライバは、デフォルトでこのメカニズムを使用しています。

注意: このメカニズムには問題があることが確認されています。問題を回避するには、データ・ソースの構成のプロパティにAllowImplicitResultSetCloseForXA=falseを追加する必要があります。

デフォルトはtrueです。

AlternateID

未修飾のSQL識別子が使用するデフォルトのDB2スキーマを指定値に設定します。

Linux/UNIX/Windows上のDB2およびiSeries上のDB2の場合、このプロパティで、DB2 CURRENT SCHEMA特殊レジスタ内の値が設定されます。

z/OS上のDB2場合、このプロパティで、DB2 CURRENT SQLID特殊レジスタ内の値が設定されます。

有効な値:

  • Linux/UNIX/Windows上のDB2およびiSeries上のDB2の場合、有効なDB2スキーマ名。データベース・サーバーでは、この値が有効になっていません。

  • z/OS上のDB2の場合、データベース・サーバーでこの値が有効になっています。CURRENT SQLIDレジスタの有効な値は、IBMドキュメントを参照してください。

AlternateServers

選択したフェイルオーバー・メソッドに基づいて、新しい接続または失った接続をフェイルオーバーするのに使用する代替データベース・サーバーのリスト。フェイルオーバー・メソッドの選択については、FailoverModeプロパティを参照してください。

データ型: String

有効な値:

(servername1[:port1][;property=value[;...]

,servername2[:port2][;property=value[;...]]]...]

各代替サーバー・エントリのサーバー名(servername1servername2など)が必要です。各代替サーバー・エントリのポート番号(port1port2など)および接続プロパティ(property=value)はオプションです。ポートが指定されていない場合、プライマリ・サーバーのポート番号が使用されます。プライマリ・サーバーのポート番号が指定されていない場合、2003のデフォルトのポート番号が使用されます。オプションの接続プロパティはDatabaseNameおよびInformixServerです。

例: 次のURLでは、server2およびserver3の代替サーバー・エントリが含まれます。代替サーバー・エントリには、オプションのDatabaseNameプロパティが含まれます。

jdbc:weblogic:db2://server1:50000;DatabaseName=TEST; User=test;Password=secret;AlternateServers=(server2:50000; DatabaseName=TEST2,server3:50000;DatabaseName=TEST3)

デフォルト: なし

ApplicationName

データベースに格納されるアプリケーションの名前。この値で、データベースのCURRENT CLIENT_APPLNAMEレジスタ(Linux/UNIX/Windows上のDB2)またはCLIENT APPLNAMEレジスタ(z/OS上のDB2およびiSeries上のDB2)が設定されます。また、Linux/UNIX/Windows上のDB2 V9.1以上の場合、この値で、SYSIBMADM.APPLICATIONS表のAPPL_NAME値が設定されます。この値は、データベースの管理/監視用の値です。

有効な値: string(ここで、stringはアプリケーション名です)。データベースでは、値の文字長を制限できます。値が制限を超えていると、ドライバによって切り捨てられます。

データ型: String

デフォルトは空の文字列です。

AuthenticationMethod

ドライバが接続を確立する際に使用する認証方法を指定します。

有効な値: KerberosencryptedUIDPasswordencryptedPasswordclearTextまたはclient

kerberosの場合、ドライバはKerberos認証を使用します。ドライバでは、指定されたあらゆるユーザーIDまたはパスワードが無視されます。

encryptedUIDPasswordに設定すると、ユーザーID/パスワード認証が使用されます。ドライバからDB2サーバーに、認証に使用する暗号化されたユーザーIDとパスワードが送信されます。ユーザーIDとパスワードが指定されていない場合は、ドライバから例外がスローされます。この値を設定すると、ドライバでデータを暗号化することも可能になります(詳細はEncryptionMethodプロパティを参照してください)。

encryptedPasswordに設定すると、ユーザーID/パスワード認証が使用されます。ドライバからDB2サーバーに、認証に使用するクリア・テキストのユーザーIDと暗号化されたパスワードが送信されます。ユーザーIDとパスワードが指定されていない場合は、ドライバから例外がスローされます。この値を設定すると、ドライバでデータを暗号化することも可能になります(詳細はEncryptionMethodプロパティを参照してください)。

clearTextに設定すると(デフォルト値)、ユーザーID/パスワード認証が使用されます。ドライバからDB2サーバーに、認証に使用するユーザーIDとパスワードがクリア・テキストで送信されます。ユーザーIDとパスワードが指定されていない場合は、ドライバから例外がスローされます。この値を設定すると、ドライバでデータを暗号化することも可能になります(詳細はEncryptionMethodプロパティを参照してください)。

clientの場合、ドライバで、クライアントの認証が使用されます。クライアントでのみ認証が実施され、DB2サーバーによる追加の認証は提供されません。ドライバでは、指定されたあらゆるユーザーIDまたはパスワードが無視されます。

UserプロパティはユーザーIDを提供します。Passwordプロパティはパスワードを提供します。

DB2サーバーでサポートされていない認証方式を指定すると、接続に失敗して例外がスローされます。

デフォルトはclearTextです。

DB2ドライバによる認証の使用方法については、「認証」を参照してください。

BatchPerformanceWorkaround

DB2ドライバでは、ネイティブのDB2バッチ・メカニズムが使用されます。このプロパティは、データ変換を容易にするために特定の制限を行うかどうかを決定します。

有効な値: true | false

  • falseに設定すると、PreparedStatementを使用して実行されるバッチ処理のパラメータ値の設定に使用するメソッドは、パラメータが関連付けられる列のデータベース・データ型に一致する必要があります。これは、DB2サーバーが暗黙的なデータ変換を実行しないためであります。

  • trueに設定すると、制限が削除されます。しかし、パラメータ・セットが、指定された順序で実行されない場合があります。

デフォルトはfalseです。

詳細は、「バッチ挿入とバッチ更新」を参照してください。

注意: DB2用のOracleタイプ4 JDBCドライバを使用して、JMS JDBCストアとして使用されるデータ・ソースの場合は、BatchPerformanceWorkaroundプロパティをtrueに設定する必要があります。

BulkLoadBatchSize

データをバルク・ロードするときにデータベースに一度にロードする行数に関して、ドライバに提案します。少数のネットワーク・ラウンド・トリップが必要となるため、ドライバから一度にロードされる行数を増やすことでパフォーマンスが改善されます。ロードされる行数を増やすと、ドライバからクライアントのより多くのメモリーが消費される場合があります。

注意:

  • このプロパティでは、バッチ挿入のための一括ロードまたはDDBulkLoadオブジェクトの使用のどちらを一括ロード方法として使用するかにかかわらず、行数を提案します。

  • DDBulkObject.setBatchSize()メソッドでは、このプロパティで設定された値がオーバーライドされます。

有効な値: x(ここで、xは正の整数です)。デフォルトは2048です。

データ型: long

CatalogIncludesSynonyms

DatabaseMetaData.getColumns()メソッドから返される結果セットにシノニムが含まれるかどうかを指定します。

データ型: Trueまたはfalse

true (デフォルト)に設定すると、DatabaseMetaData.getColumns()メソッドから返される結果セットにシノニムが含まれます。

falseに設定すると、DatabaseMetaData.getColumns()メソッドから返される結果セットにシノニムは含まれません。

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

デフォルトはtrueです。

CatalogOptions

アプリケーションでDatabaseMetaDataメソッドが呼び出されたとき、結果セットにどのメタデータ情報が含まれるかを指定します。

有効な値: 0 | 2 | 6。デフォルトは、2です。

データ型: int

0の場合、結果セットにシノニムが含まれません。

2の場合、結果セットに、次のDatabaseMetaDataメソッドで戻されたシノニムが含まれます:getColumns()getExportedKeys()getFunctionColumns()getFunctions()getImportedKeys()getIndexInfo()getPrimaryKeys()getProcedureColumns()およびgetProcedures()

6の場合、行の情報をデータベース・カタログに問い合せるかわりにResultSetMetaDataを使用して、getColumns()呼出しをエミュレートするヒントをドライバに提供します。結果セットにシノニムが含まれます。getColumns()を使用したSQL文の作成に比べて、エミュレーションによるSQL文の作成は簡単であるため、エミュレーションを使用するとパフォーマンスが向上されます。getColumns()の引数が単一表に評価される必要があります。そうしない場合、たとえば、これはワイルドカードまたはnull値であるため、ドライバが、getColumns()呼出しのデフォルト動作に戻ります。

CatalogSchema

カタログ関数に使用するDB2スキーマ。値は有効なDB2スキーマの名前であることが必要です。デフォルトは、DB2データベースのプラットフォームによって異なります。

有効な値: string(ここで、stringは、有効なDB2スキーマ名です)。デフォルトは、SYSCAT(Linux/UNIX/Windows上のDB2)、SYSIBM(z/OS上のDB2)またはQSYS2(iSeries上のDB2)です。

データ型: String

パフォーマンスを向上させるため、システム・カタログ表のビューをデフォルト・カタログ・スキーマ以外のスキーマで作成できます。このプロパティにカタログ表のビューを含むスキーマを指定すると、ドライバでそれらのビューを使用できます。カタログ・メソッドを正しく機能させるには、特定のカタログ表のビューが指定したスキーマに存在している必要があります。必要となるビューは、使用しているDB2データベースによって異なります。必要となるカタログ表のビューについては、「カタログ・メソッドのデフォルト以外のスキーマ」を参照してください。

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

CharsetFor65535

CCSID 65535で定義されている文字列(CharVarcharLongvarcharChar for Bit DataVarchar for Bit Data、Longvarchar for Bit Data)にビット・データとして格納されている文字データの変換に使用するコード・ページ。CCSID 65535で定義されている列を使用してデータベースから取得したビット・データとして格納されているすべての文字データは、指定したコード・ページを使用して変換されます。値としては、使用しているJVMでサポートされている有効なコード・ページの名前(たとえばCharsetFor65535=CP950)を含む文字列を指定する必要があります。CCSID 65535で定義されている文字列にデータを書き込む際は、このプロパティはまったく影響しません。

ClientHostName

データベースに格納されるクライアント・マシンのホスト名。この値で、データベースのCURRENT CLIENT_WRKSTNNAMEレジスタ(Linux/UNIX/Windows上のDB2)またはCLIENT WRKSTNNAMEレジスタ(z/OS上のDB2およびiSeries上のDB2)が設定されます。この値は、データベースの管理および監視のために使用されます。

有効な値: string(ここで、stringはクライアント・マシンのホスト名です)。データベースでは、このプロパティで設定された値の文字長が制限できます。値が制限を超えていると、ドライバによって切り捨てられます。デフォルトは空の文字列です。

データ型: String

ClientUser

データベースに格納されるユーザーID。このプロパティで、データベースのCURRENT CLIENT_USERIDレジスタ(Linux/UNIX/Windows上のDB2)およびCLIENT USERIDレジスタ(z/OS上のDB2およびiSeries上のDB2)が設定されます。この値は、データベースの管理および監視のために使用されます。

有効な値: string(ここで、stringは、有効なユーザーIDです)。データベースでは、このプロパティで設定された値の文字長が制限できます。値が制限を超えていると、ドライバによって切り捨てられます。デフォルトは空の文字列です。

データ型: String

CodePageOverride

CharacterClobデータの変換に使用するコード・ページ。指定したコード・ページによって、デフォルトのデータベース・コード・ページまたは列照合がオーバーライドされます。データベースとやり取り(取得および書込み)するすべてのCharacterデータおよびClobデータは、指定したコード・ページを使用して変換されます。値としては、使用しているJVMでサポートされている有効なコード・ページの名前(たとえばCodePageOverride=CP950)を含む文字列を指定する必要があります。

データ型: String

デフォルトで、Characterデータの変換に使用するコード・ページが自動的に識別されます。このプロパティは、ドライバのデフォルト動作を変更する必要がある場合にのみ使用します。

CollectionId (非推奨)

このプロパティは下位互換性を確保するため存続していますが、DB2パッケージをバインドするコレクションまたはライブラリ(パッケージのグループ)の名前を指定する場合は、代わりにPackageCollectionを使用することを推奨します。

ConnectionRetryCount

正常な接続を確立できるまで、ドライバで接続を再試行する回数。

有効な値: 0 | x(ここで、xは、いずれかの正の整数です)。

データ型: int

0に設定すると、ドライバからの接続の最初の試行が失敗した場合でも、ドライバは接続の再試行をしません。

Xに設定すると、ドライバで、指定された回数まで接続が再試行されます。接続が再試行中に確立されないと、ドライバは、最後に接続使用としたデータベース・サーバーで生成された例外を戻します。

再試行の待機間隔は、ConnectionRetryDelayプロパティで秒単位で指定します。

デフォルトは5です。

ConnectionRetryDelay

ConnectionRetryCountが正の整数に設定されている場合に、ドライバがそれぞれの接続の再試行の間に待機する秒数。

有効な値: 0 | x(ここで、xは、秒数です)。

0に設定すると、ドライバでは再試行の間に遅延がありません。

xの場合、ドライバは、指定された秒数、接続再試行間に待機します。

デフォルトは1です。

ConvertNull

データ変換におけるnull値の処理方法を制御します。

有効な値: 0 | 1

データ型: int

0の場合、列の値がnullであると、ドライバでデータ型がチェックされません。これによって、リクエストされた型と列型の間の変換が定義されていない場合でもnull値を返すことが可能になります。

1(デフォルト)の場合、データが格納される表の列のデータ型のためにリクエストしたデータ型がドライバからチェックされます。リクエストした型および列の型間の変換が定義されていない場合、ドライバから、列の値のデータ型にかかわらず、「サポートされないデータ変換」例外が生成されます。

CreateDefaultPackage

要求されたDB2パッケージがドライバによって自動的に作成されるかどうかを指定します。

有効な値: true | false

trueに設定すると、要求されたDB2パッケージがすでに存在する場合でも自動的に作成されます。既存のDB2パッケージは、新しいパッケージで置き換えられます。

false(デフォルト)に設定すると、ドライバで、要求されたDB2パッケージが存在するかどうかが識別されます。存在しない場合は、ドライバによって自動的に作成されます。

Linux/UNIX/Windows上のDB2では、このプロパティをReplacePackageプロパティと組み合わせて使用する必要があります。

z/OSおよびiSeries上のDB2では、PackageCollectionプロパティに指定したコレクションまたはライブラリにDB2パッケージが作成されます。

DB2パッケージの作成の詳細は、「DB2パッケージの作成」を参照してください。

CurrentFunctionPath

動的にプリペアドSQL文内のデータ型参照および非修飾の関数名を解決するために使用するDB2スキーマ名のリスト。これは、CALL文に指定された非修飾のストアド・プロシージャ名を解決するためにも使用されます。このプロパティで、データベースのCURRENT PATHレジスタが設定されます。

有効な値: schema_name[[,schema_name]...]。ここでは、schema_nameは、有効なDB2スキーマ名です。

データ型: String

デフォルトはnullです。

データベース

DatabaseNameプロパティの別名。

DatabaseName (必須)

接続先のデータベースの名前。このプロパティは、Linux/UNIX/Windows上のDB2のみでサポートされます。

注意: このプロパティは、z/OSまたはiSeries上のDB2に接続する場合の、LocationNameの別名です。

有効な値: string(ここで、stringは、DB2データベース名です)。デフォルトはNoneです。

データ型: StringAlias: Databaseプロパティ。DatabaseおよびDatabaseNameの両方のプロパティが接続URLに指定されている場合は、接続URL内で最後に指定されているプロパティが使用されます。たとえば、アプリケーションで次のようなURLを指定した場合、DatabaseName接続プロパティの値ではなく、Database接続プロパティの値が使用されます。

jdbc:weblogic:db2://server1:50000;DatabaseName=jdbc; Database=acct;User=test;Password=secret

関連項目: 「Database接続プロパティ」

DynamicSections

DB2ドライバが、どの時点においても開くことのできるプリペアド文の最大数。値は正の整数であることが必要です。

デフォルトは200です。

EnableBulkLoad

ドライバから、バッチ挿入のためにバッチ・メカニズムのかわりにデータベース内のネイティブな一括ロード・プロトコルが使用されるかどうかを指定します。一括ロードは通常データベースが行うデータの解析処理をバイパスするため、バッチ操作ではよりパフォーマンスが向上します。このプロパティでは、バッチ挿入のある既存のアプリケーションで、アプリケーション・コードを変更しないで一括ロードが使用できます。

有効な値: true | false

trueの場合、ドライバから、バッチ挿入のためにネイティブな一括ロード・プロトコルが使用されます。BatchPerformanceWorkaroundのすべての値セットが無視されます。

falseの場合、ドライバから、バッチ挿入のためにバッチ・メカニズムが使用されます。

データ型: boolean

デフォルトはfalseです。

EnableCancelTimeout

クエリがタイムアウトしたためドライバから送信された取消しリクエストに、取り消す文と同じ問合せタイムアウト値を適用するかどうかを指定します。

有効な値: true | false

データ型: boolean

trueの場合、取消しリクエストは、取消し文のために設定した値と同じタイムアウト値(秒単位)を使用してタイムアウトします。たとえば、ある文でアプリケーションがStatement.setQueryTimeout(5)を呼び出し、タイムアウトが経過したためその文が取り消された場合、ドライバから送信される取消リクエストも実行時間が5秒を超えるとタイムアウトします。サーバー・ダウンなどの理由で取消しリクエストがタイムアウトすると、取消しリクエストがタイムアウトしたことを示す例外がドライバからスローされ、その接続はそれ以降無効となります。

false (デフォルト)に設定すると、取消しリクエストはタイムアウトしません。

EncryptionMethod

ドライバとデータベース・サーバーの間でネットワークを介してデータを転送するときに、データが暗号化されるか復号化されるかを指定します。

注意: ドライバがSSL用に構成されているのにデータベース・サーバーでSSLがサポートされていないと、接続のハングが発生する可能性があります。SSLをサポートしていないサーバーに接続した場合に発生する問題を回避するには、LoginTimeoutプロパティを使用してログイン・タイムアウトを設定します。

有効な値: noEncryption | DBEncryption | requestDBEncryption| SSL

noEncryptionに設定すると、データは暗号化/復号化されません。

DBEncryptionに設定すると、データベース・サーバーでDES暗号化がサポートされている場合は、データがDESで暗号化されます。データベース・サーバーでDES暗号化がサポートされていない場合は、接続に失敗して例外がスローされます。AuthenticationMethodプロパティは、clearTextencryptedPasswordまたはencryptedUIDPasswordの値に設定される必要があります。この値は、iSeries上のDB2でサポートされません。

requestDBEncryptionに設定すると、データベース・サーバーでDES暗号化がサポートされている場合は、データがDESで暗号化されます。データベース・サーバーでDES暗号化がサポートされていない場合は、ドライバから暗号化なしの接続の確立が試行されます。AuthenticationMethodプロパティは、clearTextencryptedPasswordまたはencryptedUIDPasswordの値に設定される必要があります。この値は、iSeries上のDB2でサポートされません。

SSLに設定すると、データがSSLで暗号化されます。データベース・サーバーでSSLがサポートされていない場合は、接続に失敗して例外がスローされます。SSLを有効にすると、次のプロパティも適用されます。

  • HostNameInCertificate

  • KeyStore (SSLクライアント認証用)

  • KeyStore (SSLクライアント認証用)

  • KeyStorePassword (SSLクライアント認証用)

  • KeyPassword (SSLクライアント認証用)

  • TrustStore

  • TrustStorePassword

  • ValidateServerCertificate

データ型: String

デフォルトはnoEncryptionです。

FailoverGranularity

接続が失われたときに接続の再確立の試行中に例外が発生した場合、ドライバがプロセスを続行するか全体のフェイルオーバー・プロセスに失敗するかを指定します。FailoverMode=connectの場合、このプロパティは無視されます。

有効な値: nonAtomic | atomic | atomicWithRepositioning | disableIntegrityCheck

nonAtomicの場合、ドライバでフェイルオーバー・プロセスが続行され、例外が発生される文にこの例外がポストされます。

atomicの場合、例外が接続状態のリストアの結果として発生した場合、ドライバは全体のフェイルオーバー・プロセスに失敗します。例外が、進行中の作業状態のリストアの結果として発生した場合、ドライバでフェイルオーバー・プロセスが続行されるがSelect文が再発行される必要があることを示す例外警告が発生します。

atomicWithRepositioningの場合、いずれかの例外が接続の状態または進行中の作業の状態のリストアの結果として発生した場合、ドライバは全体のフェイルオーバー・プロセスに失敗します。

disableIntegrityCheckの場合、フェイルオーバー・プロセスのときにリストアされた行が元の行に一致することがドライバから確認されません。この値はFailoverMode=selectの場合のみ適用できます。

データ型: String

デフォルトはnonAtomicです。

FailoverMode

ドライバから使用されるフェイルオーバー・メソッドのタイプを指定します。

有効な値: connect | extended| select

connectの場合、ドライバによって、新規接続のみにフェイルオーバー保護が提供されます。

extendedの場合、ドライバによって、新規接続および古い接続にフェイルオーバー保護が提供されますが、進行中の作業には提供されません。

selectの場合、ドライバによって、新規接続および古い接続にフェイルオーバー保護が提供されます。また、Statementオブジェクトに最後のSelect文で実行された操作の状態が保存されます。

注意:

  • AlternateServersプロパティでは、フェイルオーバーのための1つまたは複数の代替サーバーが指定されます。このプロパティは、すべてのフェイルオーバー・メソッドのために必要となります。

  • FailoverGranularityプロパティでは、フェイルオーバー・プロセスのときに例外が発生する場合、ドライバからどのアクションが実行されるかを指定します。

  • FailoverPreconnectプロパティでは、ドライバが一度に複数のデータベース・サーバー(プライマリおよび代替)に接続しようとするかどうかを指定します。

データ型: String

デフォルトはconnectです。

FailoverPreconnect

ドライバが同時にプライマリ・サーバーと代替サーバーへの接続を試みるかどうかを指定します。FailoverMode=connectの場合、このプロパティは無視されます。

有効な値: true | false

trueの場合、ドライバは一度にプライマリおよび代替サーバーに接続しようとします。アプリケーションが時間を区別し、フェイルオーバー接続を正常に実行するまで待機できない場合に役立ちます。

falseの場合、ドライバは接続欠落または失敗した接続試行でフェイルオーバーが発生したときのみ、代替サーバーに接続しようとします。この値でパフォーマンスが向上しますが、フェイルオーバー接続を試行するときにアプリケーションに少し時間がかかる場合があります。

注意: AlternateServersプロパティでは、フェイルオーバーのための1つまたは複数の代替サーバーが指定されます。

データ型: boolean

デフォルトはfalseです。

Grantee

DB2パッケージのEXECUTE権限を付与するスキーマの名前。GrantExecuteプロパティがfalseに設定されている場合、このプロパティは無視されます。

有効な値: string(ここで、stringは、有効なDB2スキーマです)。

データ型: String

重要: PUBLIC以外の値を使用すると、ドライバを使用するためのアクセスが制限されます。たとえば、このプロパティをTSMITHに設定すると、サーバーにアクセスしてドライバを使用できるユーザーはTSMITHのみとなります。

デフォルトはPUBLICです。

GrantExecute

DB2パッケージのEXECUTE権限を、どのDB2スキーマに付与するかを指定します。

有効な値: true | false

データ型: boolean

trueに設定すると、Granteeプロパティに指定されているスキーマにEXECUTE権限が付与されます。

falseに設定すると、DB2パッケージを作成したスキーマにEXECUTE権限が付与されます。

デフォルトはtrueです。

HostNameInCertificate

SSL暗号化が有効になっている場合(EncryptionMethod=SSL)および検証が有効になっている場合(ValidateServerCertificate=true)、に、証明書の検証に使用するホスト名を指定します。このプロパティはオプションであり、ドライバが接続されているサーバーが実際にリクエストされたサーバーであることを保証することにより、介在者の攻撃(man-in-the-middle attack(MITM))を防ぐための追加のセキュリティを提供します。

注意:

  • SSL暗号化または証明書の検証が有効になっていない場合、このプロパティは無視されます。

  • SSL暗号化および検証が有効になっていて、このプロパティが指定されていない場合、ドライバによって、接続URLに指定されたサーバー名または接続のデータ・ソースが使用され、証明書が検証されます。

有効な値: host_name | #SERVERNAME#(ここで、host_nameは、有効なホスト名です)。

host_nameが指定されている場合は、ドライバによって、指定されたホスト名が、証明書内のSubjectAlternativeNameDNSName値と照合されます。DNSName値がSubjectAlternativeNameに存在しない場合や、証明書にSubjectAlternativeNameが含まれていない場合、ホスト名は証明書のSubject名のCommon Name(CN)部分と照合されます。値が一致しない場合は、接続に失敗して、ドライバから例外がスローされます。

#SERVERNAME#が指定されている場合は、接続のデータ・ソースまたは接続URL内に指定されたサーバー名が、証明書内のSubjectAlternativeNameのDNSName値と照合されます。DNSName値がSubjectAlternativeNameに存在しない場合や、証明書にSubjectAlternativeNameが含まれていない場合、ホスト名は証明書のSubject名のCN部分と照合されます。値が一致しない場合は、接続に失敗して、ドライバから例外がスローされます。複数CN部分が存在する場合は、ホスト名がそれぞれのCN部分に対して検証されます。検証が1つでも一致すれば、接続が確立されます。

データ型: String

デフォルトは空の文字列です。

ImportStatementPool

文プールの内容をロードするために使用されるファイルのファイル名およびパスを指定します。このプロパティが指定される場合、文が、指定されたファイルから文プールにインポートされます。接続を確立するとき、ドライバが指定されたファイルを見つけられない場合、接続に失敗して例外がスローされます。

有効な値: string(ここで、stringは、文プールの内容をロードするために使用するファイルのファイル名およびパスです)。

データ型: String

デフォルトは空の文字列です。

InitializationString

ドライバがデータベースへの接続を確立し、その接続のすべての初期化を実行した後に実行する1つまたは複数のSQLコマンドを指定します。SQLコマンドの実行が失敗した場合、接続試行も失敗し、どのSQLコマンドが失敗したかを示す例外が、ドライバからスローされます。

有効な値: command[[;command]...]。ここでは、commandはSQLコマンドです。

注意: 複数のコマンドを指定する場合はセミコロンで区切る必要があります。また、このプロパティが接続URLで指定されると、複数のコマンドを指定するときは値全体をカッコで囲む必要があります。

例: 次の接続URLでは、USER2CURRENT PATH特殊レジスタに追加され、CURRENT PRECISION特殊レジスタがDEC31に設定されます。

jdbc:datadirect:db2://server1:50000; InitializationString=(SET CURRENT PATH=current_path, USER2;SET CURRENT PRECISION='DEC31')

注意: CURRENT PRECISION特殊レジスタの設定は、z/OS上のDB2でのみ有効です。

データ型: String

InsensitiveResultSetBufferSize

ドライバがインセンシティブな結果セット・データのキャッシュに使用するメモリーの量を指定します。

有効な値: -1 | 0 | x

データ型: int

-1の場合、ドライバはすべてのインセンシティブな結果セット・データをメモリーにキャッシュします。結果セットのサイズが使用可能メモリーを超えると、OutOfMemoryExceptionが生成されます。結果セット・データをディスクに書き込む必要がないため、データがより効率的に処理されます。

0の場合、ドライバは2GBを限度としてすべてのインセンシティブな結果セット・データをメモリーにキャッシュします。結果セット・データのサイズが使用可能メモリーを超えると、その結果セット・データがディスクにページングされます。結果セット・データがディスクに書き込まれる可能性があるため、ディスクに正しく書き込むためにデータの再フォーマットが必要になることがあります。

xの場合、xは正の整数であり、インセンシティブな結果セット・データのキャッシュに使用するメモリー・バッファのサイズ(KB単位)を指定します。結果セットのサイズがバッファ・サイズを超えると、結果セットがディスクにページングされます。結果セット・データがディスクに書き込まれる可能性があるため、ディスクに正しく書き込むためにデータの再フォーマットが必要になることがあります。バッファ・サイズとして2の累乗を指定すると、メモリーの使用がより効率的になります。

デフォルトは2048 (KB)です。

JavaDoubleToString

double値やfloat値をstring値に変換する際に、ドライバの内部変換アルゴリズムとJVM変換アルゴリズムのどちらを使用するかを指定します。

有効な値: true | false

trueに設定すると、double値やfloat値をstring値に変換する際にJVMアルゴリズムがドライバで使用されます。

falseに設定すると、double値やfloat値をstring値に変換する際にドライバの内部アルゴリズムが使用されます。内部アルゴリズムを使用するとパフォーマンスは向上しますが、JVMアルゴリズムを使用した変換との間で、丸めによる多少の誤差が生じる可能性があります。ただし、これらの誤差はdoubleおよびfloatデータ型の誤差としては許容範囲内です。

デフォルトはfalseです。

JDBCBehavior

ドライバでJDBC 4.0データ型のNCHAR、NVARCHAR、NLONGVARCHAR、NCLOBおよびSQLXMLにマップするデータベース・データ型を表す方法を決定します。このプロパティは、アプリケーションがJava SE 6を使用する場合のみ適用されます。

有効な値: 0 | 1

データ型: int

0の場合、ドライバによって、Java SE 6を使用するときJDBC 4.0データ型としてデータ型が表されます。

1の場合、JVMとは関係なく、ドライバによってJDBC 3.0同等データ型を使用してデータ型が表されます。これにより、アプリケーションはJava SE 6環境で継続してJDBC 3.0データ型を使用できます。また、JDBC 4.0メソッドResultSet.getHoldability()でJDBC 3.0メソッドConnection.getHoldability()の値が戻されます。

デフォルトは1です。

KeyPassword

SSLが有効になっていて(EncryptionMethod=SSL)、データベース・サーバーでSSLクライアント認証が有効になっている場合に、キーストア・ファイル内の個別のキーにアクセスするために使用するパスワードを指定します。

このプロパティは、キーストア・ファイル内のいずれかのキーに、キーストア・ファイルと異なるパスワードが保持されている場合に有用。

有効な値: string(ここで、stringは、有効なパスワードです)。

データ型: String

デフォルト: なし

KeyStore

SSLが有効になっていて(EncryptionMethod=SSL)、データベース・サーバーでSSLクライアント認証が有効になっている場合に、使用するキーストア ファイルのディレクトリを指定します。キーストア・ファイルには、サーバーからの証明書リクエストへのレスポンスとしてクライアントからサーバーに送信される証明書が格納されています。

このプロパティによって、javax.net.ssl.keyStoreJavaシステム・プロパティに指定されたキーストア・ファイルのディレクトリがオーバーライドされます。このプロパティが指定されていない場合は、キーストア・ディレクトリがjavax.net.ssl.keyStoreJavaシステム・プロパティに指定されます。

注意: キーストア・ファイルとトラスト・ストア・ファイルは同じファイルでもかまいません。

有効な値: string(ここで、stringは、キーストア・ファイルの有効なディレクトリです)。

データ型: String

デフォルト: なし

KeyStorePassword

SSLが有効になっていて(EncryptionMethod=SSL)、データベース・サーバーでSSLクライアント認証が有効になっている場合に、キーストア・ファイルにアクセスするために使用するパスワードを指定します。キーストア・ファイルには、サーバーからの証明書リクエストへのレスポンスとしてクライアントからサーバーに送信される証明書が格納されています。

この値によって、javax.net.ssl.keyStorePasswordJavaシステム・プロパティに指定されたキーストア・ファイルのパスワードがオーバーライドされます。このプロパティが指定されていない場合は、キーストア・パスワードがjavax.net.ssl.keyStorePasswordJavaシステム・プロパティによって指定されます。

注意: キーストア・ファイルとトラスト・ストア・ファイルは同じファイルでもかまいません。

有効な値: string(ここで、stringは、有効なパスワードです)。

データ型: String

デフォルト: なし

LoadBalancing

ドライバでのデータベース・サーバー(プライマリおよび代替)への接続試行にクライアント・ロード・バランシングが使用されるかどうかを指定します。AlternateServersプロパティを設定して1つ以上の代替サーバーを指定できます。

有効な値: true | false

trueの場合、ドライバでクライアント・ロード・バランシングが使用され、データベース・サーバー(プライマリおよび代替)へのランダムな接続が試行されます。ドライバはプライマリ・サーバーおよび代替サーバーのリストから最初に接続するサーバーをランダムに選択します。その接続に失敗した場合、ドライバは、リストのすべてのサーバーに接続を試行するか、接続が正常に確立されるまでこのリストからサーバーを再選択します。

falseの場合、ドライバは、クライアント・ロード・バランシングを使用しないで、サーバーの順序(最初にプライマリ・サーバー、その後、指定された順序で代替サーバー)に基づいて各サーバーに接続します。

デフォルト: false

データ型: boolean

LocationName (必須)

アクセスするDB2ロケーションの名前。

z/OS上のDB2では、システム管理者が次のコマンドを使用して、DB2ロケーションの名前を指定する必要があります。 DISPLAY DDF

iSeries上のDB2では、システム管理者が次のコマンドを使用して、DB2ロケーションの名前を指定する必要があります。このプロパティに使用すべき値は、*LOCALとしてリストされているデータベースの名前。

WRKRDBDIREの場合、このプロパティは、z/OSおよびiSeries上のDB2でのみサポートされます。

有効な値: string。ここでは、stringはDB2ロケーションです。

デフォルト: なし

データ型: String

別名: DatabaseNameプロパティ。DatabaseNameおよびLocationNameの両方のプロパティが接続URLに指定されている場合は、接続URL内で最後に指定されているプロパティが使用されます。

LoginTimeout

ドライバが接続が確立されるのを待機する時間(秒単位)。この時間が経過すると、制御がアプリケーションに返され、タイムアウト例外がスローされます。

有効な値: 0 | x(ここで、xは正の整数です)。

0に設定すると、ドライバにより接続リクエストがタイムアウトされません。

xに設定すると、ドライバが、指定された時間(秒数)まで待機します。この時間が経過すると、制御がアプリケーションに戻され、タイムアウト例外がスローされます。

デフォルト: 0

データ型: int

MaxPooledStatements

この接続のプールされたプリペアド文の最大数。MaxPooledStatementsをゼロ(0)以上の整数に設定すると、ドライバの内部のプリペアド文プーリングが実行できます。この内部のプリペアド文プーリングは、アプリケーション・サーバーまたは独自のプリペアド文プーリングを提供する別のアプリケーション内部で実行されないドライバの場合に役立ちます。

有効な値: 0 | x(ここで、xは正の整数です)。

0の場合、ドライバ内部のプリペアド文プーリングが有効になっていません。

xに設定すると、ドライバによりStatement Pool Monitorが有効になり、アプリケーションによって作成された特定の数のプリペアド文をキャッシュするために、指定された値が使用されます。

このプロパティの値が、アプリケーションで使用されるプリペアド文数より多い場合は、アプリケーションで作成されたすべてのプリペアド文がキャッシュされます。CallableStatementは、PreparedStatementのサブクラスであるため、CallableStatementsもキャッシュされます。

例: このプロパティの値を20に設定すると、アプリケーションによって作成された最後の20個のプリペアド文がキャッシュされます。

デフォルト: 0

データ型: int

別名: MaxStatements property

MaxStatements

MaxPooledStatementsプロパティの別名。

PackageCollection

DB2パッケージをバインドするコレクションまたはライブラリ(パッケージのグループ)の名前。

このプロパティは、Linux/UNIX/Windows上のDB2では無視されます。

注意: このプロパティは、CollectionIdプロパティに代わるものですが、CollectionIdは、下位互換性を確保するため存続しています。PackageCollectionプロパティとCollectionIdプロパティの両方が指定されている場合、CollectionIdプロパティは無視されます。

DB2パッケージの作成の詳細は、「DB2パッケージの作成」を参照してください。

デフォルトはNULLIDです。

PackageOwner

作成されたすべてのDB2パッケージで使用するオーナー。

DB2パッケージの作成の詳細は、「DB2パッケージの作成」を参照してください。

デフォルトはNULLです。

データ型: String

Password

DB2データベースに接続する場合に使用するパスワード。大文字と小文字を区別します。パスワードは、データベースでセキュリティが有効化されている場合にのみ必要となります。その場合、システム管理者に連絡してパスワードを取得します。

有効な値: string(ここで、stringは、有効なパスワードです)。パスワードは大文字と小文字が区別されます。

デフォルト: なし

データ型: String

PortNumber

データベース・サーバーが接続をリスニングするTCPポート。デフォルトは50000です。

ProgramID

データベースに格納されるクライアント上のドライバの製品とバージョン情報。この値で、データベースのCLIENT_PRDID値が設定されます。Linux/UNIX/Windows上のDB2以上の場合、この値はSYSIBMADM.APPLICATIONS表に格納されています。

有効な値: DDJVVRRM。ここで:

  • DDJは、JDBCドライバのDataDirect Connect用の識別子。

  • VVでは、2桁のバージョン番号が識別されます(1桁のバージョンの場合、高位0)。

  • RRでは、2桁のリリース番号が識別されます(1桁のリリースの場合、高位0)。

  • Mでは、1文字の変更レベルが識別されます(0-9またはA-Z)。

例: DDJ04100

デフォルト: 空の文字列 データ型: String

QueryTimeout

整数、-1、またはゼロ(0)。接続で作成されたすべてのstatementsのデフォルト問合せタイムアウト(秒単位)を設定します。

正の整数に設定すると、その値が接続によって作成されるすべての文のデフォルト・タイムアウトとして使用されます。この接続オプションでデフォルト・タイムアウトをオーバーライドするには、Statement.setQueryTimeout()メソッドを呼んで、特定のstatementのためにタイムアウト値を設定します。

-1に設定すると、問合せタイムアウト機能が無効になります。ドライバは、通知なしでStatement.setQueryTimeout()メソッドへの呼出しを無視します。

0 (デフォルト)に設定すると、デフォルトの問合せタイムアウトは無限大となります(問合せはタイムアウトしません)。

デフォルトは0です。

ReplacePackage

現在のバインド・プロセスで、ドライバが使用する既存のDB2パッケージを置き換えるかどうかを指定します。

Linux/UNIX/Windows上のDB2では、このプロパティをCreateDefaultPackageプロパティと組み合わせて使用する必要があります。

有効な値: true | false

trueに設定すると、現在のバインド・プロセスによって、ドライバが使用する既存のDB2パッケージを置き換えられます。

falseに設定すると、既存のDB2パッケージは現在のバインド・プロセスによって置き換えられません。

デフォルト: false

データ型: boolean

ResultSetMetaDataOptions

アプリケーションで表名情報が必要な場合は、ドライバによって、Select文のResultSetメタデータに表名情報を含めて戻すことができます。

有効な値: 0 | 1

0 (デフォルト)に設定した場合は、ResultSetMetaData.getTableName()メソッドが呼び出されても、結果セットの各列の正しい表名を特定するための追加処理は実行されません。この場合、getTableName()メソッドは結果セット内の列ごとに空の文字列を戻す場合があります。

1に設定した場合は、ResultSetMetaData.getTableName()メソッドが呼び出されると、結果セットの各列の正しい表名を特定するための追加処理が実行されます。DB2ドライバは、ResultSetMetaData.getSchemaName()メソッドとResultSetMetaData.getCatalogName()メソッドが呼び出された場合、スキーマ名とカタログ名の情報を返すこともできます(ドライバがこの情報を判別できる場合)。

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

デフォルトは0です。

データ型: int

SecurityMechanism (非推奨)

このプロパティは下位互換性を確保するため存続していますが、ドライバで使用する認証方法を設定する場合は、代わりにAuthenticationMethodを使用することを推奨します。

SendStreamAsBlob

32Kバイト未満のバイナリ・ストリーム・データを、Long Varchar for Bit DataまたはBlobデータとしてデータベースに送信するかどうかを指定します。32Kバイトを超えるバイナリ・ストリームはBlob列にのみ挿入できます。ドライバは、常に、32Kバイトを超えるバイナリ・ストリーム・データをBlobデータとしてデータベースに送信します。

有効な値: true | false

trueに設定すると、ドライバによって、32Kバイト未満のバイナリ・ストリーム・データがDB2 Blobデータとしてデータベースに送信されます。ターゲット列がBlob列ではなくLong Varchar for Bit Data列である場合は、Insert文またはUpdate文が失敗します。ストリーム内のポインタをストリームの最初にリセットできる場合は、Insert文またはUpdate文が自動的に再試行され、データがLong Varchar for Bit Dataとして送信されます。バイナリ・ストリーム・データをBlob列に送信していることがわかっている場合は、この値を設定することでパフォーマンスが向上します。

falseに設定すると、ドライバによって、32Kバイト未満のバイナリ・ストリーム・データがLong Varchar for Bit Dataデータとしてデータベースに送信されます。ターゲット列がLong Varchar for Bit Data列でなくBlob列である場合は、Insert文またはUpdate文が失敗します。ストリーム内のポインタをストリームの冒頭にリセットできる場合は、Insert文またはUpdate文が自動的に再試行され、データがBlobデータとして送信されます。

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

デフォルトはfalseです。

データ型: boolean

ServerName (必須)

データベース・サーバーのIPv4またはIPv6形式のIPアドレスを指定するか、(ネットワークで名前付きのサーバーがサポートされている場合は)サーバー名を指定します。

このプロパティは、データ・ソース接続でのみサポートされます。

有効な値: string(ここで、stringは、有効なIPアドレスまたはサーバー名です)。

例: 122.23.15.12またはDB2Serverデフォルト: なし

データ型: String

SpyAttributes

アプリケーションのかわりにドライバで発行された呼出しの詳細情報をログするために、DataDirect Spyを有効にします。Spyはデフォルトで有効になりません。

有効な値: (spy_attribute[;spy_attribute]...)。ここでは、spy_attributeは、すべての有効なSpy属性です。サポートされた属性のリストは、「WebLogic JDBC Spyを使用してJDBC呼出しのトラッキング」を参照してください。注意: Windows上にログ・ファイルのパスをJava文字列でコードする場合、たとえば次の例のように、Javaエスケープ文字の先頭にバックスラッシュ文字(\)を付ける必要があります。例:

log=(file)C:\\temp\\spy.log。例: 次の値は、1つの行に80文字以内を入力して、ドライバがファイルにすべてのJDBCアクティビティをログすることを指示します。

(log=(file)/tmp/spy.log;linelimit=80)

デフォルト: なし

データ型: String

StripNewlines

SQL文の改行文字をDB2サーバーに送信するかどうかを指定します。アプリケーションで使用されるSQL文に改行文字が含まれていないことがわかっている場合は、改行文字を削除しないことを指定することでDB2サーバーによる解析が不要になり、ドライバのパフォーマンスが向上します。

有効な値: true | false

trueに設定すると、ドライバによって、SQL文からすべての改行文字が削除されます。

falseに設定すると、ドライバによって、SQL文内の改行文字が削除されません。

デフォルト: false

データ型: boolean

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

TrustStore

EncryptionMethodプロパティでSSLが有効になっており、SSLサーバー認証を使用している場合に使用するトラストストア・ファイルのディレクトリを指定します。トラストストア・ファイルには、クライアントが信頼する認証局(CA)のリストが格納されています。この値によって、javax.net.ssl.trustStoreJavaシステム・プロパティに指定されたトラストストア・ファイルのディレクトリがオーバーライドされます。このプロパティが指定されていない場合は、トラストストア・ディレクトリがjavax.net.ssl.trustStoreJavaシステム・プロパティに指定されます。

このプロパティは、ValidateServerCertificate=falseに設定されている場合は無視されます。

有効な値: string(ここで、stringは、トラストストア・ファイルの有効なディレクトリです)。

デフォルト: なし

データ型: String

TrustStorePassword

EncryptionMethodプロパティでSSLが有効になっており、サーバー認証を使用している場合に、トラストストア・ファイルにアクセスするために使用するパスワードを指定します。トラストストア・ファイルには、クライアントが信頼する認証局(CA)のリストが格納されています。

この値によって、javax.net.ssl.trustStorePasswordJavaシステム・プロパティにより指定されたトラストストア・ファイルのパスワードがオーバーライドされます。このプロパティが指定されていない場合は、トラストストア・パスワードがjavax.net.ssl.trustStorePasswordJavaシステム・プロパティにより指定されます。

このプロパティは、ValidateServerCertificate=falseに設定されている場合は無視されます。

有効な値: string(ここで、stringは、トラストストア・ファイルの有効なパスワードです)。

デフォルト: なし データ型: String

UseCurrentSchema

スキーマが指定されていない状態でDatabaseMetaData.getTablesまたはDatabaseMetaData.getColumns()メソッドが呼び出された場合、またはスキーマとしてワイルドカード文字%が指定されている状態の場合に、結果を現在のスキーマの表とビューに制限するかどうかを指定します。結果を現在のスキーマの表とビューに制限することで、スキーマが指定されていないgetTables()メソッドの呼び出しのパフォーマンスが向上します。

有効な値: true | false

trueに設定すると、getTables()およびgetColumns()メソッドから戻される結果が現在のスキーマの表とビューに制限されます。

false(デフォルト)に設定すると、getTables()および getColumns()メソッドの結果は制限されません。

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

デフォルトはfalseです。

データ型: boolean

User

DB2データベースに接続する場合に使用するユーザー名。大文字と小文字を区別します。

有効な値: string(ここで、stringは有効なユーザー名です)。ユーザー名は大文字と小文字が区別されます。デフォルト: なし

データ型: String

ValidateServerCertificate

SSL暗号化が有効(EncryptionMethod=SSL)になっている場合に、データベース・サーバーから送信された証明書を検証するかどうかを指定します。SSLサーバー認証を使用する場合、サーバーから送信されるすべての証明書は、信頼性のある認証局(CA)で発行される必要があります。テスト環境においては、信頼性のあるCAが発行した証明書でなくても、サーバーから戻されたすべての証明書をドライバが信頼するようにすることで、テスト環境内の各クライアントでトラストストア情報を指定する必要がなくなり役立ちます。

有効な値: true | false

trueの場合、ドライバによってデータベース・サーバーから送信された証明書が検証されます。サーバーから送信されるすべての証明書は、トラストストア・ファイル内の信頼性のあるCAによって発行されたものである必要があります。HostNameInCertificateプロパティを指定した場合、ドライバはホスト名を使用した証明書の検証も行います。HostNameInCertificateプロパティはオプションであり、ドライバが接続されているサーバーが実際にリクエストされたサーバーであることを保証することにより、介在者の攻撃(man-in-the-middle attack)を防ぐための追加のセキュリティを提供します。

falseに設定した場合、データベース・サーバーから送信された証明書は検証されません。ドライバで、TrustStoreおよびTrustStorePasswordプロパティまたはJavaシステム・プロパティに指定されたすべてのトラストストア情報は無視されます。

注意: トラストストア情報は、TrustStoreおよびTrustStorePasswordプロパティまたはJavaシステム・プロパティを使用して指定します。

デフォルト: true

データ型: boolean

WithHoldCursors

コミット時にカーソルを開いたままにするかどうかを指定します。DB2は、コミット後にすべてのオープン・カーソルを開いたままにする(Preserve cursors)か、閉じます(Delete cursors)。トランザクションのロールバック時には、このプロパティの設定にかかわらずすべてのカーソルが閉じられます。

有効な値: true | false

trueに設定すると、カーソルの動作はPreserveになります。

falseに設定すると、カーソルの動作はDeleteになります。

デフォルトはtrueです。

データ型: boolean

XMLDescribeType

ドライバが、XMLデータ型を、BLOBまたはCLOBのどちらのデータ型にマップするかを指定します。

有効な値: clob | blob

clobに設定すると、ドライバによりXMLデータ型がCLOBデータ型にマップされます。

blobに設定すると、ドライバによりXMLデータ型がBLOBデータ型にマップされます。

詳細は、「返されるXMLデータとその挿入/更新」を参照してください。

デフォルトはclobです。

データ型: String


パフォーマンスに関する考慮事項

以下に示すDB2ドライバの接続プロパティを設定すると、アプリケーションのパフォーマンスを向上させることができます。

CatalogIncludesSynonyms

DatabaseMetaData.getColumnsメソッドは、表に関連付けられたシノニムや別名など、表に関する特性を判別するためによく使用されます。アプリケーションがLinux/UNIX/Windows上のDB2 v7.x、z/OS上のDB2、またはiSeries上のDB2にアクセスしていて、データベース表のシノニムを使用していない場合は、この情報を無視することでパフォーマンスを向上させることができます。Linux/UNIX/Windows上のDB2 v8以上にアクセスしている場合は、ドライバはDatabaseMetaData.getColumns()メソッドに対して常にシノニムを返します。

CatalogOptions

シノニム情報を取得するのにはコストがかかります。アプリケーションでこの情報を戻す必要がない場合、ドライバによりパフォーマンスを向上できます。デフォルトでは、次のDatabaseMetaDataメソッドへの呼出し結果セット内のシノニムがドライバに含まれます。 getColumns()getExportedKeys()getFunctionColumns()getFunctions()、getImportedKeys()getIndexInfo()getPrimaryKeys()getProcedureColumns()およびgetProcedures()。アプリケーションでgetColumns()呼出しのシノニムを戻す必要がある場合、列情報のデータベース・カタログの問合せのかわりに、ResultSetMetaDataオブジェクトを使用して、ドライバによりgetColumns()呼出しがエミュレートできます。getColumns()を使用してSQL文を作成することに比べて、エミュレーションでSQL文を作成することはより簡単であるため、エミュレーションを使用するとパフォーマンスが向上されます。

CatalogSchema

パフォーマンスを向上させるため、システム・カタログ表のビューをデフォルト以外のカタログ・スキーマで作成できます。このプロパティが、ビューを含むスキーマの名前に設定されている場合、DB2ドライバはカタログ表のビューにアクセスできます。デフォルトのカタログ・スキーマは、Linux/UNIX/Windows上のDB2の場合はSYSCAT、z/OS上のDB2の場合はSYSIBM、iSeries上のDB2の場合はQSYS2です。

カタログ・メソッドを正しく機能させるには、特定のカタログ表のビューが指定したスキーマに存在している必要があります。必要となるビューは、使用しているDB2データベースによって異なります。指定されたスキーマに存在している必要があるカタログ表のビューの詳細は、「カタログ・メソッドのデフォルト以外のスキーマ」を参照してください。

EnableBulkLoad

バッチ挿入のために、ドライバによって、バッチ・メカニズムのかわりにネイティブな一括ロード・プロトコルを使用できます。一括ロードは通常データベースが行うデータの解析処理をバイパスするため、バッチ操作ではよりパフォーマンスが向上します。このプロパティをtrueに設定すると、バッチ挿入との既存のアプリケーションに、コードを変更しないで一括ロードが使用できます。

EncryptionMethod

データの暗号化と復号化により余分なオーバーヘッド(主にCPUの使用率)がかかるため、パフォーマンスが低下する場合があります。

InsensitiveResultSetBufferSize

スクロール・インセンシティブな結果セットを使用する場合のパフォーマンスを向上させるため、ドライバは結果セット・データをディスクに書き込む代わりに、メモリーにキャッシュできます。デフォルトでは、ドライバはインセンシティブな結果セット・データを2 MBまでメモリーにキャッシュし、残りの結果セット・データをディスクに書き込みます。パフォーマンスを向上させるには、ドライバがデータをディスクに書き込む前に使用するメモリーの量を増やすか、ドライバがインセンシティブな結果セット・データをディスクに書込めないようにします。最大キャッシュ・サイズの設定は2 GBです。

MaxPooledStatements

ドライバがアプリケーション・サーバー内部から実行されない場合、または独自のプリペアド文のプールを提供しない別のアプリケーション内部から実行されない場合は、パフォーマンスを向上させるため、ドライバ独自の内部プリペアド文のプールを有効にする必要があります。ドライバの内部プリペアド文のプールを有効にすると、ドライバはアプリケーションによって作成された一定数のプリペアド文をキャッシュします。たとえば、MaxPooledStatementsプロパティを20に設定した場合、ドライバは、アプリケーションによって作成された最後の20個のプリペアド文をキャッシュします。このプロパティに設定された値が、アプリケーションが使用するプリペアド文の数よりも大きい場合、すべてのプリペアド文がキャッシュされます。

SendStreamAsBlob

挿入または更新する大きなバイナリ・オブジェクトがBlobとして格納される場合は、バイナリ・ストリームをBlobデータとして送信すると、パフォーマンスを向上させることができます。その場合、このプロパティはtrueに設定してください。

StripNewLines

アプリケーションで使用されるSQL文に改行文字が含まれていないことが分かっている場合は、改行文字の削除に必要な解析を省略することで、ドライバのパフォーマンスを向上させることができます。

UseCurrentSchema

アプリケーションが現在のユーザーのみに所有されている表およびビューにアクセスする必要がある場合は、このプロパティをtrueに設定することでアプリケーションのパフォーマンスを向上させることができます。このプロパティをtrueに設定した場合、getTables()およびgetColumns()メソッドを実行すると、ドライバは現在のユーザーのみに所有されている表およびビューを返します。このプロパティをtrueに設定することは、getTables()またはgetColumns()の呼出しのschemaPattern引数として、接続で使用されているユーザーIDを渡すことと同じになります。

AS/400上でのlocationNameの設定

AS//400上で動作するDB2データベースに接続する場合、locationNameプロパティを設定する必要があります。

  1. AS/400上でWRKRDBDIREコマンドを実行して、「Relational Database」の値を取得します。

    次のような出力が表示されます。

    ,Relational,,Remote,Option,,Database,,Location,,Text,
    ,          ,,      ,      ,,S10B757B,,*LOCAL  ,,    ,
    
  2. Javaクライアントに、DB2接続プロパティ「user」および「password」を指定したPropertiesオブジェクトを設定します(「DB2接続プロパティ」を参照)。

  3. Driver.connect()に、パラメータとして次の文字列とPropertiesオブジェクトを指定します。

    jdbc:weblogic:db2://<Host>:<Port>;LocationName=RelationalDatabaseName
    

    この例では、RelationalDatabaseNameは、WRKRDBDIREコマンドを実行した結果から取得されたDatabaseの値です。

以下にJavaクライアントの一部を示します。

...
Properties props = new Properties();
props.put("user",     user);
props.put("password", password);
...
myDriver = (Driver)Class.forName("weblogic.jdbc.db2.DB2Driver").newInstance();
conn = myDriver.connect("jdbc:weblogic:db2://10.1.4.1:446;LocationName=S10B757B", props);
stmt = conn.createStatement();
stmt.execute("select * from MYDATABASE.MYTABLE");
rs = stmt.getResultSet();
...

DB2パッケージの作成

DB2パッケージは、プログラムの準備中に生成され、SQL文の実行に使用されるDB2サーバー上の制御構造です。DB2ドライバは接続時に必要なすべてのDB2パッケージを自動的に作成します。パッケージがすでに存在する場合、ドライバは既存のパッケージを使用して接続を確立します。


注意:

接続用に作成する必要のあるパッケージの数やサイズによっては、初期接続に2、3分かかる場合があります。以降の接続ではこの遅延は発生しません。

パッケージの作成が完了すると、「DB2 packages created」というメッセージが標準出力に書き込まれます。


デフォルトでは、DB2ドライバによって作成されるDB2パッケージには200の動的セクションが含まれており、NULLIDコレクション(またはライブラリ)の中に作成されます。ほとんどの場合、DB2ドライバが接続時に自動的に作成するため、DB2パッケージを作成する必要はありません。必要な場合は、次のいずれかの方法でDB2パッケージを作成できます。

dbpingを使用してDB2パッケージを作成する

Oracleタイプ4 JDBC DB2ドライバでDB2サーバー上にパッケージを作成するには、WebLogic Server dbpingユーティリティを使用できます。dbpingユーティリティは、JDBCドライバを介したクライアント・マシンおよびDBMS間の接続のテストに使用されます。Oracleタイプ4 JDBC DB2ドライバはDB2パッケージがまだ存在しない場合は自動的に作成するため、このユーティリティを実行するとDB2サーバー上にデフォルトのDB2パッケージが作成されます。

dbpingユーティリティを使用したDB2パッケージの作成の詳細は、『Oracle WebLogic Serverコマンド・リファレンス』のdbpingを使用したDB2パッケージの作成に関する項を参照してください。

接続プロパティを使用したDB2パッケージの作成

初期接続URL内に特定の接続プロパティを設定すると、DB2パッケージを自動的に作成できます。表3-2に、DB2パッケージを作成する場合に初期接続URLで使用する接続プロパティを示します。


注意:

WebLogic Server JDBCデータ・ソースでは、データ・ソースのすべての接続が同じURLと接続プロパティを使用するため、この方法の使用はお勧めしません。複数の接続を持つJDBCデータ・ソースを作成すると、データベース接続が作成されるたびにパッケージが再作成されます。

表3-2 DB2パッケージを作成する場合の初期接続URLの接続プロパティ

プロパティ データベース

PackageCollection=collection_name、(collection_nameは、DB2パッケージをバインドするコレクションまたはライブラリの名前)

z/OSおよびiSeries上のDB2

CreateDefaultPackage=true

Linux/UNIX/Windows、z/OS、およびiSeries上のDB2

ReplacePackage=true

Linux/UNIX/Windows上のDB2

DynamicSections=x、(xは正の整数)

Linux/UNIX/Windows、z/OS、およびiSeries上のDB2


CreateDefaultPackage=TRUEを使用するとデフォルトの名前のパッケージが作成されます。CreateDefaultPackage=TRUEを使用して、CollectionIdを指定しない場合、NULLID CollectionIdが作成されます。


注意:

Linux/UNIX/Windows上のDB2で新しいDB2パッケージを作成するには、ReplacePackage=trueCreateDefaultPackage=trueと一緒に使用する必要があります。DB2パッケージがすでに存在する場合は、ReplacePackage=trueの場合にそのパッケージは置き換えられます。

Linux/UNIX/Windows上のDB2の例

次のURLでは、400の動的セクションを持つDB2パッケージが作成されます。DB2パッケージがすでに存在している場合は、新しく作成したパッケージで置き換えられます。

jdbc:weblogic:db2://server1:50000;DatabaseName=SAMPLE;
CreateDefaultPackage=TRUE;ReplacePackage=TRUE;DynamicSections=400

z/OSおよびiSeries上のDB2の例

次のURLでは、400の動的セクションを持つDB2パッケージが作成されます。

jdbc:weblogic:db2://server1:50000;LocationName=SAMPLE;
CreateDefaultPackage=TRUE;DynamicSections=400

DB2パッケージで動的セクションを増やす場合の注意

動的セクションは実在する実行可能オブジェクトで、動的SQLリクエストに応答するために必要なロジックが含まれています。これらのセクションは、ハンドルやプリペアド文、およびそれに関連付けられた結果セットで使用します。

場合によっては、デフォルトの数(200)より多くの動的セクションを持つDB2パッケージを作成する必要があります。アプリケーションで多数の動的セクションを持つDB2パッケージが必要な場合は、次の情報を考慮してください。

  • 多数の動的セクションを持つDB2パッケージを作成すると、特定のサーバー・リソースを使い果たすおそれがあります。具体的には、データベース・パラメータPCKCACHE_SZを増やして、多数のパッケージを作成できるようにした方がよい場合があります。

  • より多くの動的セクションを作成すると、DB2パッケージを最初に作成するときの速度が低下します。

  • 多数の動的セクションを持つDB2パッケージを使用すると、アプリケーションのパフォーマンスに影響を与えるおそれがあります。一度に少数のセクションが使用される場合は、アプリケーションに影響を与えません。一度に多数のセクションが使用される場合、データベースは開いたすべてのセクションのロックをチェックするためにリソースを消費するので、アプリケーションのパフォーマンスが低下します。

  • 開いたセクションの数が増えるにつれて、デッドロック状況が発生する可能性が高くなります。

  • アプリケーションの大部分でselect文を実行する場合は、データベースを自動的にコミットするデフォルト・モードでの処理をお薦めします。動的セクションは、アプリケーションで文が閉じられた場合でも、データベースがコミットされるまでDB2パッケージで解放されません。このモードでは、データベースはSQL文が実行されるたびにコミットし、開かれていたすべてのセクションを解放します。手動コミット・モードで処理する必要がある場合は、データベースをできるだけ頻繁にコミットして、すべてのサーバー・リソースが適時に解放されるようにすることをお薦めします。

  • WebLogic Serverのプリペアド文キャッシュにキャッシュされた文は、プリペアド文を再利用できるようにセクションを使用中のままにしておきます。

  • DB2ドライバでは動的セクションに対する制限があります。サーバーで許可されているよりも多くのセクションを作成することはできません。

データ型

表3-3に、DB2ドライバでサポートされるデータ型と、それらがJDBCデータ型へどのようにマップされるかを示します。

表3-3 DB2データ型

DB2データ型 JDBCのデータ型

Bigint脚注1

BIGINT

Binary脚注2

BINARY

Blob脚注3

BLOB

Char

CHAR

Char for Bit Data

BINARY

Clob

CLOB

注意: JDBCBehavior=0の場合、データ型は、アプリケーション: NCLOB(Java SE 6を使用する場合)またはCLOB(別のJVMを使用する場合)で使用されるJVMに依存します。

Date

DATE

DBClob脚注4

CLOB

Decfloat脚注5

DECIMAL

Decimal

DECIMAL

Double

DOUBLE

Float

FLOAT

Graphic

CHAR

注意: JDBCBehavior=0の場合、データ型は、アプリケーション: NCHAR(Java SE 6を使用する場合)またはCHAR(別のJVMを使用する場合)で使用されるJVMに依存します。

整数

INTEGER

Long Varchar

LONGVARCHAR

Long Varchar for Bit Data

LONGVARBINARY

Long Vargraphic

LONGVARCHAR

注意: JDBCBehavior=0の場合、データ型は、アプリケーション: LONGNVARCHAR(Java SE 6を使用する場合)またはLONGVARCHAR(別のJVMを使用する場合)で使用されるJVMに依存します。

数値

NUMERIC

Real

REAL

Rowid脚注6

VARBINARY

Smallint

SMALLINT

Time

TIME

タイムスタンプ

TIMESTAMP

Varbinary

VARBINARY

Varchar

VARCHAR

Varchar for Bit Data

VARBINARY

Vargraphic

VARCHAR

注意: JDBCBehavior=0の場合、データ型は、アプリケーション: NVARCHAR(Java SE 6を使用する場合)またはVARCHAR(別のJVMを使用する場合)で使用されるJVMに依存します。

XML

CLOB

注意: JDBCBehavior=0の場合、データ型は、アプリケーション: SQLXML(Java SE 6を使用する場合)またはCLOB(別のJVMを使用する場合)で使用されるJVMに依存します。


脚注1 Linux/UNIX/Windows上のDB2 v8.1およびv8.2でのみサポートされます。

脚注 2  Linux/UNIX/Windows向けのDB2バージョン8.1およびバージョン8.2でのみサポートされます。

脚注 3  Linux/UNIX/Windows向けのDB2バージョン8.1およびバージョン8.2、z/OS向けのDB2、およびiSeries向けのDB2 V5R2およびV5R3でのみサポートされます(Large Object (LOB)のサポートを参照してください)。

脚注 4 Linux/UNIX/Windows向けのDB2バージョン8.1およびバージョン8.2、z/OS上のDB2 7.x、バージョン8.1、およびバージョン8.2、およびiSeries向けのDB2 V5R2およびV5R3でのみサポートされます(Large Object (LOB)のサポートを参照してください)。

脚注 5 Linux/UNIX/Windows向けのDB2向けのバージョン8.1およびバージョン8.2、z/OS向けのDB2 7.x、バージョン8.1、およびバージョン8.2、およびiSeries向けのDB2 V5R2およびV5R3でのみサポートされます(Large Object (LOB)のサポートを参照してください)。

脚注 6 z/OS向けのDB2、およびiSeries向けのDB2 V5R2およびV5R3でのみサポートされます。

Blob、Clob、およびDBClobデータ型の詳細については、「 Large Object (LOB)のサポート」を参照してください。XMLデータ型の詳細については、「返されるXMLデータとその挿入/更新」を参照してください。データ型の詳細については、付録B「GetTypeInfo」を参照してください。

返されるXMLデータとその挿入/更新

Linux/UNIX/Windows向けのDB2バージョン9.1では、DB2ドライバでXMLデータ型がサポートされます。XMLデータ型は、デフォルトではJDBC CLOBデータ型にマップされますが、XMLDescribeType接続プロパティの値をblobに設定することでBLOBデータ型にマップすることも可能です。

返されるXMLデータ

ドライバからは、XMLデータを文字データまたはバイナリ・データとして返すことができます。たとえば、あるデータベース表を次のように定義したとします。

CREATE TABLE xmlTable (id int, xmlCol xml NOT NULL)

そして、次のようにコーディングしたとします。

String sql="SELECT xmlCol FROM xmlTable";
ResultSet rs=stmt.executeQuery(sql);

この場合、データベースから返されるXMLデータが文字データになるかバイナリ・データになるかは、XMLDescribeTypeプロパティの設定によって決まります。XMLデータ型は、デフォルトではJDBC CLOBデータ型にマップされます。次の接続URLのようにXMLデータ型がBLOBデータ型にマップされている場合は、ドライバによって返されるXMLデータが文字データではなくバイナリ・データになります。

jdbc:weblogic:db2://server1:50000;DatabaseName=jdbc;User=test;
Password=secret;XMLDescribeType=blob

文字データ

XMLDescribeType=clobに設定すると、XMLデータは文字データとして返されます。結果セット列は、列型のCLOBで表現され、列型名はxmlとなります。

XMLDescribeType=clobに設定した場合は、アプリケーションで以下のメソッドを使用することで、XML列に文字データとして格納されているデータを返すことができます。

ResultSet.getString()
ResultSet.getCharacterStream()
ResultSet.getClob()
CallableStatement.getString()
CallableStatement.getClob()

データベース・サーバーから返されたXMLデータは、データベース・サーバーで使用するUTF-8エンコーディングから、UTF-16 Java文字列エンコーディングに変換されます。

アプリケーションで次のメソッドを使用することで、XML列にASCIIデータとして格納されているデータを返すことができます。

ResultSet.getAsciiStream()

データベース・サーバーから返されたXMLデータは、データベース・サーバーで使用するUTF-1エンコーディングから、ISO-8859-1 (latin1)エンコーディングに変換されます。


注意:

getAsciiStream()メソッドを使用して変換を行う場合に、コンテンツ・エンコーディングがデフォルト・エンコーディングではなく、コンテンツ・エンティティを指定するXML宣言が含まれていないと、整形式でないXMLが作成される場合があります。アプリケーションで整形式のXMLが必要になる場合は、getAsciiStream()メソッドを使用しないようにしてください。

XMLDescribeType=blobに設定した場合は、この項で説明した文字データ用のメソッドを使用しないでください。使用すると、JDBC文字からバイナリへの標準の変換がデータに適用され、文字データの16進表現が返されます。

バイナリ・データ

XMLDescribeType=blobに設定した場合、XMLデータはバイナリ・データとして返されます。結果セット列は、列型のBLOBで表現され、列型名はxmlとなります。

XMLDescribeType=blobに設定した場合は、アプリケーションで以下のメソッドを使用することで、XMLデータをバイナリ・データとして返すことができます。

ResultSet.getBytes()
ResultSet.getBinaryStream()
ResultSet.getBlob()
ResultSet.getObject()
CallableStatement.getBytes()
CallableStatement.getBlob()
CallableStatement.getObject()

データベース・サーバーから返されるXMLデータにはデータ変換は適用されません。これらのメソッドは、UTF-8としてエンコードされたXMLデータを格納するバイト配列またはバイナリ・ストリームを返します。

XMLDescribeType=clobに設定した場合は、この項で説明したバイナリ・データ用のメソッドを使用しないでください。使用すると、JDBCバイナリから文字への標準の変換がデータに適用され、バイナリ・データの16進表現が返されます。

XMLデータの挿入と更新

XMLデータは、XMLDescribeType接続プロパティの設定に関係なく、文字データまたはバイナリ・データとして挿入したり更新したりできます。

文字データ

アプリケーションで以下のメソッドを使用することで、XMLデータを文字データとして挿入または更新できます。

PreparedStatement.setString()
PreparedStatement.setCharacterStream()
PreparedStatement.setClob()
PreparedStatement.setObject()
ResultSet.updateString()
ResultSet.updateCharacterStream()
ResultSet.updateClob()
ReultSet.updateObject()

データの文字表現がデータベース・サーバーで使用するXML文字セットに変換され、変換後のXMLデータがサーバーに送信されます。XML処理手順が、ドライバによって解析されたり削除されたりすることはありません。

アプリケーションで以下のメソッドを使用することで、XMLデータをASCIIデータとして更新できます。

PreparedStatement.setAsciiStream()
ResultSet.updateAsciiStream()

これらのメソッドに渡すデータは、ISO-8859-1 (latin 1)エンコーディングで解釈されます。ISO-8859-1のデータがデータベース・サーバーで使用するXML文字セットに変換され、変換後のXMLデータがサーバーに送信されます。

バイナリ・データ

アプリケーションで以下のメソッドを使用することで、XMLデータをバイナリ・データとして挿入または更新できます。

PreparedStatement.setBytes()
PreparedStatement.setBinaryStream()
PreparedStatement.setBlob()
PreparedStatement.setObject()
ResultSet.updateBytes()
ResultSet.updateBinaryStream()
ResultSet.updateBlob()
ReultSet.updateObject()

XMLデータがデータベース・サーバーに送信される際に、データ変換が適用されることはありません。

認証

認証では、ユーザーの識別情報を保護することで、悪意のあるハッカーが転送中のユーザー資格証明を傍受できないようになっています。概要については「認証」を参照してください。

DB2ドライバでは、以下の認証方法がサポートされます。

ドライバのAuthenticationMethod接続プロパティは、ドライバが接続を確立する際に使用する認証メカニズムを指定するために使用します。このプロパティに設定する値の詳細は、「AuthenticationMethodプロパティの使用」を参照してください。

AuthenticationMethodプロパティの使用

AuthenticationMethod接続プロパティは、ドライバが接続を確立する際に使用する認証メカニズムを制御するために使用します。

AuthenticationMethod=kerberosに設定すると、接続を確立する際にKerberos認証が使用されます。UserプロパティとPasswordプロパティに指定された値は無視されます。

AuthenticationMethod=encryptedUIDPasswordAuthenticationMethod=encryptedPassword、またはAuthenticationMethod=clearText (デフォルト)に設定すると、接続を確立する際にユーザーID/パスワード認証が使用されます。UserプロパティはユーザーIDを提供します。Passwordプロパティはパスワードを提供します。DB2サーバーに渡される資格証明のセットは、指定した値によって変わってきます。

  • AuthenticationMethod=encryptedUIDPasswordに設定した場合は、暗号化されたユーザーIDおよびパスワードがDB2サーバーに渡されます。

  • AuthenticationMethod=encryptedPasswordに設定した場合は、クリア・テキストのユーザーIDと暗号化されたパスワードがDB2サーバーに渡されます。

  • AuthenticationMethod=clearTextに設定した場合は、クリア・テキストのユーザーIDおよびパスワードがDB2サーバーに渡されます。

これらの値のいずれかを設定した場合は、EncryptionMethodプロパティに設定した方法でデータを暗号化することも可能です。

AuthenticationMethod=clientを設定すると、接続を確立する際に、ドライバを実行しているシステムにログインしたユーザーのユーザーIDが使用されます。クライアントでのみ認証が実施され、DB2データベース・サーバーによる追加の認証は提供されません。UserプロパティとPasswordプロパティに指定された値は無視されます。

ユーザーID/パスワード認証の構成

ユーザーID/パスワード認証を構成するには:

  1. AuthenticationMethodプロパティをencryptedUIDPassword、encryptedPassword、またはclearText (デフォルト)に設定します。このプロパティに設定する値の詳細は、「AuthenticationMethodプロパティの使用」を参照してください。

  2. UserプロパティにユーザーIDを設定します。

  3. Passwordプロパティにパスワードを設定します。

Kerberos認証の構成

この項では、DB2ドライバにKerberos認証を構成する場合の要件と手順について説明します。

製品要件

ドライバにKerberos認証を構成する前に、使用している環境が表3-4の要件を満たしていることを確認してください。

表3-4 DB2ドライバにKerberos認証を構成する場合の要件

コンポーネント 要件

データベース・サーバー

データベース・サーバーは、以下のいずれかのバージョンでなければなりません。

  • Linux/UNIX/Windows上のDB2 v8.1以上

  • z/OS上のDB2 v7以上

Kerberosサーバー

Kerberosサーバーは、認証に使用するユーザーIDを管理します。Kerberos KDCもKerberosサーバーで管理します。

  • ネットワーク認証を、以下のいずれかの方法で提供する必要があります。

  • 以下のいずれかのオペレーティング・システム上のWindows Active Directory

    Windows Server 2003

    Windows 2000 Server Service Pack 3以上

  • MIT Kerberos 1.4.2以上

クライアント

J2SE 1.4.2以上がインストールされている必要があります。


ドライバの構成

WebLogic Server JDBCドライバをインストールする際には、Kerberos認証で必要となる以下のファイルがWL_HOME\server\libフォルダにインストールされます。なお、WL_HOMEはWebLogic Serverのインストール・ディレクトリです。

  • krb5.conf。KerberosレルムやそのレルムのKDC名を保持するKerberos構成ファイルです。WebLogic Serverでは汎用ファイルがインストールされるため、使用している環境に合わせて変更する必要があります。

  • JDBCDriverLogin.confファイルは、Kerberos認証に使用するJAAS (Java Authentication and Authorization Service)ログイン・モジュールを指定する構成ファイルです。java.security.auth.login.configシステム・プロパティで別の構成ファイルをロードするように設定されていない限り、このファイルが自動的にロードされます。このファイルを変更することは可能ですが、JAASログイン・モジュールを構成するためには、このファイル内、または指定されている他のログイン構成ファイル内に、JDBC_DRIVER_01エントリが含まれていなければなりません。このファイルの構成オプションの設定については、使用しているJ2SEのドキュメントを参照してください。

ドライバを構成するには:

  1. AuthenticationMethodプロパティをkerberosに設定します。このプロパティに設定する値の詳細は、「AuthenticationMethodプロパティの使用」を参照してください。

  2. krb5.confファイルをテキスト・エディタで編集するか、java.security.krb5.realmおよびjava.security.krb5.kdcシステム・プロパティを指定して、Kerberosレルム名とそのKDC名を指定します。


    注意:

    Windows Active Directoryを使用している場合、Kerberosレルム名はWindowsドメイン名、KDC名はWindowsドメイン・コントローラ名となります。

    たとえば、Kerberosレルム名がXYZ.COM、KDC名がkdc1である場合、krb5.confファイルは次のようになります。

    [libdefaults] 
       default_realm = XYZ.COM
    
    [realms]
       XYZ.COM = {
       kdc = kdc1
       }
    

    krb5.confファイルに有効なKerberosレルム名とKDC名が指定されていない場合は、次の例外がスローされます。

    Message:[OWLS][DB2 JDBC Driver]Could not establish a connection using integrated security: No valid credentials provided
    

    java.security.krb5.confシステム・プロパティで別のKerberos構成ファイルをロードするように設定されていないかぎり、WebLogic JDBCドライバと一緒にインストールされたkrb5.confファイルが自動的にロードされるように構成されます。

  3. Java 2プラットフォームのセキュリティ・マネージャでKerberos認証を使用する場合は、アプリケーションとドライバにセキュリティ権限を付与する必要があります。詳細は、「Kerberos認証のための権限」を参照してください。

Kerberos認証のユーザー資格証明の指定

Kerberos認証を使用する場合、デフォルトでは、DB2ドライバーはオペレーティング・システムに保持されているユーザーIDとパスワードを使用して、データベースにアクセスするユーザーの認証が行われます。オペレーティング・システムで使用されているユーザー名とパスワードをデータベースでも使用できるため、有効なオペレーティング・システム・アカウントにログインしているユーザーであれば、ユーザー名とパスワードを入力せずにデータベースにログインできます。

デフォルト以外のユーザー資格証明を使用することも可能です。たとえば、アプリケーション・サーバーやWebサーバーの多くは、サーバー・ユーザーとしてではなく、アプリケーションが実行されているマシンにログオンしたクライアント・ユーザーの代理として処理を実行します。

サーバー・ユーザーのオペレーティング・システム資格証明ではなく、それ以外のユーザー資格証明を使用する場合は、次のようなコードをアプリケーションに追加し、認証に使用するjavax.security.auth.Subjectを取得してドライバに渡します。

import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
import java.sql.*;

//  The following code creates a javax.security.auth.Subject instance
//  used for authentication. Refer to the Java Authentication 
//  and Authorization Service documentation for details on using a 
//  LoginContext to obtain a Subject.

LoginContext lc = null;
Subject subject = null;

try {

    lc = new LoginContext("JaasSample", new TextCallbackHandler());
    lc.login();
    subject = lc.getSubject();
} 
catch (Exception le) {
    ... // display login error
}

//  This application passes the javax.security.auth.Subject
//  to the driver by executing the driver code as the subject

Connection con = 
   (Connection) Subject.doAs(subject, new PrivilegedExceptionAction() {
    
    public Object run() {
    
        Connection con = null;
    try {

         Class.forName("com.ddtek.jdbc.db2.DB2Driver");
         String url = "jdbc:weblogic:db2://myServer:50000;
            DatabaseName=jdbc";
         con = DriverManager.getConnection(url);
        }
     catch (Exception except) {

     ... //log the connection error
            Return null;
        }
        
        return con;
    }
});

//  This application now has a connection that was authenticated with 
//  the subject. The application can now use the connection.
Statement   stmt = con.createStatement();
String      sql = "select * from employee";
ResultSet   rs = stmt.executeQuery(sql);

... // do something with the results

Kerberosチケット認可チケットの取得

アプリケーション・ユーザーがKerberos認証を使用する場合は、まずKerberosサーバーからKerberosチケット認可チケット(TGT)を取得する必要があります。Kerberosサーバーでは、TGTに格納されている資格証明を使用して、ユーザーの識別情報を検証し、サービスへのアクセスを制御します。

アプリケーションがWindowsクライアントからKerberos認証を使用する場合は、アプリケーション・ユーザーが明示的にTGTを取得する必要はありません。ユーザーのTGTは、Windows Active Directoryによって自動的に取得されます。

アプリケーションがUNIXまたはLinuxクライアントからKerberos認証を使用する場合は、ユーザーが明示的にTGTを取得する必要があります。ユーザーがTGTを明示的に取得するには、kinitコマンドを使用してKerberosサーバーにログインする必要があります。たとえば、次に示すコマンドは、存続期間が10時間で5日間更新可能なTGTをサーバーにリクエストしています。

kinit -l 10h -r 5d user

ここで、userはアプリケーション・ユーザーです。

kinitコマンドの使用とユーザーのTGTの取得については、Kerberosドキュメントを参照してください。

クライアント認証の構成

AuthenticationMethodプロパティをclientに設定します。このプロパティに設定する値の詳細は、「AuthenticationMethodプロパティの使用」を参照してください。

データの暗号化

DB2ドライバでは、iSeries上のDB2 V5R3以上でSSL暗号化がサポートされるようになりました。SSLが提供する暗号化と認証によって、データの整合性を確保できます。DB2ドライバでは、SSLサーバー認証とSSLクライアント認証の両方がサポートされます。

詳細は、「SSL暗号化」を参照してください。


注意:

データの暗号化と復号化により余分なオーバーヘッド(主にCPUの使用率)がかかるため、パフォーマンスが低下する場合があります。

SSL暗号化の構成


注意:

ドライバがSSL用に構成されているのにデータベース・サーバーでSSLがサポートされていないと、接続のハングが発生する可能性があります。SSLをサポートしていないサーバーに接続した場合に発生する問題を回避するには、LoginTimeoutプロパティを使用してログイン・タイムアウトを設定します。

SSL暗号化を構成するには:

  1. EncryptionMethodプロパティをSSLに設定します。

  2. SSLサーバー認証に使用するトラスト・ストア・ファイルの場所とパスワードを指定します。TrustStoreおよびTrustStorePasswordプロパティ、またはそれぞれに対応するJavaシステム・プロパティ(javax.net.ssl.trustStoreおよびjavax.net.ssl.trustStorePassword)を設定します。

  3. データベース・サーバーから送信された証明書を検証する場合は、ValidateServerCertificateプロパティをtrueに設定します。

  4. 必要に応じて、証明書の検証に使用するホスト名をHostNameInCertificateプロパティに設定します。HostNameInCertificateプロパティは、ドライバが接続されているサーバーが実際にリクエストされたサーバーであることを保証することにより、介在者の攻撃(man-in-the-middle attack)を防ぐための追加のセキュリティを提供します。

  5. データベース・サーバーがSSLクライアント認証用に構成されている場合は、使用するキーストア情報を構成します。

    1. キーストア・ファイルの場所とパスワードを指定します。KeyStoreおよびKeyStorePasswordプロパティ、またはそれぞれに対応するJavaシステム・プロパティ(javax.net.ssl.keyStoreおよびjavax.net.ssl.keyStorePassword)を設定します。

    2. キーストア・ファイル内のいずれかのキー・エントリがパスワードで保護されている場合は、KeyPasswordプロパティにキー・パスワードを設定します。

カタログ・メソッドのデフォルト以外のスキーマ

CatalogSchemaプロパティがデフォルト以外のスキーマに設定されている場合に、カタログ・メソッドが適切に機能するためには、表3-5に示すカタログ表のビューが、指定されたスキーマに存在している必要があります。必要となるビューは、使用しているDB2データベースによって異なります。

表3-5 DB2のカタログ表

データベース カタログ表

Linux/UNIX/Windows上のDB2

SYSCAT.TABLES

SYSCAT.COLUMNS

SYSCAT.PROCEDURES

SYSCAT.PROCPARAMS

SYSCAT.COLAUTH

SYSCAT.TABAUTH

SYSCAT.KEYCOLUSE

SYSCAT.INDEXES

SYSCAT.INDEXCOLUSE

SYSCAT.REFERENCES

SYSCAT.SYSSCHEMATA

SYSCAT.TYPEMAPPINGS

SYSCAT.DBAUTH

z/OS上のDB2

SYSIBM.SYSTABCONST

SYSIBM.SYSTABLES

SYSIBM.SYSSYNONYMS

SYSIBM.SYSCOLUMNS

SYSIBM.SYSPROCEDURES

SYSIBM.SYSROUTINES

SYSIBM.SYSPARMS

SYSIBM.SYSCOLAUTH

SYSIBM.SYSTABAUTH

SYSIBM.SYSKEYS

SYSIBM.SYSINDEXES

SYSIBM.SYSRELS

SYSIBM.SYSFOREIGNKEYS

SYSIBM.SYSSCHEMAAUTH

SYSIBM.SYSDBAUTH

iSeries上のDB2

QSYS2.SYSCST

QSYS2.SYSKEYCST

QSYS2.SYSPROCS

QSYS2.SYSPARMS

QSYS2.SYSTABLES

QSYS2.SYSSYNONYM

QSYS2.SYSCOLUMNS

QSYS2.SQLTABLEPRIVILEGES

QSYS2.SYSKEYS

QSYS2.SYSINDEXES

QSYS2.SYSREFCSTS


再認証

DB2ドライバでは、次のデータベースの再認証がサポートされます。

別のユーザーへの接続に切り替える前に、アプリケーションでは、1つのユーザーとして作成されたすべての結果セットまたは文がクローズしたことを確認してから再認証を実行する必要があります。

アプリケーションは、接続にユーザーを切替えるためにExtConnectionインタフェースにあるsetCurrentUser()メソッドを使用できます。

setCurrentUser()メソッドは、ドライバ固有の再認証オプションを受け入れます。DB2向けにサポートされるオプションは、次のオプションです。

CURRENT_SCHEMA

現在のスキーマ名を指定します。値は、有効なDB2スキーマ名である必要があります。

setCurrentUser()メソッドが呼出され、このオプションが指定されていない場合、または値が#USER#に設定されている場合、スキーマが現在のユーザーのスキーマに切り替えられます。setCurrentUser()メソッドが呼出され、このオプションが空の文字列として指定されている場合、ユーザーのみが切り替えられ、スキーマが切り替えられません。

CURRENT_PATH

ストアド・プロシージャとファンクション検索のときデータベースで使用される現在のパスを指定します。値は、DB2 CURRENT PATH特殊レジスタの有効なパス名であることです。

setCurrentUser()メソッドが呼出され、このオプションが指定されていない場合、または値が#USER#に設定されている場合、パスが現在のユーザーのパスに切り替えられます。setCurrentUser()メソッドが呼出され、このオプションが空の文字列として指定されている場合、ユーザーのみが切り替えられ、パスが切り替えられません。

SQLエスケープ・シーケンス

DB2ドライバでサポートされるSQLエスケープ・シーケンスについては、付録C「JDBCのSQLエスケープ・シーケンス」を参照してください。

分離レベル

DB2ドライバでサポートされる分離レベルを表3-6に示します。JDBC分離レベルは、表に示す適切なDB2トランザクション分離レベルにマップされています。デフォルトの分離レベルはRead Committedです。

表3-6 サポートされる分離レベル

JDBC分離レベル DB2分離レベル

なし

No Commit脚注1

Read Committed

Cursor Stability

Read Uncommitted

Uncommitted Read

Repeatable Read

Read Stability

Serializable

Repeatable Read


脚注1 ジャーナリングが有効になっていないDB2 iSeriesバージョン用にサポートされています。

スクロール可能なカーソルの使用

DB2ドライバは、スクロール・インセンシティブな結果セット、および更新可能な結果セットをサポートしています。


注意:

DB2ドライバが、リクエストされた結果セットのタイプまたは同時実行性をサポートできない場合は、カーソルを自動的にダウングレードして詳細情報の入ったSQLWarningを生成します。

JTAのサポート

DB2ドライバでJTAを介して分散トランザクションを使用するには、以下のいずれかのバージョンのデータベースを使用する必要があります。

Large Object (LOB)のサポート

Blobの取得および更新は、DB2ドライバと以下のデータベースでサポートされます。

Clobの取得および更新は、DB2ドライバとサポート対象のすべてのDB2データベースでサポートされます。DB2ドライバは以下のDB2データベースで、最大2 GBのClobをサポートします。

上記以外のサポート対象のDB2データベースの場合、DB2ドライバは最大32KBのClobの取得および更新をサポートします。

DBClobの取得および更新は、DB2ドライバと以下のデータベースでサポートされます。

バッチ挿入とバッチ更新

DB2ドライバでは、ネイティブのDB2バッチ・メカニズムが使用されます。デフォルトでは、PreparedStatementを使用して実行されるバッチ処理のパラメータ値を設定するのに使用するメソッドは、パラメータが関連付けられる列のデータベース・データ型に一致する必要があります。

DB2サーバーでは暗黙的なデータ変換を実行しないため、列のデータ型に一致しないパラメータ値を指定すると、DB2サーバーはエラーを生成します。たとえば、ストリームまたは配列の長さが32KB未満の場合にそのストリームまたはバイト配列を使用してBlobパラメータの値を設定するには、setObject()メソッドを使用し、対象のJDBC型をBLOBとして指定する必要があります。setBinaryStream()またはsetBytes()メソッドは使用できません。

メソッド・タイプの制限を削除するには、BatchPerformanceWorkaroundプロパティをtrueに設定します。たとえば、setBinaryStream()またはsetBytes()メソッドを使用すると、ストリームや配列の長さに関係なくBlobパラメータの値を設定できます。ただし、パラメータの設定は指定された順序で実行されない場合もあります。パラメータ・データを正しいデータ型に変換して文を再実行する必要があるため、パフォーマンスが低下する場合があります。


注意:

管理コンソールでデータ・ソースを作成する場合、管理コンソールではBatchPeformanceWorkaround接続プロパティが、デフォルトでtrueに設定されます。

DB2のOracleタイプ4 JDBCドライバを使用するJMS JDBCストアとして使用されるデータ・ソースの場合、BatchPerformanceWorkaroundプロパティはtrueに設定する必要があります。


パラメータ・メタデータのサポート

DB2ドライバでは、この項で説明するようにパラメータ・メタデータを返すことができます。

Insert文およびUpdate文

DB2ドライバは、以下のDB2データベースで、あらゆるタイプのSQL文のパラメータ・メタデータを返すことができます。

  • Linux/UNIX/Windows上のDB2 v8.x以上

  • z/OS上のDB2

  • iSeries上のDB2 V5R2以上

Linux/UNIX/Windows上のDB2 v7xおよびiSeries上のDB2 V5R1の場合、DB2ドライバは、以下の形式のInsert文およびUpdate文のパラメータ・メタデータを返すことができます。

  • INSERT INTO foo VALUES (?, ?, ?)

  • INSERT INTO foo (col1, col2, col3) VALUES (?, ?, ?)

  • UPDATE foo SET col1=?, col2=?, col3=?WHERE col1 operator ? [{AND | OR} col2 operator ?]

ここで、operatorはSQL演算子(=、<、>、<=、>=、または<>)です。

Select文

DB2ドライバは、以下のDB2データベースで、あらゆるタイプのSQL文のパラメータ・メタデータを返すことができます。

  • Linux/UNIX/Windows上のDB2 v8.x以上

  • z/OS上のDB2

  • iSeries上のDB2 V5R2以上

Linux/UNIX/Windows上のDB2 v7xおよびiSeries上のV5R1の場合、DB2ドライバは、ANSI SQL 92エントリ・レベルの述語(比較、BETWEEN、IN、LIKE、EXISTSなどの述語構文)にパラメータを含んでいるSelect文に対してパラメータ・メタデータを返すことができます。詳細な構文については、ANSI SQLリファレンスを参照してください。

以下のいずれかの条件に該当する場合は、Select文に対してパラメータ・メタデータを返すことができます。

  • 文に、関連するFROM句内のソース表を対象とする、述語の値式が含まれている場合。例:

    SELECT * FROM foo WHERE bar > ?
    
  • この場合、値式「bar」は表「foo」を対象として、パラメータの適切なメタデータを決定することができます。

  • 文に、ネストされた問合せとなっている述語の値式が含まれている場合。ネストされた問合せのメタデータでは単一の列を記述する必要があります。例:

    SELECT * FROM foo WHERE (SELECT x FROM y 
       WHERE z = 1) < ?
    

以下のSelect文では、パラメータ・メタデータを返すことができる例をさらに示しています。

SELECT col1, col2 FROM foo WHERE col1 = ? and col2 > ?
SELECT ... WHERE colname = (SELECT col2 FROM t2  
   WHERE col3 = ?)
SELECT ... WHERE colname LIKE ?
SELECT ... WHERE colname BETWEEN ? and ?
SELECT ... WHERE colname IN (?, ?, ?)
SELECT ... WHERE EXISTS(SELECT ... FROM T2 WHERE col1 < ?)

GROUP BY、HAVING、またはORDER BYを含むWHERE句でANSI SQL 92エントリ・レベルの述語を使用する文がサポートされます。例:

SELECT * FROM t1 WHERE col = ? ORDER BY 1

結合がサポートされます。例:

SELECT * FROM t1,t2 WHERE t1.col1 = ?

完全修飾名と別名がサポートされます。例:

SELECT a, b, c, d FROM T1 AS A, T2 AS B WHERE A.a = ? 
   and B.b = ?"

ストアド・プロシージャ

DB2ドライバは、ストアド・プロシージャの引数に対してパラメータ・メタデータを返すことができます。

ResultSetメタデータのサポート

アプリケーションで表名情報が必要な場合、DB2ドライバはSelect文のResultSetメタデータに含めて表名情報を返すことができます。ResultSetMetaDataOptionsプロパティを1に設定した場合、ResultSetMetaData.getTableName()メソッドが呼び出されたとき、DB2ドライバは結果セット内の各列の正しい表名を決定する追加の処理を実行します。それ以外の場合、getTableName()メソッドは結果セット内の列ごとに空の文字列を返す可能性があります。

DB2ドライバが返す表名情報は、結果セット内の列がデータベース表内の列にマップされているかどうかによって異なります。結果セット内の各列がデータベース表内の列にマップされている場合、DB2ドライバはその列に関連付けられている表名を返します。結果セット内の各列が表内の列にマップされていない場合(集約やリテラルなど)、DB2ドライバは空の文字列を返します。

ResultSetメタデータが返されるSelect文には、別名、結合、および完全修飾名を含めることができます。以下の問合せは、ResultSetMetaData.getTableName()メソッドによってSelectリスト内の各列の正しい表名が返される、Select文の例です。

SELECT id, name FROM Employee
SELECT E.id, E.name FROM Employee E 
SELECT E.id, E.name AS EmployeeName FROM Employee E
SELECT E.id, E.name, I.location, I.phone FROM Employee E, 
   EmployeeInfo I WHERE E.id = I.id
SELECT id, name, location, phone FROM Employee,
   EmployeeInfo WHERE id = empId
SELECT Employee.id, Employee.name, EmployeeInfo.location, 
   EmployeeInfo.phone FROM Employee, EmployeeInfo 
   WHERE Employee.id = EmployeeInfo.id

生成された列の場合、ドライバによって返される表名は空の文字列です。以下の問合せは、生成された列(「upper」という名前の列)を含む結果セットを返すSelect文の例です。

SELECT E.id, E.name as EmployeeName, {fn UCASE(E.name)} 
   AS upper FROM Employee E

DB2ドライバは、ResultSetMetaData.getSchemaName()メソッドとResultSetMetaData.getCatalogName()メソッドが呼び出された場合、スキーマ名とカタログ名の情報を返すこともできます(ドライバがこの情報を判別できる場合)。たとえば、以下の文の場合、DB2ドライバはカタログ名として「test」、スキーマ名として「test1」、表名として「foo」を返します。

SELECT * FROM test.test1.foo 

表名、スキーマ名、およびカタログ名の情報を返すために必要な追加の処理は、ResultSetMetaData.getTableName()ResultSetMetaData.getSchemaName()、またはResultSetMetaData.getCatalogName()メソッドが呼び出された場合にのみ実行されます。

Rowsetのサポート

DB2ドライバは、以下のようなRowSetインタフェースのJSR 114実装をサポートします。

ドライバでRowSetを使用するには、J2SE 1.4以上が必要です。

JSR 114の詳細は、http://www.jcp.org/en/jsr/detail?id=114を参照してください。

自動生成キーのサポート

DB2ドライバは自動生成キーの値の取得をサポートします。DB2ドライバから返される自動生成キーは、auto-increment列の値です。

自動生成キーの値を返すことができるのは、アプリケーションでInsert文を実行するときです。値を返す方法は、パラメータを含むInsert文を使用しているかどうかによって異なります。

自動生成キーの値は、Statement.getGeneratedKeys()メソッドを使用して取得できます。このメソッドは、各自動生成キーの列とともにResultSetオブジェクトを返します。

Database接続プロパティ

Database接続プロパティは、DatabaseName接続プロパティのシノニムとして使用できます。

接続URLにDatabaseとDatabaseNameの両方の接続プロパティが指定されている場合は、接続URL内で後ろの方に指定されているプロパティが使用されます。たとえば、アプリケーションで次のようなURLを指定した場合、DatabaseName接続プロパティの値ではなく、Database接続プロパティの値が使用されます。

jdbc:weblogic:db2://server1:50000;DatabaseName=jdbc;Database=acct;
User=test;Password=secret

DatabaseName接続プロパティ

z/OSまたはiSeries上のDB2に接続する場合、DB2ロケーションの名前を指定するにはLocationName接続プロパティを使用する必要がありました。しかし、Linux/UNIX/Windowsだけでなくz/OSおよびiSeries上のDB2に接続する場合にも、DatabaseName接続プロパティを使用できるようになりました。

Linux/UNIX/Windows上のDB2に接続する場合は、DatabaseName接続プロパティを使用してデータベースの名前を指定します。z/OSまたはiSeries上のDB2に接続する場合は、DatabaseName接続プロパティを使用してDB2ロケーションの名前を指定します。

新しいデータ型

DB2ドライバでは、以下がサポートされるようになりました。

表3-7および表3-8に、これらのデータ型とJDBCデータ型へのマッピングを示します。

表3-7 DB2グラフィック・データ型

DB2データ型 JDBCのデータ型

Graphic

CHAR

Long Vargraphic

LONGVARCHAR

Vargraphic

VARCHAR


表3-8 DB2 v9.1 for z/OSでサポートされる新しいDB2データ型

DB2データ型 JDBCのデータ型

Bigint

BIGINT

バイナリ

BINARY

Decfloat

DECIMAL

Varbinary

VARBINARY

XML

CLOB


getTypeInfo()メソッドによって返されるデータ型については、付録B「GetTypeInfo」を参照してください。

XMLデータ型の使用方法については、「返されるXMLデータとその挿入/更新」を参照してください。

DB2ドライバでサポートされるその他のデータ型については、「データ型」を参照してください。

z/OS用のSQLプロシージャ

z/OS上のDB2 v9.1でSQLプロシージャがサポートされるようになりました。

IPv6のサポート

z/OS上のDB2 v9.1のDB2ドライバで、IPv6がサポートされるようになりました。

IPv6の詳細は、「IPアドレスの使用」を参照してください。

バルク・ロード

ドライバでは、DataDirect Bulk Loadの機能がサポートされます。この機能を使用すると、アプリケーションでは大量のデータ行を、多数の小さいデータベース・プロトコル・パケットではなく連続ストリームとしてデータベースに送信できます。バッチ操作と同様に、ネットワーク上のラウンド・トリップが少なくなるので、パフォーマンスが向上します。一括ロードは通常データベースが行うデータの解析処理をバイパスするため、バッチ操作ではよりパフォーマンスが向上します。