6.6. データソース設定

6.6.1. データソースのパラメーター

表6.3 非 XA および XA データソースに共通のデータソースパラメーター

パラメーター 説明
jndi-name データソースに対する一意の JNDI 名
pool-name データソースの管理プール名
enabled データソースが有効かどうか
use-java-context
データソースをグローバルの JNDI にバインドするかどうか
spy
JDBC 層で spy 機能を有効にします。これで全 JDBC トラフィックをデータソースにロギングします。logging-category パラメーターは org.jboss.jdbc に設定する必要があります。
use-ccm キャッシュ接続マネージャーを有効化
new-connection-sql 接続プールに接続が追加された場合に実行する SQL ステートメント
transaction-isolation
以下のいずれかになります。
  • TRANSACTION_READ_UNCOMMITTED
  • TRANSACTION_READ_COMMITTED
  • TRANSACTION_REPEATABLE_READ
  • TRANSACTION_SERIALIZABLE
  • TRANSACTION_NONE
url-delimiter 高可用性 (HA) のクラスターデータベース に関する connection-url にある URL の区切り文字 
url-selector-strategy-class-name org.jboss.jca.adapters.jdbc.URLSelectorStrategy インターフェースを実装するクラス
security
セキュリティー設定である子要素が含まれます。表6.8「セキュリティパラメーター」 を参照してください。
validation
検証設定である子要素が含まれます。表6.9「検証パラメーター」 を参照してください。
timeout
タイムアウト設定である子要素が含まれます。表6.10「タイムアウトパラメーター」 を参照してください。
statement
ステートメント設定である子要素が含まれます。表6.11「ステートメントのパラメーター」 を参照してください。

表6.4 非 XA データソースのパラメーター

パラメーター 説明
jta 非 XA データソースの JTA 統合を有効にします。XA データソースには適用されません。
connection-url JDBC ドライバーの接続 URL
driver-class JDBC ドライバークラスの完全修飾名
connection-property
Driver.connect(url,props) メソッドに渡される任意の接続プロパティー。各 connection-property は、文字列名と値のペアを指定します。プロパティー名は名前、値は要素の内容に基づいています。
pool
プーリング設定である子要素が含まれます。表6.6「非 XA および XA データソースに共通のプールパラメーター」 を参照してください。

表6.5 XA データソースのパラメーター

パラメーター 説明
xa-datasource-property
実装クラス XADataSource に割り当てるプロパティー。name=value で指定。 setNameという形式で setter メソッドが存在する場合、プロパティーは setName(value) という形式の setter メソッドを呼び出すことで設定されます。
xa-datasource-class
実装クラス javax.sql.XADataSource の完全修飾名
driver
JDBC ドライバーを含むクラスローダーモジュールへの一意参照。driverName#majorVersion.minorVersion. の形式にのみ対応しています。
xa-pool
プーリング設定である子要素が含まれます。表6.6「非 XA および XA データソースに共通のプールパラメーター」 および 表6.7「XA プールパラメーター」 を参照してください。
recovery
リカバリー設定である子要素が含まれます。表6.12「リカバリーパラメーター」 を参照してください。

表6.6 非 XA および XA データソースに共通のプールパラメーター

パラメーター 説明
min-pool-size プールが保持する最小接続数
max-pool-size プールが保持可能な最大接続数
prefill 接続プールのプレフィルを試行するかどうか。要素が空の場合は true を示します。デフォルトは、false です。
use-strict-min pool-size が厳密かどうか。デフォルトは false に設定されています。
flush-strategy
エラーがある場合にプールをフラッシュするかどうか。有効値は次の通りです。
  • FailingConnectionOnly
  • IdleConnections
  • EntirePool
デフォルトは FailingConnectionOnly です。
allow-multiple-users 複数のユーザーが getConnection (user, password) メソッドを使いデータソースへアクセスするか、また内部プールタイプがこの動作に対応するかを指定します。

表6.7 XA プールパラメーター

パラメーター 説明
is-same-rm-override javax.transaction.xa.XAResource.isSameRM(XAResource) クラスが true あるいは false のどちらを返すか
interleaving XA 接続ファクトリのインターリービングを有効にするかどうか
no-tx-separate-pools コンテキスト毎に sub-pool を作成するかどうか。これには Oracle のデータソースが必要ですが、このデータソースは JTA トランザクションの内部、外部に関わらず、XA 接続の利用ができなくなります。
pad-xid Xid のパディングを行うかどうか
wrap-xa-resource
org.jboss.tm.XAResourceWrapper インスタンスの XAResource をラップするかどうか

表6.8 セキュリティパラメーター

パラメーター 説明
user-name 新規接続の作成に使うユーザー名
password 新規接続の作成に使うパスワード
security-domain 認証処理を行う JAAS security-manager 名が入ります。この名前は、JAAS ログイン設定のapplication-policy/name 属性を相関します。
reauth-plugin 物理接続の再認証に使う再認証プラグインを定義します。

表6.9 検証パラメーター

パラメーター 説明
valid-connection-checker
SQLException.isValidConnection(Connection e) 設定を渡し接続の検証を行う org.jboss.jca.adaptors.jdbc.ValidConnectionChecker インターフェースの実装。接続が破棄されると例外となります。このパラメーターがある場合、check-valid-connection-sql よりもこのパラメーターが優先されます。
check-valid-connection-sql プール接続の妥当性を確認する SQL ステートメント。これは、管理接続をプールから取得し利用する場合に呼び出される場合があります。
validate-on-match
接続ファクトリが、指定セットと管理接続がマッチするか確認しようとした場合に、接続レベルの検証を実行するかを指定します。background validation とは相互排他的です。
background-validation
接続が利用前の認証ではなく、バッググラウンドのスレッドで認証済みであることを指定します。validate-on-match とは相互排他的です。
background-validation-minutes バックグラウンド認証を実行する時間数 (分)。
use-fast-fail
true の場合、接続が無効であれば1回目の試行で接続割り当てを失敗させます。デフォルトは false です。
stale-connection-checker
org.jboss.jca.adapters.jdbc.StaleConnectionChecker のインスタンスで、Boolean isStaleConnection(SQLException e) メソッドを渡します。このメソッドが true を返す場合、例外は、SQLExceptionのサブクラスである、org.jboss.jca.adapters.jdbc.StaleConnectionException でラップされます。
exception-sorter
org.jboss.jca.adapters.jdbc.ExceptionSorter のインスタンスで、ブール変数 isExceptionFatal(SQLException e) メソッドを渡します。このメソッドは、例外が connectionErrorOccurred メッセージとして、javax.resource.spi.ConnectionEventListener のインスタンスすべてにブロードキャストされるべきかを検証します。

表6.10 タイムアウトパラメーター

パラメーター 説明
blocking-timeout-millis 接続待機中にブロックする最大時間数 (ミリ秒)。この時間を超過すると、例外が送出されます。これは、接続許可の待機中にブロックするだけで、新規接続の作成に長時間要している場合は例外を送出しません。デフォルトは 30000 (3分) です。
idle-timeout-minutes
アイドル接続が切断されるまでの最大時間 (分)。実際の最大時間は、idleRemover のスキャン時間 (プールの最小 idle-timeout-minutes の半分) に左右されます。
set-tx-query-timeout
トランザクションがタイムアウトされるまでの残存時間数をもとにクエリのタイムアウトを設定するかどうか。トランザクションが存在しない場合は設定済みのクエリタイムアウトのいずれかを利用します。デフォルトは false です。
query-timeout クエリのタイムアウト (秒)。デフォルトはタイムアウトなしです。
allocation-retry 例外を送出する前に接続割り当ての再試行をする回数。デフォルトは 0 で、初回の失敗後に例外が送出されます。
allocation-retry-wait-millis
接続割り当てまで待機する時間数 (ミリ秒)。デフォルトは 5000 で、5秒です。
xa-resource-timeout
ゼロ以外の場合、この値は XAResource.setTransactionTimeout メソッドに渡されます。

表6.11 ステートメントのパラメーター

パラメーター 説明
track-statements
接続がプールに返され、ステートメントが準備済みステートメントのキャッシュに返された時点で、ステートメントが閉じられていることを確認するかどうか。false の場合、ステートメントはトラッキングされません。

有効な値

  • true: ステートメントと結果セットがトラックされ、ステートメントが閉じられていない場合は警告が出されます。
  • false: ステートメントも結果セットもトラッキングされません。
  • nowarn: ステートメントはトラッキングされますが、警告は出されません。これがデフォルト設定となっています。
prepared-statement-cache-size Least Recently User (LRU) キャッシュ内の接続毎の準備済みステートメント数。
share-prepared-statements
ステートメントを閉じずに同じステートメントを2回リクエストする場合に、基盤となる準備済みステートメントは同じものを使うのかどうか。デフォルトは false です。

表6.12 リカバリーパラメーター

パラメーター 説明
recover-credential リカバリーに利用するユーザー名とパスワードのペアあるいは、セキュリティドメイン。
recover-plugin
リカバリーに利用するorg.jboss.jca.core.spi.recoveryRecoveryPlugin の実装クラス。