15.2. DataSource パラメーター

一般的な DataSource パラメーター

<mbean>
標準的な JBoss MBean デプロイメント
<depends>
このConnectionFactory または DataSource デプロイメントが依存する MBean サービスの ObjectName です。
<jndi-name>
DataSource がバインドされる JNDI 名です。
<use-java-context>
jndi-name のプレフィックスを java: とすべきかを示す Boolean 値です。このプレフィックスは JBoss Enterprise Application Platform の仮想マシン内からしか DataSource にアクセスできなくなります。デフォルトは true です。
<user-name>
データソースへの接続作成時に使用されるユーザー名です。

注記

セキュリティ設定されている場合は利用されません。
<password>
Datasource への接続が作成される際に使用されるパスワードです。

注記

セキュリティ設定されている場合は利用されません。
<transaction-isolation>
接続のデフォルトトランザクション分離です。指定しないとデータベースが提供するデフォルト値が使用されます。

<transaction-isolation> に対し可能な値

  • TRANSACTION_READ_UNCOMMITTED
  • TRANSACTION_READ_COMMITTED
  • TRANSACTION_REPEATABLE_READ
  • TRANSACTION_SERIALIZABLE
  • TRANSACTION_NONE
<new-connection-sql>
新規接続に対して実行される SQL ステートメントです。接続スキーマの設定などに使用できます。
<check-valid-connection-sql>
有効であるかを確認するため、プールからチェックアウトされる前に実行される SQL ステートメントです。この SQL ステートメントが失敗すると接続が閉じられ、新しい接続が作成されます。
<valid-connection-checker-class-name>
ベンダー固有のメカニズムを使用して接続が有効かを確認するクラスです。
<exception-sorter-class-name>
ベンダー固有のメッセージを解析し、SQL エラーが致命的でこの接続を破棄するかを判断するクラスです。空の場合、致命的エラーとして処理されるエラーはありません。
<track-statements>
閉じられていない Statement や ResultSet を監視し、閉じられていない場合に警告を発行するかを指定します。デフォルト値は NOWARN です。
<prepared-statement-cache-size>
後続のリクエストで閉じずに再利用する、接続毎の prepared ステートメントの数です。ステートメントは Least Recently Used (LRU) キャッシュに保存されます。デフォルト値は 0 で、これはキャッシュが保持されないということです。
<share-prepared-statements>
<prepared-statement-cache-size> が非ゼロの場合、同じトランザクション内の 2 つのリクエストが同じステートメントを返すべきであるかを指定します。デフォルトは FALSE です。

例15.1 <share-prepared-statements>の利用

目的は、ドライバーが自動コミットセマンティックをローカルトランザクションに適応してしまうこのドライバーの動作を回避することです。
       Connection c = dataSource.getConnection(); // auto-commit == false
       PreparedStatement ps1 = c.prepareStatement(...);
       ResultSet rs1 = ps1.executeQuery();
       PreparedStatement ps2 = c.prepareStatement(...);
       ResultSet rs2 = ps2.executeQuery();
これは、prepared ステートメントが同じであることを想定しています。 ドライバーによっては ps2.executeQuery() が自動的に rs1 を閉じてしまうため、背後に 真の prepared ステートメントが2つ必要となります。 これは、 クエリの再実行が自動的に新しいトランザクションを開始する、 自動コミットセマンテックのみが目的でなければなりません。 仕様に準拠するドライバーの場合、TRUE を設定して同じ真の prepared ステートメントを共有することができます。
<set-tx-query-timeout>
トランザクションがタイムアウトするまでの残り時間を基にクエリのタイムアウトを有効にするか指定します。 デフォルトは FALSE です。
<query-timeout>
クエリがタイムアウトするまでの最大時間 (秒)。<set-tx-query-timeout>を TRUE に設定することでこの値をオーバーライドすることができます。
<type-mapping>
conf/standardjbosscmp.xml 内の型マッピングへのポインターです。この要素は、<metadata> の子要素です。JBoss4 からのレガシー。
<validate-on-match>
プール外の接続を確認した場合など、JCA 層が管理された接続と一致する場合にこの接続を検証するかどうか指定します。<background-validation>を追加することで、これは必要なくなります。通常、<background-validation> に TRUE を指定するとともに、<validate-on-match> に TRUE を指定する必要はありません。デフォルト値は、TRUEです。
<prefill>
接続プールに最小接続数を事前に入力を試みるかを指定します。supporting pool (OnePool) のみがこの機能をサポートします。このプールが事前入力に対応しない場合、ログに警告が記録されます。デフォルトは TRUE となっています。
<background-validation>
バックグラウンドの接続検証は、接続を検証する際の RDBMS システム上の全体的な負荷を軽減します。この機能を使用すると、EAP はプール内の現在の接続が別のスレッド (ConnectionValidator) であるかをチェックします。<background-validation-minutes>は、TRUE に設定されているこの値により変わります。デフォルトは FALSE です。
<background-validation-millis>
バックグラウンドの接続検証は、 接続を検証する際の RDBMS システム上の全体的な負荷を軽減します。 このパラメーターを設定すると、 JBoss はプール内の現在の接続を個別のスレッド(ConnectionValidator) として検証しようとします。 パラメーターの値が ConnectionValidator の実行周期 (ミリ秒単位) を定義します (この値は <idle-timeout-minutes とは違う値でなければなりません)。
<idle-timeout-minutes>
アイドル状態の接続が閉じられるまでの最大時間 (分単位) を示します。値が0 の場合はタイムアウトが無効となります。デフォルトは 15 です。
<track-connection-by-tx>
トランザクションの最後に接続をプールに戻すの代わりに、接続をトランザクションにロックすべきかを指定します。以前のリリースでは、 ローカル接続ファクトリのデフォルト値は true で、 XA 接続ファクトリのデフォルト値は false でした。現在、 ローカル接続ファクトリと XA 接続ファクトリ両方のデフォルト値が true となり、要素は廃止されました。
<interleaving>
XA 接続ファクトリのインターリービングを有効にします。
<background-validation-minutes>
ConnectionValidator が実行される頻度 (分単位) になります。デフォルトは 15 になります。

注記

<min-pool-size> を最小プールサイズセットに指定していない限り、これを、<idle-timeout-minutes>よりも小さい値に設定する必要があります。
<url-delimiter>, <url-property>, <url-selector-strategy-class-name>
データベースのフェールオーバーを処理するパラメーター。JBoss Enterprise Application Platform 現在、これらのパラメーターは主なデータソース設定の一部として設定されています。以前のバージョンでは、 <url-delimiter> は <url-delimeter>として表示されていました。
<stale-connection-checker-class-name>
異常な接続を通知する SQLExceptionorg.jboss.resource.adapter.jdbc.StateConnectionExceptionの例外をスローするかを決定する org.jboss.resource.adapter.jdbc.StateConnectionChecker 実装です。
<max-pool-size>
プール内で接続可能な最大数です。定義されていない場合は、デフォルトは 10 となっています。datasource の定義例 ($JBOSS_HOME/server/PROFILE/hsqldb-ds.xml) の値は、20 に設定されています。
<min-pool-size>
プールで保持される最小接続数です。<prefill> が TRUE でない限り、プールが<min-pool-size>まで埋まった時点で最初に利用されるまで、プールは空ままとなります。アイドルによるタイムアウトが原因で、プールサイズが<min-pool-size> 以下に下がった場合、プールは<min-pool-size>まで補充されます。デフォルトは、0となっています。
<blocking-timeout-millis>
すべての接続がチェックアウトされた時、接続が使用できるまで待機する時間になります。デフォルトは 30000 (30 秒) になります。
<use-fast-fail>
以前の試行が失敗あるいはフェールオーバーが開始された場合でも、プールからの接続取得を試行するかを指定します。これは、SQL 検証の実行に時間とリソースが多くかかるようなパフォーマンスの問題に対処するためです。デフォルトは、FALSEとなっています。

javax.sql.XADataSource を使用するためのパラメーター

<connection-url>
JDBC ドライバー接続の URL ストリングです。
<driver-class>
java.sql.Driver を実装する JDBC ドライバークラスです。
<connection-property>
java.sql.Driver から取得した接続を設定するために使用されます。

例15.2 例:<connection-property>

       <connection-property name="char.encoding">UTF-8</connection-property>

javax.sql.XADataSource を使用するためのパラメーター

<xa-datasource-class>
XADataSource を実装するクラスです。
<xa-datasource-property>
XADataSource の設定に使用されるプロパティです。

例15.3 例: <xa-datasource-property> の宣言

<xa-datasource-property name="IfxWAITTIME">10</xa-datasource-property>
<xa-datasource-property name="IfxIFXHOST">myhost.mydomain.com</xa-datasource-property>
<xa-datasource-property name="PortNumber">1557</xa-datasource-property>
<xa-datasource-property name="DatabaseName">mydb</xa-datasource-property>
<xa-datasource-property name="ServerName">myserver</xa-datasource-property>
<xa-resource-timeout>
0 でない場合、XAResource.setTransactionTimeout() を経過した秒数になります。
<isSameRM-override-value>
FALSE に設定した場合、Oracle データベースの問題の一部を修正します。
<no-tx-separate-pools>
トランザクショナル接続と非トランザクショナル接続を別々にプールします。

警告

このオプションを使うと、実際のプールが2つ作成されるため、合計のプール容量がmax-pool-sizeの2倍になります。
Oracle の問題を修正するために利用されます。

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

<application-managed-security>
getConnection に渡されたユーザー名とパスワードを使用するか、 アプリケーションによる createConnection リクエストを使用します。
<security-domain>
conf/login-module.xml に設定されている確認されたログインモジュールを使用します。
<security-domain-and-application>
conf/login-module.xml に設定されている確認されたログインモジュールや、 アプリケーション (JMS のキューやトピックなど) によって提供される他の接続要求情報を使用します。

JCA レイヤーにてXAをリカバリするためのパラメーター

<recover-user-name>
リカバリ操作を行うことのできる認証情報を持つユーザー
<recover-password>
リカバリ操作を行うことのできるユーザー (認証情報付き) のパスワード
<recover-security-domain>
リカバリ用のセキュリティドメイン
<no-recover>
リカバリからのデータソースを除外
JCA レイヤーにてXAをリカバリするためのパラメーターのフィールドに、non-recover と対となるフォールバック値(<user-name>,< password> and <security-domain>)を入力する必要があります。