ヘッダーをスキップ

Oracle HTTP Server 管理者ガイド
10g(10.1.3.1.0)

B31847-01
目次
目次
索引
索引

戻る 次へ

C Oracle Containers for J2EE Plug-inの使用

この付録では、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)で動作します。

関連資料

詳細な動作保証情報は、http://www.oracle.com/technology/products/ias/ohs/htdocs/plugincerts.htmlを参照してください。  

また、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に直接ルーティングできます。


注意

OracleAS Proxy Plug-inおよびOracleAS SSO Plug-inは、Oracle Application Server Portal、Oracle Application Server Wirelessなど、Oracle Application Serverスタック全体で機能することが証明されています。ただし、OC4J Plug-inは顧客アプリケーションの実行のみが証明されています。たとえば、OC4J Plug-inを使用してSun ONEからのリクエストをOracle Application Server Wirelessを実行中のOC4Jコンテナにルーティングすることはできません。 


関連項目

 

図C-1は、OC4J Plug-inがサード・パーティのリスナーからOC4Jにリクエストを直接ルーティングする方法を示しています。

図C-1    IISおよびSun ONE用OC4J Plug-in


画像の説明

OC4J Plug-inのダウンロード

OC4J Plug-inは、Oracle Application Server 10g Companion CDに含まれています。このCDは、Oracle Application ServerのCDパックに含まれています。

OC4J Plug-inのインストール

Oracle Application Server 10g Companion CDのディレクトリ構造は次のとおりです。

plugins/linux/apache
             /apache2
             /sunone

plugins¥win32¥apache
             ¥apache2
             ¥iis
             ¥sunone

表C-1に、OC4J Plug-inの共有ライブラリに関する情報を示します。

表C-1    OC4J Plug-inの共有ライブラリ 
プラットフォーム  ファイル名  場所および説明  手順 

UNIX 

opii.so 

opii.soは、Sun ONEのWebリスナー用のOC4J Plug-inです。このファイルは、/plugins/solaris/sunoneディレクトリにあります。 

プラグインをリスナーにインストールするには、opii.soを、リスナーが読取り権限と実行権限を付与されているディレクトリに格納します。 

Windows 

opii.dll 

opii.dllは、IISのWebリスナー用のOC4J Plug-inファイルです。このファイルは、¥plugins¥win32¥iisディレクトリにあります。 

プラグインをリスナーにインストールするには、リスナーがアクセスできるディレクトリにopii.dllをコピーします。 

opii_sunone.dll 

opii_sunone.dllは、Sun ONEのWebリスナー用のOC4J Plug-inです。このファイルは、¥plugins¥win32¥sunoneディレクトリにあります。 

プラグインをリスナーにインストールするには、リスナーがアクセスできるディレクトリにopii_sunone.dllをコピーします。 


注意

Microsoft Windows 2003のIIS 6.0内でプラグインを使用する際に、OracleAS SSO Plug-inを使用したり、OC4J Plug-inでSSLを有効にしたりするには、%ORACLE_HOME%¥binの.dllファイルに対する権限を変更する必要があります。.dllファイルには、ユーザーNETWORK SERVICEに対する実行権限を追加する必要があります。

この操作は、通常のインストール時には行わないでください。

IIS 6.0はユーザーNETWORK SYSTEMとして実行されるため、必要な権限が付与されないかぎりプラグインは正常に機能しません。 


Sun ONEでのOC4J Plug-inの構成

opii.soファイルを、/sunone/opii.soなど、Sun ONEリスナーが読取り可能なディレクトリに置きます。次の例は、Sun ONEが/sunoneディレクトリにインストールされており、構成するインスタンスが/sunone/https-mymachineに存在する場合です。

  1. /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構成ファイルです。

    関連項目

    「OC4J Plug-in構成ファイル」 

  2. /sunone/https-mymachine/obj.confを次のように変更します。

    1. ObjectType行の前に次の行を追加します。

      ObjectType fn=opii_objecttype
      
    2. Serviceで始まる他のすべての行の前に、次の行を追加します。

      Service type="oracle/opii" fn="opii_service" UseOutputStreamSize=8192
      


      注意

      Sun ONEのすべてのバージョンでUseOutputStreamSizeがサポートされているわけではありません。詳細は、Sun ONEのマニュアルを参照してください。 


  3. OC4Jのステータス・ページを使用可能にする場合は、obj.confに対して次の2つの変更を加えます。このページは、Oracle HTTP Serverにおけるmod_oc4j内のURL /oc4j-serviceに相当します。

    1. obj.conf内の他のNameTransエントリの上に次の行を追加します。

      NameTrans fn=assign-name from="/oc4j-service" name="opii-status"
      
    2. obj.confの末尾に次のセクションを追加します。

      <Object name="opii-status">
      
            Service fn="opii_status_service"
      
               </Object>
      

IIS用のOC4J Plug-inの構成

IIS用のOC4J Plug-inを構成するには、次の手順を実行します。

  1. レジストリを編集し、新規のレジストリ・キーHKEY_LOCAL_MACHINE¥SOFTWARE¥Oracle¥OPIIを作成します。

  2. 名前server_defsと構成ファイルの場所を示す値(d:¥opii¥opii.confなど)を使用して、正確な場所を指定します。

    関連項目

    「OC4J Plug-in構成ファイル」 

  3. (オプション)log_filelog_levelを指定します。

    1. 名前log_fileとログ・ファイルの格納場所(d:¥opii¥plugin.logなど)を指定する文字列値を追加します。

    2. 名前log_levelと必要なログ・レベルを指定する文字列値を追加します。有効な値は、debuginformerrorおよびemergです。

    3. OC4J Plug-inのステータス・ページを使用可能にする場合は、名前status_uriと値(/oc4j-serviceなど)を指定する文字列値を追加します。このページは、mod_oc4j/oc4j-service URLに相当します。

  4. IIS管理コンソールを使用し、opii.dllと同じ物理パスを指定して、IIS Webサイトに新規の仮想ディレクトリを追加します。ディレクトリ名としてopiiを指定し、実行アクセス権限を付与します。

  5. IIS管理コンソールを使用し、使用可能なWebサービス拡張機能としてプラグインを構成します。

  6. IIS管理コンソールを使用し、IIS Webサイトにフィルタとしてopii.dllを追加します。フィルタ名はopiiとし、その実行可能ファイルはopii.dllを含むディレクトリ(d:¥opii¥opii.dllなど)を指す必要があります。

  7. 動的ルーティングを使用する場合は、ORACLE_HOMEがシステム環境ファイルまたはプラグイン構成ファイルにOc4jOracleHomeディレクティブを使用して設定されていることを確認してください。IIS管理コンソールを使用し、プラグインを含むアプリケーション・プールのIDを「Local System」に設定して、プラグインがOPMNと通信できるようにします。

  8. IISを再起動し(IISサーバーを停止してから起動)、フィルタが緑の上矢印でマークされていることを確認します。


    注意

    IISを再起動するには、コントロール パネルですべてのIISサービスを停止するか、コンピュータを再起動する必要があります。.dllを確実に再ロードさせるのは、この方法のみです。管理コンソール経由でIISを再起動する方法では不十分です。 


IIS用の匿名アクセスの構成

OC4Jで認証を実行する場合は、次の手順を実行します。

  1. IIS管理GUIで、デフォルトのWebサイトを右クリックし、「プロパティ」を選択します。

  2. 「ディレクトリ セキュリティ」タブを選択して、「匿名アクセスおよび認証コントロール」の下の「編集」ボタンをクリックします。「匿名アクセス」が選択され、「基本認証」と「統合Windows認証」の両方の選択が解除されていることを確認します。


    注意

    IISで認証を実行して、ユーザー名のみをOC4Jを渡す場合、IISで認証を無効にしないでください。 


OC4J Plug-in構成ファイル

サード・パーティのリスナー内で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値が必須です。

関連項目

「mod_oc4jの構成ファイルおよびディレクティブ」 

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で)実行されていることを確認することで、この通信は可能になります。

関連項目

「rootとしてのOracle HTTP Serverの実行」 

Oracle Application Serverが同じマシンにインストールされていない場合は、スタンドアロンONSデーモンをインストールする必要があります。OC4J Plug-inでは、SSLを介したAJPやポート・トンネリングの使用など、すべてのmod_oc4j機能がサポートされています。

関連項目

「ポート・トンネリングの概要」 

一般的なApacheとOracle Application Serverの統合

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です。

関連資料

  • 『Oracle HTTP Serverスタンドアロン・デプロイの管理Apache 1.3ベース』

  • 『Oracle HTTP Serverスタンドアロン・デプロイの管理Apache 2.0ベース』

 

mod_oc4jとOC4Jの間で利用するOracle Notification Service(ONS)を通信方法として使用すると、mod_oc4jを一般的なApacheインスタンスにロードして、他のOracleインフラストラクチャを使用せずに、静的なルーティング構成で使用できます。mod_onsintとONSを組み合せると、mod_oc4jは、Oracle HTTP Serverを使用する場合と同じ動的構成とフェイルオーバー・オプションを利用できます。

関連項目

「mod_onsint」 

この項の内容は、次のとおりです。

統合要件

この項の内容は、Apache 1.3.xにのみ当てはまります。mod_oc4jおよびmod_onsintでは、Oracle Application Serverと統合する一般的なApacheのビルドに、次のオープン・ソースのソフトウェア・パッケージを含める必要があります。

一般的なApacheファイル

Oracle Application Serverに統合される一般的なApacheインスタンスから、4つのライブラリにアクセスできる必要があります。静的構成でmod_oc4jが使用され、mod_onsintが使用されていない場合は、2つのライブラリのみが必要となります。

Apache 1.3.xの場合

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


注意

これらのファイルは、Oracle Application Server 10g Companion CDにも含まれています。これらは、CDの次のディレクトリにあります。

  • /plugins/linux/apache(UNIX)

  • ¥plugins¥win32¥apache(Windows)

 

Apache 2.0.xの場合

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


注意

これらのファイルは、Oracle Application Server 10g Companion CDにも含まれています。これらは、CDの次のディレクトリにあります。

  • /plugins/linux/apache2(UNIX)

  • ¥plugins¥win32¥apache2(Windows)

 

一般的なApacheのインストールでは、2つのモジュールのバイナリが、他のモジュールと同じ場所にコピーされるようにすると最も簡単です。ただし、これは要件ではありません。バイナリを任意の場所に配置する場合は、フル・パスを使用できます。dmsおよびonsライブラリは、特定の場所に配置する必要はありませんが、UNIXの場合はLD_LIBRARY_PATH、Windowsの場合はPATHにある必要があります。UNIXの場合、これを最も簡単に実行するには、一般的なApacheインスタンスの起動に使用するapachectlスクリプトを編集して、LD_LIBRARY_PATHを適切に設定します。Windowsの場合、これを最も簡単に実行するには、該当するディレクトリをシステム環境変数PATHに含めます。ただし、同じマシンで1つ以上の一般的なApacheインスタンスが実行されている場合、他のメカニズムが必要になることもあります。

mod_oc4jによる静的構成の設定

一般的な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をシステム環境変数として設定します。

mod_oc4jおよびmod_onsintによる動的構成の設定

新しいJVMおよびOracle Application Serverインストールの動的検出を含む、mod_oc4jのすべての機能を提供するには、mod_oc4jmod_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との統合

Oracle Process Manager and Notification Server(OPMN)は、一般的なApacheインストールの起動、停止、再起動などのプロセス管理を提供するように構成できます。そのためには、Apacheインスタンスでmod_onsintを構成する必要があります。Apacheインスタンスには、標準的なApacheディレクトリ・レイアウトが必要です。つまり、標準的なApache1.3インストールの実行により作成されるディレクトリ構造です。


注意

OPMNを使用して一般的なApacheを起動する場合、OpmnHostPortディレクティブをhttpd.confに設定する必要があります。設定しないと、Apacheを起動できません。OpmnHostPortの詳細は、「mod_onsint」を参照してください。 


この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への両方のインスタンスの構成は、現在サポートされていません。

関連項目

「opmn.xml」 


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引