Oracle Forms Servicesのアクション
このトピックでは、Oracle Fusion MiddlewareでForms Servicesを実行するステップ、および構成ファイルの使用方法について説明します。
ユーザーが即時利用可能なForms URLを引数なしで実行すると、Formsのバージョン番号情報が表示されたデフォルトのテスト・フォームが表示されます。この情報が表示されない方が望ましい場合、管理者は、Forms Web構成の[default]構成セクションを変更するだけで、別のフォームが指定されるようにできます(または、フォームが一切指定されないようにします。この場合、ユーザーがそのURLを試行すると、バージョン番号が含まれるフォームが表示されずにエラー・メッセージが表示されます)。たとえば、Oracle HTTP Server (OHS)がexample.comというコンピュータのポート7777で実行されていると想定します。また、Oracle Fusion Middlewareのインストール・プロセス時に作成した標準構成には、一切変更を行っていないことを前提にします。
ユーザーがOracle Forms Servicesアプリケーションを実行すると、次の一連のイベントが発生します。
- ユーザーは、次のURLを使用してFormsをコールします。
http://example.com:7777/forms/frmservlet?config=myapp&form=hrapp
この例では、実行するトップ・レベルのフォーム・モジュールをhrappと呼び、myappという構成セクションを使用します。
- Oracle HTTP Serverリスナーはリクエストを受信します。これは、URL内のパス
/forms
を検索し、WebLogicハンドラ・マッピングに基づいて正しいOracle WebLogic管理対象サーバーにリクエストを転送します。このマッピングは、forms.conf
で定義されます。ノート:
WebLogic Serverの前面におけるOracle HTTP Serverの使用はオプションです。この実行を選択するには、インストール後にforms.conf
を構成する必要があります。ファイルに含まれる例を適切な設定の例として使用できます。設定を保存したら、ファイルを、他の.conf
ファイルが含まれるOHS構成ファイル・ディレクトリに移動する必要があります(「Oracle Forms Servicesを使用したOracle HTTP Serverの有効化」を参照)。 - Oracle WebLogic管理対象サーバーは、
/forms
をコンテキスト・ルートとするOracle Forms Servicesアプリケーションにこのリクエストをマップします。次に、application.xml
ファイルで指定したfrmservletのマッピングを使用して、そのリクエストをFormsサーブレットにマップします。 - Oracle WebLogic管理対象サーバーで実行しているFormsサーブレットが、このリクエストを処理します。このサーブレットが実行する処理は次のとおりです。
$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_14.1.2/config
にあるこのサーブレットの構成ファイル(デフォルトではformsweb.cfg
)を開きます。formsweb.cfg
ファイルで使用する構成セクションを決定します。この例では、URLには問合せパラメータconfig=myapp
が含まれているため、[myapp
]セクションが使用されます。- 次のことに基づいて、使用するテンプレート・ファイル(たとえば、baseHTML、basejnlp、basesaa.txt)が決定されます:
- リクエストを行ったクライアント構成(たとえば、ブラウザ、web start、FSAL)
- ユーザーが実行しているプラットフォーム、および
formsweb.cfg
ファイル内の様々なパラメータの設定。
- テンプレート・ファイルが読み取られ、次のように変数置換が実行された後、内容が(クライアント構成の選択に基づいて)HTML、JNLPまたはテキストとして返されます。
Formsサーブレットは変数(
%myParam%
など)を検出すると、一致するURL問合せパラメータ(&myParam=xxx
など)を検索し、そのパラメータが見つからないときはformsweb.cfg
ファイル内で一致するパラメータを検索します。一致するパラメータが見つかると、変数(%myParam%
)はそのパラメータの値で置換されます。この例では、テンプレート・ファイルにはテキスト
%form%
が含まれています。これが値"hrapp"に置き換わります。
- Formsサーブレットがどのテンプレート・ファイルを選択したかに応じて、クライアントに返されるページには、Formsアプレットを起動するapplet、object、embedまたはjnlpタグが含まれます。Formsクライアントは、リクエスト・タイプに応じて、Oracle Javaプラグイン、Web StartまたはスタンドアロンJava実行可能ファイルによって提供されるJVM環境内で動作します。
- Formsアプレットを起動するには、そのJavaコードを最初にロードしておく必要があります。アプレットの場所は、アプレットのコードベースとアーカイブ・パラメータで指定されます。
/forms/java
のweblogic.xml
ファイルにある仮想パスの定義により、Webサーバーからアプレット・コードをロードできます。ノート:
Formsアプレット・コードがネットワークを介してロードされるのは、ユーザーがOracle Forms Servicesアプリケーションを最初に実行したとき、または、新しいバージョンのOracle Forms ServicesがWebサーバーにインストールされたときのみです。それ以外の場合は、ローカル・ディスクにあるJavaキャッシュからロードされます。 - Oracle Forms Servicesアプレットが実行されると、URL
http://example.com:7777/forms/lservlet
にあるFormsリスナー・サーブレットに接続してFormsセッションを起動します。 - Oracle HTTP Serverリスナーはリクエストを受信します。このFormsリスナー・サーブレット用の
web.xml
ファイルにあるサーブレット・マッピングにパス/forms/lservlet
が一致することから、このリクエストをOracle WebLogic管理対象サーバーに転送します。 - Formsリスナー・サーブレット(lservlet)は、FormsセッションのFormsランタイム・プロセス(
frmweb.exe
またはfrmweb
)を起動します。 - FormsアプレットとFormsランタイム・プロセス間の通信は、Formsセッションが終了するまでリスナー・サーブレットを介して継続します。
- URLの属性値(実行するフォーム名など)がFormsランタイム・プロセスに渡されます。テンプレート・ファイルのserverArgs値にある
%form%
は"hrapp"に置き換わります。そのため、このランタイム・プロセスはファイル"hrapp.fmx"のフォームを実行します。このファイルは、環境ファイル(デフォルトでは
default.env
)で定義されたFORMS_PATH
環境設定に指定されているディレクトリのいずれかに格納されている必要があります。 - Formsセッションは、次のいずれかが起きた場合に終了します。
- トップ・レベルのフォームが終了した場合(たとえば、"exit_form"組込み関数をコールするPL/SQLトリガー・コードにより)。この場合、保存していない変更があれば、ユーザーはその変更を保存するように指示されます。
exit_form(no_validate)
を指定している場合は、この指示が表示されずにフォームが終了します。 - ユーザーが保留中の変更を保存せずにセッションを終了すると、変更内容はすべて失われます。
- トップ・レベルのフォームが終了した場合(たとえば、"exit_form"組込み関数をコールするPL/SQLトリガー・コードにより)。この場合、保存していない変更があれば、ユーザーはその変更を保存するように指示されます。