| 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. |
|