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

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

WebLogic JDBC リソースのコンフィグレーション

以下の節では、WebLogic JDBC リソースについて説明します。また、これらのリソースのコンフィグレーション方法と、どのように WebLogic ドメインに適用されるかについても説明します。

 


WebLogic Server における JDBC リソースについて

WebLogic Server では、JDBC データ ソースとマルチ データ ソースをコンフィグレーションしてから、WebLogic ドメイン内のサーバまたはクラスタに JDBC リソースを対象指定またはデプロイすることで、データベース接続をコンフィグレーションできます。

コンフィグレーション対象の各データ ソースにはデータベース接続のプールが含まれます。データベース接続は、データ ソース インスタンスの作成時 (デプロイ時または対象指定時) に作成されるか、サーバ起動時に作成されます。アプリケーションは、オブジェクトをどのようにコンフィグレーションおよびデプロイするかに応じて、JNDI ツリー上のデータ ソースまたはローカル アプリケーション コンテキスト (java:comp/env) 内のデータ ソースをルックアップし、その後データベース接続を要求します。接続が完了すると、アプリケーションは connection.close() を呼び出し、これが接続をデータ ソースの接続プールに戻します。

図 2-1 は、WebLogic Server インスタンスに対象指定されたデータ ソースおよびマルチ データ ソースを示します。

図 2-1 JDBC データ ソースのアーキテクチャ

JDBC データ ソースのアーキテクチャ

WebLogic Server におけるデータ ソースの詳細については、「JDBC データ ソースのコンフィグレーション」を参照してください。

マルチ データ ソースは、マルチ データ ソースと関連付けられたデータ ソース間のロード バランシングまたはフェイルオーバ処理を提供する、データ ソース周辺を抽象化したものです。マルチ データ ソースは、データ ソースが JNDI ツリーにバインドされるのと同じように、JNDI ツリーまたはローカル アプリケーション コンテキストにバインドされます。アプリケーションは、データ ソースの場合と同じように JNDI ツリー上のマルチ データ ソースまたはローカル アプリケーション コンテキスト (java:comp/env) 内のマルチ データ ソースをルックアップし、その後データベース接続を要求します。マルチ データ ソースは、そのマルチ データ ソースのコンフィグレーション内で選択されるアルゴリズムに応じて、要求を満たすためにロード バランシングとフェイルオーバのうちどちらのデータ ソースを使用するかを決定します。マルチ データ ソースの詳細については、「JDBC マルチ データ ソースのコンフィグレーション」を参照してください。

 


コンフィグレーションされた JDBC リソースの所有権

WebLogic JDBC のコンフィグレーションおよび管理を理解する上で重要なのは、JDBC リソースの作成者、または JDBC リソースの作成方法によって、リソースがどのようにデプロイおよび変更されるかが決まるということです。WebLogic 管理者と、プログラマは、どちらも JDBC リソースを作成できます。

表 2-1 は、JDBC モジュールの種類と、それらがどのようにコンフィグレーションおよび変更されるかを示します。

表 2-1 JDBC モジュールの種類、およびコンフィグレーションと管理のオプション
モジュールの種類
作成手段
Administration Console でモジュールを追加/削除
JMX で変更 (リモート)
JSR-88 で変更 (非リモート)
Administration Console で変更
システム
Administration Console または WLST
不可
可 (JMX を介して)
アプリケーション
BEA Workshop for WebLogic Platform 9.2、別の IDE、または XML エディタ
不可
不可
可 (デプロイメント プランを介して)
可 (デプロイメント プランを介して)

 


JDBC コンフィグレーション ファイル

WebLogic JDBC のコンフィグレーションは、weblogic-jdbc.xsd スキーマ (http://www.bea.com/ns/weblogic/920/weblogic-jdbc.xsd で入手可能) に準拠する XML ドキュメントに格納されます。JDBC リソースは、システム モジュールとして、またはアプリケーション モジュールとして作成および管理します。JDBC アプリケーション モジュールは、J2EE モジュールの WebLogic 固有の拡張機能であり、J2EE アプリケーションに含めて、またはスタンドアロンのモジュールとしてコンフィグレーションできます。

JDBC システム モジュールを使用しているのか、JDBC アプリケーション モジュールを使用してるのかに関係なく、各 JDBC データ ソースまたはマルチ データ ソースは、XML ファイル (モジュール) によって表現されます。

JDBC システム モジュール

JDBC リソース (データ ソースまたはマルチ データ ソース) を、Administration Console または WebLogic Scripting Tool (WLST) を使って作成すると、WebLogic Server はドメイン ディレクトリの下位ディレクトリ config/jdbc に JDBC モジュールを作成し、ドメインの config.xml ファイルに、モジュールへの参照を追加します。JDBC モジュールは、weblogic-jdbc.xsd スキーマ (http://www.bea.com/ns/weblogic/920/weblogic-jdbc.xsd で入手可能) に準拠します。

このようにしてコンフィグレーションされる JDBC リソースは、システム モジュールと見なされます。システム モジュールは管理者の所有になります。管理者はいつでも、リソースの削除や修正を行ったり、同様なリソースを追加したりできます。システム モジュールは、ドメインにコンフィグレーションされたサーバおよびクラスタの対象指定に対して全面的に利用できます。つまり、同じ対象にデプロイされているすべてのアプリケーションおよびクライアント アプリケーションで利用できます。システム モジュールはまた、JDBCSystemResourceMBeans として JMX からアクセスすることもできます。

データ ソース システム モジュールは、JDBCSystemResource 要素としてドメインの config.xml ファイルに含まれています。これには、JDBC モジュール ファイルの名前と、モジュールのデプロイ先である対象サーバおよびクラスタのリストが含まれます。図 2-2 は、config.xml ファイル内のデータ ソース リストと、そのマップ先となるモジュールの例を示します。

図 2-2 config.xml からデータ ソース システム モジュールへの参照

config.xml からデータ ソース システム モジュールへの参照

この図では、config.xml ファイルに examples-demo データ ソースが jdbc-system-resource 要素としてリストされています。これは domain\config\jdbc フォルダ内の examples-demo.xml モジュールにマップされます。

同様に、マルチ データ ソース システム モジュールが、jdbc-system-resource 要素としてドメインの config.xml ファイルに含まれています。マルチ データ ソース モジュールには、マルチ データ ソースによって使用されるデータ ソース モジュールにマップされる data-source-list パラメータが含まれます。また、個々のデータ ソース モジュールも、config.xml に含まれています。図 2-3 は、config.xml ファイル内の要素と、config/jdbc ディレクトリ内のシステム モジュールの関係を示します。

図 2-3 config.xml からマルチ データ ソースおよびデータ ソース システム モジュールへの参照

config.xml からマルチ データ ソースおよびデータ ソース システム モジュールへの参照

この図では、config.xml ファイル内に、3 つの JDBC モジュールがリストされています。1 つのマルチ データ ソースと、そのマルチ データ ソースによって使用される 2 つのデータ ソースです。この 2 つのデータ ソースも、マルチ データ ソース モジュール内にリストされています。アプリケーションは、これらのモジュールのうち任意のものを JNDI ツリー上でルックアップして、データベース接続を要求できます。マルチ データ ソースをルックアップした場合、そのマルチ データ ソースは、data-source-list パラメータ内のデータ ソース、データ ソースのリスト順、および algorithm-type パラメータで指定されているアルゴリズムに応じて、データベース接続の供給に使用する別のデータ ソースをどれにするかを決定します。マルチ データ ソースの詳細については、「JDBC マルチ データ ソースのコンフィグレーション」を参照してください。

JDBC アプリケーション モジュール

JDBC リソースは、標準の J2EE モジュールと同様に、アプリケーション モジュールとしても管理できます。JDBC アプリケーション モジュールとは単に、weblogic-jdbc.xsd スキーマに準拠する XML ファイルで、データ ソースまたはマルチ データ ソースのことを言います。

JDBC モジュールは、パッケージ化されたモジュールとして、エンタープライズ アプリケーションの一部に含めることができます。パッケージ化されたモジュールは、EAR または展開された EAR ディレクトリにバンドルされ、weblogic-application.xml デプロイメント記述子、ejb-jar.xml デプロイメント記述子など、すべての適切なデプロイメント記述子内で参照されます。JDBC モジュールはエンタープライズ アプリケーションと一緒にデプロイされ、同梱されたアプリケーションのみ、またはすべてのアプリケーションで、利用可能なようにコンフィグレーションできます。パッケージ化したモジュールを使用することにより、アプリケーションは必要なリソースに常にアクセスでき、アプリケーションを新しい環境に移動する処理が簡素化されます。パッケージ化された JDBC モジュールを利用すると、EAR ファイルを開いたり、JDBC の手動による膨大な再コンフィグレーションを行ったりすることなく、アプリケーションと必要な JDBC コンフィグレーションを、ある環境から別の環境に (たとえば、テスト環境からプロダクション環境に) 移行できます。

システム リソース モジュールと対照的に、アプリケーションとパッケージ化された JDBC モジュールの所有者は、モジュールをデプロイする管理者ではなく、モジュールを作成およびパッケージ化した開発者となります。つまり、パッケージ化されたモジュールに対しては、管理者の制御が及ぶ範囲が、より制限されています。リソース モジュールをデプロイする際、管理者はモジュールで指定されていたリソース プロパティを変更できますが、モジュールの追加や削除は行えません (他の J2EE モジュールのように、リソース モジュールのデプロイ コンフィグレーションの変更はモジュールのデプロイメント プランに格納され、元のモジュール自体は変更されません)。

パッケージ化された JDBC モジュールは、定義によってエンタープライズ アプリケーションに含まれているため、エンタープライズ アプリケーションをデプロイすると一緒にデプロイされます。パッケージ化された JDBC モジュールを伴うアプリケーションのデプロイの詳細については、『WebLogic Server アプリケーションのデプロイメント』を参照してください。

JDBC アプリケーション モジュールは、weblogic.Deployer ユーティリティまたは Administration Console を使用してスタンドアロンのリソースとしてもデプロイでき、通常そのリソースはデプロイメント プロセスにおいて対象指定されたサーバまたはクラスタで使用できます。このようにしてデプロイされた JDBC リソースは、スタンドアロン モジュールと呼ばれ、Administration Console または JSR-88 対応のツールを使用して再コンフィグレーションできますが、JMX や WLST を介しては使用できません。

スタンドアロン JDBC モジュールを使用すると、JDBC リソースの共有と移植が容易になります。作成したデータ ソース コンフィグレーションは他の開発者に配布できます。スタンドアロン JDBC モジュールはまた、開発ドメインとステージング ドメインの間など、ドメイン間で JDBC コンフィグレーションを移動するのにも使用できます。

JDBC アプリケーション モジュールの詳細については、「JDBC アプリケーション モジュールのデプロイメントのコンフィグレーション」を参照してください。

スタンドアロン JDBC モジュールのデプロイについては、「JDBC、JMS、および WLDF アプリケーション モジュールのデプロイ」を参照してください。

JDBC モジュール ファイルのネーミング要件

WebLogic JDBC モジュール ファイルはすべて、examples-demo-jdbc.xml のように、末尾に -jdbc.xml サフィックスを付ける必要があります。WebLogic Server は、モジュールのデプロイ時にファイル名をチェックします。ファイル名の末尾が -jdbc.xml でなかった場合、デプロイメントは失敗し、サーバは起動しません。

バージョン管理されたアプリケーションの JDBC モジュール

プロダクションの再デプロイメント (バージョン管理) を使用して、パッケージ化された JDBC モジュールを含むアプリケーションの、あるバージョンをデプロイする場合、WebLogic Server は次の形式で、JDBC モジュールにおいて定義されたデータ ソースを識別します。

application_id#version_id@module_name@data_source_name

この名前はデータ ソース実行時 MBean に使用されると共に、WebLogic Server トランザクション マネージャにデータ ソース インスタンスを登録するのに使用されます。

廃止バージョンのアプリケーションにおいてトランザクションがタイムアウトし、その後そのバージョンのアプリケーションがアンデプロイされると、廃止されたバージョンのアプリケーションにおけるデータ ソース上の一切の保留中のトランザクションまたは完了していないトランザクションを、手動で解決することが必要になる場合があります。データ ソースが (この場合には、廃止バージョンのアプリケーションによって) アンデプロイされると、WebLogic Server トランザクション マネージャは、保留中のトランザクションや完了していないトランザクションを回復できなくなります。

プロダクションの再デプロイメントの詳細については、以下を参照してください。

JDBC スキーマ

WebLogic Server で JDBC リソースのモジュール式のデプロイメント モデルをサポートするにあたり、WebLogic JDBC オブジェクトのスキーマ weblogic-jdbc.xsd が用意されています。JDBC リソース モジュール (記述子) を作成する際は、モジュールをこのスキーマに準拠させる必要があります。IDE や他のツールはこのスキーマに基づいて JDBC リソース モジュールを検証できます。

このスキーマは http://www.bea.com/ns/weblogic/920/weblogic-jdbc.xsd にあります。

 


JDBC リソースに対する JMX および WLST のアクセス

Administration Console または WLST を使って JDBC リソースを作成すると、WebLogic Server は各リソースについて MBean (管理対象 Bean) を作成します。その後、JMX または WebLogic Scripting Tool (WLST) を使用して、これらの MBean にアクセスできます。詳細については、『JMX によるカスタム管理ユーティリティの開発』および『WebLogic Scripting Tool ガイド』を参照してください。

システム リソース用の JDBC MBean

図 2-4 は、WebLogic ドメイン内の JDBC オブジェクトのための MBean の階層を示します。

図 2-4 JDBC Bean ツリー

JDBC Bean ツリー

JDBCSystemResourceMBean は、データ ソース モジュールから作成された JavaBean のコンテナです。ただし、JDBC データ ソースに対する JMX のアクセスは、すべて JDBCSystemResourceMBean 経由で行われます。データ ソース モジュールから作成された個々の JavaBean に直接アクセスすることはできません。

J2EE Management Model における JDBC 管理オブジェクト (JSR-77 のサポート)

WebLogic Server JDBC は J2EE Management Model を定義する JSR-77 をサポートしています。J2EE Management Model は、J2EE Web アプリケーション サーバおよびそのリソースの実行時状態をモニタするのに使用されます。J2EE Management Model にアクセスして、WebLogic JDBC システム全体、メモリにロードされた JDBC ドライバ、JDBC データ ソースなどのリソースをモニタできます。

仕様に準拠するため、WebLogic JDBC には次の実行時 MBean タイプが追加されています。

注意 : WebLogic JDBC 実行時 MBean は、JSR-77 で指定されている任意の統計プロバイダを実装していません。

WebLogic Server における J2EE Management Model の使用に関する詳細については、『J2EE 管理 API によるモニタと管理』を参照してください。

WLST を使用した JDBC システム リソースの作成

WLST を使用して JDBC リソースを作成するには、以下のタスクを実行する必要があります。

JDBC リソースの変更およびモニタ方法

MBean から利用できる適切なメソッドを使用すると、JDBC オブジェクトおよび属性を変更したりモニタしたりできます。

詳細については、『WebLogic Scripting Tool ガイド』の「MBean の移動と編集」を参照してください。

WLST を使用して JDBC をコンフィグレーションするときのベスト プラクティス

ここでは、WLST を使用して JDBC リソースをコンフィグレーションするときのベスト プラクティスを示します。

 


クラスタ化された JDBC の概要

JDBC リソースをクラスタに対象指定またはデプロイすると、クラスタでホストされているアプリケーションの可用性を高めることができます。クラスタ環境での JDBC オブジェクトについては、『WebLogic Server クラスタ ユーザーズ ガイド』の「JDBC 接続」を参照してください。

マルチ データ ソースは、クラスタでの使用がサポートされています。ただし、マルチ データ ソースが使用できるのは、同じ JVM 内のデータ ソースのみです。マルチ データ ソースは、他のクラスタ メンバーからのデータ ソースを使用できません。


  ページの先頭       前  次