Oracle HTTP Server 管理者ガイド
10g(10.1.3.1.0) B31847-01 |
|
この付録では、Oracle Containers for J2EE Plug-in(OC4J Plug-in)により、サード・パーティのHTTPリスナーを使用してOracle Application Server内のOC4J J2EEで動作するサーブレットにアクセスする方法について説明します。OC4J Plug-inは、UNIXの場合はSun ONE Web Server、Windowsの場合はMicrosoft Internet Information Server(IIS)で動作します。
また、Oracle Apache以外でのmod_oc4j
の使用についても記載しています。
内容は、次のとおりです。
OC4J Plug-inは、IISまたはSun ONEのHTTPリスナーにロードできる共有ライブラリです。OC4J Plug-inは、mod_oc4j
がOracle HTTP ServerからOC4Jへリクエストをルーティングするのと同じ方法で、サード・パーティのリスナーから直接OC4Jへリクエストをルーティングする機能を提供しています。このため、AJPまたはSSLプロトコル経由のAJPを使用して、OC4Jに対するリクエストをIISまたはSun ONEから1つ以上のOC4J JVMに直接ルーティングできます。
図C-1は、OC4J Plug-inがサード・パーティのリスナーからOC4Jにリクエストを直接ルーティングする方法を示しています。
OC4J Plug-inは、Oracle Application Server 10g Companion CDに含まれています。このCDは、Oracle Application ServerのCDパックに含まれています。
Oracle Application Server 10g Companion CDのディレクトリ構造は次のとおりです。
plugins/linux/apache /apache2 /sunone plugins¥win32¥apache ¥apache2 ¥iis ¥sunone
表C-1に、OC4J Plug-inの共有ライブラリに関する情報を示します。
opii.so
ファイルを、/sunone/opii.so
など、Sun ONEリスナーが読取り可能なディレクトリに置きます。次の例は、Sun ONEが/sunone
ディレクトリにインストールされており、構成するインスタンスが/sunone/
https-mymachine
に存在する場合です。
/sunone/
https-mymachine
/magnus.conf
の末尾に次の行を追加します。UNIXの場合:
Init fn="load-modules" shlib="/path/opii.so" funcs=opii_init,opii_objecttype,opii_service,opii_child_init Init fn="opii_init" log_file="/path/opii.log" log_level=error server_defs="/path/opii.conf" Init fn="opii_child_init" LateInit=yes
Windowsの場合:
Init fn="load-modules" shlib="/path/opii_sunone.dll" funcs=opii_init,opii_objecttype,opii_service,opii_child_init Init fn="opii_init" log_file="/path/opii.log" log_level=error server_defs="/path/opii.conf" Init fn="opii_child_init" LateInit=yes
この例では、log_file
はOC4J Plug-inのメッセージが書き込まれるファイルで、server_defs
はOC4J構成ファイルです。
/sunone/
https-mymachine
/obj.conf
を次のように変更します。
obj.conf
に対して次の2つの変更を加えます。このページは、Oracle HTTP Serverにおけるmod_oc4j
内のURL /oc4j-service
に相当します。
IIS用のOC4J Plug-inを構成するには、次の手順を実行します。
HKEY_LOCAL_MACHINE¥SOFTWARE¥Oracle¥OPII
を作成します。
server_defs
と構成ファイルの場所を示す値(d:¥opii¥opii.conf
など)を使用して、正確な場所を指定します。log_file
とlog_level
を指定します。
opii.dll
と同じ物理パスを指定して、IIS Webサイトに新規の仮想ディレクトリを追加します。ディレクトリ名としてopii
を指定し、実行アクセス権限を付与します。
opii.dll
を追加します。フィルタ名はopii
とし、その実行可能ファイルはopii.dll
を含むディレクトリ(d:¥opii¥opii.dll
など)を指す必要があります。
ORACLE_HOME
がシステム環境ファイルまたはプラグイン構成ファイルにOc4jOracleHome
ディレクティブを使用して設定されていることを確認してください。IIS管理コンソールを使用し、プラグインを含むアプリケーション・プールのIDを「Local System」に設定して、プラグインがOPMNと通信できるようにします。
OC4Jで認証を実行する場合は、次の手順を実行します。
サード・パーティのリスナー内でOC4J Plug-inを設定すると、構成ファイルはserver_defs
ファイルまたはOC4J Plug-in構成ファイルを指します。このファイルでは、OC4J Plug-inの通信先となるOC4Jインスタンスを定義します。構文は、Oracle HTTP Server用のmod_oc4j
ファイルと同じです。たとえば、次の行のみを含む構成ファイルがあるとします。
Oc4jMount /j2ee/* ajp13://localhost:3000
この構成ファイルでは、/j2ee/
で始まるURLのリクエストは、ポート3000のローカルホスト・インタフェースにAJPリスナーがあるOC4Jインスタンスにルーティングされます。
mod_oc4j
に対して定義されているOc4j*
ディレクティブはすべて、OC4J Plug-inにも機能します。サード・パーティのリスナー用の環境では、ORACLE_HOME
ディレクティブを設定するかわりに、これらのディレクティブに加えて、OC4J Plug-in固有のディレクティブOc4jOracleHome
を使用できます。OC4J Plug-inの動的機能を使用する場合は、ORACLE_HOME
値が必須です。
OC4J Plug-inの動的ルーティング機能は、OPMNにより管理されるOC4Jインスタンスへのルーティング用に、mod_oc4j
と同じOc4jMount
構文を提供します。したがって、単一JVMのホストとポートを指すかわりに、OC4Jインスタンスまたはクラスタをマウントできます。そのためには、OC4J Plug-inが同じマシン上のONSデーモンと通信できる必要があります。Oracle Application ServerがOC4J Plug-inと同じマシンにインストールされている場合は、単に環境でORACLE_HOME
を設定するか、またはORACLE_HOME
の場所を指すようにOc4jOracleHome
ディレクティブを設定し、サード・パーティのリスナーがOracle Application Serverと同じユーザーで(UNIX上ではroot
で)実行されていることを確認することで、この通信は可能になります。
Oracle Application Serverが同じマシンにインストールされていない場合は、スタンドアロンONSデーモンをインストールする必要があります。OC4J Plug-inでは、SSLを介したAJPやポート・トンネリングの使用など、すべてのmod_oc4j
機能がサポートされています。
Oracle Application Server 10gリリース3(10.1.3)では、一般的なApacheをOracle Application Serverに統合できます。これにより、Oracle HTTP Serverおよびmod_oc4j
を使用するリクエストのルーティングと同じ方法で、一般的なApacheからOC4Jにリクエストをルーティングできます。一般的なApacheとは、Apacheバージョン1.3.xxまたはバージョン2.xです。
mod_oc4j
とOC4Jの間で利用するOracle Notification Service(ONS)を通信方法として使用すると、mod_oc4j
を一般的なApacheインスタンスにロードして、他のOracleインフラストラクチャを使用せずに、静的なルーティング構成で使用できます。mod_onsint
とONSを組み合せると、mod_oc4j
は、Oracle HTTP Serverを使用する場合と同じ動的構成とフェイルオーバー・オプションを利用できます。
この項の内容は、次のとおりです。
この項の内容は、Apache 1.3.xにのみ当てはまります。mod_oc4j
およびmod_onsint
では、Oracle Application Serverと統合する一般的なApacheのビルドに、次のオープン・ソースのソフトウェア・パッケージを含める必要があります。
mod_ssl
の一部として提供されるEnhanced API(EAPI)。EAPIは、mod_onsint
およびmod_oc4j
で広く使用されるコンテキスト・メカニズムで、リンク時間の依存性を導入せずに、モジュール間で情報およびファンクション・コールバックを共有できます。EAPIは、mod_ssl
を使用してApacheを構成することで提供されます。 Oracle Application Serverに統合される一般的なApacheインスタンスから、4つのライブラリにアクセスできる必要があります。静的構成でmod_oc4j
が使用され、mod_onsint
が使用されていない場合は、2つのライブラリのみが必要となります。
UNIXの場合、ORACLE_HOME
内の4つのファイルとその場所は次のとおりです。
$ORACLE_HOME/Apache/Apache/libexec/mod_oc4j.so $ORACLE_HOME/Apache/Apache/libexec/mod_onsint.so $ORACLE_HOME/lib/libons.so $ORACLE_HOME/lib/libdms2.so
Windowsの場合、ORACLE_HOME
内の4つのファイルとその場所は次のとおりです。
%ORACLE_HOME%¥Apache¥Apache¥modules¥ApacheModuleOc4j.dll %ORACLE_HOME%¥Apache¥Apache¥modules¥ApacheModuleOnsint.dll %ORACLE_HOME%¥opmn¥bin¥onsclient.dll %ORACLE_HOME%¥bin¥yod.dll
UNIXの場合、ORACLE_HOME
内の4つのファイルとその場所は次のとおりです。
$ORACLE_HOME/ohs/modules/mod_oc4j.so $ORACLE_HOME/ohs/modules/mod_onsint.so $ORACLE_HOME/lib/libons.so $ORACLE_HOME/lib/libdms2.so
Windowsの場合、ORACLE_HOME
内の4つのファイルとその場所は次のとおりです。
%ORACLE_HOME%¥ohs¥modules¥ApacheModuleOc4j.dll %ORACLE_HOME%¥ohs¥modules¥ApacheModuleOnsint.dll %ORACLE_HOME%¥opmn¥bin¥onsclient.dll %ORACLE_HOME%¥bin¥yod.dll
一般的なApacheのインストールでは、2つのモジュールのバイナリが、他のモジュールと同じ場所にコピーされるようにすると最も簡単です。ただし、これは要件ではありません。バイナリを任意の場所に配置する場合は、フル・パスを使用できます。dms
およびons
ライブラリは、特定の場所に配置する必要はありませんが、UNIXの場合はLD_LIBRARY_PATH
、Windowsの場合はPATH
にある必要があります。UNIXの場合、これを最も簡単に実行するには、一般的なApacheインスタンスの起動に使用するapachectl
スクリプトを編集して、LD_LIBRARY_PATH
を適切に設定します。Windowsの場合、これを最も簡単に実行するには、該当するディレクトリをシステム環境変数PATH
に含めます。ただし、同じマシンで1つ以上の一般的なApacheインスタンスが実行されている場合、他のメカニズムが必要になることもあります。
一般的なApacheおよびmod_oc4j
のみを使用して、簡単な構成を作成できます。
この構成では、ホストおよびすべてのOC4Jインスタンスのポートを静的に構成する必要があります。新しいJVMの自動登録は行われません。また、失敗したJVMは、mod_oc4j
で使用されるルーティング表から削除されます。この構成の利点は、簡単であることです。ONSなど、他のOracle Application Serverインフラストラクチャのコンポーネントを使用する必要はありません。次に、このような構成の例を示します。この構成はmod_oc4j
をロードして、/j2ee/
で始まるすべてのリクエストを2種類の異なるJVMにルーティングします。このJVMは同じマシン上にあり、一方はポート3001、もう一方はポート3002を使用します。
LoadModule onsint_module libexec/mod_onsint.so LoadModule oc4j_module libexec/mod_oc4j.so Oc4jMount /j2ee/* ajp13://localhost:3001,localhost:3002
Windowsの場合、mod_oc4j
のロードに使用する行を次のように変更します。
LoadModule onsint_module modules¥ApacheModuleOnsint.dll LoadModule oc4j_module modules¥ApacheModuleOc4j.dll
UNIXの場合、これはmod_oc4j.so
ファイルがApacheインストール内のlibexec
ディレクトリにコピーされることを想定しています。Windowsの場合、これはApacheModuleOc4j.dll
ファイルがApacheインストール内のmodulesディレクトリにコピーされることを示します。
mod_oc4j
を利用するには、Oracle Application Serverを指定するようにORACLE_HOME
を設定する必要があります。UNIXの場合、一般的なApacheインスタンスの起動に使用するapachectl
スクリプトにORACLE_HOME
の設定を追加します。Windowsの場合、これを最も簡単に実行するには、ORACLE_HOME
をシステム環境変数として設定します。
新しいJVMおよびOracle Application Serverインストールの動的検出を含む、mod_oc4j
のすべての機能を提供するには、mod_oc4j
とmod_onsint
を組み合せる必要があります。
mod_onsint
およびmod_oc4j
を利用するには、OPMNを実行しているOracle Application Serverインスタンスを指定するようにORACLE_HOME
を設定する必要があります。UNIXの場合、一般的なApacheインスタンスの起動に使用するapachectl
スクリプトにORACLE_HOME
の設定を追加します。Windowsの場合、これを最も簡単に実行するには、ORACLE_HOME
をシステム環境変数として設定します。
次の構成は、モジュールのロード方法、およびOracle Application Serverクラスタmycluster
内で実行されている、OC4Jインスタンスmyinstance
への/j2ee
のマウント方法を示します。
LoadModule onsint_module libexec/mod_onsint.so LoadModule oc4j_module libexec/mod_oc4j.so Oc4jMount /j2ee/* cluster://mycluster:myinstance
Oracle HTTP Server内から使用できるOc4jMount
構文は、一般的なApacheとともに使用する場合に使用可能です。この構成は、Oracle HTTP Server内で実行される場合、mod_oc4j
が提供する同じルーティングおよび可用性の機能をすべてサポートします。この機能には、新しいOC4Jプロセスとインスタンスが追加されたときの動的検出や、リクエストに基づくステートレスおよびセッションのフェイルオーバーなどがあります。
Oracle Process Manager and Notification Server(OPMN)は、一般的なApacheインストールの起動、停止、再起動などのプロセス管理を提供するように構成できます。そのためには、Apacheインスタンスでmod_onsint
を構成する必要があります。Apacheインスタンスには、標準的なApacheディレクトリ・レイアウトが必要です。つまり、標準的なApache1.3インストールの実行により作成されるディレクトリ構造です。
注意
OPMNを使用して一般的なApacheを起動する場合、 |
このApacheインスタンスを管理するようにOPMNを構成するには、opmn.xml
に次の変更を加える必要があります。
moduleセクションで、次のようにlibopmnohs
の構成にGENERIC_APACHE
module-idを追加します。
<module path="$ORACLE_HOME/opmn/lib/libopmnohs"> <module-id id="OHS"/> <module-id id="GENERIC_APACHE"/> </module>
HTTP_Server
セクションで、モジュールをGENERIC_APACHE
に設定して、次のようにapache-home
を設定する必要があります。
</ias-component> <ias-component id="HTTP_Server"> <process-type id="HTTP_Server" module-id="GENERIC_APACHE"> <module-data> <category id="start-parameters"> <data id="apache-home" value="/private/my/path/to/APACHE"/> </category> </module-data> <process-set id="HTTP_Server" numprocs="1"/> </process-type> </ias-component>
Oracle HTTP Serverインスタンスまたは一般的なApacheインスタンスを任意のopmn.xml
に構成できます。同じopmn.xml
への両方のインスタンスの構成は、現在サポートされていません。
|
Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|