WebLogic JDBC のコンフィグレーションと管理

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

JDBC アプリケーション モジュールのデプロイメントのコンフィグレーション

エンタープライズ アプリケーションをパッケージ化する際には、アーカイブに JDBC モジュールをパッケージ化し、適用可能なすべての記述子ファイルの JDBC モジュールへの参照を追加することにより、アプリケーション内に JDBC リソースを含めることができます。アプリケーションをデプロイする場合、JDBC リソースもデプロイされます。JDBC モジュールをどのようにコンフィグレーションするかに応じて、アプリケーションと共にデプロイされる JDBC データ ソースは、それが含まれるアプリケーションによる使用のみに制限 (アプリケーション スコープのモジュール) されるか、またはすべてのアプリケーションおよびクライアントで使用可能 (グローバル スコープのモジュール) となるかのいずれかです。

以下の節では、パッケージ化された JDBC モジュールの詳細について説明します。

 


JDBC モジュールとエンタープライズ アプリケーションのパッケージ化 : 主な手順

JDBC モジュールとエンタープライズ アプリケーションの作成、パッケージ化、およびデプロイにおける主な手順は、以下のとおりです。

  1. モジュールを作成します。「パッケージ化 JDBC モジュールの作成」を参照してください。
  2. すべての適用可能な記述子ファイル内のモジュールへの参照を追加します。「Java EE 記述子ファイルにおける JDBC モジュールの参照」を参照してください。
  3. EAR 内のすべてのアプリケーション モジュールをパッケージ化します。「エンタープライズ アプリケーションと JDBC モジュールのパッケージ化」を参照してください。
  4. アプリケーションをデプロイします。「エンタープライズ アプリケーションと JDBC モジュールのデプロイ」を参照してください。

 


パッケージ化 JDBC モジュールの作成

JDBC アプリケーション モジュールの作成には、XML 記述子ファイルの作成をサポートする任意の開発ツールを使用できます。その後、JDBC モジュールをデプロイおよび管理するには、weblogic.Deployer ユーティリティ、Administration Console など、JSR 88 ベースのツールを使用します。

注意 : Administration Console を使用して JDBC データ ソースを作成した後、アプリケーションで使用するテンプレートとしてモジュールをコピーすることができます。ネームスペース内での名前の衝突を避けるため、モジュールをアプリケーションと一緒にデプロイする前に、モジュールの name 要素と jndi-name 要素を変更する必要があります。

各 JDBC モジュールは、データ ソースまたはマルチ データ ソースを表します。データ ソースを表すモジュールには、そのデータ ソースのコンフィグレーション パラメータがすべて含まれています。マルチ データ ソースを表すモジュールには、そのマルチ データ ソースが使用するデータ ソース モジュールのリストなどの、マルチ データ ソースのコンフィグレーション パラメータが含まれています。

Administration Console を使用した JDBC データ ソース モジュールの作成

Administration Console で、アプリケーション モジュールとして再利用できるデータ ソース モジュールを作成するには、以下の手順に従います。

  1. JDBC データ ソースの作成」の説明に従ってデータ ソースを作成します。データ ソース モジュールは、ドメイン ディレクトリの config/jdbc サブディレクトリ内に作成されます。
  2. アプリケーション内のサブディレクトリに data-source-name.xml ファイルをコピーし、そのコピーのファイル名を、new-data-source-name-jdbc.xml のようにサフィックスとして -jdbc を含むよう変更します。
  3. エディタでファイルを開き、以下の要素を変更します。
    • name - name を、ドメイン内でユニークな名前に変更。
    • jndi-name - jndi-name を、エンタープライズ アプリケーションでローカル アプリケーション コンテキスト内のデータ ソースのルックアップに使用する名前に変更。
    • scope - 必要に応じて、データ ソースが、それを含むアプリケーションからのみアクセスされるよう制限するため、モジュールの jdbc-data-source-params セクションに scope 要素を追加。たとえば、<scope>Application</scope> となります。「パッケージ化された JDBC モジュールのアプリケーション スコープ指定」を参照してください。
  4. 続いて、エンタープライズ アプリケーションの記述子ファイルへの参照を追加します。「Java EE 記述子ファイルにおける JDBC モジュールの参照」を参照してください。

JDBC パッケージ化モジュールの要件

JDBC モジュールは、以下の条件を満たしている必要があります。

データ ソースはまた、以下の JDBC ドライバ パラメータを備えている必要があります。

マルチ データ ソース モジュールはまた、以下のデータ ソース パラメータを備えている必要があります。

注意 : data-source-list にリストされているデータ ソースはすべて、XA およびトランザクション プロトコル設定が同じである必要があります。

その他のコンフィグレーション パラメータはすべて、任意指定であるか、または値が指定されていなければ、WebLogic Server が使用するデフォルト値となります。ただし、有用な JDBC モジュールを作成するには、アプリケーションおよび環境に必要な追加のコンフィグレーション オプションを指定しなければならない場合があります。

JDBC アプリケーション モジュールの制限事項

JDBC アプリケーション モジュールについては、以下の制限事項に留意してください。

JDBC データ ソース モジュールの作成

JDBC データ ソース モジュール内の主要なセクションは、以下のとおりです。

コード リスト A-1 に、データ ソースの JDBC モジュールの例を、いくつかの一般的なコンフィグレーション オプションと共に示します。

コード リスト A-1 サンプル JDBC データ ソース モジュール
<jdbc-data-source xmlns="http://www.bea.com/ns/weblogic/91">
<name>examples-demoXA-2</name>
  <jdbc-driver-params>
<url>jdbc:pointbase:server://localhost:9092/demo</url>
<driver-name>com.pointbase.xa.xaDataSource</driver-name>
<properties>
<property>
<name>user</name>
<value>examples</value>
</property>
<property>
<name>databaseName</name>
<value>jdbc:pointbase:server://localhost:9092/demo</value>
</property>
</properties>
<password-encrypted>eNEVN9dk4dEDUEVqL1</password-encrypted>
</jdbc-driver-params>
  <jdbc-connection-pool-params>
<initial-capacity>3</initial-capacity>
<max-capacity>10</max-capacity>
<test-connections-on-reserve>true</test-connections-on-reserve>
<test-table-name>SQL SELECT COUNT(*) FROM SYSTABLES</test-table-name>
</jdbc-connection-pool-params>
  <jdbc-data-source-params>
<global-transactions-protocol>TwoPhaseCommit</global-transactions-protocol>
<jndi-name>examples-demoXA-2</jndi-name>
<scope>Application</scope>
</jdbc-data-source-params>
  </jdbc-data-source>

JDBC マルチ データ ソース モジュールの作成

JDBC マルチ データ ソース モジュールは、データ ソース モジュールと比べると非常に単純です。必要とされるメイン セクションは jdbc-data-source-params の 1 つのみです。マルチ データ ソース内の jdbc-data-source-params 要素は、データ ソースの動作オプションではなく、マルチ データ ソースの動作オプションを含むという点が異なります。jdbc-data-source-params 内の以下のパラメータだけがマルチ データ ソースでは有効です。

各要素の詳細については、『WebLogic Server MBean リファレンス』の「JDBCDataSourceParamsBean」を参照してください。

コード リスト A-2 に、データ ソースの JDBC モジュールの例を、いくつかの一般的なコンフィグレーション オプションと共に示します。

コード リスト A-2 JDBC マルチ データ ソース モジュール
<jdbc-data-source xmlns="http://www.bea.com/ns/weblogic/91">
<name>examples-demoXA-multi-data-source</name>
  <jdbc-data-source-params>
<jndi-name>examples-demoXA -multi-data-source</jndi-name>
<algorithm-type>Load-Balancing</algorithm-type>
<data-source-list>examples-demoXA,examples-demoXA-2</data-source-list>
</jdbc-data-source-params>
</jdbc-data-source>

JDBC モジュールにおけるデータベース パスワードの暗号化

データを保護するために、JDBC モジュールではデータベースのパスワードを暗号化することをお勧めします。データベース パスワードを暗号化するには、WebLogic Server の encrypt ユーティリティでパスワードを処理します。このユーティリティから、そのパスワードを暗号化したものが返されます。これを、password-encrypted 要素として JDBC モジュールに含めます。WebLogic Server の暗号化ユーティリティの使い方の詳細については、『コマンド リファレンス』の「Encrypt」を参照してください。

JDBC モジュールを新しいドメインにデプロイする

アプリケーションを開発からプロダクションに移行するなど、JDBC モジュールを、あるドメインから別のドメインに移動するのは、よく行われることです。しかし、WebLogic Server 暗号化ユーティリティによって生成される暗号化キーは、新しいドメインに転送することができません。JDBC モジュールを暗号化されたデータベース パスワードと共に移動する場合は、以下のいずれかを行う必要があります。

パッケージ化された JDBC モジュールのアプリケーション スコープ指定

デフォルトでは、アプリケーションに JDBC モジュールをパッケージ化するとき、JDBC リソースはグローバルにスコープ指定されます。つまり、リソースはグローバル JNDI ネームスペースにバインドされ、すべてのアプリケーションおよびクライアントで使用可能です。リソースを、それを包含するアプリケーションのみで使用できるように予約するには、JDBC モジュールの jdbc-data-source-params 要素に <scope>Application</scope> パラメータを含める必要があります。これにより、リソースはローカル アプリケーション ネームスペースにバインドされます。次に例を示します。

<jdbc-data-source-params>
<jndi-name>examples-demoXA-2</jndi-name>
<scope>Application</scope>
</jdbc-data-source-params>

アプリケーション スコープの JDBC モジュールのマルチ データ ソース内のデータ ソースは、やはりアプリケーションスコープ指定されている必要があります。

 


Java EE 記述子ファイルにおける JDBC モジュールの参照

JDBC モジュールをエンタープライズ アプリケーションとパッケージ化する場合、特に以下のものを含む、すべての適用可能な記述子ファイル内のモジュールを参照する必要があります。

図 A-1 は、EJB アプリケーションのさまざまな記述子ファイルにおけるエントリ間の関係と、それらがどのように、アプリケーションとパッケージ化された JDBC モジュールを参照しているかを示します。

図 A-1 エンタープライズ アプリケーションにおける JDBC モジュールと記述子の関係

エンタープライズ アプリケーションにおける JDBC モジュールと記述子の関係

weblogic-application.xml でのパッケージ化 JDBC モジュールの参照

エンタープライズ アプリケーションに JDBC モジュールを含める際には、アプリケーションとパッケージ化される weblogic-application.xml 記述子ファイルにおいて、各 JDBC モジュールを JDBC 型の module 要素としてリストする必要があります。次に例を示します。

<module>
<name>data-source-1</name>
<type>JDBC</type>
<path>datasources/data-source-1-jdbc.xml</path>
</module>

その他の記述子におけるパッケージ化 JDBC モジュール参照

エンタープライズ アプリケーションにおいて、他のアプリケーション モジュールが、アプリケーションとパッケージ化される JDBC モジュールを使用できるようにするには、アプリケーション モジュールとパッケージ化される記述子ファイルに、以下のエントリを追加する必要があります。

図 A-1 は、アプリケーション モジュールで使用されるデータ ソース名の、JDBC モジュールの JDBC データ ソースの JNDI 名へのマッピングを示します。

注意 : アプリケーション スコープのデータ ソースの場合、記述子ファイルにこれらのエントリを追加しなければ、アプリケーションはデータ ソースをルックアップしてデータベース接続を取得することができません。

 


エンタープライズ アプリケーションと JDBC モジュールのパッケージ化

JDBC モジュールを含むアプリケーションは、他のエンタープライズ アプリケーションと同じようにパッケージ化します。『WebLogic Server アプリケーションの開発』の「wlpackage を使用したアプリケーションのパッケージ化」を参照してください。

 


エンタープライズ アプリケーションと JDBC モジュールのデプロイ

JDBC モジュールを含むアプリケーションは、他のエンタープライズ アプリケーションと同じようにデプロイします。『WebLogic Server アプリケーションの開発』の「wldeploy を使用したアプリケーションのデプロイメント」を参照してください。

警告 : アプリケーション スコープの JDBC リソースによるプロダクションにおいて、アプリケーションをデプロイする場合、リソースで global-transactions-protocol に EmulateTwoPhaseCommit を使用していると、同時に複数バージョンのアプリケーションをデプロイできません。

 


パッケージ化 JDBC モジュールからのデータベース接続の取得

エンタープライズ アプリケーションとパッケージ化された JDBC モジュールからの接続を取得するには、ローカル環境 (java:comp/env) または JNDI ツリーの JDBC モジュールで定義されたデータ ソースまたはマルチ データ ソースをルックアップし、その後データ ソースまたはマルチ データ ソースからの接続を要求します。次に例を示します。

javax.sql.DataSource ds = 
(javax.sql.DataSource) ctx.lookup("java:comp/env/my-data-source");
java.sql.Connection conn = ds.getConnection();

接続を使い終わったら、必ずその接続を閉じて、データ ソースの接続プールに返すようにしてください。

conn.close();

ページの先頭       前  次