Oracle WebLogic Serverは、エンタープライズ対応のスケーラブルなJava EEアプリケーション・サーバーです。Java EEテクノロジの全機能を実装しており、高度な管理サービス、クラスタリング・サービス、Webサービスなどの数多くの追加の機能を備えています。それはOracle Fusion Middlewareプラットフォームの中核となる製品であり、スケーラブルで可用性が高く、安全なアプリケーションを構築するための安定したフレームワークを提供します。
Oracle HTTP Serverは、Oracle Fusion MiddlewareのWebサーバー・コンポーネントです。これは、Oracle WebLogic Serverのリスナーと、Web上で静的ページ、動的ページ、およびアプリケーションをホストするためのフレームワークを提供します。
この章には、次の項が含まれています。
管理対象サーバーは、ビジネス・アプリケーション、アプリケーション・コンポーネント、Webサービスおよび関連リソースをホストします。パフォーマンスを最適化するために、管理対象サーバーは、ドメインの構成ドキュメントの読取り専用コピーを保持します。管理対象サーバーが起動すると、ドメインの管理サーバーに接続して、その構成ドキュメントと管理サーバーに保持されているドキュメントが同期化されます。Oracle Fusion Middlewareシステム・コンポーネント(SOA、WebCenter、Identity Managementコンポーネントなど)とカスタマによって配布されたアプリケーションは、ドメイン内の管理対象サーバーに配布されます。構成中に、Oracle Fusion Middlewareアプリケーション(FormsおよびReports JavaEEアプリケーションなど)のホスト用にいくつかの管理対象サーバーが作成されます。
図5-1に、Oracle WebLogic管理対象サーバーの簡単な使用例を示します。この図の左側で、Formsサーブレットは開始HTMLファイルをレンダリングし、Formsリスナー・サーブレットに関する情報をクライアントに提供します。次に、HTTPリクエストがOracle HTTP Serverリスナーで受信され、リスナーはこれをOracle WebLogic管理対象サーバー内で動作しているFormsリスナー・サーブレット(図の右側)に渡します。Formsリスナー・サーブレットはランタイム・プロセスを確立し、クライアント・ブラウザとランタイム・プロセス間で継続的な通信を維持します。多くのユーザーがOracle Formsセッションをリクエストした場合、そのリクエストはOracle HTTP Serverリスナーで受信されます。HTTPリスナーは再びそのリクエストをFormsリスナー・サーブレットに渡し、サーブレットはさらにランタイム・プロセスを確立します。Formsリスナー・サーブレットは、多数のFormsランタイム・セッションを同時に処理できます。同時ユーザー数を制限する必要はありますが、このアーキテクチャでは高いパフォーマンスを得るためのチューニングや構成を行うことができます(次の項を参照)。
Oracle Fusion Middleware 12cでは、Oracle HTTP ServerでリクエストをForms管理対象サーバーにルーティングできるようにうするには、インストール後の手順を実行する必要があります。この構成を有効にするために2つのオプションがユーザーに用意されています。
付録E「Oracle Formsのユーティリティおよびスクリプト」で提供されているForms構成ヘルパー・スクリプトを使用し、これにenable_ohs
オプションを渡します。
次の第5.1.2項「forms.confの編集について」で説明されているように、forms.confを手動で編集します。
forms.conf
は、Oracle HTTP Serverディレクティブ・ファイルです。Oracle Fusion Middlewareでは、$DOMAIN_HOME/config/fmwconfig/components/OHS/instances/<OHS INSTANCE NAME>/moduleconf
のOracle HTTP Server構成ディレクトリにforms.conf
ファイルが含まれる必要があります。
カスタムOracle HTTP Serverディレクティブをforms.conf
に追加した場合、これが存在するOracle HTTP Serverノードを再起動する必要があります。
Oracle HTTP Serverを構成するには、次のタスクを実行します。
Forms OHSディレクティブ・ファイルforms.conf
をForms構成ファイル・テンプレート・ディレクトリからOHSインスタンスmoduleconf
ディレクトリにコピーします
コピー元の場所(Forms層):
$FMW_HOME/forms/templates/config/forms.conf
コピー先の場所(OHS層):
$DOMAIN_HOME/config/fmwconfig/components/OHS/instances/<OHS INSTANCE NAME>/moduleconf/forms.conf
適切な管理対象サーバー・クラスタを指定するか、デフォルト・フォームのJava EEアプリケーションのコンテキスト・ルート(/forms
)に対する管理対象サーバーを指定します。
クラスタ・エントリを指定する例:
<Location /forms> SetHandler weblogic-handler WebLogicCluster <HOSTNAME>:<WLS_PORT>,<HOSTNAME>:<WLS_PORT> DynamicServerList OFF </Location>
非クラスタ・エントリを指定する例:
<Location /forms> SetHandler weblogic-handler WebLogicHost = <HOSTNAME> WebLogicPort = <PORT> </Location>
ユーザーが追加したディレクティブで参照されるディレクトリが、OHS層からアクセス可能であることを確認します。
管理サーバーを再起動します。
OHS層のOHSインスタンスを再起動します。
注意: forms.confを一度設定した後にさらに変更を行うには、Oracle Fusion Middleware Controlを使用します。これにアクセスするには、OHSインスタンスのページ・メニューを使用して「Oracle HTTP Server」→「管理」→「拡張構成」を選択します。「サーバーの詳細構成」ページで、ファイルの選択プルダウン・メニュー内のforms.confを選択します。
|
Oracle FormsにHTTPSを使用するのは、他のWebベースのアプリケーションでHTTPSを使用するのと変わりません。HTTPSでは、デジタル証明書(VeriSignなど)を使用する必要があります。Forms ServicesサーブレットはユーザーのWebサーバーからアクセスできるため、Oracle Formsのクライアントとサーバー間の通信に特別な証明書を購入する必要はありません。正式な認証局からユーザーのWebサーバー用の証明書を購入するだけで済みます。
エンドユーザーと中間層の間で最高レベルのセキュリティを確保するためにSecure Socket Layer (SSL)を構成することをお薦めします。使用環境でSSLを有効にする方法の詳細は、Oracle HTTP Server管理ガイドおよびWebLogic Server管理ガイドを参照してください。
Oracle Forms ServicesアプリケーションをSSLモードで実行するには:
証明書を管理するウォレットを作成します。
Oracle HTTP ServerでHTTPSポートを有効にします。デフォルトのOracle HTTP Serverでは、SSLポートが1つ有効になっています。
必要に応じて、Forms管理対象サーバー(WLS_FORMSなど)のWebLogic ServerでHTTPSを有効にすることを検討してください。
前述のトピックの詳細は、Oracle Fusion Middlewareの管理のOracle Fusion MiddlewareでのSSL構成の項を参照してください。
HTTPSポートを使用するFormsアプリケーションを実行するには、証明書をインポートする必要があります。Oracle Formsがロード・バランシング・ルーターの後ろにあり、そのOracle FormsでSSLが終了する場合、証明書をロード・バランシング・ルーターからインポートする必要があります。
ロード・バランシング・ルーター上のFormsアプリケーションでSSLを有効にするには:
Webブラウザを起動して、FormsアプリケーションのHTTPS URLを入力します。このURLでは、Oracleインストールで使用している完全修飾ホスト名を指定します(必要に応じてポート番号も指定)。たとえば、https://example.com:443/forms/frmservlet
とします。
「セキュリティ・アラート」ダイアログ・ボックスが表示されます。
「証明書の表示」をクリックします。
「証明書」ダイアログで、「詳細」タブをクリックします。
「ファイルへコピー」をクリックします。
証明書エクスポート・ウィザードの「ようこそ」ページで、「次へ」をクリックします。
エクスポート・ファイル形式ページで、「Base-64 encoded X.509 (.CER)」を選択し、「次へ」をクリックします。
c:\temp\forms
などのファイル名を入力して、「次へ」をクリックします。
「終了」をクリックします。
エクスポートが正常に終了したことを示すメッセージが表示されます。
「OK」をクリックします。
「セキュリティ・アラート」ダイアログは開いたまま証明書エクスポート・ウィザードを終了します。
使用しているJVMの証明書ストアに保存してあるセキュリティ証明書ファイルをインポートします。詳細は、次の項を参照してください。
「セキュリティ・アラート」ダイアログで「はい」をクリックしてセキュリティ証明書を受け入れ、Formsアプリケーションを起動します。
Java Plug-inへの証明書のインポート
クライアント・マシンでコントロール・パネルを開きます。
Javaを開きます。
「セキュリティ」タブにナビゲートします。
「証明書」をクリックします。
前述の項でエクスポートした証明書をインポートします。
「適用」をクリックします。
デフォルト(特別な設定をしていないインストール)では、Forms ServicesのJava EEアプリケーション(formsapp.ear
)はForms管理対象サーバー(WLS_FORMS
)に配布されます。Oracle WebLogic管理コンソールまたはOracle Fusion Middleware Controlを使用して、WLS_FORMS
およびformsapp.ear
を管理できます。詳細は次のトピックを参照してください。
Forms管理対象サーバーの起動と停止: 詳細は、Oracle Fusion Middlewareの管理のプロシージャの起動と停止の概要を参照してください。
Forms管理対象サーバーへのFormsアプリケーションのデプロイ: 詳細は、「構成ウィザードを使用したFormsの構成方法」を参照してください
Forms Java EEアプリケーションのカスタム・デプロイメント: 詳細は、第5.5.1項「Forms Java EEアプリケーションのカスタム・デプロイメント」を参照してください。
Forms管理対象サーバー・クラスタの拡張: 詳細は、第5.5.2項「Forms管理対象サーバー・クラスタの拡張」を参照してください。
配布後のweblogic.xml
、web.xml
、application.xml
およびweblogic-application.xml
の変更: 詳細は、第5.5.3項「Forms J2EEアプリケーションのデプロイメント・ディスクリプタの変更」を参照してください。
WindowsサービスとしてのForms管理対象サーバーの起動: 詳細は、Oracle WebLogic Serverサーバーの起動と停止の管理のWindowsサービスとしてのWebLogic Serverインスタンスの起動の章を参照してください。
ユーザーは、デフォルトのForms JavaEEアプリケーションのコンテキスト・ルート(/forms)およびデフォルトのFormsサーブレットの別名(frmservlet)をオーバーライドし、カスタマイズできます。デフォルトのFormsアプリケーションのアクセスURL: http://host:port/forms/frmservlet
はhttp://host:port/<user-context>/<user-servlet-alias>
に変更できます
カスタム管理対象サーバーを作成し、そこにFormsアプリケーションをデプロイするには、次の手順を実行します。
構成ウィザードを使用して別の管理対象サーバーを作成します。この管理対象サーバーは、デフォルトのFormsクラスタ(cluster_forms)の一部であってはならず、選択したJRF_MAN_SRV
サーバー・グループを使用する必要があります。
deploy_appオプションを使用してfrmconfighelperスクリプトを実行します。frmconfighelperスクリプトの詳細は、付録E「Oracle Formsのユーティリティおよびスクリプト」を参照してください。
Oracle Fusion Middleware 12cパッチ・セットを適用した後で、カスタム・デプロイメントに次の手順を実行します。
ドメイン内のサーバーが停止していることを確認します。
パッチの適用した後、update_app
オプションを使用してfrmconfighelperスクリプトを実行します。frmconfighelperスクリプトの詳細は、付録E「Oracle Formsのユーティリティおよびスクリプト」を参照してください。
update_app
オプションを実行後に有効にするには、管理対象サーバーを再起動する必要があります。
http://<Host>:<Port Number>/<context root>/<servlet name>
のURLを使用して、デプロイメントをテストします。
この項の例では、URLはhttp://<Host>:<Port Number>/customapp/customservlet
になります。SSOを使用してフォームを実行している場合(ssoMode
=true
またはwebgate
)は、DOMAIN_HOME/config/fmwconfig/system-jazn-data.xml
ファイルで権限を使用して追加設定を行う必要があります。
ハイエンド・マシン(マルチプロセッサと大容量メモリーを搭載したマシン)でFormsデプロイメントのスケーラビリティとパフォーマンスの向上を図るには、Forms管理対象サーバー・クラスタ(cluster_forms
)を拡張します。次の手動の手順を実行してForms管理対象サーバー・クラスタを拡張します。
次の手順を実行して、新しい管理対象サーバーをデフォルトのFormsアプリケーション・クラスタ(cluster_forms
)に追加します。
構成ウィザードを使用して別の管理対象サーバーを追加します。必ずFORMS-MAN-SRVグループを選択してください。
管理対象サーバーの作成後にcluster_formsに追加されていることを確認します。
新しく作成した管理対象サーバーを起動します。
forms.conf
のWebLogicClusterエントリに、新しい管理対象サーバーのホストとポートの情報を追加します。
<Location /forms> SetHandler weblogic-handler WebLogicCluster <HostName>:9001, <HostName>:9010 DynamicServerList OFF </Location>
OHSを再起動します。
配布後は、Forms J2EEアプリケーションのデプロイメント・ディスクリプタ(weblogic.xml
、web.xml
、application.xml
およびweblogic-application.xml
)をOracle WebLogic Serverで変更することはできなくなります。
次の手順を実行してForms J2EEアプリケーションのデプロイメント・ディスクリプタをカスタマイズし、そのアプリケーションを再配布することでこの問題を解決できます。
デフォルトのformsappデプロイメント・プラン$DOMAIN_HOME/config/fmwconfig/deployment-plans/formsapp/12.2.1/plan.xml
のバックアップを作成します。
Forms J2EEアプリケーションのデプロイメント・プランに、デプロイメント・ディスクリプタのカスタマイズを追加します。例は、「デプロイメント・プランの変更」を参照してください。
注意: デプロイメント・プランの更新の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。 |
WebLogic管理コンソールを使用して、Formsアプリケーションを更新(再配布)し、オプション「このアプリケーションを新しいデプロイメント・プランの変更とあわせた場所に更新します。」を選択します。
WebLogic管理コンソールを使用してForms J2EEアプリケーションを再起動します。
デプロイメント・プランの変更
この例では、FormsサーブレットのtestMode
パラメータをオーバーライドしてその値をtrueに設定するようにデプロイメント・プランを変更します。デプロイメント・プランを変更するには、次の手順を実行します。
次のコマンドを入力します。
mkdir –p $FMW_HOME/forms/j2ee/backup cd $FMW_HOME/forms/j2ee cp $DOMAIN_HOME/config/fmwconfig/deployment-plans/formsapp/12.2.1/plan.xml vi $DOMAIN_HOME/config/fmwconfig/deployment-plans/formsapp/12.2.1/plan.xml
デプロイメント・プランを変更します。次はデプロイメント・プランの例で、追加したエントリを太字で強調表示しています。
<deployment-plan xmlns="http://xmlns.oracle.com/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/deployment-plan http://xmlns.oracle.com/weblogic/deployment-plan/1.0/deployment-plan.xsd"> <variable-definition> <variable> <name>vd-/scratch/t_work/Oracle/MiddlewareR12/Oracle_Home/forms</name> <value>/scratch/t_work/Oracle/MiddlewareR12/Oracle_Home/forms</value> </variable> <variable> <name>FormsServlet_InitParam_testMode</name> <value>true</value> </variable> </variable-definition> <application-name>formsapp</application-name> <module-override> <module-name>formsapp.ear</module-name> <module-type>ear</module-type> <module-descriptor external="false"> <root-element>weblogic-application</root-element> <uri>META-INF/weblogic-application.xml</uri> </module-descriptor> <module-descriptor external="false"> <root-element>application</root-element> <uri>META-INF/application.xml</uri> </module-descriptor> <module-descriptor external="true"> <root-element>wldf-resource</root-element> <uri>META-INF/weblogic-diagnostics.xml</uri> </module-descriptor> </module-override> <module-override> <module-name>formsweb.war</module-name> <module-type>war</module-type> <module-descriptor external="false"> <root-element>weblogic-web-app</root-element> <uri>WEB-INF/weblogic.xml</uri> <variable-assignment> <name>vd-/scratch/t_work/Oracle/MiddlewareR12/Oracle_Home/forms</name> <xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="java/*"]/local-path</xpath> </variable-assignment> <variable-assignment> <name>vd-/scratch/t_work/Oracle/MiddlewareR12/Oracle_Home/forms</name> <xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/local-path</xpath> </variable-assignment> </module-descriptor> <module-descriptor external="false"> <root-element>web-app</root-element> <uri>WEB-INF/web.xml</uri> <variable-assignment> <name>FormsServlet_InitParam_testMode</name> <xpath>/web-app/servlet/[servlet-name="frmservlet"]/init-param/[param-name="testMode"]/param-value</xpath> </variable-assignment> </module-descriptor> </module-override> </deployment-plan>
WebLogic管理コンソールを使用してForms J2EEアプリケーションを再起動します。
Formsリスナー・サーブレットをチューニングする手順は、スループットの高いサーブレット・アプリケーションをチューニングする手順と同様です。特定のForms Servicesの構成に最適なチューニングを行うには、リソース管理とユーザーのニーズを考慮する必要があります。詳細は、http://www.oracle.com/technetwork/indexes/documentation/index.html
のOTNにあるパフォーマンスのチューニングを参照してください。
Formsリスナー・サーブレットのアーキテクチャでは、標準のHTTPロード・バランシング技術を使用して、システムのロード・バランスを実現します。
Oracle HTTP Serverリスナーで提供するロード・バランシング・メカニズムでは、複数のWebLogicインスタンスをHTTPプロセスと同じホストで実行することも、複数の異なるホストやその組合せで実行することもできます。次に、HTTPリスナーはHTTPリクエストをOracle WebLogic管理対象サーバー・インスタンスにルーティングします。
次のシナリオは、考えられる組合せのほんの一例で、可能性の一部を示すことを目的としたものです。ユーザーのサイトにどのような選択が最も適しているかは、様々な要因により異なります。
この機能の完全な説明は、(http://www.oracle.com/technetwork/indexes/documentation/index.html
のOTNにある)パフォーマンスのチューニングを参照してください。
次の図では、配置例を4つ示します。
図5-5は、Oracle HTTP Serverによって、Oracle HTTP Listenerと同じホスト上にある複数のOracle WebLogic管理対象サーバー間で受信リクエストが分散される場合を示しています。
図5-6は、Oracle HTTP Serverによって、Oracle HTTP Listenerとは異なるホスト上にある複数のOracle WebLogic管理対象サーバー間で受信リクエストが分散される場合を示しています。
図5-7は、Oracle HTTP Serverによって、複数の異なるホスト上にある複数のOracle WebLogic管理対象サーバーと、それぞれOracle HTTP Listenerを実行する複数の異なるホスト間で、受信リクエストが分散される場合を示しています。
図5-8は、Oracle HTTP Serverによって、1つのホスト上にある複数のOracle WebLogic管理対象サーバーと、それぞれOracle HTTP Listenerを実行する複数の異なるホスト間で、受信リクエストが分散される場合を示しています。
HTTPリスナーおよびOracle WebLogic Serverに対するForms Servicesのチューニングと最適化の詳細は、Oracle Technology Network (OTN) (http://www.oracle.com/technetwork/indexes/documentation/index.html
)にあるパフォーマンスのチューニングを参照してください。
Oracle Fusion Middlewareのインストール・プロセスで設定されたデフォルトの構成では、認証プロキシがサポートされます。認証プロキシでは、アプリケーションを実行する接続先サーバーにアクセスするためのユーザー名とパスワードをユーザーが指定する必要があります。認証プロキシは通常、ユーザーがログインしているか(または認証されているか)どうかを検出するためにCookieを設定します。Cookieはその後のすべてのネットワーク要求時に送信され、不要なログイン・プロンプトを回避します。
Oracle WebLogic Serverのインストール・プロセスで設定されるコードベースおよびサーバーURLの値には、$FMW_HOME/forms/java
および/forms/lservlet
が含まれます。これらはページのドキュメント・ベース($FMW_HOME/forms
)の下にあるので、認証プロキシが機能します。