アプリケーションのデータ・ソース・リソース定義

アプリケーションは、アノテーションまたはデプロイメント記述子にデータ・ソースを定義することができます。このトピックでは、サーバー、ノード、クラスター、またはセルのレベルで定義される WebSphere® Application Server データ・ソースの類似性および互換性について説明します。データ・ソース定義のオプションの機能についても説明します。

データ・ソース定義の標準プロパティー

表 1. データ・ソース定義の標準プロパティー. 次の表では、データ・ソース定義の標準プロパティーに関して説明します。
アノテーション・エレメント 記述子エレメント コメント
name name データ・ソースの JNDI 名。java:global、java:app、java:module、または java:comp 名前空間のいずれかの名前に指定する必要があります。
className class-name javax.sql.XADataSource、javax.sql.ConnectionPoolDataSource、または javax.sql.DataSource を実装する JDBC ドライバーの完全修飾クラス名。
databaseName database-name 値は JDBC ドライバーに対して指定されます。
description description 値は DataSource MBean に対して指定されます。
initialPoolSize initial-pool-size プロパティーの値は無視されます。WebSphere Application Server では、初期プール・サイズは常に 0 です。
isolationLevel isolation-level WebSphere Application Server データ・ソース・カスタム・プロパティー webSphereDefaultIsolationLevel に相当。これは、新規接続におけるデフォルトのトランザクション分離レベルです。
loginTimeout login-timeout 値は JDBC ドライバーに対して指定されます。
maxIdleTime max-idle-time WebSphere Application Server 接続プール・プロパティー unusedTimeout に相当。このプロパティーは、接続プールが提供されていないクライアント・コンテナーでは無視されます。
maxPoolSize max-pool-size WebSphere Application Server 接続プール・プロパティー maxConnections に相当。このプロパティーは、接続プールが提供されていないクライアント・コンテナーでは無視されます。
maxStatements max-statements 接続プールのステートメントの最大数を定義します。 WebSphere Application Server では、各プール接続には独自のステートメント・キャッシュがあります。従って、maxStatements はプールの maxPoolSize 間で (等分に、端数を切り捨てて) 分割されます。maxPoolSize が無制限である場合、ステートメントのプーリングは無効になります。
minPoolSize min-pool-size WebSphere Application Server 接続プール・プロパティー minConnections に相当。このプロパティーは、接続プールが提供されていないクライアント・コンテナーでは無視されます。
password password パスワードを指定しない接続要求のデフォルト・パスワード。ユーザー名およびパスワードをアプリケーションにハードコーディングするのではなく、認証別名を使用することを検討してください。
portNumber port-number 値は JDBC ドライバーに対して指定されます。
serverName server-name 値は JDBC ドライバーに対して指定されます。
transactional transactional WebSphere Application Server では、プロパティー transactional は、接続が JTA トランザクションで確保されるかどうかを制御します。transactional=false の場合、接続は JTA トランザクションには確保されませんが、autocommit=true、または autocommit=false を指定した connection.commit/rollback を使用することで、データベースに対してトランザクションを実行できます。WebSphere Application Server データ・ソース・カスタム・プロパティー nonTransactionalDataSource の逆に相当。
url url 値は JDBC ドライバーに対して指定されます。URL が指定されている場合、databaseName、serverName、portNumber の値は無視されます。
user user ユーザー名を指定しない接続要求のデフォルト・ユーザー名。ユーザー名およびパスワードをアプリケーションにハードコーディングするのではなく、認証別名を使用することを検討してください。

ベンダー・プロパティーとカスタム・プロパティー

JDBC ドライバーのベンダー・プロパティーは、データ・ソース定義に含めることができます。WebSphere Application Server のカスタム・プロパティーの多くも、同様にデータ・ソース定義に含めることができます。

これは、アノテーションを使用して、プロパティー・エレメントにより行うことができます。以下に例を示します。
@DataSourceDefinition
(
  name="java:app/env/myDataSource",
  className="org.apache.derby.jdbc.EmbeddedXADataSource40",
  databaseName="myDB",
  properties=
  {
    // Vendor properties for Derby Embedded JDBC driver:
    "createDatabase=create",
    "connectionAttributes=upgrade=true",

    // Custom properties for WebSphere Application Server:
    "connectionTimeout=60",
    "dataStoreHelperClass=com.ibm.websphere.rsadapter.DerbyDataStoreHelper",
    "validateNewConnection=true",
    "validateNewConnectionRetryCount=5"
  },
  serverName=""
)
以下の例は、データ・ソース定義をデプロイメント記述子に含める方法を示しています。
<data-source>
 <name>java:app/env/myDataSource</name>
 <class-name>org.apache.derby.jdbc.EmbeddedXADataSource40</class-name>
 <database-name>myDB</database-name>
 <property><name>createDatabase</name><value>create</value></property>
 <property><name>connectionAttributes</name><value>upgrade=true</value></property>
 <property><name>connectionTimeout</name><value>60</value></property>
 <property><name>dataStoreHelperClass</name><value>com.ibm.websphere.rsadapter.DerbyDataStoreHelper</value></property>
 <property><name>validateNewConnection</name><value>true</value></property>
 <property><name>validateNewConnectionRetryCount</name><value>5</value></property>
 <server-name/>
</data-source>
以下は、ここに示す方法で構成できる WebSphere Application Server カスタム・プロパティーのリストです。
  • 接続プール・プロパティー
    • agedTimeout
    • authDataAlias
    • authMechanismPreference
    • connectionTimeout
    • defaultConnectionTypeOverride
    • globalConnectionTypeOverride
    • mappingConfigAlias
    • purgePolicy
    • reapTime
    • stuckThreshold
    • stuckTime
    • stuckTimerTime
    • surgeCreationInterval
    • surgeThreshold
    • testConnection
    • testConnectionInterval
    • XA_RECOVERY_AUTH_ALIAS
  • データ・ソース・カスタム・プロパティー
    • beginTranForResultSetScrollingAPIs
    • beginTranForVendorAPIs
    • connectionSharing
    • enableMultithreadedAccessDetection
    • errorDetectionModel
    • freeResourcesOnClose
    • oracleRACXARecoveryDelay (Oracle のみ)
    • preTestSQLString
    • userDefinedErrorMap
    • validateNewConnection
    • validateNewConnectionRetryCount
    • validateNewConnectionRetryInterval
    • validateNewConnectionTimeout

リソース参照

デプロイヤーが上書きしやすいように、アプリケーションを、データ・ソースにアクセスするときに常にリソース参照を使用するように構成することをお勧めします。

接続の共有

デフォルトでは、データ・ソース定義について、接続要求は、最初に要求された設定 (connectionSharing=MatchOriginalRequest) と一致する場合、既存の使用中の接続を共有できます。または、接続要求と接続の現在の状態を一致させて (connectionSharing=MatchCurrentState) 接続を共有することもできます。

ライフサイクル

データ・ソース定義のライフサイクルは、これを定義するアプリケーションのライフサイクルと関連付けられています。従って、サーバーを再始動せずにデータ・ソース定義を変更するようにアプリケーションを更新できます。複数のアプリケーションに同じデータ・ソース定義が含まれている場合、例えば、2 つのデータ・ソース定義に同一の java:global 名、同一の構成済みプロパティー・セット、および同一のプロパティー値がある場合、全アプリケーションをアンインストールし、その後にデータ・ソース定義を更新してアプリケーションを再インストールする必要があります。

データ・ソース定義間の競合

アプリケーション、モジュール、およびコンポーネントでは、データ・ソースを別のアプリケーションと同じ java:global 名で定義しないように注意してください。そのような操作を行うとアプリケーションが共存できなくなるためです。アプリケーション内のモジュールおよびコンポーネントでは、データ・ソースを別のモジュールまたはコンポーネントと同じ java:app 名で定義しないように注意してください。競合のため、アプリケーションのインストールが失敗します。モジュール内では、コンポーネントで別のコンポーネントと同じ java:module 名を指定してデータ・ソースを定義しないように注意してください。競合のため、アプリケーションのインストールが失敗します。Web モジュール内では、コンポーネントで別のコンポーネントと同じ java:comp 名を指定してデータ・ソースを定義しないように注意してください。競合のため、アプリケーションのインストールが失敗します。


トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cdat_datres
ファイル名:cdat_datres.html