Oracle WebLogic ServerでのOracle Joltの使用

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

Oracle Jolt for Oracle WebLogic Serverの概要

Oracle Jolt for Oracle WebLogic Serverを使用すると、Web対応のOracle Tuxedoサービスを有効にし、Oracle WebLogic ServerをフロントエンドHTTPおよびアプリケーション・サーバーとして使用することができます。

Oracle JoltはJavaベースのクライアントAPIであり、Tuxedoサーバー上で実行されているJoltサービス・リスナー(JSL: Jolt Service Listener)経由で、Oracle Tuxedoサービスに対するリクエストを管理します。Jolt APIはWebLogic API内に埋め込まれており、サーブレットまたはほかのOracle WebLogicアプリケーションからアクセス可能です。

Oracle Jolt for Oracle WebLogic ServerはJolt Javaクラス・ライブラリを拡張しているため、WebLogic Server内で実行されるHTTPサーブレットでは、Jolt Javaクライアントのクラス・ライブラリを使用することができます。またOracle Jolt for Oracle WebLogic Serverは、Java HTTPサーブレットを使用して、HTMLブラウザ・クライアントとOracle Tuxedoサービスとの間のインタフェースを提供します。

以降の説明では、読みやすさを考慮して、Oracle Tuxedoを「Tuxedo」、Oracle Joltを「Jolt」、Oracle WebLogicを「WebLogic」と表記します。

ここでは、以下の内容について説明します。

 


主な特徴

Oracle Jolt for Oracle WebLogic Serverのアーキテクチャには次のような主な特徴があります。

注意: Jolt for WebLogicでは、非同期のTuxedoイベント通知へのアクセスは提供されません。

 


Jolt for WebLogicのしくみ

この項では、Jolt内での通信で使用する主なコンポーネントとOracle Jolt for Oracle WebLogic Serverのしくみについて、次の内容を説明します。

Jolt for WebLogicとTuxedoの関係

Oracle Jolt for Oracle WebLogic Serverを使用すると、基盤となるTuxedoシステムにWebからアクセスできます。Webアクセスが可能なので、Tuxedoドメイン内の他のシステムやデータベースと通信できるWeb対応アプリケーションを作成することができます。

ここで説明するシステムには、標準のWebブラウザからアクセスします。このWebブラウザに対し、WebLogic Serverは、カスタマイズしたJava HTTPサーブレットを使用して、ブラウザの対話型のHTTPリクエストを処理します。HTTPサーブレットは、受け取ったHTTPリクエストを処理し、それに対してHTTPレスポンスを送信するJavaクラスです。カスタマイズしたHTTPサーブレットは、Jolt for WebLogic APIを使用して、リモート・マシン上またはセキュリティ・ファイアウォールの背後に配置されたJolt Serverとも通信します。

Jolt ServerはTuxedoドメイン内に存在するサーバーであり、各クライアントに対してアクセスを許可するTuxedoサービスを決定します。Jolt ServerはリクエストされたTuxedoサービスを呼び出し、結果をWebLogic Serverに返します。返された結果は、サーブレットが生成したWebページにコンパイルし、ブラウザに送信することができます。その際、インターネットまたはイントラネット上のどこからでもTuxedoサービスにアクセスできる使いやすいインタフェースを作成します。

Joltアーキテクチャの主要コンポーネント

WebLogic Java HTTPサーブレットからJolt Serverへ、また、Jolt ServerからTuxedoへの通信接続を維持する基本的なオブジェクト・タイプは、以下のとおりです。

図1-1は、Oracle Jolt for Oracle WebLogic Serverのアーキテクチャを示します。

図1-1 Oracle Jolt for Oracle WebLogic Serverのアーキテクチャ

Oracle Jolt for Oracle WebLogic Serverのアーキテクチャ

WebLogic Serverの起動

WebLogic標準に基づくピュアJavaアプリケーション・サーバーは、分散型Javaアプリケーションのアセンブリ、デプロイ、および管理を行います。このサーバーは、Enterprise JavaBeans、Remote Method Invocation (RMI)、分散型JavaBeans、およびJava Database Connect (JDBC)など、分散型コンポーネント・サービスおよびエンタープライズ・データベース・アクセスをサポートしています。

WebLogic Serverの管理サーバーには、JavaBeanに似たオブジェクトである、Sun MicrosystemのJava Management Extension (JMX)標準が設定されています。これらのオブジェクトにより、ドメインの資源に対して管理アクセスを実行できます。

管理サーバーには、構成MBeanと実行時MBeanがあります。MBeanは、構成属性へのSET (書込み)アクセスとGET (読取り)アクセスの両方を提供します。実行時MBeanは、現在のHTTPセッションやJDBCセッション・プールのロードなど、ドメインの資源に関する情報のスナップショットを提供します。ドメイン内の特定の資源(Jolt接続プールなど)がインスタンス化されると、その資源に関する情報を収集するためのMBeanが作成されます。

注意: 構成MBeanおよび実行時MBeanの詳細は、『Oracle WebLogic Server管理者ガイド』を参照してください。

WebLogic Serverは、起動時にconfig.xmlファイルによって、セッション・プールを初期化するように設定されます。特殊なスタートアップ・クラスPoolManagerStartUpが、いくつかのパラメータを設定したWebLogic Serverによって呼び出されます。このクラスには、次の機能があります。

注意: Joltサーバーは、セッション・プールを作成する前に起動してください。作成後に起動すると、スタートアップ・クラスは異常終了し、再コミットは行われません。

作成されるセッション・プールの数は、config.xmlファイルで設定されているJoltConnectionPoolsの数によって決まります。

クライアント・ブラウザからWebLogicサーバーへの接続

WebLogic Serverは、別のJavaサービスを提供するほか、Java HTTPサーブレットをサポートする本格的なHTTPサーバーです。一般に、サーブレットはそれぞれ仮想名でconfig.xmlファイルに登録する必要があります。

サーブレットは、直接呼び出して実際にHTMLをブラウザに表示する場合もあれば、ユーザーがフォームを送信するときなど、HTMLフォームから間接的に呼び出す場合もあります。WebLogic Serverは、登録されているサーブレットの仮想名を含むリクエストを受け取ると、該当するサーブレットのservice()メソッドを呼び出します。HTTPサーブレットの詳細は、『WebLogic HTTPサーブレットのプログラミング』ガイドを参照してください。

HTTPサーブレットのservice()メソッド(コンテキストに応じて、サーブレットのdoPost()またはdoGet()メソッドのいずれかを呼び出す)が呼び出されると、ブラウザから送られたHTTPデータを含むHttpServletRequestオブジェクトが渡されます。「サンプル・パッケージの使用方法」で説明するサンプル・パッケージでは、Tuxedoに対するトランザクション呼出しでクライアントの問合せデータを使用し、レスポンスは新しいHTMLページに組み込まれます。

サーブレットからTuxedoへの接続

まず、サーブレットは、WebLogic Serverが起動時に作成し、初期化したセッション・プール・マネージャに対する参照を取得します。セッション・プール・マネージャは、config.xmlファイルで設定されたセッション・プールを取得するために使用されます。このセッション・プールは、Tuxedoドメイン内の適切なJolt Serverを参照します。サーブレットは、セッション・プールを使用して特定のTuxedoサービスを呼び出します。

Tuxedoサービスが記述され、JoltリポジトリのJoltサーバーにエクスポート(アクセス可能を宣言)されます。Joltリポジトリでは、サービスの期待される入力および出力パラメータ型が宣言されます。サーブレットは期待される入力パラメータを供給する必要があります。Oracle Jolt for Oracle WebLogic Serverは、特別なServletSessionPoolオブジェクトを使用します。このオブジェクトは、HttpServletRequestオブジェクトから入力データを直接受け入れることが可能です。出力データは、ServletResultオブジェクトに返されます。

リクエストが異常終了した場合の処理

セッション・プールは、プール内のセッションに均等にリクエストを分散します。また、未処理のリクエストが最も少ないセッションを選択してTuxedoサービスを呼び出します。選択したセッションが、Tuxedoサービスが呼び出される前に終了した場合、セッション・プールはサービスの呼出しを別のセッションにリダイレクトし、切断されたセッションにかわる新しいセッションを確立します。セッション・プールはラウンドロビン・アルゴリズムを使用して、プライマリJoltサーバーへの接続を選択し、確立します。プライマリJoltサーバーから応答がない場合、セッション・プールはフェイルオーバー・サーバーに接続します。

セッション・プールに使用可能なセッションがない場合、またはセッション・プールが中断されている場合は、SessionPoolExceptionがスローされます。

複数のリクエストは、単一のトランザクションにグループ化できます。トランザクションが失敗すると、TransactionExceptionがスローされます。この例外はサーブレットによって捕捉され、適切に処理されます。(通常、サーブレットはロールバックを実行します。)

クライアント・ブラウザへの応答

サービスの呼出しが正常に終了すると、次のイベントが発生します。

Joltサーバーとの接続の切断

WebLogic Serverは、config.xmlファイルで、Tuxedoへの既存のセッション・プール接続を停止するようにも設定されています。

PoolManagerShutDownクラスを登録し、WebLogic Serverが停止したときに、Joltセッション・プールが正しくクリーンアップされるようにしてください。PoolManagerShutDownは、config.xmlファイルの属性を必要としません。

 


サンプル・パッケージの使用方法

Oracle Jolt for Oracle WebLogic Serverには、2つのサンプル・パッケージが付属しています。これらのパッケージは、「簡単なサーブレット・サンプル・プログラム」および「Servlet with Enterprise JavaBeanサンプル・プログラム」に記載されており、TuxedoサービスにアクセスするためにWebLogicサーブレットでJoltがどのように使われるかが詳しく説明されています。これらのサンプルを作成、実行、および検証することにより、WebLogicを使用してTuxedoサービスをインターネットに拡張する方法を判断することができます。


  先頭に戻る       前  次