データ・ソース データ・ソース
データ・ソース XML 構成ファイルの位置の定義 構成ファイルの位置の定義 構成ファイルの位置の定義 構成ファイルの位置の定義
アプリケーションは、application.xmlファイルでこのファイルが認識されている場合にの み、このファイルに定義されているデータ・ソースを認識できます。application.xmlファ イルの<data-sources>タグのpath属性には、data-sources.xmlファイルの名前とパス が含まれている必要があります。次に例を示します。
<data-sources path="data-sources.xml"/>
<data-sources>タグのpath属性には、data-sources.xmlファイルのフルパス名が含ま れます。パスには、絶対パス、またはapplication.xmlの位置からの相対パスのどちらでも 指定できます。application.xmlファイルとdata-sources.xmlファイルは、いずれも J2EE_HOME/config/application.xmlディレクトリに格納されています。したがって、こ のパスにはdata-sources.xmlファイル名のみが含まれています。
アプリケーション固有のデータ・ソースの アプリケーション固有のデータ・ソースの アプリケーション固有のデータ・ソースの
アプリケーション固有のデータ・ソースの XML 構成ファイル 構成ファイル 構成ファイル 構成ファイル
各アプリケーションでは、EARファイルに、独自のdata-sources.xmlファイルを定義でき ます。そのためには、EARファイルにパッケージされているorion-application.xmlファ イル内に、data-sources.xmlファイルへの参照を含めます。
構成手順は、次のとおりです。
1. アプリケーションのMETA-INFディレクトリ内で、data-sources.xmlファイルと orion-application.xmlファイルを検索します。
2. orion-application.xmlファイルを編集して、次のように<data-sources>タグを 追加します。
<orion-application>
<data-sources path="./data-sources.xml"/>
</orion-application>
注意 注意 注意
注意: ejb-locationによりエミュレートされていないデータ・ソースにア クセスする場合は、OC4Jのプールとキャッシュを使用します。
OracleConnectionCacheImplを使用すると、OC4JおよびOracle JDBC のプールとキャッシュの両方にアクセスできます。
データ・ソースの定義
データ・ソースの属性 データ・ソースの属性 データ・ソースの属性 データ・ソースの属性
データ・ソースには、多数の属性を設定できます。一部の属性は必須ですが、ほとんどはオプ ションです。後述の表では、属性が必須の場合はその旨を示してあります。属性は、
<data-source>タグで指定されます。
表4-4に、データ・ソースの属性とその説明を示します。
表4-4に示すdata-sourceの属性の他に、data-sourceにはpropertyサブノードを追加 することもできます。これらのサブノードは、データ・ソース・オブジェクトの汎用プロパ ティの構成に使用されます(JavaBeansの規則に従います)。propertyノードにはnameおよ びvalue属性があり、データ・ソースのBeanプロパティの名前と値を指定するために使用さ れます。
OC4Jのデータ・ソースの属性はすべて、インフラストラクチャ・データベースにも適用できま す。インフラストラクチャ・データベースの詳細は、『Oracle高可用性アーキテクチャおよびベ スト・プラクティス』を参照してください。
表 表 表
表4-4 データ・ソースの属性データ・ソースの属性データ・ソースの属性データ・ソースの属性 属性名
属性名 属性名
属性名 説明説明説明説明 デフォルト値デフォルト値デフォルト値デフォルト値
class データ・ソースを実装するクラスに名前を付けます。
エミュレートされていないデータ・ソースの場合は、
com.evermind.sql.OrionCMTDataSourceを使用してもかまいま せん。
エミュレートされたデータ・ソースの場合は、
com.evermind.sql.DriverManagerDataSourceを使用する必要 があります。
(この値は必須です。)
該当なし
location データ・ソース・オブジェクトのJNDI論理名。OC4Jは、この名前で
クラス・インスタンスをアプリケーションのJNDIネームスペースにバ インドします。このJNDIルックアップ名は、エミュレートされていな いデータ・ソースに使用されます。4-7ページの表4-2「データ・ソース 構成の概要」も参照してください。
該当なし
name データ・ソース名。アプリケーション内で一意であることが必要です。 なし
connection-driver このデータ・ソースのJDBCドライバ・クラス名。
java.sql.Connectionを処理する一部のデータ・ソースで使用され
ます。
ほとんどのデータ・ソースの場合、ドライバは
oracle.jdbc.driver.OracleDriverです。この属性は、class属 性がcom.evermind.sql.DriverManagerDataSourceに設定され ている、エミュレートされたデータ・ソースにのみ適用されます。
なし
username データ・ソース接続の取得時に使用されるデフォルトのユーザー名。 なし
password データ・ソース接続の取得時に使用されるデフォルトのパスワード。
4-13ページの「パスワードの間接化」も参照してください。
なし
URL データベース接続用のURL。 なし
xa-location XAデータ・ソースの論理名。エミュレートされたデータ・ソースにの
み適用されます。4-7ページの表4-2「データ・ソース構成の概要」も参 照してください。
なし
ejb-location この属性は、JTAの1フェーズ・コミット・トランザクション、または
エミュレートされたデータ・ソースのルックアップに使用します。この 属性を使用してデータ・ソースを取得すると、戻された接続を
oracle.jdbc.OracleConnectionにマップできます。4-7ページの
表4-2「データ・ソース構成の概要」も参照してください。
なし
stmt-cache-size JDBCの文キャッシュを有効化し、キャッシュされる文の最大数を定義 するために0(ゼロ)以外の値に設定されるパフォーマンス・チューニ ング属性。反復的なカーソル作成と文の解析および作成によるオーバー ヘッドを回避するために有効化されます。connection-driverが oracle.jdbc.driver.OracleDriverに、classが
com.evermind.sql.DriverManagerDataSourceに設定されてい る、エミュレートされたデータ・ソースにのみ適用されます。
0(無効化)
inactivity-timeout 未使用の接続をクローズするまでのキャッシュ時間(秒)。 60秒
connection-retry-interval
失敗した接続を再試行するまでの待機間隔(秒)。 1秒
max-connections プールされたデータ・ソースのオープン接続の最大数。 データ・ソースの
タイプによって異 なります。
min-connections プールされたデータ・ソースのオープン接続の最小数。OC4Jは、
DataSource.getConnectionメソッドが起動されるまでこれらの接
続をオープンしません。
0
wait-timeout プールがmax-connectionsに到達した場合に、接続が解放されるのを待
機する時間(秒)。
60
max-connect-attempts
接続の再試行回数。なんらかの理由でネットワークや環境が不安定であ るために接続に失敗する場合に有効です。
3
clean-available- connections-threshold
このオプションの属性では、使用可能な接続のクリーン・アップが発生 する時期のしきい値(秒)を指定します。たとえば、ある接続が不良な 場合は、使用可能な接続がクリーン・アップされます。別の接続が不良 な場合(つまり、例外をスローする場合)に、しきい値で指定した時間 が経過すると、使用可能な接続が再びクリーン・アップされます。しき い値で指定した時間が経過しなければ、使用可能な接続が再びクリー ン・アップされることはありません。
30
rac-enabled このオプションの属性では、システムがReal Application Clusters
(RAC)対応かどうかを指定します。このフラグをインフラストラク チャ・データベースで使用する方法については、『Oracle高可用性アー キテクチャおよびベスト・プラクティス』を参照してください。このフ ラグをユーザー・データベースで使用する方法については、4-24ページ の「DataDirect JDBCドライバの使用方法」および4-26ページの「デー タ・ソースの高可用性のサポート」を参照してください。
データ・ソースがRACデータベースを指す場合は、このプロパティを trueに設定します。これにより、OC4JはRACインスタンス障害の発 生時のパフォーマンスが改善される方法で接続プールを管理できるよう になります。
false
schema このオプションの属性では、データ・ソースに関連付ける
database-schemaを指定します。特に、追加のデータ型やサード・
パーティ・データベースとともにCMPを使用する場合に有効です。こ の属性の使用方法については、4-15ページの「データベース・スキーマ とデータ・ソースの関連付け」を参照してください。
なし 表表
表表4-4 データ・ソースの属性(続き)データ・ソースの属性(続き)データ・ソースの属性(続き)データ・ソースの属性(続き)
属性名 属性名 属性名
属性名 説明説明説明説明 デフォルト値デフォルト値デフォルト値デフォルト値
データ・ソースの定義
次に、clean-available-connections-thresholdおよびrac-enabled属性の使用例を 示します。
<data-source
class="com.evermind.sql.OrionCMTDataSource"
name="NEDS1"
location="jdbc/NELoc1"
connection-driver="oracle.jdbc.driver.OracleDriver"
min-connections="5"
max-connections="10"
clean-available-connections-threshold="35"
rac-enabled="true"
username="scott"
password="tiger"
url="jdbc:oracle:thin:@//localhost:5521/oracle.regress.rdbms.dev.us.oracle.com"
inactivity-timeout="30"
max-connect-attempts="5"
/>
OC4Jでは、定義するデータ・ソースごとに、location、ejb-location、xa-locationお よびpool-locationに対して1つずつ、最大4つのデータ・ソースを作成してJNDI内でバ インドできます。選択するデータ・ソースのタイプは、data-sources.xml属性のclass、
connection-driverおよびurlに関連付けられている値と、データ・ソース・オブジェク トが作成されルックアップされるJNDIコンテキストにより決定されます。データ・ソースの タイプの詳細は、4-2ページの「データ・ソースのタイプ」を参照してください。
Oracle Enterprise Manager 10g でのデータ・ソースの定義 でのデータ・ソースの定義 でのデータ・ソースの定義 でのデータ・ソースの定義
どのタイプのデータ・ソースも、Oracle Enterprise Manager 10gを使用して定義できます。
管理ツールの使用方法は、『Oracle Application Server Containers for J2EEユーザーズ・ガイド』
を参照してください。Oracle Enterprise Manager 10gの詳細は、『Oracle Enterprise Manager管 理者ガイド』を参照してください。
この項では、これらの手順の概略を説明します。
Oracle Enterprise Manager 10gを使用して「データ・ソース」ページにドリルダウンします。
OC4Jでは、起動時にdata-sources.xmlファイルが解析され、データ・ソース・オブジェク トがインスタンス化されてサーバーのJNDIネームスペースにバインドされます。新規データ・
ソースの指定を追加した場合は、OC4Jサーバーを再起動して新規データ・ソースをルックアッ プに使用できるようにする必要があります。
エミュレートされたデータ・ソースを定義するには、エミュレートされていないデータ・ソー スの定義と同じ手順を、JNDIロケーションを定義する手順の1つ前まで実行します。エミュ レートされていないデータ・ソースの定義手順のスクリーン・ショットには、「ロケーションロケーションロケーション」ロケーション 入力フィールドがあります。エミュレートされたデータ・ソースを定義する場合は、3つの フィールド「ロケーションロケーションロケーションロケーション」、「トランザクショントランザクショントランザクショントランザクション(XA)ロケーションロケーション」および「ロケーションロケーション EJBロケーショロケーショロケーショロケーショ ン
ン ン
ン」に入力します。
注意 注意 注意
注意: 以前のリリースでは、データ・ソース・オブジェクトの取得に location属性およびxa-location属性がサポートされていました。これ らの属性はすでに廃止されています。アプリケーション、EJB、サーブレット およびJSPでは、データ・ソースの取得に、エミュレートされたデータ・
ソース定義のejb-locationのJNDI名のみを使用する必要があります。エ ミュレートされたデータ・ソースの場合は3つの値をすべて指定する必要が ありますが、実際に使用されるのはejb-locationのみです。