目次 前 次 PDF


Oracle Jolt for Oracle WebLogic Serverの紹介

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のアーキテクチャには次のような主な特徴があります。
Java HTTPサーブレットを有効にし、Tuxedoアプリケーションに対する動的なHTMLフロントエンドを提供
Tuxedoのリソースを有効活用するためのセッション・プール機能を用意
トランザクションをサポート
セッション・プール管理の機能をWebLogicコンソールに統合
注意:
Jolt for WebLogicでは、非同期のTuxedoイベント通知へのアクセスは提供されません。
Jolt for WebLogicのしくみ
この項では、Jolt内での通信で使用する主なコンポーネントとOracle Jolt for Oracle WebLogic Serverのしくみについて、次の内容を説明します。
サーバー起動時の接続の初期化方法
次の各コンポーネントにおける情報の流れ
エンド・ユーザーのWebブラウザ
WebLogic Server
Tuxedoトランザクション処理システム
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への通信接続を維持する基本的なオブジェクト・タイプは、以下のとおりです。
Session
セッション・オブジェクトは、Tuxedoシステムとの物理的接続を表します。
SessionPool
セッション・プールには、1つまたは複数のセッションが含まれています。セッション・プール内のセッションは、効率を高めるために再利用されます。WebLogicサーブレットは、セッションを使用し、セッション・プールのメソッドによってTuxedo内のサービスを呼び出します。セッション・プールは、起動時にWebLogicサーバーによって初期化され、config.xmlファイルの属性によって設定されます。
注意:
Oracle WebLogic Server 6.0以降では、xmlベースのconfig.xml環境設定ファイルがweblogic.propertiesファイルのかわりに使用されます。config.xmlファイルの詳細は、『Oracle WebLogic Server管理者ガイド』を参照してください。
SessionPoolManager
セッション・プール・マネージャを使用して、セッション・プールへの参照を取得し、セッション・プールの作成、管理、および削除を行います。セッション・プール・マネージャは、WebLogic Serverが最初のセッション・プールを初期化する直前に作成されます。
図1-1は、Oracle Jolt for Oracle WebLogic Serverのアーキテクチャを示します。
図1-1 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サービスはOracle Tuxedoサービス・メタデータ・リポジトリで記述され、エクスポート(アクセス可能と宣言)されます。メタデータ・リポジトリでは、サービスの期待される入力および出力パラメータ型が宣言されます。サーブレットは期待される入力パラメータを供給する必要があります。Oracle Jolt for Oracle WebLogic Serverは、特別なServletSessionPoolオブジェクトを使用します。このオブジェクトは、HttpServletRequestオブジェクトから入力データを直接受け入れることが可能です。出力データは、ServletResultオブジェクトに返されます。
リクエストが異常終了した場合の処理
セッション・プールは、プール内のセッションに均等にリクエストを分散します。また、未処理のリクエストが最も少ないセッションを選択してTuxedoサービスを呼び出します。選択したセッションが、Tuxedoサービスが呼び出される前に終了した場合、セッション・プールはサービスの呼出しを別のセッションにリダイレクトし、切断されたセッションにかわる新しいセッションを確立します。セッション・プールはラウンドロビン・アルゴリズムを使用して、プライマリJoltサーバーへの接続を選択し、確立します。プライマリJoltサーバーから応答がない場合、セッション・プールはフェイルオーバー・サーバーに接続します。
セッション・プールに使用可能なセッションがない場合、またはセッション・プールが中断されている場合は、SessionPoolExceptionがスローされます。
複数のリクエストは、単一のトランザクションにグループ化できます。トランザクションが失敗すると、TransactionExceptionがスローされます。この例外はサーブレットによって捕捉され、適切に処理されます。(通常、サーブレットはロールバックを実行します。)
クライアント・ブラウザへの応答
サービスの呼出しが正常に終了すると、次のイベントが発生します。
求めていた結果が、ServletResultオブジェクトから取り出されます。
結果はサーブレットによって処理され、ユーザーのブラウザに表示するためのHTMLページに組み込まれます。HTMLページは、次の2つのうちいずれかの方法で作成できます。
標準のHTMLページにJavaを埋め込める、WebLogicの使いやすいJava Server Pages (JSP)サービスを使用する
WebLogic htmlKonaによる、より高度なプログラミング方法を使用する
WebLogic Serverは、HttpServletResponseオブジェクト経由でクライアントにHTMLページを返します。
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サービスをインターネットに拡張する方法を判断することができます。
FORMベースのHTMLフロントエンドが、HTTPサーブレットに文字列を送信します。サーブレットは、受け取った文字列をTuxedoサービスに送信します。返されたデータは、動的に生成されたHTMLファイルにコンパイルされ、クライアント・ブラウザに送信されます。
Enterprise JavaBean (EJBean)サンプル・パッケージには、Joltを使用しているTuxedoサーバーへのEJBeanステートフル・セッションを設定し実行するために必要なクラスおよびその他のファイルが含まれています。

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved