Oracle Tuxedo用のサーブレット接続性の使用
Oracle Joltのサーブレット接続性の機能を利用すると、HTTPリクエストに対する処理をHTTPサーブレットを使用して行い、サーバー側のJavaタスクを実行することができます。Joltでは、Java Web Serverバージョン1.1.3以上のサーブレット接続性の機能がサポートされており、標準的なサーブレット・エンジンがサポートされています。Joltのセッション・プール・クラスを使用すると、単純なHTMLクライアントからも一般的なサーブレットをサポートするWebサーバーに接続することができます。これで、すべてのJoltトランザクションは、クライアント側のアプレットやアプリケーションのかわりに、Webサーバー側のサーブレットで処理されます。
サーブレット機能により、HTMLクライアントはOracle Tuxedoに直接接続せずにOracle Tuxedoサービスを呼び出すことができます。HTMLクライアントは、HTTPプロトコルを使用してWebサーバー(Oracle Tuxedoサービスに対するリクエストをサーブレットを使って処理するサーバー)に接続します。Webサーバー上のサーブレットは、Joltセッションを使用してOracle Tuxedoサービスに対するリクエストを管理します。つまり、Joltサーバー・ハンドラ(JSH: Jolt Server Handler)またはJoltサーバー・リスナー(JSL: Jolt Server Listener)を介してOracle Tuxedoサーバーに接続し、Oracle Tuxedoサービスに対するリクエストを作成します。
この機能により、さまざまなHTMLクライアントがリモートのOracle Tuxedoサービスのリクエストを作成できるようになります。これで、すべてのJoltトランザクションはサーバー側で処理されます。元のHTMLクライアントを変更する必要はありません。したがって、単純な構造のHTMLクライアントで処理することが可能になり、HTMLクライアントの管理も容易になります。
サーブレットとは、クライアントの代わりにサーバー上で呼び出され、実行されるJavaクラスのことです。アプレットがクライアント側で実行されるのに対し、サーブレットはサーバー側で実行されます。HTTPサーブレットは、受け取ったHTTPリクエストを処理し、それに対してHTTPレスポンスを送信するJavaクラスです。HTTPサーブレットはHTTPサーバーに常駐しており、サーブレット・クラスJavaSoft javax.servlet.http.Httpの拡張である必要があります。これで、サーブレットは、一般的なサーブレット・エンジンのフレームワークで動作します。
HTTPサーブレットには、次のような利点があります。
•
|
整形式のコンパイル済言語(Java)で記述されているため、変換して使用するスクリプトよりも強力です。
|
•
|
常駐するHTTPサーバーの主要な部分を構成しています。
|
•
|
セキュリティに関して安全性が低いCGIとは異なり、常駐するサーバーの堅牢なセキュリティ機能によって保護されています。
|
•
|
うまく開発されたプログラム・インタフェースを使用してHTTPリクエストを処理するため、プログラムの作成を簡単に行うことができ、エラーの発生を抑えることができます。
|
Joltのサーブレット接続性機能を使用すると、一般的なHTTPサーブレットでJolt機能を利用することができます。Joltサーブレットは、次のJoltクラスを使用してHTTPリクエストを処理します。
•
|
ServletSessionPoolManager
|
以下は、Joltサーブレット接続性クラスの説明です。
このクラスには、Oracle Tuxedoサービスの入力パラメータと出力パラメータを表すデータ要素が含まれています。HTMLのフィールド名と値を
javax.servlet.http.HttpServletRequestオブジェクトからインポートするメソッドが用意されています。
このクラスは、Joltセッション・プール・マネージャと、関連する1つまたは複数のJoltセッション・プール用のスタートアップ・クラスです。必要に応じてセッション・プール・マネージャを作成し、最低限必要な数のセッションを設定してセッション・プールを開始します。Joltセッション・プール・マネージャは、1つまたは複数の名前付きセッション・プールを内部的に追跡します。
このクラスは
bea.jolt.pool.PoolManagerConfigから派生しています。呼出し側はPropertiesオブジェクトまたはHashtableオブジェクトを静的な
startup()メソッドに渡してセッション・プールを作成したり、静的な
getSessionPoolManager()メソッドを渡して
bea.jolt.pool.servlet.ServletSessionPoolManagerクラスのセッション・プール・マネージャを取得することができます。
このクラスには、ServletResultオブジェクトの各フィールドをString型で取得するメソッドが用意されています。
このクラスには、Javaサーブレットで使用するセッション・プールが用意されています。セッション・プールは、Oracle Tuxedoシステムに対する1つ以上の接続(セッション)を表します。このクラスには、Oracle Tuxedoサービスの入力パラメータを
javax.servlet.http.HttpServletRequestオブジェクトとして受け入れるコール・メソッドが用意されています。
ServletSessionPoolManager
このクラスは、サーブレットに固有のセッション・プール・マネージャです。
ServletSessionPoolクラスの1つ以上のセッション・プールの集まりを管理します。このクラスには、ServletSessionPoolManagerそのものおよびその中のセッション・プールの両方を作成するためのメソッドが用意されています。これらのメソッドは、セッション・プール用の管理APIの一部です。
HTTPサーブレットを作成と登録を行う前に、まずJoltサーブレット接続性をサポートするパッケージ(
jolt.jar、
joltjse.jar、
servlet.jar)をインポートする必要があります。HTTPサーブレットは、javax.servlet.http.HttpServletの拡張です。作成したHTTPサーブレットは、一般的なサーブレットをサポートするWebサーバーに登録します。カスタマイズしたサーブレットは、HTTP機能を持つ標準のHTTPサーブレットと同様に扱われます。
各HTTPサーブレットには、特定のURLの形式が登録されます。あるURLがリクエストされると、対応するサーブレットが呼び出され、リクエストが処理されます。
サーブレットの登録方法については、お使いのWebサーバーのドキュメントを参照してください。
Joltソフトウェアには、Joltサーブレット・クラスを使用してサーブレット接続性を解説するサンプル・アプリケーションが用意されています。次の3つのサンプルが用意されています。
Joltサーブレット・クラスの使用方法を学ぶには、これらのサンプルで示されているサンプル・コードを参照してください。
サーブレット・アプリケーションのサンプルを表示するには
Joltサンプル・アプリケーションのコードを表示するには、Jolt APIクライアント・クラス(通常は、Joltのインストール時のオプション項目)をインストールする必要があります。指定したディレクトリにこれらのクラスをインストールしたら、次のディレクトリにあるサンプル・アプリケーション・ファイルを選択してください。
<Installation directory>\udataobj\jolt\examples\servlet
サンプル・コードを表示するには、Microsoftのメモ帳などのテキスト・エディタを使って、サンプル・アプリケーションごとにJavaファイルを開いてください。
Joltには
simpappというサンプル・アプリケーションがあります。
simpappは、サーブレットでどのようにServlet Connectivity for Oracle Tuxedoが使用されるかを示しています。SimpAppサンプルでは、次のサーブレット・タスクが示されています。
•
|
プロパティ・ファイルを使ってセッション・プールを作成する
|
この例では、サーブレットがOracle Tuxedoに接続し、その任意のサービスを呼び出す仕組みを例示します。サービスは
simpapp.htmlファイルから呼び出す必要があります。サーブレットは初期化時にセッション・プール・マネージャを作成します。これは、
doPost()メソッドが呼び出される時にセッションを取得するために使用されます。このセッションは、ポストされた「
SVCNAME」引数によって記述された名前を使用してOracle Tuxedoのサービスに接続するために使用されます。この例では、サービスは「
TOUPPER」と呼ばれ、ポストされた「
STRING」引数のテキストを大文字に変換し、結果を自動生成されたHTML内のクライアント・ブラウザに返します。
注意:
|
このサンプルではWebLogic Serverが使用されます。
|
SimpAppの実行に必要な条件は、以下のとおりです。
•
|
Servlet JSDK 1.1以上がインストールされたWebアプリケーション・サーバー
|
•
|
SimpAppを実行中のOracle Tuxedo 8.0以上
|
1.
|
Webアプリケーション・サーバーにJoltクラス・ライブラリ( jolt.jar)とServlet Connectivity for Oracle Tuxedoクラス・ライブラリ( joltjse.jar)をインストールします。Webアプリケーション・サーバーでクラス・ファイルの抽出が必要であれば、クラス・ファイルを抽出します。
|
2.
|
SimpAppServlet.javaをコンパイルします。必ず、標準の JDK 1.1.x classes.zip、JSDK 1.1クラス、Joltクラス・ライブラリおよびServlet Connectivity for Oracle Tuxedoクラス・ライブラリをclasspath内に指定してください。
|
javac -classpath $(JAVA_HOME)/lib/classes.zip:$(JSDK)/lib/servlet.jar:
$(JOLTHOME)/jolt.jar:$(JOLTHOME)/joltjse.jar:./classes
-d ./classes SimpAppServlet.java
注意:
|
SimpAppServletのパッケージ名は examples.jolt.servlet.simpappです。
|
3.
|
simpapp.htmlと simpapp.propertiesの2ファイルをpublic HTMLディレクトリに置きます。
|
4.
|
simpapp.propertiesファイルを変更します。 appaddrlistと failoverlistをJoltサーバーの正しいホストおよびポートに変更します。SimpAppでセキュリティが有効になっている場合は、正しいOracle Tuxedo認証情報を指定します。例:
|
#Fri Apr 16 00:43:30 PDT 1999
appaddrlist=//host:7000,//host:8000
failoverlist=//backup:9000
5.
|
SimpappをSimpAppServletに登録します。詳細は、ご使用のWebアプリケーション・サーバーを参照してください。Oracle WebLogic Serverを使用している場合は、 config.xmlファイルの次のセクションを追加します。
|
<Application
Deployed="true"
Name="simpapp"
Path=".\config\mydomain\applications"
>
<WebAppComponent
Name="simpapp"
Targets="myserver"
URI="simpapp"
/>
</Application>
6.
|
SimpAppの最初のページ simpapp.htmlにアクセスするには、次のように入力します。
|
http://mywebserver:8080/simpapp.html
BankAppアプリケーションは、サーブレットがPageCompiledServletを使い、Servlet Connectivity for Oracle Tuxedoを利用してどのように作成されるかを示しています。
BankAppでは以下の方法を説明します。
•
|
プロパティ・ファイルを使ってセッション・プールを作成する
|
BankAppの実行に必要な条件は、以下のとおりです。
•
|
Servlet JSDK 1.1以上がインストールされたWebアプリケーション・サーバー
|
•
|
BankAppを実行中のOracle Tuxedo 8.0以上
|
1.
|
Webアプリケーション・サーバーにJoltクラス・ライブラリ( jolt.jar)とServlet Connectivity for Oracle Tuxedoクラス・ライブラリ( joltjse.jar)をインストールします。Webアプリケーション・サーバーでクラス・ファイルの抽出が必要であれば、クラス・ファイルを抽出します。
|
2.
|
Webアプリケーション・サーバーのpublic HTMLディレクトリに、HTML、JHTML、 bankapp.propertiesファイルをすべてコピーします(WebLogicの場合は $WEBLOGIC/myserver/public_html)。
|
3.
|
bankapp.propertiesファイルを変更します。 appaddrlistと failoverlistをJoltサーバーの正しいホストおよびポートに変更します。BankAppでセキュリティが有効になっている場合は、正しいOracle Tuxedo認証情報を指定します。例:
|
#Fri Apr 16 00:43:30 PDT 1999
appaddrlist=//host:8000,//host:7000
failoverlist=//backup:9000
4.
|
必要に応じて、お使いのサーブレット・エンジンからJHTMLの自動コンパイル機能を有効にしておきます。詳細は、お使いのWebアプリケーション・サーバーのマニュアルを参照してください。
|
5.
|
お使いのブラウザで次のURLを指定し、Servlet Connectivity for Oracle Tuxedoを使ってBankAppにアクセスしてください。
|
http://mywebserver:8080/tellerForm.html
「Admin」サンプル・アプリケーションでは、以下のサーブレットのタスクを説明します。
•
|
管理用APIを使用してセッション・プールを管理する
|
•
|
Servlet Connectivity for Oracle TuxedoのPageCompiledServletを使用して統計情報を取得する
|
Adminの実行に必要な条件は、以下のとおりです。
•
|
Servlet JSDK 1.1以上がインストールされたWebアプリケーション・サーバー
|
1.
|
Webアプリケーション・サーバーにJoltクラス・ライブラリとServlet Connectivity for Oracle Tuxedoクラス・ライブラリをインストールします。
|
2.
|
すべてのJHTMLファイルをpublic HTMLディレクトリ(WebLogicの場合は $WEBLOGIC/myserver/public_html for WebLogic)にコピーします。
|
3.
|
セッション・プールの一覧を表示するには、お使いのブラウザで次のURLを指定してください。
|
http://mywebserver:8080/PoolList.jhtml
サーブレットの作成方法と使用方法の詳細は、以下のサイトを参照してください:
Oracle WebLogicサーブレットに関するドキュメント
http://e-docs.bea.com/wls/docs81/adminguide/index.html
http://e-docs.bea.com/wls/docs81/servlet/index.html
http://e-docs.bea.com/wls/docs81/javadocs/index.html
http://jserv.java.sun.com/products/java-server/documentation/
webserver1.1/index_developer.html
http://servlet-interest@java.sun.com