サポートされるすべてのデータベース製品に共通の IBM Data Server Driver for JDBC and SQLJ プロパティー

ほとんどの IBM Data Server Driver for JDBC and SQLJ プロパティーは、ドライバーがサポートするすべてのデータベース製品に適用されます。

特に注記されていない限り、すべてのプロパティーは com.ibm.db2.jcc.DB2BaseDataSource にあります。

それらのプロパティーは以下のとおりです。

affinityFailbackInterval
IBM Data Server Driver for JDBC and SQLJ が 1 次サーバーへの既存の接続のフェイルバックを試行する間隔の長さ (秒) を指定します。 値が 0 以下の場合、接続はフェイルバックしないことを意味します。 デフォルトは DB2BaseDataSource.NOT_SET (0) です。

1 次サーバーに接続をフェイルバックしようとする試行は、指定の間隔が経過した後にトランザクション境界で実行されます。

affinityFailbackInterval が使用されるのは、プロパティー enableSeamlessFailover および enableClientAffinitiesList の値が DB2BaseDataSource.YES (1) の場合のみです。

affinityFailbackインターバルは、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続にのみ適用されます。

allowNextOnExhaustedResultSet
IBM Data Server Driver for JDBC and SQLJ が、 ResultSetの最後の行の後にある前方スクロール・カーソルの ResultSet.next() 呼び出しを処理する方法を指定します。 このプロパティーのデータ・タイプは int です。

可能な値は以下のとおりです。

DB2BaseDataSource.YES (1)
TYPE_FORWARD_ONLY として定義されている ResultSet の場合、 ResultSet.next() は、カーソルが以前に ResultSetの最終行の後に位置付けられていた場合は false を返します。 ResultSet.next() は、カーソルがオープン状態かクローズ状態かに関係なく、false を返します。
DB2BaseDataSource.NO (2)
TYPE_FORWARD_ONLY と定義された ResultSet では、ResultSet.next() が呼び出され、カーソルが ResultSet の最終行の後に配置された場合には、"Invalid operation: result set is closed." というエラー・テキストとともに java.sql.SQLException がドライバーによってスローされます。 この値がデフォルトです。
allowNullResultSetForExecuteQuery
結果セットを返さないストアード・プロシージャーに対して CALL ステートメントを実行するために Statement.executeQueryPreparedStatement.executeQuery、または CallableStatement.executeQuery を使用する場合に、 IBM Data Server Driver for JDBC and SQLJ が NULL を返すかどうかを指定します。

可能な値は以下のとおりです。

DB2BaseDataSource.NOT_SET (0)
この動作は、DB2BaseDataSource.NO の場合と同じです。
DB2BaseDataSource.YES (1)
IBM Data Server Driver for JDBC and SQLJ は、結果セットを戻さないストアード・プロシージャーに対して CALL ステートメントを実行するために Statement.executeQueryPreparedStatement.executeQuery、または CallableStatement.executeQuery を使用すると、NULL を戻します。 この動作は、JDBC 標準規格に準拠していません。
DB2BaseDataSource.NO (2)
IBM Data Server Driver for JDBC and SQLJ は、結果セットを戻さないストアード・プロシージャーの CALL ステートメントを実行するために Statement.executeQueryPreparedStatement.executeQuery、または CallableStatement.executeQuery が使用されると、 SQLException をスローします。 この動作は、JDBC 標準規格に準拠しています。
atomicMultiRowInsert
PreparedStatement メソッドを使って表を変更するバッチ操作がアトミックであるか、それとも非アトミックであるかを指定します。 このプロパティーのデータ・タイプは int です。

Db2® for z/OS®への接続の場合、このプロパティーはバッチ INSERT 操作にのみ適用されます。

Linux®、UNIX、および Windows システム上の Db2 または IBM Informix®への接続の場合、このプロパティーはバッチ INSERT、MERGE、UPDATE、または DELETE 操作に適用されます。

可能な値は以下のとおりです。

DB2BaseDataSource.YES (1)
バッチ操作はアトミックです。 バッチでのすべての行の挿入操作は、単一の操作と見なされます。 単一行の挿入に失敗すると、操作全体が BatchUpdateException で失敗します。 自動生成キーを戻すバッチ・ステートメントを使用した場合、BatchUpdateException が出されて失敗します。
atomicMultiRowInsert が DB2BaseDataSource.YES (1) に設定されている場合、次のようになります。
  • ターゲット・データ・ソースが Db2 for z/OS の場合、以下の操作は許可されません。
    • 32767 個を超える行をバッチで挿入すると、結果として BatchUpdateException が出されます。
    • 異なる行にある同じパラメーターに対して、以下のメソッドのうち複数を呼び出した場合には、結果として BatchUpdateException が出されます。
      • PreparedStatement.setAsciiStream
      • PreparedStatement.setCharacterStream
      • PreparedStatement.setUnicodeStream
DB2BaseDataSource.NO (2)
バッチによる挿入は非アトミックです。 各行の挿入は、それぞれ別個の実行であると見なされます。 各挿入操作の成功に関する情報は、 Statement.executeBatchによって返される int[] 配列によって提供されます。
DB2BaseDataSource.NOT_SET (0)
バッチによる挿入は非アトミックです。 各行の挿入は、それぞれ別個の実行であると見なされます。 各挿入操作の成功に関する情報は、 Statement.executeBatchによって返される int[] 配列によって提供されます。 この値がデフォルトです。
autocommit
Connection または DataSource インスタンスのデフォルトの autocommit 値を設定します。 DataSource から派生するすべての接続は、DataSource で設定されている autocommit プロパティーを継承します。
blockingReadConnectionTimeout
接続ソケットの読み取りがタイムアウトになるまでの秒単位の時間。 このプロパティーは、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続にのみ適用され、接続が正常に確立された後にデータ・ソースに送信されるすべての要求に影響します。 デフォルトは 0 です。 値 0 は、タイムアウトがないことを意味します。
clientBidiStringType
enableBidiLayoutTransformation が有効である場合に使用されます。 クライアント・アプリケーションで使用されるストリング・タイプを指定します。 このプロパティーの可能な値とそれに対応するテキスト属性は、以下の表で指定されているとおりです。
表 1. clientBidiStringType プロパティーおよび serverBidiStringType プロパティーのストリング・タイプ値および対応する属性
  テキスト属性
ストリング・タイプ値の整数定数 ストリング・タイプ値 テキストのタイプ 方向 対称スワッピング 数表示形状 テキスト形状
4 DB2BaseDataSource.BIDI_ST4 表示 左から右 いいえ 公称 成形
5 DB2BaseDataSource.BIDI_ST5 暗黙 左から右 はい 公称 公称
6 DB2BaseDataSource.BIDI_ST6 暗黙 右から左 はい 公称 公称
7 DB2BaseDataSource.BIDI_ST7 表示 右から左 いいえ 公称 成形
8 DB2BaseDataSource.BIDI_ST8 表示 右から左 いいえ 公称 成形
9 DB2BaseDataSource.BIDI_ST9 暗黙 右から左 はい 公称 成形
10 DB2BaseDataSource.BIDI_ST10 暗黙 コンテキスト依存、左から右 はい 公称 公称
11 DB2BaseDataSource.BIDI_ST11 暗黙 コンテキスト依存、右から左 はい 公称 公称
clientDebugInfo
CLIENT DEBUGINFO 接続属性の値を指定します。これはデータ・サーバーに、接続を使用しているストアード・プロシージャーおよびユーザー定義関数がデバッグ・モードで実行していることを通知します。 CLIENT DEBUGINFO は、Db2 統合デバッガーにより使用されます。 このプロパティーのデータ・タイプは String です。 最大長は 254 バイトです。

このプロパティーは、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続にのみ適用されます。

clientRerouteAlternateServerName
クライアント・リルート用の 1 つ以上のサーバー名を指定します。 このプロパティーのデータ・タイプは String です。

enableClientAffinitiesList=DB2BaseDataSource.YES (1) の場合、 clientRerouteAlternateServerName に 1 次サーバーの名前と代替サーバーの名前が含まれている必要があります。 serverName および portNumber によって識別されるサーバーは、1 次サーバーです。 そのサーバー名は clientRerouteAlternateServerName リストの先頭に置く必要があります。

複数のサーバー名を指定する場合は、サーバー名をコンマ (,) またはスペースで区切ります。 clientRerouteAlternateServerName に指定される値の数は、clientRerouteAlternatePortNumber に指定される値の数と一致していなければなりません。

clientRerouteAlternateServerName は次のものに適用されます。

  • サポートされるすべてのデータベース製品への IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続
  • IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 Linux、UNIX、および Windows システム上のDb2
clientRerouteAlternatePortNumber
クライアント・リルート用の 1 つ以上のポート番号を指定します。 このプロパティーのデータ・タイプは String です。

enableClientAffinitiesList=DB2BaseDataSource.YES (1) の場合、clientRerouteAlternatePortNumber に 1 次サーバーのポート番号と代替サーバーのポート番号が含まれている必要があります。 serverName および portNumber によって識別されるサーバーは、1 次サーバーです。 そのポート番号は clientRerouteAlternatePortNumber リストの先頭に置く必要があります。

複数のポート番号を指定する場合は、ポート番号をコンマ (,) またはスペースで区切ります。 clientRerouteAlternatePortNumber に指定される値の数は、clientRerouteAlternateServerName に指定される値の数と一致していなければなりません。

clientRerouteAlternatePortNumber は次のものに適用されます。

  • サポートされるすべてのデータベース製品への IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続
  • IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 Linux、UNIX、および Windows システム上のDb2
clientRerouteServerListJNDIName
転送サーバー情報の JNDI リポジトリー内の DB2ClientRerouteServerList インスタンスへの JNDI 参照を識別します。 clientRerouteServerListJNDIName は、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続、および DataSource インターフェースを介して確立された接続にのみ適用されます。
clientRerouteServerListJNDIName の値がヌルでない場合、clientRerouteServerListJNDIName は以下の機能を提供します。
  • 転送サーバーに関する情報を、複数の JVM にわたって保持できます。
  • データ・ソースへの最初の接続が失敗した場合に代替サーバー・ロケーションを提供します。
clientRerouteServerListJNDIContext
DB2ClientRerouteServerList インスタンスのバインディングおよび参照に使用される JNDI コンテキストを指定します。 clientRerouteServerListJNDIContext は、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続、および DataSource インターフェースを介して確立される接続にのみ適用されます。

clientRerouteServerListJNDIContext が設定されていない場合、 IBM Data Server Driver for JDBC and SQLJ は、システム・プロパティーまたは jndi.properties ファイルを使用して初期コンテキストを作成します。

clientRerouteServerListJNDIContext は、以下のメソッドを使用してのみ設定できます。
public void setClientRerouteServerListJNDIContext(javax.naming.Context registry)
commandTimeout
IBM Data Server Driver for JDBC and SQLJ の下で実行されるアプリケーションが SQL 操作の完了を待機する最大時間 (秒) を指定します。この時間が経過すると、ドライバーは SQLExceptionをスローします。 この待ち時間には、トランスポートを取得し、フェイルオーバーを実行し (必要な場合)、要求を送信して応答を待機する時間が含まれます。 このパラメーターのデータ・タイプは int です。 デフォルトは 0 です。これは、タイムアウトがないことを意味します。

java.sql.Statement.setQueryTimeout メソッドが呼び出される場合、Statement.setQueryTimeout を介して設定される照会タイムアウト値は commandTimeout 値をオーバーライドします。

commandTimeout は、StatementPreparedStatement、および CallableStatement のメソッド executeexecuteQuery、および executeUpdate の実行に適用されます。 また、プロパティー queryTimeoutInterruptProcessingMode の値が INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET (2) の場合、commandTimeout は、executeBatch メソッドにも適用されます。

SQLException と一緒に返される SQL エラー・コードは、データ・サーバーおよび queryTimeoutInterruptProcessingMode プロパティーの値に応じて以下のように異なります。

  • Db2 for z/OS データ・サーバーへの IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続 の場合、 queryTimeoutInterruptProcessingモード値は常に INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET (2) です。
    • Sysplex ワークロード・バランシングが有効になっている場合、SQL エラー・コード -30108 が返されます。
    • 自動クライアント・リルート処理が有効で、Sysplex ワークロード・バランシングが無効の場合、SQL エラー・コード -4498 が返されます。
    • Sysplex ワークロード・バランシングも自動クライアント・リルート処理も無効の場合は、 SQL エラー・コード -4499 が返されます。

    commandTimeout の値を超えると、自動クライアント・リルートの処理は開始されません。

  • その他のデータ・サーバーへの接続の場合、以下のようになります。
    • queryTimeoutInterruptProcessingモード値が INTERRUPT_PROCESSING_MODE_STATEMENT_CANCEL (1) の場合、-952 が返されます。
    • queryTimeoutInterruptProcessingMode の値が INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET (2) の場合は、次のようになります。
      • Db2 ワークロード・バランシングが有効になっている場合は、SQL エラー -30108 が返されます。
      • 自動クライアント・リルート処理が有効になっていて、 Db2 ワークロードが無効になっている場合は、SQL エラー -4498 が返されます。
      • 自動クライアント・リルート処理も Db2 ワークロードも有効になっていない場合は、SQL エラー -4498 が返されます。

構成プロパティー db2.jcc.enableInetAddressGetHostName が true に設定されている場合、以下の状況が発生する可能性があります。

  • 実際の待機時間が commandTimeout 値を超過する可能性があります。 この状況は、IP アドレスをホスト名に解決するためにドライバーが複数の DNS ルックアップ操作を行う必要がある場合に生じ得ます。 待機時間が commandTimeout 値をどれだけ超過するかは、DNS ルックアップ操作の数、および各 DNS ルックアップ操作でかかる時間によって異なります。
  • DNS ルックアップ操作に余分な時間が必要になると、db2.jcc.enableInetAddressGetHostName が false に設定されている場合よりも多くのタイムアウト条件が発生する可能性があります。
connectionCloseWithInFlightTransaction
トランザクションの途中で接続がクローズされたときに、 IBM Data Server Driver for JDBC and SQLJSQLException をスローするか、 SQLException をスローせずにトランザクションをロールバックするかを指定します。 可能な値は以下のとおりです。
DB2BaseDataSource.NOT_SET (0)
この動作は、DB2BaseDataSource.CONNECTION_CLOSE_WITH_EXCEPTION の場合と同じです。
DB2BaseDataSource.CONNECTION_CLOSE_WITH_EXCEPTION (1)
トランザクションの途中で接続がクローズされた場合、エラー -4471 で SQLException がスローされます。
DB2BaseDataSource.CONNECTION_CLOSE_WITH_ROLLBACK (2)
トランザクションの途中で接続がクローズされた場合、トランザクションがロールバックされます。 SQLException はスローされません。
DB2BaseDataSource.CONNECTION_CLOSE_WITH_COMMIT (3)
トランザクションの途中で接続がクローズされた場合、トランザクションがコミットされます。 SQLException はスローされません。 このオプションは、アプリケーションを Db2 にマイグレーションしているときだけ使用してください。
connectionTimeout
ドライバーが接続を確立しようとするときに、 IBM Data Server Driver for JDBC and SQLJ がデータ・サーバーのグループからの応答を待機する最大時間を秒単位で指定します。 connectionTimeout で指定された時間を経過しても応答を受け取らない場合、ドライバーは SQL エラー・コード -4499 の SQLException をスローします。 このパラメーターのデータ・タイプは int です。 デフォルト値は 0 です。

connectionTimeout を正の値に設定すると、その値が、接続に設定されている他のすべてのタイムアウト値 (loginTimeout など) をオーバーライドします。 接続は、データ・サーバーのグループ内で最大の負荷容量を持つメンバーに対して試行されます。 稼働中のメンバーが 1 つもない場合、DataSource で指定されたグループ IP アドレスに対して接続が試行されます。 connectionTimeout で指定された時間内に、いずれのデータ・サーバーとも接続を確立できなかった場合は、SQLException がスローされます。

connectionTimeout が 0 に設定されていて、自動クライアント・リルートが有効にされていない場合、時間制限はありません。

connectionTimeout が 0 に設定されていて、自動クライアント・リルートが Db2 for z/OS データ共有グループ、 Db2 pureScale® インスタンス、または IBM Informix 高可用性クラスターに対して有効になっている場合、 maxRetriesForClientReroute および retryIntervalForClientReroute などの自動クライアント・リルート・プロパティーは、接続の確立に必要な時間を制御します。

構成プロパティー db2.jcc.enableInetAddressGetHostName が true に設定されている場合、以下の状況が発生する可能性があります。

  • 実際の待機時間が connectionTimeout 値を超過する可能性があります。 この状況は、IP アドレスをホスト名に解決するためにドライバーが複数の DNS ルックアップ操作を行う必要がある場合に生じ得ます。 待機時間が connectionTimeout 値をどれだけ超過するかは、DNS ルックアップ操作の数、および各 DNS ルックアップ操作でかかる時間によって異なります。
  • DNS ルックアップ操作に余分な時間が必要になると、db2.jcc.enableInetAddressGetHostName が false に設定されている場合よりも多くのタイムアウト条件が発生する可能性があります。
databaseName
データ・ソースの名前を指定します。 この名前は、接続 URL のデータベース 部分として使用されます。 この名前は、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続 または IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 が使用されるかどうかによって異なります。
IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続の場合:
  • 接続が Db2 for z/OS サーバーに対するものである場合、 databaseName 値は、インストール時に定義された Db2 ロケーション名です。 この値の中の文字はすべて大文字でなければなりません。 サーバーで以下の SQL ステートメントを実行することにより、ロケーション名を判別できます。
    SELECT CURRENT SERVER FROM SYSIBM.SYSDUMMY1;
  • 接続先が Linux、UNIX、および Windows システム上の Db2 サーバーの場合、 databaseName 値は、インストール時に定義されたデータベース名です。
  • 接続先が IBM Informix サーバーの場合、 database はデータベース名です。 この名前は大/小文字を区別しません。 サーバーにより、名前は小文字に変換されます。
  • 接続先が IBM Cloudscape サーバーである場合、 databaseName 値は、データベースが含まれているファイルの完全修飾名です。 この名前は、二重引用符 (") で囲まなければなりません。以下に例を示します。
    "c:/databases/testdb"
このプロパティーが設定されていない場合、ローカル・サイトへの接続が行われます。
IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続の場合:
  • serverName 接続プロパティーの値がヌルの場合、 databaseName 値は、インストール中に定義されるデータベース名になります。 serverName プロパティーの値がヌルではない場合、databaseName 値はデータベース別名になります。
decimalSeparator
10 進、浮動小数点、または 10 進浮動小数点データ値の場合の入出力の小数点記号を指定します。 このプロパティーのデータ・タイプは int です。

sendDataAsIs プロパティーの値が true の場合、decimalSeparator は出力値にのみ影響を与えます。

可能な値は以下のとおりです。

DB2BaseDataSource.DECIMAL_SEPARATOR_NOT_SET (0)
小数点記号としてピリオドが使用されます。 この値がデフォルトです。
DB2BaseDataSource.DECIMAL_SEPARATOR_PERIOD (1)
小数点記号としてピリオドが使用されます。
DB2BaseDataSource.DECIMAL_SEPARATOR_COMMA (2)
小数点記号としてコンマが使用されます。

DECIMAL_SEPARATOR_COMMA を設定すると、10 進、浮動小数点、または 10 進浮動小数点値に対する ResultSet.getString の結果では、区切り記号としてコンマが使用されます。 ただし、10 進、浮動小数点、または 10 進浮動小数点値を戻す ResultSet.getXXX メソッドで取得された値に対して toString メソッドを実行した場合、結果では小数点記号として小数点が使用されます。

decimalStringFormat
SDK for Java™ がバージョン 1.5 以降の場合に、DECIMAL または DECFLOAT 列から取得されるデータのストリング・フォーマットを指定します。 このプロパティーのデータ・タイプは int です。 可能な値は以下のとおりです。
DB2BaseDataSource.DECIMAL_STRING_FORMAT_NOT_SET (0)
IBM Data Server Driver for JDBC and SQLJ は、 java.math.BigDecimal.toString メソッドが戻す形式で 10 進数値を戻します。 この値がデフォルトです。

例えば、値 0.0000000004 は 4E-10 として戻されます。

DB2BaseDataSource.DECIMAL_STRING_FORMAT_TO_STRING (1)
IBM Data Server Driver for JDBC and SQLJ は、 java.math.BigDecimal.toString メソッドが戻す形式で 10 進数値を戻します。

例えば、値 0.0000000004 は 4E-10 として戻されます。

DB2BaseDataSource.DECIMAL_STRING_FORMAT_TO_PLAIN_STRING (2)
IBM Data Server Driver for JDBC and SQLJ は、 java.math.BigDecimal.toPlainString メソッドが戻す形式で 10 進数値を戻します。

例えば、値 0.0000000004 は 0.0000000004 として戻されます。

このプロパティーは、以前のバージョンの SDK for Java には影響しません。 これらのバージョンの場合、 IBM Data Server Driver for JDBC and SQLJ は、 java.math.BigDecimal.toString メソッドが戻す形式で 10 進数値を戻します。

defaultIsolationLevel
新規接続用のデフォルトのトランザクション分離レベルを指定します。 このプロパティーのデータ・タイプは int です。 defaultIsolationLevel が DataSource で設定されている場合、その DataSource から作成されるすべての接続には、defaultIsolationLevel によって指定されたデフォルトの分離レベルがあります。

Db2 データ・ソースの場合、デフォルトは java.sql.Connection.TRANSACTION_READ_COMMITTED です。

IBM Informix データベースの場合、デフォルトはデータ・ソースのタイプによって異なります。 次の表はデフォルトを示しています。

表 2. IBM Informix データベースのデフォルトの排他レベル
データ・ソースのタイプ デフォルトの分離レベル
ロギングを行う ANSI 準拠データベース java.sql.Connection.TRANSACTION_SERIALIZABLE
ロギングを行わないデータベース java.sql.Connection.TRANSACTION_READ_UNCOMMITTED
ロギングを行う非 ANSI 準拠データベース java.sql.Connection.TRANSACTION_READ_COMMITTED
deferPrepares
Connection.prepareStatement メソッドの呼び出しにより、データ・ソースに対して SQL ステートメントを直ちに準備するか、または PreparedStatement.execute メソッドが実行されるまでステートメントの準備を据え置くかを指定します。 このプロパティーのデータ・タイプは boolean です。

deferPrepares は、 IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 から Linux、UNIX、および Windows システム上の Db2、および IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続でサポートされます。

可能な値は以下のとおりです。
true
データ・ソースに対するステートメントの準備は、PreparedStatement.execute メソッドが実行されるまで行われません。 この値がデフォルトです。
false
データ・ソースに対するステートメントの準備は、Connection.prepareStatement メソッドが実行されると行われます。

準備操作を据え置くと、ネットワークの遅延を減らすことができます。 ただし、準備操作を据え置く場合、入力データ・タイプが表列のタイプと一致していることを確認する必要があります。

description
データ・ソースの説明。 このプロパティーのデータ・タイプは String です。
downgradeHoldCursorsUnderXa
WITH HOLD が定義されたカーソルを XA 接続のもとでオープンできるかどうかを指定します。
downgradeHoldCursorsUnderXa は以下に適用されます。
  • Db2 for z/OS サーバーへの IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続
  • IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続 または IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 から Linux、UNIX、および Windows システム上の Db2 サーバーへの接続。

デフォルトは false です。つまり、WITH HOLD が定義されたカーソルを XA 接続のもとでオープンできません。 そのカーソルをオープンしようとすると、例外がスローされます。

downgradeHoldCursorsUnderXa を true に設定した場合、WITH HOLD が定義されたカーソルを XA 接続のもとでオープンできます。 ただし、カーソルには次のような制限があります。
  • カーソルが XA 接続のもとでオープンされている場合、そのカーソルでは WITH HOLD 動作はありません。 カーソルは XA End でクローズされます。
  • ローカル・トランザクションで XA Start よりも前にオープンしているカーソルは、XA Start でクローズされます。
driverType
DataSource インターフェースでは、接続に使用するドライバーを判別します。 このプロパティーのデータ・タイプは int です。 有効な値は 2 または 4 です。 2 がデフォルトです。
enableClientAffinitiesList
IBM Data Server Driver for JDBC and SQLJ がカスケード・フェイルオーバー・サポート用のクライアント・アフィニティーを有効にするかどうかを指定します。 このプロパティーのデータ・タイプは int です。 可能な値は以下のとおりです。
DB2BaseDataSource.YES (1)
IBM Data Server Driver for JDBC and SQLJ は、カスケード・フェイルオーバー・サポート用のクライアント・アフィニティーを有効にします。 そのため、clientRerouteAlternateServerName プロパティーおよび clientRerouteAlternatePortNumber プロパティーで指定されたサーバーのみが再試行されます。 ドライバーは他のどのサーバーに対しても再接続を試行しません。

例えば、clientRerouteAlternateServerName に以下のストリングが含まれるとします。

host1,host2,host3
また、clientRerouteAlternatePortNumber に以下のストリングも含まれるとします。
port1,port2,port3
クライアント・アフィニティーを使用可能にすると、以下の順序で再試行されます。
  1. host1:port1
  2. host2:port2
  3. host3:port3
DB2BaseDataSource.NO (2)
IBM Data Server Driver for JDBC and SQLJ は、カスケード・フェイルオーバー・サポート用のクライアント・アフィニティーを使用可能にしません。
DB2BaseDataSource.NOT_SET (0)
IBM Data Server Driver for JDBC and SQLJ は、カスケード・フェイルオーバー・サポート用のクライアント・アフィニティーを使用可能にしません。 この値がデフォルトです。

このプロパティーは、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続にのみ適用されます。

enableNamedParameterMarkers
IBM Data Server Driver for JDBC and SQLJで名前付きパラメーター・マーカーのサポートを有効にするかどうかを指定します。 このプロパティーのデータ・タイプは int です。 可能な値は以下のとおりです。
DB2BaseDataSource.YES (1)
名前付きパラメーター・マーカーのサポートは、 IBM Data Server Driver for JDBC and SQLJで使用可能になります。
DB2BaseDataSource.NO (2)
名前付きパラメーター・マーカーのサポートは、 IBM Data Server Driver for JDBC and SQLJでは使用できません。
ドライバーは名前付きパラメーター・マーカー付きの SQL ステートメントを変更せずにターゲット・データ・ソースに送ります。 ステートメントが成功するか失敗するかは、例えば以下のような、多くの要因によって決まります。
  • ターゲット・データ・ソースで名前付きパラメーター・マーカーがサポートされるかどうか。
  • deferPrepares プロパティー値が true または false のどちらであるか。
  • sendDataAsIs プロパティー値が true または false のどちらであるか。
推奨: 名前付きパラメーター・マーカーを使用するアプリケーションで予期しない動作が発生しないようにするには、 enableNamedParameterMarkers を YES に設定してください。
DB2BaseDataSource.NOT_SET (0)
この動作は、DB2BaseDataSource.NO (2) の動作と同じです。 この値がデフォルトです。
enableBidiLayoutTransformation

SQL ステートメント、入力パラメーター、またはデータベースから受け取ったデータに対して、ドライバーが BiDi (双方向) レイアウト変換を実行することが必要かどうかを指定します。 このプロパティーのデータ・タイプは boolean であり、デフォルト値は false です。

enableSeamlessFailover
IBM Data Server Driver for JDBC and SQLJ がクライアント・リルートにシームレス・フェイルオーバーを使用するかどうかを指定します。 このプロパティーのデータ・タイプは int です。

Db2 for z/OSへの接続では、 enableSysplexWLB が trueに設定されている場合、 enableSeamlessFailover は効果がありません。 IBM Data Server Driver for JDBC and SQLJ は、 enableSeamlessフェイルオーバー設定に関係なく、シームレス・フェイルオーバーを使用します。

enableSeamlessFailover に設定できる値は次のとおりです。

DB2BaseDataSource.YES (1)
IBM Data Server Driver for JDBC and SQLJ はシームレス・フェイルオーバーを使用します。 そのため、以下の条件が満たされる場合は、失敗した接続が再確立された後、ドライバーは SQL エラー・コード -4498 の SQLException をスローしません。
  • 障害の発生時に、接続がトランザクション用には使用されていなかった。
  • グローバル一時表などのグローバル・リソース、オープン状態の保留カーソル、または他のサーバーへのシームレス・フェイルオーバーを妨げる接続状態が残存しない。

シームレス・フェイルオーバーが行われる場合、新しいデータ・ソースへの接続が確立された後、ドライバーは元の接続の障害時に処理されていた SQL ステートメントを再発行します。

推奨: アプリケーションで保留カーソルを使用している場合に、enableSeamlessFailover を DB2BaseDataSource.YES に設定するときは、queryCloseImplicit プロパティーを DB2BaseDataSource.QUERY_CLOSE_IMPLICIT_NO (2) に設定してください。

DB2BaseDataSource.NO (2)
IBM Data Server Driver for JDBC and SQLJ はシームレス・フェイルオーバーを使用しません。

この設定が有効になっていると、サーバーがダウンした場合にドライバーは代替サーバーへのフェイルバックまたはフェイルオーバーを試みます。 フェイルオーバーまたはフェイルバックが成功すると、ドライバーは SQL エラー・コード -4498 の SQLException をスローします。これは、接続が失敗したものの正常に再確立されたことを示します。 SQL エラー・コード -4498 の SQLException は、接続が失敗したときのトランザクションを再試行するようにアプリケーションに通知します。 ドライバーが接続を再確立できない場合、SQL エラー・コード -4499 の SQLException がスローされます。

DB2BaseDataSource.NOT_SET (0)
IBM Data Server Driver for JDBC and SQLJ はシームレス・フェイルオーバーを使用しません。 この値がデフォルトです。
enableSysplexWLB
IBM Data Server Driver for JDBC and SQLJ のシスプレックス・ワークロード・バランシング機能が使用可能かどうかを示します。 enableSysplexWLB のデータ・タイプは boolean です。 デフォルトは falseです。

enableSysplexWLB は、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続に対してのみサポートされます。

Linux、UNIX、および Windows システム上の Db2への接続の場合、サーバーが pureScale 環境にある場合にのみ、 enableSysplexWLB の値を true にすることができます。 サポートされている他のデータベース製品については、Sysplex ワークロード・バランシングがサーバーで有効にされている場合にのみ、enableSysplexWLB の値を true にすることができます。

fetchSize
Statement オブジェクトから生成される ResultSet オブジェクトのデフォルトのフェッチ・サイズを指定します。 このプロパティーのデータ・タイプは int です。

fetchSize のデフォルトは Statement.setFetchSize メソッドでオーバーライドできます。 fetchSize プロパティーは、fetchSize 設定時に存在している Statement オブジェクトには影響を与えません。

fetchSize に指定できる値は次のとおりです。

0 or positive-integer
新しく作成された Statement オブジェクトのデフォルトの fetchSize 値。 fetchSize プロパティー値が無効な場合、 IBM Data Server Driver for JDBC and SQLJ はデフォルトの fetchSize 値を 0 に設定します。
DB2BaseDataSource.FETCHSIZE_NOT_SET (-1)
Statement オブジェクトのデフォルトの fetchSize 値が 0 であることを示します。 この値が、このプロパティーのデフォルトです。

fetchSize プロパティーは、queryDataSize プロパティーとは異なっています。 fetchSize は返される行の数に影響しますが、queryDataSize は返されるバイト数に影響します。

fullyMaterializeLobData
FETCH 操作のときにドライバーが LOB ロケーターを検索するかどうかを示します。 このプロパティーのデータ・タイプは boolean です。
fullyMaterializeLobData の効果は、データ・ソースが連続ストリーミング (動的データ・フォーマットとも呼ばれる) をサポートするかどうかによって異なります。
  • データ・ソースがプログレッシブ・ストリーミングをサポートしない場合:

    fullyMaterializeLobData の値が true の場合、行がフェッチされるときに LOB データは JDBC ドライバー内で完全にマテリアライズされます。 この値が false の場合、LOB データはストリームされます。 このドライバーは、必要に応じてロケーターを内部で使用して、チャンク内の LOB データを検索します。 大量のデータを収容している LOB を検索する場合、この値を false に設定するように強くお勧めします。 デフォルトは trueです。

  • データ・ソースが連続ストリーミングをサポートする場合:

    progressiveStreaming プロパティーが DB2BaseDataSource.YES または DB2BaseDataSource.NOT_SET に設定されている場合、JDBC ドライバーは fullyMaterializeLobData の値を無視します。

このプロパティーは、ストアード・プロシージャーのパラメーターや、両方向スクロール・カーソルを使用してフェッチされる LOB には影響しません。 LOB ストアード・プロシージャー・パラメーターは常に完全にマテリアライズされます。 両方向スクロール・カーソルを使用してフェッチされる LOB は、連続ストリーミングが無効の場合は LOB ロケーターを使用します。

implicitRollbackOption
トランザクションがデッドロックまたはタイムアウトになったときに IBM Data Server Driver for JDBC and SQLJ が実行するアクションを指定します。 可能な値は以下のとおりです。
DB2BaseDataSource.IMPLICIT_ROLLBACK_OPTION_NOT_CLOSE_CONNECTION (1)
IBM Data Server Driver for JDBC and SQLJ は、デッドロックまたはタイムアウトが発生したことを示す SQL エラー・コードを持つ SQLException をスローします。 この SQL エラー・コードは、デッドロックまたはタイムアウトの発生後にデータ・サーバーが生成する SQL エラー・コードです。 ドライバーは接続をクローズしません。
DB2BaseDataSource.IMPLICIT_ROLLBACK_OPTION_CLOSE_CONNECTION (2)
IBM Data Server Driver for JDBC and SQLJ は、デッドロックまたはタイムアウトが発生すると、SQL エラー・コード -4499 の DisconnectException をスローします。 ドライバーは接続をクローズします。 自動クライアント・リルートまたは Sysplex ワークロード・バランシングが有効にされている場合、ドライバーは自動フェイルオーバーの動作を無効にします。
DB2BaseDataSource.IMPLICIT_ROLLBACK_OPTION_NOT_SET (0)
この値がデフォルトです。 IBM Data Server Driver for JDBC and SQLJ は、デッドロックまたはタイムアウトが発生したことを示す SQL エラー・コードを持つ SQLException をスローします。 この SQL エラー・コードは、デッドロックまたはタイムアウトの発生後にデータ・サーバーが生成する SQL エラー・コードです。 ドライバーは接続をクローズしません。
interruptProcessingMode
アプリケーションが Statement.cancel メソッドを実行するときの IBM Data Server Driver for JDBC and SQLJ の動作を指定します。 可能な値は以下のとおりです。
DB2BaseDataSource.INTERRUPT_PROCESSING_MODE_DISABLED (0)
割り込み処理は無効です。 アプリケーションが Statement.cancelを実行しても、 IBM Data Server Driver for JDBC and SQLJ は何もしません。
DB2BaseDataSource.INTERRUPT_PROCESSING_MODE_STATEMENT_CANCEL (1)
データ・サーバーが割り込み処理をサポートしている場合、アプリケーションが Statement.cancelを実行すると、 IBM Data Server Driver for JDBC and SQLJ は現在実行中のステートメントを取り消します。 データ・サーバーが割り込み処理をサポートしていない場合、 IBM Data Server Driver for JDBC and SQLJ は、この機能がサポートされていないことを示す SQLException をスローします。 INTERRUPT_PROCESSING_MODE_STATEMENT_CANCEL がデフォルトです。
DB2BaseDataSource.INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET (2)
アプリケーションが Statement.cancelを実行すると、 IBM Data Server Driver for JDBC and SQLJ は基礎となるソケットをドロップします。 接続は閉じられず、ステートメントを再サブミットするために再利用することができます。 接続が再利用されると、ドライバーは新規ソケットを取得します。

Db2 for z/OS データ・サーバーへの接続の場合、 IBM Data Server Driver for JDBC and SQLJ は、指定された値に関係なく、常にこの値を使用します。

interruptProcessingモードが DB2BaseDataSource.INTERRUPT_PROCESSING_MODE_STATEMENT_CANCEL または DB2BaseDataSource.INTERRUPT_PROCESSING_MODE_CLOSE_SOCKETに設定されており、アプリケーションが ResultSet オブジェクトに対してメソッドを実行している間に Statement.cancel が実行された場合、 ResultSet オブジェクトに対する操作は取り消されない可能性があります。 Statement.cancel ステートメントが実行される際、ResultSet メソッドの基礎となる処理が、データ・サーバーで行われている場合、操作の実行はキャンセルされます。 ResultSet メソッドの基礎となる処理がドライバ ーで行われている場合、操作の実行はキャンセルされません。

keepAliveTimeOut
各 TCP KeepAlive シグナルがデータ・サーバーに送信されるまでの最大秒数。 このプロパティーのデータ・タイプは int です。 デフォルトは 15 秒です。

IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続 は、TCP/IP プロトコルを使用してデータ・サーバーと通信します。 TCP/IP 層におけるタイムアウトが原因で生じる可能性のあるフェイルオーバーの問題を回避するには、クライアント側で TCP/IP キープアライブ・パラメーターを調整する必要があります。 クライアント側でキープアライブ値を小さくすると、サーバー障害の適時検出が改善されます。

値 0 は、タイムアウト値がデフォルトのシステム・タイムアウト値であることを意味します。

keepAliveTimeOut は、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続でのみサポートされます。

keepAliveTimeOut は、Java ランタイム環境が Java SE 9 以降の場合はサポートされません。

loginTimeout
データ・ソースへの接続に対する秒単位の最大待ち時間。 loginTimeout で指定された秒数が経過すると、ドライバーはデータ・ソースへの接続をクローズします。 このプロパティーのデータ・タイプは int です。 デフォルトは 0 です。 値 0 は、タイムアウト値がデフォルトのシステム・タイムアウト値であることを意味します。 このプロパティーは、 Db2 for z/OSIBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 ではサポートされません。

データ・サーバー環境が Db2 pureScale 環境の場合、接続の待機時間は、 loginTimeout、 maxRetriesForClientReroute、および retryIntervalForClientReroute の組み合わせによって決定されます。 loginTimeout はデータ・サーバーへの接続を確立するための 1 回の試行の時間のみを決定します。 maxRetriesForClientReroute 値に基づいて、接続の確立が複数回試行されることもあります。 retryIntervalForClientReroute 値に基づいて、接続を確立するための試行が間隔を置いて実行されることもあります。

自動クライアント・リルートの処理中は、loginTimeout プロパティーよりも memberConnectTimeout プロパティーの方が優先されます。

logWriter
DataSource オブジェクトのすべてのロギングおよび トレース・メッセージが出力される文字出力ストリーム。 このプロパティーのデータ・タイプは java.io.PrinterWriter です。 デフォルト値はヌルです。 この場合、DataSource のロギングもトレースも出力されません。
maxRetriesForClientReroute
自動クライアント・リルートにおいて、データ・サーバーへの 1 次接続に失敗した場合の再試行回数を制限します。

このプロパティーのデータ・タイプは int です。

再試行の意味とデフォルトは、データ・サーバーとドライバーのバージョンによって異なります。

  • Db2 for z/OS データ・サーバーへの接続の場合:
    • 再試行の意味:
      • バージョン 3.66 または 4.16 以降の場合、1 回の再試行は、データ共有グループの失敗したメンバーを除くすべてのメンバーと、グループ IP アドレスへの 1 回の接続試行を意味します。
      • 3.66 または 4.16より前のバージョンの IBM Data Server Driver for JDBC and SQLJ の場合、1 回の再試行は、データ共用グループの 1 つのメンバーへの接続を試行することを意味します。
    • デフォルト:
      • ドライバー・バージョン 4.33: maxRetriesForClientRerouteretryIntervalForClientReroute も設定されておらず、データ共用グループへの初期接続が確立されていない場合、デフォルトの maxRetriesForClientReroute 値は 1、デフォルトの retryIntervalForClientReroute 値は 0 です。
      • ドライバー・バージョン 4.33:
        • バージョン 3.66 または 4.16、あるいはそれ以降の IBM Data Server Driver for JDBC and SQLJの場合、デフォルトは 1 です。
        • バージョン 3.64、4.14、3.65、または 4.15 の場合、デフォルトは 5 です。
        • 3.64 および 4.14より前のバージョンの IBM Data Server Driver for JDBC and SQLJ の場合、接続は 10 分間再試行されます。 初回再試行からの経過時間が長くなるにつれて、再試行と再試行の間の待ち時間は長くなります。
  • Db2 for z/OS以外のデータ・サーバーへの接続の場合:
    • 1 回の再試行の意味: enableClientAffinitiesList を DB2BaseDataSource.NO (2) に設定した場合、1 次サーバーおよび代替サーバーへの接続の試行が、1 回の再試行としてカウントされます。

      enableClientAffinitiesList を DB2BaseDataSource.YES (1) に設定した場合、clientRerouteAlternateServerName および clientRerouteAlternatePortNumber の値に指定されている各サーバーに対する接続の試行が、1 回の再試行としてカウントされます。 各サーバー接続は、maxRetriesForClientReroute によって指定された回数再試行されます。

      Db2 pureScale インスタンスへの接続の場合:

      • バージョン 3.67 または 4.17 以降の IBM Data Server Driver for JDBC and SQLJの場合、再試行とは、データ・サーバー・インスタンスのすべてのメンバーへの接続を試行することです。
      • IBM Data Server Driver for JDBC and SQLJ 3.67 または 4.17より前のバージョンの場合、再試行は単一メンバーへの接続の試行です。
    • デフォルト:
      • ドライバー・バージョン 4.33: maxRetriesForClientRerouteretryIntervalForClientReroute も設定されていない場合、接続は 10 分間再試行されます。
      • ドライバー・バージョン 4.33: enableClientAffinitiesList が DB2BaseDataSource.NO (2) に設定されていて、 maxRetriesForClientReroute および retryIntervalForClientReroute が設定されていない場合、接続は 10 分間再試行されます。 初回再試行からの経過時間が長くなるにつれて、再試行と再試行の間の待ち時間は長くなります。

        enableClientAffinitiesList が DB2BaseDataSource.YES (1) の場合、デフォルトは 3 です。

maxRetriesForClientReroute の値が 0 の場合、クライアント・リルート処理は行われません。

maxStatements
Connection と関連付けられた内部ステートメント・キャッシュを制御します。 このプロパティーのデータ・タイプは int です。 可能な値は以下のとおりです。
正整数
Connectionの内部ステートメント・キャッシュを使用可能にし、 IBM Data Server Driver for JDBC and SQLJ がキャッシュ内で開いたままにするステートメントの数を指定します。
0 or negative integer
Connection について内部ステートメント・キャッシングを使用不可にします。 0 がデフォルト値です。

com.ibm.db2.jcc.DB2SimpleDataSource.maxStatements は、Connection オブジェクトが作成される場合にのみ、Connection と関連付けられた内部ステートメント・キャッシュを制御します。 com.ibm.db2.jcc.DB2SimpleDataSource.maxStatements は、存在する Connection オブジェクトのキャッシングに対しては何の効果も与えません。

com.ibm.db2.jcc.DB2SimpleDataSource.maxStatements は、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続にのみ適用されます。

maxTransportObjectWaitTime
maxTransportObjects 値に達した場合に、アプリケーションがトランスポート・オブジェクトを待機する最大の時間を秒数で指定します。 トランスポート・オブジェクトは、接続コンセントレーターと Sysplex ワークロード・バランシングで使用されます。 アプリケーションが、maxTransportObjectWaitTime 値よりも長い期間待機していると、グローバル・トランスポート・オブジェクト・プールは SQLException をスローします。

maxTransportObjectWaitTime のデフォルト値は 1 です。 負の値は、アプリケーションはいつまでも待機することを意味します。

このプロパティーには setXXX または getXXX メソッドがありません。

onDataTruncation
入力値が列に挿入され、その値がその列には大きすぎる場合に IBM Data Server Driver for JDBC and SQLJ が実行するアクションを指定します。 onDataTruncation は、バージョン 4.33 以降のドライバーにのみ適用されます。 可能な値は以下のとおりです。
DB2BaseDataSource.ON_DATA_TRUNCATION_WARNING_VALUE (1)
IBM Data Server Driver for JDBC and SQLJ は、データ切り捨てが発生すると警告を出します。 この値がデフォルトです。
DB2BaseDataSource.ON_DATA_TRUNCATION_THROW_EXCEPTION_VALUE (2)
IBM Data Server Driver for JDBC and SQLJ は、データ切り捨てが発生すると例外をスローします。
DB2BaseDataSource.ON_DATA_TRUNCATION_NO_ACTION_VALUE (3)
IBM Data Server Driver for JDBC and SQLJ はアクションを実行しません。これは、 4.33より前のバージョンのドライバーの動作と同じです。
password
接続の確立に使用するパスワード。 このプロパティーのデータ・タイプは String です。 DataSource インターフェースを使用して接続を確立するときは、 DataSource.getConnection メソッドを次の形式で呼び出すと、 このプロパティー値をオーバーライドすることができます。
getConnection(user, password);
portNumber
DRDA サーバーが要求を listen しているポート番号。 このプロパティーのデータ・タイプは int です。
progressiveStreaming
データ・ソース上で連続ストリーミングがサポートされている場合に、JDBC ドライバーが連続ストリーミングを使用するかどうかを指定します。

Db2 for z/OS バージョン 9.1 以降は、LOB および XML オブジェクトの連続ストリーミングをサポートします。 Linux、UNIX、および Windows システム上のDb2 バージョン 9.5 以降、および IBM Informix バージョン 11.50 以降では、LOB の連続ストリーミングがサポートされます。

連続ストリーミング (動的データ形式ともいう) を使用すると、LOB または XML のデータを戻すのに最も効率のよいモードがデータ・ソースで動的に判別されます。 このステップは、LOB または XML オブジェクトのサイズに基づいています。 streamBufferSize パラメーターの値は、データが戻されるときにマテリアライズ化されるかどうかを決定します。

progressiveStreaming のデータ・タイプは int です。 有効な値は DB2BaseDataSource.YES (1) および DB2BaseDataSource.NO (2) です。 progressiveStreaming プロパティーを指定しない場合、progressiveStreaming 値は DB2BaseDataSource.NOT_SET (0) になります。

接続先のデータ・ソースで連続ストリーミングがサポートされていて、progressiveStreaming の値が DB2BaseDataSource.YES または DB2BaseDataSource.NOT_SET である場合、JDBC ドライバーは連続ストリーミングを使用して LOB および XML データを返します。

progressiveStreaming の値が DB2BaseDataSource.NO である場合、またはデータ・ソースで連続ストリーミングがサポートされていない場合、JDBC ドライバーが LOB または XML データを返す方法は、fullyMaterializeLobData プロパティーの値によって異なります。

queryCloseImplicit
すべての行をフェッチした後、すぐにカーソルをクローズするかどうかを指定します。 queryClose暗黙は、 z/OS バージョン 8 以降への IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続 への接続にのみ適用されます。 および IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続 または IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 Linux、UNIX、および Windows システム バージョン 9.7 以降のDb2 。 可能な値は以下のとおりです。
DB2BaseDataSource.QUERY_CLOSE_IMPLICIT_YES (1)
すべての行がフェッチされた後、直ちにカーソルをクローズします。

DB2BaseDataSource.QUERY_CLOSE_IMPLICIT_YES を設定すると、ネットワーク・トラフィックが減少するため、パフォーマンスが向上する可能性があります。

DB2BaseDataSource.QUERY_CLOSE_IMPLICIT_NO (2)
すべての行がフェッチされた後、直ちにカーソルをクローズしません。
DB2BaseDataSource.QUERY_CLOSE_IMPLICIT_COMMIT (3)
以下のアクションを実行します。
  • すべての行がフェッチされた後、暗黙的にカーソルをクローズします。
  • アプリケーションが自動コミット・モードである場合、現在の作業単位のデータ・ソースにコミット要求を暗黙的に送ります。
重要: この値を設定すると、明示的なコミット操作が他のリソースに影響を与える可能性があるのと同様に、他のリソースに影響が及ぶ可能性があります。 例えば、他の非保留カーソルがクローズされ、LOB ロケーターがスコープ外になり、連続参照がリセットされて、両方向スクロール・カーソルの位置が失われます。
制約事項: QUERY_CLOSE_IMPLICIT_COMMIT の動作には、以下の制約事項が適用されます。
  • この動作は、アプリケーションによって出される SELECT ステートメントにのみ適用されます。 IBM Data Server Driver for JDBC and SQLJによって生成される SELECT ステートメントには適用されません。
  • QUERY_CLOSE_IMPLICIT_COMMIT が設定されている場合、アプリケーションが自動コミット・モードでなければ、ドライバーはデフォルトの動作 (QUERY_CLOSE_IMPLICIT_NOT_SET 動作) を使用します。 QUERY_CLOSE_IMPLICIT_COMMIT がデフォルト動作である場合、ドライバーは QUERY_CLOSE_IMPLICIT_YES 動作を使用します。
  • QUERY_CLOSE_IMPLICIT_COMMIT が設定されている場合、データ・ソースで QUERY_CLOSE_IMPLICIT_COMMIT 動作がサポートされていなければ、ドライバーは QUERY_CLOSE_IMPLICIT_YES 動作を使用します。
  • この動作はバッチ・ステートメントではサポートされません。
  • 接続がローカル・トランザクションに含まれる場合にのみ、この動作は XA 接続でサポートされます。
DB2BaseDataSource.QUERY_CLOSE_IMPLICIT_NOT_SET (0)
この値がデフォルトです。 以下の表は、それぞれの種類のデータ・ソースに対する接続での動作を示しています。
データ・ソース バージョン データ共用環境 動作
Db2 for z/OS バージョン 10 データ共有またはデータ共有なし QUERY_CLOSE_IMPLICIT_COMMIT
Db2 for z/OS バージョン 9 (APAR PK68746 を適用) データ共有なし、またはデータ共有グループにおいてバージョン 8 メンバーとの共存モードなし QUERY_CLOSE_IMPLICIT_COMMIT
Db2 for z/OS バージョン 9 (APAR PK68746 未適用) データ共有なし、またはデータ共有グループにおいてバージョン 8 メンバーとの共存モードなし QUERY_CLOSE_IMPLICIT_YES
Db2 for z/OS バージョン 9 (APAR PK68746 を適用) データ共有グループにおいて、バージョン 8 メンバーとの共存モード QUERY_CLOSE_IMPLICIT_COMMIT
Db2 for z/OS バージョン 9 (APAR PK68746 未適用) データ共有グループにおいて、バージョン 8 メンバーとの共存モード QUERY_CLOSE_IMPLICIT_YES
Db2 for z/OS バージョン 8 (APAR PK68746 適用または未適用)   QUERY_CLOSE_IMPLICIT_YES
Linux、UNIX、および Windows システム上のDb2 バージョン 9.7   QUERY_CLOSE_IMPLICIT_YES
queryDataSize
各フェッチ操作でデータ・ソースから戻される、照会データの量を制御するために使用されるヒントをバイト単位で指定します。 この値は、データの検索に必要なデータ・ソースへの往復の数を制御することで、アプリケーションを最適化するために使用できます。

queryDataSize にさらに大きな値を使用すると、ネットワーク・トラフィックは少なくなり、結果としてパフォーマンスを向上させることができます。 例えば、結果セットのサイズが 50 KB であり、queryDataSize の値が 32767 (32 KB) の場合、結果セットを検索するにはデータベース・サーバーへの 2 回の往復が必要です。 しかし、queryDataSize が 65535 (64 KB) に設定されていれば、結果セットを検索するために必要なデータ・ソースへの往復は 1 回だけです。

以下の表に、 IBM Data Server Driver for JDBC and SQLJバージョン 4.31 (Db2 11.5.7) 以降の各データ・サーバーの queryDataSize の最小値、最大値、およびデフォルト値をリストします。

表 3. queryDataSize for IBM Data Server Driver for JDBC and SQLJバージョン 4.31 (Db2 11.5.7) 以降のデフォルト値、最小値、および最大値
データ・ソース 製品バージョン デフォルト 最小 最大 有効な値1
Linux、UNIX、および Windows システム上のDb2 サポートされるすべてのバージョン 32767 4096 10485760 4096 から 262143 までの有効な値: 4096 から 32767、98303、131071、163839、196607、229375、262143。

262143 より大きい有効な値: 10485760 以下の、32768 の任意の整数倍。

IBM Informix サポートされるすべてのバージョン 32767 4096 10485760 4096 - 10485760
DB2 for IBM i サポートされるすべてのバージョン 32767 4096 10485760 4096 から 262143 までの有効な値: 4096 から 65535、98303、131071、163839、196607、229375、262143。

262143 より大きい有効な値: 10485760 以下の、32768 の任意の整数倍。

Db2 for z/OS サポートされるすべてのバージョン (IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続) 32767 32767 10452991 4096 から 262143 までの有効な値: 4096 から 32767、98303、131071、163839、196607、229375、262143。

262143 より大きい有効な値: 10452991、または 10452991 より小さい 32768 の任意の整数倍数。

Db2 for z/OS サポートされるすべてのバージョン (IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続) 32767 32767 1048575 32767、65535、98303、131071、163839、196607、229375、262143、294911、327679、360447、393215、425983、458751、491519、524287、557055、589823、622591、655359、688127、720895、753663、786431、819199、851967、884735、917503、950271、983039、1015807、1048575
注:
  1. 有効な値ではない最小値と最大値の間の値を指定すると、 IBM Data Server Driver for JDBC and SQLJ は、 queryDataSize を最も近い有効な値に設定します。

以下の表に、 IBM Data Server Driver for JDBC and SQLJバージョン 4.29 (Db2 11.5.6) 以前の各データ・サーバーの queryDataSize の最小値、最大値、およびデフォルト値をリストします。

表 4. queryDataSize for IBM Data Server Driver for JDBC and SQLJバージョン 4.29 (Db2 11.5.6) 以前のデフォルト値、最小値、および最大値
データ・ソース 製品バージョン デフォルト 最小 最大 有効な値1
Linux、UNIX、および Windows システム上のDb2 サポートされるすべてのバージョン 32767 4096 262143 4096 - 32767, 98303, 131071, 163839, 196607, 229375, 262143
IBM Informix サポートされるすべてのバージョン 32767 4096 10485760 4096 - 10485760
DB2 for IBM i サポートされるすべてのバージョン 32767 4096 262143 4096 - 65535, 98303, 131071, 163839, 196607, 229375, 262143
Db2 for z/OS サポートされるすべてのバージョン (IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続) 32767 32767 262143 32767, 65535, 98303, 131071, 163839, 196607, 229375, 262143
Db2 for z/OS サポートされるすべてのバージョン (IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続) 32767 32767 1048575 32767、65535、98303、131071、163839、196607、229375、262143、294911、327679、360447、393215、425983、458751、491519、524287、557055、589823、622591、655359、688127、720895、753663、786431、819199、851967、884735、917503、950271、983039、1015807、1048575
注:
  1. 有効な値ではない最小値と最大値の間の値を指定すると、 IBM Data Server Driver for JDBC and SQLJ は、 queryDataSize を最も近い有効な値に設定します。
queryTimeoutInterruptProcessingMode
Statement オブジェクトの照会タイムアウト間隔が過ぎたときに、発生する動作を指定します。 有効な値は以下のとおりです。
DB2BaseDataSource.INTERRUPT_PROCESSING_MODE_STATEMENT_CANCEL (1)
Statement オブジェクトの照会タイムアウト間隔が満了すると、 IBM Data Server Driver for JDBC and SQLJ が現在実行中の SQL ステートメントを取り消すことを指定します。 また、データ・サーバーが SQL ステートメントの中断をサポートしている場合、 IBM Data Server Driver for JDBC and SQLJ は、SQL エラー -952 の例外をスローします。 データ・サーバーで SQL ステートメントの中断がサポートされていない場合、ドライバーは、そのフィーチャーがサポートされていないことを示す例外をスローします。

Db2 for z/OS以外のデータ・サーバーへの接続の場合、INTERRUPT_PROCESSING_MODE_STATEMENT_CANCEL がデフォルトです。

Db2 for z/OS データ・サーバーへの接続の場合、INTERRUPT_PROCESSING_MODE_STATEMENT_CANCEL は可能な値ではありません。 それが指定されている場合、ドライバーは代わりに INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET を使用します。

DB2BaseDataSource.INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET (2)
Statement オブジェクトの queryTimeout 時間を過ぎると、以下のいずれかの処理が実行されます。
  • IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続の場合、基礎となるソケットはドロップされ、接続はクローズされます。
  • Db2 for z/OSIBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 の場合、データ・サーバーは CANCEL THREAD LOCAL コマンドを発行し、基礎となる RRSAF スレッドを終了します。 その結果、接続がクローズされます。
  • IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 on Db2 on Linux, UNIX, and Windows システムの場合、 DB2BaseDataSource.INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET はサポートされません。 SQL エラー -4450 で例外がスローされます。

Db2 for z/OS以外のデータ・サーバーへの接続の場合、 Statement オブジェクトがタイムアウトになると、以下のようになります。

  • 自動クライアント・リルートが有効でなく、かつ enableSysplexWLB が false に設定されている場合、SQL エラー・コード -4499 の例外がスローされます。 Statement オブジェクト、または同じ接続から作成された他の Statement オブジェクトの後続の操作は、接続がクローズされたことを示す Exception を受け取ります。 Statement オブジェクトがタイムアウトした後は、 アプリケーションで新しいトランザクションが実行できるようになる前に、 新しい接続を確立する必要があります。
  • 自動クライアント・リルートが有効になっていて、 enableSysplexWLB が falseに設定されている場合、 IBM Data Server Driver for JDBC and SQLJ は接続の再確立を試行します。 新しい接続が正常に再確立された場合、ドライバーは SQL エラー・コード -4498 を返します。 ただし、enableSeamlessFailover が DB2BaseDataSource.YES (1) に設定されていても、タイムアウトした SQL ステートメントをドライバーが再度実行することはありません。
  • enableSysplexWLB が trueに設定されている場合、 IBM Data Server Driver for JDBC and SQLJ は接続の再確立を試みます。 新しい接続が正常に再確立された場合、ドライバーは SQL エラー・コード -30108 を返します。 ただし、enableSeamlessFailover が DB2BaseDataSource.YES (1) に設定されていても、タイムアウトした SQL ステートメントをドライバーが再度実行することはありません。

Db2 for z/OSへの接続の場合、 Statement オブジェクトがタイムアウトになると、以下のようになります。

  • enableSysplexWLB が false に設定されている場合、SQL エラー・コード -4499 の例外がスローされます。 Statement オブジェクト、または同じ接続から作成された他の Statement オブジェクトの後続の操作は、接続がクローズされたことを示す Exception を受け取ります。 Statement オブジェクトがタイムアウトした後は、 アプリケーションで新しいトランザクションが実行できるようになる前に、 新しい接続を確立する必要があります。
  • enableSysplexWLB が trueに設定されている場合、 IBM Data Server Driver for JDBC and SQLJ は接続の再確立を試みます。 新しい接続が正常に再確立された場合、ドライバーは SQL エラー・コード -30108 を返します。 ただし、enableSeamlessFailover が DB2BaseDataSource.YES (1) に設定されていても、タイムアウトした SQL ステートメントをドライバーが再度実行することはありません。
resultSetHoldability
コミット操作後もカーソルをオープンしたままにするかどうかを指定します。 このプロパティーのデータ・タイプは int です。 有効な値は以下のとおりです。
DB2BaseDataSource.HOLD_CURSORS_OVER_COMMIT (1)
コミット操作後にカーソルをオープンしたままにします。

この設定は、分散 (XA) トランザクションに含まれる接続には無効です。

DB2BaseDataSource.CLOSE_CURSORS_AT_COMMIT (2)
コミット操作後にカーソルをクローズします。
DB2BaseDataSource.NOT_SET (0)
この値がデフォルトです。 動作は次のとおりです。
  • 分散 (XA) トランザクションに含まれる接続の場合、カーソルはコミット操作後にクローズされます。
  • 分散トランザクションに含まれない接続の場合、
    • すべてのバージョンの Db2 for z/OS、 Linux、UNIX、および Windows システム上の Db2、または Db2 for IBM i サーバー、あるいは Cloudscape バージョン 8.1 以降のサーバーへの接続の場合、カーソルはコミット操作後も開いたままになります。
    • すべてのバージョンの IBM Informix、またはバージョン 8.1より前の Cloudscape バージョンへの接続の場合、カーソルはコミット操作後にクローズされます。
retrieveMessagesFromServerOnGetMessage
JDBC SQLException.getMessage または SQLWarning.getMessage 呼び出しにより、 IBM Data Server Driver for JDBC and SQLJ がエラーのメッセージ・テキストを取得する Db2 for z/OS ストアード・プロシージャーを呼び出すかどうかを指定します。 このプロパティーのデータ・タイプは boolean です。 デフォルトは false です。 これは、メッセージ・テキスト全体がクライアントに戻されるわけではないことを意味します。
例えば、retrieveMessagesFromServerOnGetMessage を true に設定すると、存在しない表 ADMF001.NO_TABLE に対する SQL 操作が試みられた後、次のようなメッセージが SQLException.getMessage によって戻されます。
ADMF001.NO_TABLE IS AN UNDEFINED NAME. SQLCODE=-204, 
SQLSTATE=42704, DRIVER=3.50.54
retrieveMessagesFromServerOnGetMessage を false に設定すると、次のようなメッセージが戻されます。
DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, DRIVER=3.50.54

このプロパティーを true に設定する代わりに、アプリケーションで IBM Data Server Driver for JDBC and SQLJDB2Sqlca.getMessage メソッドのみを使用することもできます。 いずれの技法でも、ストアード・プロシージャーが呼び出されて作業単位が開始されます。

retryIntervalForClientReroute
自動クライアント・リルートの場合、接続の再試行を行う間隔を秒単位の時間で指定します。

このプロパティーのデータ・タイプは int です。

再試行の意味とデフォルトは、データ・サーバーとドライバーのバージョンによって異なります。

  • Db2 for z/OS データ・サーバーへの接続の場合:
    • 再試行の意味:
      • バージョン 3.66 または 4.16 以降の場合、1 回の再試行は、データ共有グループの失敗したメンバーを除くすべてのメンバーと、グループ IP アドレスへの 1 回の接続試行を意味します。
      • 3.66 または 4.16より前のバージョンの IBM Data Server Driver for JDBC and SQLJ の場合、1 回の再試行は、データ共用グループの 1 つのメンバーへの接続を試行することを意味します。
    • デフォルト:
      • ドライバー・バージョン 4.33: maxRetriesForClientRerouteretryIntervalForClientReroute も設定されておらず、データ共用グループへの初期接続が確立されていない場合、デフォルトの maxRetriesForClientReroute 値は 1、デフォルトの retryIntervalForClientReroute 値は 0 です。
      • ドライバー・バージョン 4.33:
        • バージョン 3.66 または 4.16、あるいはそれ以降の IBM Data Server Driver for JDBC and SQLJの場合、デフォルトは 0 です。
        • 3.64 および 4.14より前のバージョンの IBM Data Server Driver for JDBC and SQLJ の場合、接続は 10 分間再試行されます。 初回再試行からの経過時間が長くなるにつれて、再試行と再試行の間の待ち時間は長くなります。
  • Db2 for z/OS以外のデータ・サーバーへの接続の場合:
    • 1 回の再試行の意味: enableClientAffinitiesList を DB2BaseDataSource.NO (2) に設定した場合、1 次サーバーおよび代替サーバーへの接続の試行が、1 回の再試行としてカウントされます。

      enableClientAffinitiesList を DB2BaseDataSource.YES (1) に設定した場合、clientRerouteAlternateServerName および clientRerouteAlternatePortNumber の値に指定されている各サーバーに対する接続の試行が、1 回の再試行としてカウントされます。 各サーバー接続は、maxRetriesForClientReroute によって指定された回数再試行されます。

      Db2 pureScale インスタンスへの接続の場合:

      • バージョン 3.67 または 4.17 以降の IBM Data Server Driver for JDBC and SQLJの場合、再試行とは、データ・サーバー・インスタンスのすべてのメンバーへの接続を試行することです。
      • IBM Data Server Driver for JDBC and SQLJ 3.67 または 4.17より前のバージョンの場合、再試行は単一メンバーへの接続の試行です。
    • デフォルト:
      • ドライバー・バージョン 4.33: maxRetriesForClientRerouteretryIntervalForClientReroute も設定されていない場合、接続は 10 分間再試行されます。
      • ドライバー・バージョン 4.33: enableClientAffinitiesList が DB2BaseDataSource.NO (2) に設定されていて、 maxRetriesForClientReroute および retryIntervalForClientReroute が設定されていない場合、接続は 10 分間再試行されます。 初回再試行からの経過時間が長くなるにつれて、再試行と再試行の間の待ち時間は長くなります。

        enableClientAffinitiesList が DB2BaseDataSource.YES (1) の場合、デフォルトは 3 です。

securityMechanism
DRDA セキュリティー・メカニズムを指定します。 このプロパティーのデータ・タイプは int です。 可能な値は以下のとおりです。
CLEAR_TEXT_PASSWORD_SECURITY (3)
ユーザー ID およびパスワード
USER_ONLY_SECURITY (4)
ユーザー ID のみ
ENCRYPTED_PASSWORD_SECURITY (7)
ユーザー ID および暗号化されたパスワード
ENCRYPTED_USER_AND_PASSWORD_SECURITY (9)
暗号化されたユーザー ID およびパスワード
KERBEROS_SECURITY (11)
Kerberos. この値は、 IBM Informixへの接続には適用されません。
ENCRYPTED_USER_AND_DATA_SECURITY (12)
暗号化されたユーザー ID および暗号化されたセキュリティー・センシティブ・データ。 この値は、 Db2 for z/OS への接続にのみ適用されます。
ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY (13)
暗号化されたユーザー ID とパスワード、および暗号化されたセキュリティー・センシティブ・データ。 この値は、 IBM Informixへの接続には適用されません。
PLUGIN_SECURITY (15)
プラグイン・セキュリティー。 この値は、 Linux、UNIX、および Windows システム上の Db2 への接続にのみ適用されます。
ENCRYPTED_USER_ONLY_SECURITY (16)
暗号化されたユーザー ID。 この値は、 IBM Informixへの接続には適用されません。
TLS_CLIENT_CERTIFICATE_SECURITY (18)
SSL を使用する、クライアント証明書セキュリティー。 この値は、 Db2 for z/OS バージョン 10 以降への接続にのみ適用されます。
TOKEN_SECURITY (19)
トークン認証。 この値は、 Linux、UNIX、および Windows システム上の Db2バージョン 11.5 モディフィケーションパック 4 以降、および IBM Data Server Driver for JDBC and SQLJバージョン 4.27.22 以降への接続に適用されます。

securityMechanism を指定すると、指定したセキュリティー・メカニズムのみが使用されます。 セキュリティー・メカニズムが接続でサポートされていない場合、例外が出されます。

重要:
バージョン 4.33 以降の IBM Data Server Driver for JDBC and SQLJ:
  • デフォルトのセキュリティー・メカニズムは ENCRYPTED_USER_AND_PASSWORD_SECURITYです。 データ・サーバーが ENCRYPTED_USER_AND_PASSWORD_SECURITYをサポートしていないが、 CLEAR_TEXT_PASSWORD_SECURITYをサポートしている場合、ドライバーはセキュリティー・メカニズムを CLEAR_TEXT_PASSWORD_SECURITY に変更し、データ・サーバーへの接続を試行します。
    ドライバーが CLEAR_TEXT_PASSWORD_SECURITYを使用して接続を再試行すると、パフォーマンスが低下する可能性があります。 パフォーマンスへの影響を最小限にするには、以下のいずれかのアクションを実行します。
    • クライアント・サイドでセキュリティー・メカニズムを CLEAR_TEXT_PASSWORD_SECURITY に明示的に設定します。
    • ENCRYPTED_USER_AND_PASSWORD_SECURITY をサポートするようにデータ・サーバー設定を変更してください。

    CLEAR_TEXT_PASSWORD_SECURITY および ENCRYPTED_USER_AND_PASSWORD_SECURITY 以外のリクエスターとデータ・サーバーの間のセキュリティー・メカニズム・サポートに不一致があると、エラーになります。

  • デフォルトのセキュリティー・メカニズム ENCRYPTED_USER_AND_PASSWORD_SECURITY および AES 暗号化を使用する Db2 for z/OS サブシステムまたはデータ共用グループへの接続は、各サブシステムまたはデータ共用メンバーがインストールされている z/OS システムで z/OS Integrated Cryptographic Service Facility (ICSF) が有効になっている場合にのみ成功します。 ユーザー ID とパスワードを暗号化解除するには、ICSF が必要です。 ICSF がインストールされていない場合は、セキュリティー・メカニズムを CLEAR_TEXT_PASSWORD_SECURITYに設定する必要があります。

バージョン 4.33 より前の IBM Data Server Driver for JDBC and SQLJでは、デフォルトのセキュリティー・メカニズムは CLEAR_TEXT_PASSWORD_SECURITYです。 データ・サーバーが CLEAR_TEXT_PASSWORD_SECURITYをサポートしていないが、 ENCRYPTED_USER_AND_PASSWORD_SECURITYをサポートしている場合、ドライバーはセキュリティー・メカニズムを ENCRYPTED_USER_AND_PASSWORD_SECURITY に変更し、データ・サーバーへの接続を試行します。 リクエスターとデータ・サーバーの間のセキュリティー・メカニズム・サポートにその他の不一致があると、エラーになります。

このプロパティーは、 Db2 for z/OS上の IBM Data Server Driver for JDBC and SQLJ タイプ 2 接続 には適用されません。

セキュリティー・メカニズム ENCRYPTED_PASSWORD_SECURITY、ENCRYPTED_USER_AND_PASSWORD_SECURITY、ENCRYPTED_USER_AND_DATA_SECURITY、ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY、および ENCRYPTED_USER_ONLY_SECURITY DRDA 暗号化を使用します。 DRDA 暗号化は、セキュアでないネットワーク上 (インターネットなど) でパスワードやデータの機密性と保全性を提供することを意図してはいません。 DRDA 暗号化では匿名鍵交換の Diffie-Hellman を使用します。これにはサーバーとクライアントの認証が備えられていません。 DRDA 暗号化は、中間者攻撃に対して脆弱です。

sendDataAsIs
IBM Data Server Driver for JDBC and SQLJ が入力パラメーター値をターゲット列のデータ・タイプに変換しないことを指定します。 このプロパティーのデータ・タイプは boolean です。 デフォルトは falseです。

このプロパティーを使用する必要があるのは、アプリケーション内のデータ・タイプが、対応するデータベース表内のデータ・タイプに常に一致するようにしているアプリケーションの場合のみです。

serverBidiStringType

enableBidiLayoutTransformation が有効である場合に使用されます。 サーバーで使用されるストリング・タイプを指定します。 このプロパティーのデータ・タイプは int です。 serverBidiStringType の可能な値は clientBidiStringType と同じです。

serverName
データ・ソースのホスト名または TCP/IP アドレス。 このプロパティーのデータ・タイプは String です。
sqljAvoidTimeStampConversion
以下のいずれかの場合に、 IBM Data Server Driver for JDBC and SQLJ がタイム・スタンプ値の Java による調整を防止し、データ検索中に調整されていない値を戻すかどうかを指定します。
  • 値の日付部分が 1582 年 10 月 5 日から 1582 年 10 月 14 日までの範囲にある場合。
  • データ・サーバーが常駐するシステムが夏時間調整のために調整される場合。 夏時間調整の場合は、以下のことを意味します。
    • 春の指定された日付に時計を 1 時間前に動かします。 その日の長さは 23 時間です。
    • 秋の指定された日付に、クロックを 1 時間後に移動します。 その日の長さは 25 時間です。

sqljAvoidTimeStampConversionに指定できる値は、以下のとおりです。

true
データ取得時に、タイム・スタンプ値は調整されません。

sqljAvoidTimeStampConversion プロパティーを trueに設定する場合は、 ResultSet.getString メソッドを使用して String 形式のタイム・スタンプ値を取得する必要があります。 Java Calendar パラメーターを指定して Timestamp オブジェクトを返す ResultSet メソッドを使用する場合、Java アプリケーション・プログラミング・インターフェースはデータを変更し、ドライバーはタイム・スタンプ変換を制御できません。

false
データの取得中に、タイム・スタンプ値が調整されます。 falseがデフォルトです。

このプロパティーは、SQLJ および JDBC アプリケーションに適用されます。

sslCertLocation
トラステッド証明書ファイルのロケーションをアプリケーションが構成できることを指定します。 データベース・サーバー証明書を持つアプリケーションの場合、 IBM Data Server Driver for JDBC and SQLJ に SSL 接続の証明書を信頼するように指示するために構成する必要があるプロパティーは、 sslCertロケーションのみです。 このプロパティーを使用することで、Java トラストストア・データベースと関連ドライバーの構成に証明書をインポートする必要がなくなります。

sslCertLocation のデフォルト値は、db2.jcc.sslCertLocation 構成プロパティーによって提供されます。 db2.jcc.sslCertLocation 構成プロパティーが指定されない場合、 sslTruststoreロケーション・プロパティーおよび sslCertロケーション・プロパティーが構成されず、 sslConnection が trueに設定されると、 IBM Data Server Driver for JDBC and SQLJ は Java ランタイム環境のデフォルト・トラストストアを使用します。

sslCertLocation プロパティーは、次の形式の証明書ロケーション値を受け入れます。

  • ファイル拡張子: .arm、.pem、.cert、.crt、および .der。
  • 証明書ファイルの絶対パス: sslCertLocation=/path/to/cert.arm
  • 現在のクラスパスを基準とする相対パス:sslCertLocation=classpath:relative/cert.arm
  • バイナリーまたは Base64 ASCII エンコードの DER エンコード証明書。 Base64 エンコードの証明書を提供する場合は、ファイルの内容を -----BEGIN CERTIFICATE----- (始まり) と -----END CERTIFICATE----- (終わり) で囲む必要があります。
sslCipherSuites

サーバーへの SSL 接続を確立する際に使用する暗号スイートのセットを指定します。 このプロパティーを構成するのは、JRE (Java ランタイム環境) のデフォルトの暗号スイートを使用しないことにした場合のみです。 暗号スイートの名前を、コンマで区切ったストリング値として指定します。

sslClientHostnameValidation
Transport Layer Security (TLS) を使用するデータ・サーバーへの接続を確立するときに、 IBM Data Server Driver for JDBC and SQLJ がクライアント・ホスト名の検証を実行するかどうかを指定します。 ホスト名の妥当性検査は、IETF RFC 6125 に規定されている標準に従って実行されます。
sslClientHostnameValidation は、以下のいずれかの値をとることができます。
BASIC
ホスト名の妥当性検査を有効にすることを指定します。 TLS ハンドシェーク時に、データ・サーバーが証明書をドライバーに送信すると、ドライバーは証明書内のホスト名またはそれに対応する IP アドレスが、アプリケーションがドライバーに提供したホスト名またはそれに対応する IP アドレスに一致するかどうかを検査します。
OFF
ホスト名の妥当性検査を無効にすることを指定します。 これがデフォルトです。

このプロパティーは、 Db2 for z/OS および Linux、UNIX、および Windows システム上の Db2 への IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続 にのみ適用されます。

sslConnection
IBM Data Server Driver for JDBC and SQLJ が SSL ソケットを使用してデータ・ソースに接続するかどうかを指定します。 sslConnection を true に設定すると、SSL ソケットが接続で使用されます。 sslConnection を false に設定すると、プレーン・ソケットが接続で使用されます。

sslConnection のデフォルト値は、db2.jcc.sslConnection 構成プロパティーによって提供されます。 db2.jcc.sslConnection 構成プロパティーも指定されていない場合、sslConnection のデフォルト値は false です。

このプロパティーは、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続にのみ適用されます。

sslTrustStoreLocation
SSL 接続のサーバー証明書を含むクライアント上の Java トラストストアの絶対パス名を指定します。

IBM Data Server Driver for JDBC and SQLJ は、 sslConnection プロパティーが trueに設定されている場合にのみ、このオプションを使用します。

sslTrustStoreLocation が設定されていて、 sslConnection が trueに設定されている場合、 IBM Data Server Driver for JDBC and SQLJ は javax.net.ssl.trustStore Java プロパティーの値の代わりに sslTrustStoreLocation 値を使用します。

sslTrustStoreLocation のデフォルト値は、db2.jcc.sslTrustStoreLocation 構成プロパティーによって提供されます。 db2.jcc.sslTrustStoreLocation 構成プロパティーも指定されていない場合、sslTrustStoreLocation のデフォルト値は null です。

このプロパティーは、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続にのみ適用されます。

sslTrustStorePassword
SSL 接続用のサーバー証明書が含まれるクライアント上の Java トラストストアのパスワードを指定します。

IBM Data Server Driver for JDBC and SQLJ は、 sslConnection プロパティーが trueに設定されている場合にのみ、このオプションを使用します。

sslTrustStorePassword が設定され、 sslConnection が trueに設定されている場合、 IBM Data Server Driver for JDBC and SQLJ は javax.net.ssl.trustStorePassword Java プロパティーの値の代わりに sslTrustStorePassword 値を使用します。

sslTrustStorePassword のデフォルト値は、db2.jcc.sslTrustStorePassword 構成プロパティーによって提供されます。 db2.jcc.sslTrustStorePassword 構成プロパティーも指定されていない場合、sslTrustStorePassword のデフォルト値は null です。

このプロパティーは、 IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続にのみ適用されます。

sslTrustStoreType
トラステッド証明書ファイルのタイプを指定します。 sslTrustStoreType プロパティーは、 T4 SSL 接続の Db2 for z/OS Linux、UNIX、および Windows システム上のDb2、および IBM Informix 用です。

sslTrustStoreType のデフォルト値は NULL (未設定) です。 sslTrustStoreTypeNULL の場合、SSL 接続のトラストストア・ファイルをロードするために、JRE のデフォルトのトラストストア・タイプが適用されます。

sslVersion
アプリケーションが SSL 接続に使用できる SSL バージョンまたは TLS プロトコル・レベルを指定します。 sslVersion のデフォルト値は null (設定しない) です。 Connection または DataSource オブジェクトで sslVersion が定義されていない場合は、Java ランタイム環境のデフォルトの TLS レベルまたは SSL バージョンが SSL 接続に適用されます。 sslVersion 値の例は、 TLSv1.3 および SSLv3です。
stripTrailingZerosForDecimalNumbers
IBM Data Server Driver for JDBC and SQLJ が DECFLOAT、DECIMAL、または NUMERIC 列からデータを取り出すときに後続ゼロを除去するかどうかを指定します。 このプロパティーは、SDK for Java がバージョン 1.5 以降の場合にのみ意味があります。 このプロパティーのデータ・タイプは int です。

可能な値は以下のとおりです。

DB2BaseDataSource.NOT_SET (0)
IBM Data Server Driver for JDBC and SQLJ は、取り出された値から後続ゼロを除去しません。 この値がデフォルトです。
DB2BaseDataSource.YES (1)
IBM Data Server Driver for JDBC and SQLJ は、DECFLOAT、DECIMAL、または NUMERIC 列から java.math.BigDecimal オブジェクトとして値を取り出すときに、後続ゼロを除去します。

例えば、ドライバーが値 234.04000 を取り出すとき、値 234.04 がアプリケーションに戻されます。

DB2BaseDataSource.NO (2)
IBM Data Server Driver for JDBC and SQLJ は、取り出された値から後続ゼロを除去しません。
timerLevelForQueryTimeOut
IBM Data Server Driver for JDBC and SQLJ が、照会実行のタイムアウトを待機するための java.util.Timer オブジェクトを作成するレベルを指定します。 可能な値は以下のとおりです。
DB2BaseDataSource.QUERYTIMEOUT_STATEMENT_LEVEL (1)
IBM Data Server Driver for JDBC and SQLJ は、 Statement オブジェクトごとに Timer オブジェクトを作成します。 Statement オブジェクトが閉じられると、ドライバーは Timer オブジェクトを削除します。 この値は、 IBM Data Server Driver for JDBC and SQLJ バージョン 4.26より前のデフォルトです。
DB2BaseDataSource.QUERYTIMEOUT_CONNECTION_LEVEL (2)
IBM Data Server Driver for JDBC and SQLJ は、 Connection オブジェクトごとに Timer オブジェクトを作成します。 Connection オブジェクトが閉じられると、ドライバーは Timer オブジェクトを削除します。 この値は、 IBM Data Server Driver for JDBC and SQLJ バージョン 4.26 以降のデフォルトです。

接続プール環境で timerLevelForQueryTimeOut が QUERYTIMEOUT_CONNECTION_LEVEL に設定されている場合、プロセス内の Timer オブジェクトの数はプール内の Connection オブジェクトの数と一致します。 タイマー・スレッドは、プール内のすべての Connection オブジェクトの存続期間中アクティブです。

DB2BaseDataSource.QUERYTIMEOUT_DISABLED (-1)
IBM Data Server Driver for JDBC and SQLJ は、照会実行タイムアウトを制御するための Timer オブジェクトを作成しません。
timestampFormat
TIMESTAMP 列に対する ResultSet.getString メソッドまたは CallableStatement.getString メソッドの結果を返す形式を指定します。 timestampFormat のデータ・タイプは int です。
timestampFormat に指定できる値は次のとおりです。
定数 整数値 形式
com.ibm.db2.jcc.DB2BaseDataSource.ISO 1 yyyy-mm-dd-hh.mm.ss.nnnnnnnnn1
com.ibm.db2.jcc.DB2BaseDataSource.JDBC 5 yyyy-mm-dd hh:mm:ss.nnnnnnnnn1
注:
  1. タイム・スタンプの小数部分の桁数は、ソース表の TIMESTAMP(p) 列の精度によって異なります。 p<9 の場合は、p 桁が返されます。 p>=9 の場合は、9 桁が返され、残りの桁は切り捨てられます。
デフォルトは com.ibm.db2.jcc.DB2BaseDataSource.JDBC です。

timestampFormat は、出力の形式にのみ影響します。

timestampPrecisionReporting
TIMESTAMP 値について、Resultset.getString 呼び出しの結果から後続ゼロを切り捨てるかどうかを指定します。 このプロパティーのデータ・タイプは int です。 可能な値は以下のとおりです。
TIMESTAMP_JDBC_STANDARD (1)
TIMESTAMP 値について、Resultset.getString 呼び出しの結果から後続ゼロを切り捨てます。 この値がデフォルトです。
以下に例を示します。
  • TIMESTAMP 値 2009-07-19-10.12.00.000000 は、検索の後、2009-07-19-10.12.00.0 に切り捨てられます。
  • TIMESTAMP 値 2009-12-01-11.30.00.100000 は、検索の後、2009-12-01-11.30.00.1 に切り捨てられます。
TIMESTAMP_ZERO_PADDING (2)
TIMESTAMP 値について、Resultset.getString 呼び出しの結果から後続ゼロを切り捨てません。
traceDirectory
トレース情報の書き込み先のディレクトリーを指定します。 このプロパティーのデータ・タイプは String です。 traceDirectory を指定すると、同一の DataSource 上にある複数の接続のトレース情報が、複数のファイルに書き込まれます。

traceDirectory を指定すると、接続のトレースは、traceFile_origin_n という名前のファイルへ書き込まれます。

n は、 DataSourcen番目の接続です。

origin は、使用中のログ書き込みプログラムの起点を示します。 origin に指定できる値は次のとおりです。

cpds
DB2ConnectionPoolDataSource オブジェクトのログ書き込みプログラム。
driver
DB2Driver オブジェクトのログ書き込みプログラム。
global
DB2TraceManager オブジェクトのログ書き込みプログラム。
sds
DB2SimpleDataSource オブジェクトのログ書き込みプログラム。
xads
DB2XADataSource オブジェクトのログ書き込みプログラム。
traceFile プロパティーも指定した場合、traceDirectory 値は使用されません。
traceFile
IBM Data Server Driver for JDBC and SQLJ がトレース情報を書き込むファイルの名前を指定します。 このプロパティーのデータ・タイプは String です。 traceFile プロパティーは、 ファイルに出力トレース・ストリームを送信する logWriter プロパティーの代わりに使用できます。

traceFile 値は、 exedllbatjarvbspyjsjspjspxmsicominfipaosxpifrunwshzip、または aspのいずれのファイル拡張子も持つことができません。

traceFileAppend
traceFile プロパティーによって指定されるファイルへ付加するか、 あるいは上書きするかを指定します。 このプロパティーのデータ・タイプは boolean です。 デフォルトは false です。 これは、traceFile プロパティーによって指定されるファイルが上書きされることを意味します。
traceLevel
何をトレースするかを指定します。 このプロパティーのデータ・タイプは int です。
traceLevel プロパティーで、以下のトレースを 1 つ以上指定することができます。
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_NONE (X'00')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_CONNECTION_CALLS (X'01')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_STATEMENT_CALLS (X'02')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_RESULT_SET_CALLS (X'04')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_DRIVER_CONFIGURATION (X'10')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_CONNECTS (X'20')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_DRDA_FLOWS (X'40')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_RESULT_SET_META_DATA (X'80')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_PARAMETER_META_DATA (X'100')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_DIAGNOSTICS (X'200')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_SQLJ (X'400 ® ')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_XA_CALLS (X'800') (IBM Data Server Driver for JDBC and SQLJ type 2 connectivity for Db2 on Linux, UNIX, and Windows systems only)
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_META_CALLS (X'2000')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_DATASOURCE_CALLS (X'4000')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_LARGE_OBJECT_CALLS (X'8000')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_SYSTEM_MONITOR (X'20000')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_TRACEPOINTS (X'40000')
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_SYSPLEX (X'80000 ') ( IBM Data Server Driver for JDBC and SQLJ、および Db2 for z/OS データ共用グループへの接続のバージョン 3.68 または 4.18以降の場合)
  • com.ibm.db2.jcc.DB2BaseDataSource.TRACE_ALL (X'FFFFFFFF')
複数のトレースを指定するには、以下の技法のいずれかを使用します。
  • 2 つ以上のトレース値にビット単位 OR (|) 演算子を使用する。 例えば、DRDA フローおよび接続呼び出しをトレースするには、 traceLevelに以下の値を指定します。
    TRACE_DRDA_FLOWS|TRACE_CONNECTION_CALLS
  • ビット単位の補数 (~) 演算子とトレース値を使用して、特定のトレース以外のすべてを指定する。 例えば、DRDA フロー以外のすべてをトレースするには、 traceLevelに以下の値を指定します。
     ~TRACE_DRDA_FLOWS
traceFileCount
循環トレースの場合のトレース・ファイルの最大数を指定します。 IBM Data Server Driver for JDBC and SQLJ は、 traceOption が DB2BaseDataSource.TRACE_OPTION_CIRCULAR (1) に設定されている場合にのみ、このプロパティーを使用します。 このプロパティーのデータ・タイプは int です。 デフォルト値は 2 です。
traceFileSize
循環トレースの場合に、各トレース・ファイルの最大サイズを指定します。 IBM Data Server Driver for JDBC and SQLJ は、 traceOption が DB2BaseDataSource.TRACE_OPTION_CIRCULAR (1) に設定されている場合にのみ、このプロパティーを使用します。 このプロパティーのデータ・タイプは int です。 デフォルト値は 10485760 (10 MB) です。
traceOption
トレース・データの収集方法を指定します。 このプロパティーのデータ・タイプは int です。 可能な値は以下のとおりです。
DB2BaseDataSource.NOT_SET (0)
単一のトレース・ファイルが生成され、ファイルのサイズに制限がないことを指定します。 この値がデフォルトです。

traceOption の値が NOT_SET の場合、traceFileSize および traceFileCount の各プロパティーは無視されます。

DB2BaseDataSource.TRACE_OPTION_CIRCULAR (1)
IBM Data Server Driver for JDBC and SQLJ が循環トレースを行うことを指定します。 循環トレースは次のように行われます。
  1. アプリケーションが最初のトレース・レコードを書き込む時に、ドライバーはファイルを作成します。
  2. ドライバーはそのファイルにトレース・データを書き込みます。
  3. ファイルのサイズがプロパティー traceFileSize の値と等しくなったとき、ドライバーは別のファイルを作成します。
  4. ドライバーは、データが書き込まれるファイルの数がプロパティー traceFileカウントの値と等しくなるまで、ステップ 2 および 3 を繰り返します。
  5. ドライバーは最初のトレース・ファイルに、既存のデータを上書きする形でデータを書き込みます。
  6. ドライバーは、アプリケーションが完了するまでステップ 3 から 5 を繰り返します。

トレース・ファイルのファイル名は、traceFile プロパティーまたは traceDirectory プロパティーによって決定されたファイル名です。 最初のファイルのファイル名の末尾には .1 が付加され、2 番目のファイルには .2 が付加され、以降同様に番号が付加されます。

useJDBC41DefinitionForGetColumns
DatabaseMetaData.getColumns メソッドが、列の名前を SCOPE_CATALOG または SCOPE_CATLOG のどちらにして結果セットを返すかを指定します。 可能な値は以下のとおりです。
DB2BaseDataSource.NOT_SET (0)
バージョン 4.13 以降の IBM Data Server Driver for JDBC and SQLJの場合、 DatabaseMetaData.getColumns からの結果セットに SCOPE_CATALOG という名前の列が含まれることを指定します。 バージョン 4.12 以前の IBM Data Server Driver for JDBC and SQLJの場合、この列の名前は SCOPE_CATLOG です。
DB2BaseDataSource.YES (1)
バージョン 4.13 以降の IBM Data Server Driver for JDBC and SQLJの場合、 DatabaseMetaData.getColumns からの結果セットに SCOPE_CATALOG という名前の列が含まれることを指定します。 バージョン 4.12 以前の IBM Data Server Driver for JDBC and SQLJの場合、この列の名前は SCOPE_CATLOG です。
DB2BaseDataSource.NO (2)
IBM Data Server Driver for JDBC and SQLJのすべてのバージョンについて、 DatabaseMetaData.getColumns からの結果セットに SCOPE_CATLOG という名前の列が含まれることを指定します。
useJDBC4DataType
IBM Data Server Driver for JDBC and SQLJバージョン 4.27 以降が GRAPHIC、VARGRAPHIC、または DBCLOB データ・タイプの列データのためにアプリケーションに戻すデータ・タイプを指定します。 可能な値は以下のとおりです。
DB2BaseDataSource.NOT_SET (0)
この値がデフォルトです。 この動作は、DB2BaseDataSource.YES の場合と同じです。
DB2BaseDataSource.YES (1)
GRAPHIC、VARGRAPHIC、または DBCLOB データ・タイプの列からデータを取り出すときに、 IBM Data Server Driver for JDBC and SQLJ が以下のデータ・タイプのデータを戻すことを指定します。
列データ・タイプ 戻されるデータのデータ・タイプ
GRAPHIC NCHAR
VARGRAPHIC NVARCHAR
DBCLOB NCLOB

これらの返されるデータ・タイプは JDBC 4.0 規格に準拠しています。

DB2BaseDataSource.NO (2)
GRAPHIC、VARGRAPHIC、または DBCLOB データ・タイプの列からデータを取り出すときに、 IBM Data Server Driver for JDBC and SQLJ が以下のデータ・タイプのデータを戻すことを指定します。
列データ・タイプ 戻されるデータのデータ・タイプ
GRAPHIC CHAR
VARGRAPHIC VARCHAR
DBCLOB CLOB

これらのデータ・タイプは、 IBM Data Server Driver for JDBC and SQLJ バージョン 4.26 以前の場合に返されるデータ・タイプと同じです。

user
接続の確立に使用するユーザー ID。 このプロパティーのデータ・タイプは String です。 DataSource インターフェースを使用して接続を確立するときは、 DataSource.getConnection メソッドを次の形式で呼び出すと、 このプロパティー値をオーバーライドすることができます。
getConnection(user, password);
xaNetworkOptimization
IBM Data Server Driver for JDBC and SQLJ タイプ 4 接続に対して XA ネットワーク最適化を有効にするかどうかを指定します。 1 つの Java プロセスから XA 開始と XA 終了が発行され、別の Java プロセスから XA 準備と XA コミットが発行される環境では、XA ネットワーク最適化を使用不可にする必要がある場合があります。 XA ネットワーク最適化では、XA Prepare が XA End より先にデータ・ソースに到達する可能性があります。この場合、XAER_PROTO エラーが発生します。 XAER_PROTO エラーを防ぐには、XA ネットワーク最適化を使用不可にしてください。

デフォルトは true で、XA ネットワーク最適化が使用可能になります。 xaNetworkOptimization が false の場合 (つまり XA ネットワーク最適化が使用不可の場合)、ドライバーは XA End 時にすべてのオープン・カーソルをクローズします。

xaNetwork最適化は、 DataSource オブジェクトに対して、または getConnection 呼び出しの url パラメーターで設定できます。 接続の取得後に xaNetworkOptimization の値を変更することはできません。