Oracle® Fusion Middleware Oracle WebLogic Serverリソース・アダプタのプログラミング 11g リリース1 (10.3.4) B60996-02 |
|
![]() 前 |
![]() 次 |
次の項では、WebLogicリソース・アダプタと、J2EEコネクタ・アーキテクチャのOracle WebLogic Server実装について紹介します。
リソース・アダプタは、エンタープライズ情報システム(EIS)に固有のシステム・ライブラリであり、EISへの接続を提供します。リソース・アダプタはデータベース管理システムへの接続を提供するJDBCドライバに似ています。リソース・アダプタとEIS間のインタフェースは基底のEISに固有のものであり、ネイティブ・インタフェースの場合もあります。リソース・アダプタはWebLogic Serverなどのアプリケーション・サーバーに接続し、EIS、アプリケーション・サーバー、およびエンタープライズ・アプリケーションの間にシームレスな接続を提供します。
1つのアプリケーション・サーバーに複数のリソース・アダプタを接続できます。それによって、アプリケーション・サーバーにデプロイされたアプリケーション・コンポーネントが基底のEISにアクセスできます。すべてのシステム・レベルのメカニズム(トランザクション、セキュリティ、接続管理など)がアプリケーション・コンポーネントからは意識されないように、アプリケーション・サーバーとEISが共同で作業を行います。したがって、アプリケーション・コンポーネント・プロバイダは、アプリケーション・コンポーネントのビジネス・ロジックやプレゼンテーション・ロジックの開発に専念でき、EISの統合に関連したシステム・レベルの問題に関わる必要はありません。複数のEISと接続する必要のある、スケーラブルでセキュアなトランザクション対応のエンタープライズ・アプリケーションを、より簡単に短期間で開発できるようになります。
WebLogic Integration (WLI)リソース・アダプタとWebLogic Serverリソース・アダプタの違いに注意することが重要です。WebLogic Integrationリソース・アダプタはWebLogic Server用に記述されるもので、通常は他のアプリケーション・サーバーにはデプロイできません。一方、WLIの拡張機能を利用せずに記述されたWebLogic Serverリソース・アダプタは、J2EEに準拠したアプリケーション・サーバーにデプロイできます。このドキュメントでは、非WLIリソース・アダプタの設計と実装について説明します。
WebLogic Serverは3種類のリソース・アダプタをサポートしています。
発信リソース・アダプタ(J2EE 1.0および1.5コネクタ・アーキテクチャでサポート) - アプリケーションはEISシステムに接続して作業を行えるようになります。すべての通信はアプリケーションによって開始されます。この場合、リソース・アダプタはEISに接続するためのパッシブなライブラリとして機能し、アプリケーション・スレッドのコンテキストで実行されます。
J2EE 1.5コネクタ・アーキテクチャに基づいた発信リソース・アダプタは、複数の同時発信接続を行うように構成できます。WebLogic Server固有の認証やトランザクションのサポートを利用するように、各接続を構成することもできます。「発信接続の構成」を参照してください。
J2EE 1.0コネクタ・アーキテクチャに基づいた発信リソース・アダプタもサポートされています。1.0のリソース・アダプタでは、発信接続は1つだけ行うことができます。
着信リソース・アダプタ(1.5のみ) - EISはアプリケーションを呼び出して作業を行えるようになります。すべての通信はEISによって開始されます。リソース・アダプタはWebLogic Serverのスレッドをリクエストしたり、独自のスレッドを生成したりできますが、この方法はお勧めしません。リソース・アダプタからワーク・マネージャを経由して作業を送信することをお薦めします。第7章「メッセージ・インフローとトランザクション・インフロー」を参照してください。
注意: Weblogic Serverシン・クライアントJARは、ワーク・マネージャ規約をサポートしているので、非管理対象リソース・アダプタ(WebLogic Serverで実行されないリソース・アダプタ)として使用することもできます。 |
双方向リソース・アダプタ(1.5のみ) - 発信と着信の両方の通信をサポートします。
WebLogic Serverでは、J2EE 1.0コネクタ・アーキテクチャまたはJ2EE 1.5コネクタ・アーキテクチャに基づいて開発されたリソース・アダプタをサポートしています。J2EE 1.0コネクタ・アーキテクチャでは、一方向の発信通信を使用した、リソース・アダプタから1つの外部システムへの通信のみに制限されています。J2EE 1.5コネクタ・アーキテクチャではこの制限がなくなりました。1.5リソース・アダプタで提供される他の機能で、1.0リソース・アダプタに適用されないものは、以下のとおりです。
アプリケーションから、エンタープライズ情報システム(EIS)やデータベースなどの複数のシステムへの発信通信。「着信、発信、および双方向のリソース・アダプタ」を参照してください。
EISなどの1つまたは複数の外部システムからリソース・アダプタへの着信通信。「着信メッセージの処理」を参照してください。
トランザクション・インフロー。J2EEアプリケーション・サーバーは、リソース・アダプタを経由して、外部トランザクション・マネージャが制御するXAトランザクションに関与できるようになります。「トランザクション・インフロー」を参照してください。
アプリケーション・サーバーが提供するワーク・マネージャ。リソース・アダプタはWork
インスタンスを介してスレッドを作成できるようになります。「work-manager」を参照してください。
アプリケーション・サーバーによってリソース・アダプタのstart()
およびstop()
メソッドを呼び出すためのライフサイクル規約。「起動クラスとして実行するためのリソース・アダプタのプログラミング」を参照してください。
1.0リソース・アダプタと1.5リソース・アダプタのもう1つの重要な相違点は接続プールに関連しています。1.5リソース・アダプタの場合、接続ファクトリにつき1つの接続プールが自動的に取得されることはありません。接続インスタンスを構成する必要があります。それには、weblogic-ra.xml
デプロイメント記述子のconnection-instance
要素を設定します。
WebLogic Serverは現在J2EE 1.5コネクタ・アーキテクチャに準拠していますが、J2EE 1.0コネクタ・アーキテクチャも引続き完全にサポートしています。J2EE 1.5コネクタ・アーキテクチャに従って、WebLogic Serverは現在、スキーマに基づいたデプロイメント記述子をサポートしています。J2EE 1.0コネクタ・アーキテクチャに基づいて開発されたリソース・アダプタでは、ドキュメント型定義(DTD)に基づいたデプロイメント記述子を使用します。DTDに基づくデプロイメント記述子で構築されたリソース・アダプタも引続きサポートされます。
このドキュメントでは、1.5リソース・アダプタの開発と使用について説明します。
J2EEコネクタ・アーキテクチャでは、J2EEプラットフォームを、エンタープライズ・リソース・プランニング(ERP)システム、メインフレーム・トランザクション処理(TP)、データベース・システムなどの異種のエンタープライズ情報システム(EIS)に接続するための、標準アーキテクチャを定義しています。
リソース・アダプタは、任意のEIS通信プロトコルを接続に使用できるようにするプロトコル・アダプタとして機能します。アプリケーション・サーバー・ベンダーは、J2EEコネクタ・アーキテクチャをサポートするためにシステムを一度拡張すれば、複数のEISとのシームレスな接続を確保できます。同様に、EISベンダーは1つの標準リソース・アダプタを提供すると、そのアダプタでJ2EEコネクタ・アーキテクチャをサポートするどのアプリケーション・サーバーにも接続できます。
J2EEコネクタ・アーキテクチャの詳細な概要については、J2CA 1.5仕様(http://java.sun.com/j2ee/connector/
)の項3 「コネクタ・アーキテクチャ」を参照してください。
図2-1とその下の解説では、J2EE 1.5コネクタ・アーキテクチャのWebLogic Server実装について説明します。
図2-1のコネクタ・アーキテクチャの概要では、双方向のリソース・アダプタを例示しています。発信接続処理では以下のコンポーネントが使用されます。
クライアント・アプリケーション。WebLogic Serverに接続し、EISとも対話する必要があります。
アプリケーション・コンポーネント(EJBまたはサーブレット)。クライアント・アプリケーションがリソース・アダプタを介して発信リクエストをEISに送信するために使用します。
WebLogic Serverコネクタ・コンテナ。この中にリソース・アダプタがデプロイされます。この例のコンテナには以下のものが含まれています。
EISとの双方向(着信および発信)通信を提供する、デプロイされたリソース・アダプタ。
コンテナが保持する1つまたは複数の接続プール。特定のManagedConnectionFactory
に対応し、発信の管理対象接続を管理するために使用されます(この例ではMCF-2。1つのEISとの接続や様々なEISとの接続など、接続の種類に応じて他にも存在する場合があります)。
複数の管理対象接続(MC1、MCn)。リソース・アダプタからEISへの物理的な発信接続を表現するオブジェクトです。
接続ハンドル(C-handle)。リソース・アダプタの接続ファクトリからアプリケーション・コンポーネントに返されます。アプリケーション・コンポーネントがEISとの通信に使用します。
着信接続処理では以下のコンポーネントが使用されます。
1つまたは複数の外部メッセージ・ソース(MS1、MS2)。WebLogic Serverへの着信メッセージを送信する、エンタープライズ情報システム(EIS)またはメッセージ・プロバイダです。
1つまたは複数のActivationSpec (Act Spec)。それぞれが1つのMessageListener型(MLT-i)に相当します。
MessageEndpointFactory
。EJBコンテナが作成し、着信メッセージング用リソース・アダプタがMessageEndpoint
インスタンス(MDBプールのMDBインスタンス)のプロキシを作成するために使用します。
メッセージ・エンド・ポイント・アプリケーション(メッセージドリブンBean (MDB)やその他のJ2EEコンポーネント)。リソース・アダプタを介してEISから着信メッセージを受信して処理します。
WebLogic ServerとEISの間に標準のシステム・レベルのプラガブル性を実現するために、WebLogic Serverでは、J2EEコネクタ・アーキテクチャで定義されたシステム・レベル規約の標準を実装しました。この規約は、2つのシステムが協調して作業できるように、アプリケーション・サーバーとEISで実装する必要のあるSPIクラスとインタフェースで構成されています。システム・レベル規約のEIS側は、リソース・アダプタのJavaクラスで実装されます。以下の標準規約がサポートされます。
接続管理規約 - WebLogic Serverは基底のEISへの接続をプールし、アプリケーション・コンポーネントはEISに接続することができます。リソースの共有を通じて接続を効率的に使用したり、接続ハンドルとEIS接続の関連付けおよび関連付けの解除を制御したりできます。
トランザクション管理規約 - トランザクション・マネージャと、EISリソース・マネージャへのトランザクション・アクセスをサポートするEISとの間の規約。WebLogic Serverはトランザクション・マネージャを使用して、複数のリソース・マネージャにわたるトランザクションを管理できます。
トランザクション・インフロー規約 - リソース・アダプタはインポートされたトランザクションをWebLogic Serverに伝播できます。リソース・アダプタは、EISによって開始されたトランザクション完了呼出しやクラッシュ・リカバリ呼出しを流入させることができます。トランザクション・インフローでは、トランザクションを調整するために外部トランザクション・マネージャも使用されます。
セキュリティ規約 - EISへのセキュアなアクセスを提供し、EISに対するセキュリティの脅威を小さくするセキュアなアプリケーション環境をサポートします。EISによって管理される貴重な情報リソースを保護します。
ライフサイクル管理規約 - WebLogic Serverはリソース・アダプタのライフサイクルを管理できます。デプロイメント時またはアプリケーション・サーバーの起動時にリソース・アダプタ・インスタンスのブート・ストラップを行ったり、アンデプロイ時やアプリケーション・サーバーの停止時にリソース・アダプタ・インスタンスに通知したりできます。
作業管理規約 - リソース・アダプタは、実行用にWebLogic ServerにWork
インスタンスを送信することで、作業(ネットワーク・エンド・ポイントのモニター、アプリケーション・コンポーネントの呼び出しなど)を行うことができます。
メッセージ・インフロー規約 - リソース・アダプタは、メッセージの配信に使用される特定のメッセージング・スタイル、メッセージング・セマンティクス、およびメッセージング・インフラストラクチャとは独立して、WebLogic Server内のメッセージ・エンド・ポイントに、メッセージを非同期または同期的に配信できます。また、この規約は標準のメッセージ・プロバイダのプラガブル性規約としても機能し、リソース・アダプタを介して様々なメッセージ・プロバイダ(Java Message ServiceやJava API for XML Messagingなど)をWebLogic Serverにプラグインできます。
これらのシステム・レベル規約の詳細はJ2CA 1.5仕様(http://java.sun.com/j2ee/connector/
)で説明されています。
リソース・アダプタの構造と実行時の動作はデプロイメント記述子で定義されます。プログラマはパッケージ化のプロセスでデプロイメント記述子を作成します。そのデプロイメント記述子は、アプリケーションのコンパイル時にアプリケーションの一部になります。
WebLogic Serverリソース・アダプタには2つのデプロイメント記述子があり、それぞれにXMLスキーマがあります。
ra.xml
- 標準のJ2EEデプロイメント記述子。すべてのリソース・アダプタをra.xml
デプロイメント記述子ファイルに指定する必要があります。ra.xml
のスキーマはhttp://java.sun.com/xml/ns/j2ee/connector_1_5.xsd
です。
weblogic-ra.xml
- トランザクション管理、接続管理、セキュリティなどのWebLogic Serverの機能に関連する要素を格納するWebLogic Server固有のデプロイメント記述子。リソース・アダプタをWebLogic Serverにデプロイするにはこのファイルが必要です。weblogic-ra.xml
デプロイメント記述子ファイルのスキーマはhttp://xmlns.oracle.com/weblogic/weblogic-connector/1.0/weblogic-connector.xsd
です。weblogic-ra.xml
デプロイメント記述子のリファレンスについては、付録A「weblogic-ra.xmlスキーマ」を参照してください。