WebSphere Application Server traditionalと Liberty での構成の相違点: dataSource エレメントおよび jdbcDriver エレメント
Liberty の dataSource と WebSphere® Application Server traditionalのデー タ・ソースでは、構成にいくつかの相違点があります。
- 名前が異なるデータ・ソース・プロパティー
- ifxIFX_LOCK_MODE_WAIT。 WebSphere Application Server traditionalでは informixLockModeWait です。
- supplementalJDBCTrace。 WebSphere Application Server traditionalでは supplementalTrace です。
- transactional。 WebSphere Application Server traditionalでは nonTransactionalDataSource です。
- isolationLevel。 WebSphere Application Server traditionalでは webSphereDefaultIsolationLevel です。
- queryTimeout。 WebSphere Application Server traditionalでは webSphereDefaultQueryTimeout です。
- id。 WebSphere Application Server traditionalでは name です。
- 値が異なるデータ・ソース・プロパティー
- beginTranForResultSetScrollingAPIs。Liberty ではデフォルトで true です。
- beginTranForVendorAPIs。Liberty ではデフォルトで true です。
- connectionSharing。Liberty ではデフォルトで MatchOriginalRequest です。
- statementCacheSize。 WebSphere Application Server traditional では JDBC プロバイダーのプロパティー、Liberty では dataSource プロパティーで、デフォルト値は 10 です。
- Liberty に相当するものがない WebSphere Application Server traditional でのデータ・ソース・プロパティー
- category
- supportsDynamicUpdates
- データ・ソースの connectionSharing プロパティー
- Liberty では、connectionSharing を MatchOriginalRequest または MatchCurrentState に構成することができます。デフォルトでは、これは MatchOriginalRequest です。
- WebSphere Application Server traditionalでは、connectionSharing を細かく構成することが可能で、 元の接続要求または接続の現在の状態に基づいて個別の接続プロパティーをマッチングすることができます。 WebSphere Application Server traditionalの connectionSharing は、 接続の現在の状態に基づいてどの接続プロパティーをマッチングするかを表すビットの組み合わせです。 WebSphere Application Server traditionalで、値 0 は、元の接続要求に基づいてすべてのプロパティーをマッチングすることを表します。値 -1 は、接続の現在の状態に基づいてすべてのプロパティーをマッチングすることを表します。WebSphere Application Server traditionalのデフォルト値は 1 で、接続の現在の状態に基づいて分離レベルをマッチングすることを表します。その他のすべてのプロパティーは元の接続要求に基づいてマッチングします。
- データ・ソースの期間プロパティーLiberty では、オプションで期間プロパティーに単位を付けて指定することができます。以下に例を示します。
dataSource エレメントの指定可能な時間単位とフォーマットについては、『Java Database Connectivity 4.1』を参照してください。Liberty で単位を省略すると、WebSphere Application Server traditionalで使用されるデフォルト単位と同じになります。<dataSource id="informix" jndiName="jdbc/informix" queryTimeout="5m" ...> <properties.informix ifxIFX_LOCK_MODE_WAIT="120s" .../> </dataSource>
- JDBC ドライバーの構成
- Liberty では、XA 対応と非 XA 対応のデータ・ソース実装クラスに異なる jdbcDriver エレメントを構成するという同じ方法を取ることもできます。あるいは、単一の jdbcDriver エレメントを両方に使用できます。複数の jdbcDriver エレメントを定義しても、異なるクラス・ローダーは使用されません。 Liberty で、jdbcDriver エレメントは常に、構成されている共有ライブラリーのクラス・ローダーを使用します。
- WebSphere Application Server traditionalで JDBC プロバイダーは、JDBC ドライバーの JAR、圧縮ファイル、およびネイティブ・ファイルを指すように定義されます。 XA 対応と非 XA 対応のデータ・ソース実装クラスに別々の JDBC プロバイダーを定義する必要があります。
一部の一般的に使用される JDBC ドライバーについて、Liberty は、ドライバー JAR の名前を基にデータ・ソース実装クラス名を推定します。そのため、実装クラス名を省略できます。以下に例を示します。<jdbcDriver id="Derby" libraryRef="DerbyLib"/> <library id="DerbyLib"> <fileset dir="C:/Drivers/derby" includes="derby.jar" /> </library>
javax.sql.DataSource、javax.sql.ConnectionPoolDataSource、javax.sql.XADataSource など、デフォルト実装クラスのオプションのプロパティーを使用して、これらのクラスをオーバーライドできます。
Liberty で選択されるデフォルトの javax.sql.XADataSource および javax.sql.ConnectionPoolDataSource の実装をオーバー ライドするには、以下を実行します。
jdbcDriver エレメントについて詳しくは、Java Database Connectivity 4.1を参照してください。<jdbcDriver id="Derby" libraryRef="DerbyLib" javax.sql.XADataSource="org.apache.derby.jdbc.EmbeddedXADataSource" javax.sql.ConnectionPoolDataSource="org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource"/> <library id="DerbyLib"> <fileset dir="C:/Drivers/derby" includes="derby.jar" /> </library>