![]() |
iPlanet Application Server 開発者ガイド |
第 14 章 iPlanet Application Server の機能の活用
この章では、iPlanet Application Server の機能をアプリケーションに実装する方法について説明します。iPlanet Application Server には、iPlanet Application Server 環境で使う Servlet を強化する多くの追加機能があります。これらの機能は正規の Servlet 仕様書には規定されていませんが、第 13 章「安全なアプリケーションの作成」で説明されている Servlet のセキュリティの枠組みのように、一部の機能は Sun Microsystemsィ の新しい標準をベースにしており、これらの新しい標準に準拠しています。
Servlet の結果のキャッシュ
Servlet の結果のキャッシュ
iPlanet Application Server には、その後の同じ Servlet への呼び出しをすばやく実行するため、Servlet の結果をキャッシュする機能があります。iPlanet Application Server は一定の期間、リクエストの結果 (たとえば、Servlet の実行) をキャッシュします。この方法では、別のデータ呼び出しを行うと、再びオペレーションを実行する代わりに iPlanet Application Server によってキャッシュされているデータを返すことができます。たとえば、5 分ごとに更新される株式相場を Servlet が返す場合、キャッシュが 300 秒後に期限切れになるように設定します。結果をキャッシュするかどうか、およびキャッシュする方法は、結果に含まれているデータのタイプによって異なります。たとえば、クイズの投稿の結果は、Servlet への入力が毎回異なるため、キャッシュしても意味がありません。ただし、クイズの結果から収集した人口統計データを示す高度なレポートをキャッシュし、1 時間に 1 回更新することは可能です。
Servlet コンフィグレーションファイル内で特定のフィールドを編集することによって、iPlanet Application Server の Servlet がメモリキャッシュを処理する方法を定義できます。このように、有効な iPlanet Application Server 機能を利用した標準 Servlet をプログラムによって作成できます。
表 14-1は、Servlet コンフィグレーションファイル内のキャッシュ設定を示しています。
表 14-1    Servlet キャッシュ設定
「Name」
「Type」
「Value」
オプション。カンマで区切られた記述子を持つ基準式の文字列。各記述子はどれかの Servlet 入力パラメータとの一致を定義します。
オプション。TIMEOUT_CREATE と TIMEOUT_LASTACCESS のどちらかにキャッシュのタイムアウトオプションを設定します。
これらの設定の詳細については、「Servlet のキャッシュを指定する要素」を参照してください。
cache-criteria フィールドは、Servlet 結果をキャッシュするかどうかを決める基準を設定します。このフィールドは、リクエスト内の 1 つまたは複数のフィールドをテストします。その結果、値や 1 つまたは複数のフィールドの有無に従って条件付きで結果をキャッシュできます。テストに合格すると、Servlet の結果がキャッシュされます。
表 14-2は cache-criteria フィールドシンタックスを示します。
startup クラス の使用法
startup クラスは、iPlanet Application Server の起動時にメモリに自動的に読み込まれる、ユーザ定義のクラスオブジェクトです。アプリケーションサーバの環境内で初期化タスクを実行します。StartupClass オブジェクトの特性は次のとおりです。starup クラスは次の必要条件を満たす必要があります。
次の節では、starup クラスの作成および使用法について説明します。
IStartupClass インタフェース
IStartupClass インタフェース
StartupClass クラスは IStartupClass インタフェースを実装する必要があります。IStartupClass インタフェースは 2 つのメソッドを定義しています。
public void startUp() throws StartupClassException
startUp メソッドが失敗した場合、com.iplanet.ias.startup.StartupClassException をスローします。そのシグネチャは次のとおりです。
public void shutDown()
- kjs を起動すると (kjs がこのメソッドを呼び出す StartupClass デフォルトコンストラクタを呼び出すと)、このメソッドはアクティビティを実行するために呼び出されます。このメソッドは任意のアクションを実行できます。メソッドは、kjs エンジンがすべての関連コンテキストを設定したあとに呼び出されるので、EJB および JDBC リソースにアクセスできます。
- 例外が発生した場合、このメソッドは com.iplanet.ias.startup.StartupClassException をスローします。
- このメソッドは、開始時に割り当てられたすべてのリソースの割り当てを解除する必要があります。
public class StartupClassException extends java.lang.Exception
public StartupClassException(java.lang.String msg)
Startup クラス のビルド
クラスのビルドは Ant を介してサポートされます (Ant の使用は必須ではない)。ビルドに必要なファイルは Install_dir/startup ディレクトリにあるので、このディレクトリで StartupClass ファイルおよび独立した Java ファイルをビルドすることをお勧めします。まず、次の操作を実行します。
Shell の PATH 環境変数にinstall_dir/bin を入れます。
ビルドオプションは次のとおりです。Shell の PATH 環境変数に JDK へのパスを入れます。
install_dir/startup ディレクトリで StartupClass ファイルをビルドしない場合は、そのディレクトリからビルドに使うディレクトリに StartupClass.java、startup.properties、および build.xml ファイルをコピーします。
Startup クラスの配置
配置は iasdeploy ツールを介してサポートされます。配置には次の 2 種類があります。
ローカル配置
path は次のとおりです。
リモート配置
- iasdeploy deploystartup path/startup.jar
- 次のようにします。
- iasdeploy deploystartup /iasroot/ias/startup/classes/startup.jar
- iasdeploy deploystartup -host server -port port -user userName -password password path/startup.jar
- 次のようにします。
- iasdeploy deploystartup -host myserver -port 80 -user jjones -password secret /iasroot/ias/startup/classes/startup.jar
複数マシンへの同時配置は、iasdeploy ツールではサポートされていません。
startup.jar ファイルは install_dir/STARTUPCLASS ディレクトリに配置されます。
注 install_dir/STARTUPCLASS 以外のディレクトリに starup クラスを配置した場合、アプリケーションサーバが起動すると、メッセージが kjs ログで生成されます。
kjs による StartupClass オブジェクトの処理方法
独自の JVM で実行する各 kjs プロセスには、StartupClass オブジェクトのインスタンスが 1 つあります。com.kivasoft.engine.Engine.java の run メソッド内では、環境が設定されてからほかのメソッドが実行されるまでの間に、システムクラスローダによって StartupClass オブジェクトが作成されます。StartupClass オブジェクトが作成されると、startUp メソッドが実行されます。
startUp メソッドが正しく実行された場合、kjs はメソッドが正常に終了するまで実行します。iascontrol stop を使った正規の終了では、kjs が StartupClass オブジェクトの shutDown メソッドを呼び出します。
startUp メソッドが com.iplanet.ias.StartupClassException をスローした場合は、kjs が shutDown メソッドを呼び出し、StartupClass オブジェクトはすぐにガベージを収集します。最後に kjs が終了します。
注 各 kjs プロセスには StartupClass オブジェクトの独自のコピーがあるので、注意して startup クラスを設計する必要があります。共有リソースの同期の問題を処理することをお勧めします。
前へ 目次 索引 DocHome 次へ
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.
最新更新日 2002 年 3 月 6 日