アプリケーションのデプロイ

この章では、アプリケーション・デプロイメントについて学習します。この章の情報を使用して、Oracle Forms Application Deployment Services (FADS)およびFormsスタンドアロン・ランチャ(FSAL)を構成および使用します。

この節の内容は以下のとおりです。

Oracle Forms Servicesのアクション

この項では、Formsサーブレットを使用して初期HTMLページを生成することを前提に、Oracle Fusion MiddlewareでForms Servicesを実行するステップと、構成ファイルを使用する方法について説明します。

ユーザーが即時利用可能なForms URLを引数なしで実行すると、Formsのバージョン番号情報が表示されたデフォルトのテスト・フォームが表示されます。この情報が表示されない方が望ましい場合、管理者は、使用環境内の(デフォルトの)構成セクションを変更するだけで、別のフォームが指定されるようにできます(または、フォームが一切指定されないようにします。この場合、ユーザーがバージョン番号が含まれるフォームを表示すかわりにそのURLを試みたときに、エラー・メッセージが表示されます)。ここでは、Weblogic管理対象サーバーがexample.comと呼ばれるコンピュータのポート7777で実行されていると想定します。また、Oracle Fusion Middlewareのインストール・プロセス時に作成した標準構成には、一切変更を行っていないことを前提にします。

ユーザーがOracle Forms Servicesアプリケーションを実行すると、次の一連のイベントが発生します。

  1. ユーザーは、次のURLを使用してFormsをコールします。

    http://example.com:7777/forms/frmservlet?config=myapp&form=hrapp

    この例では、実行するトップ・レベルのフォーム・モジュールをhrappと呼び、myappという構成セクションを使用します。

  2. Oracle HTTP Serverリスナーはリクエストを受信します。これは、URL内のパス/formsを検索し、WebLogicハンドラ・マッピングに基づいて正しいOracle WebLogic管理対象サーバーにリクエストを転送します。このマッピングは、forms.confで定義されます。

    ノート:

    WebLogic Serverの前面におけるOracle HTTP Server (OHS)の使用はオプションです。この実行を選択するには、インストール後にforms.confを構成する必要があります。ファイルに含まれる例を適切な設定の例として使用できます。設定を保存したら、ファイルを、他の.confファイルが含まれるOHS構成ファイル・ディレクトリに移動する必要があります(「Oracle Forms Servicesを使用したOracle HTTP Serverの有効化」を参照)。

  3. Oracle WebLogic管理対象サーバーは、/formsをコンテキスト・ルートとするOracle Forms Servicesアプリケーションにこのリクエストをマップします。次に、application.xmlファイルで指定したfrmservletのマッピングを使用して、そのリクエストをFormsサーブレットにマップします。

  4. Oracle WebLogic管理対象サーバーで実行しているFormsサーブレットが、このリクエストを処理します。このサーブレットが実行する処理は次のとおりです。

    • $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/configにあるこのサーブレットの構成ファイル(デフォルトではformsweb.cfg)を開きます。

    • formsweb.cfgファイルで使用する構成セクションを決定します。この例では、URLには問合せパラメータconfig=myappが含まれているため、[myapp]セクションが使用されます。

    • 使用するベースHTMLまたはbasejnlpファイルを決定します。このときの判断基準は、(a)リクエストを発行しているブラウザ(User-Agent)、(b)ブラウザを実行しているプラットフォーム、(c) formsweb.cfgファイルの各種パラメータの設定です。

    • ベースHTMLファイルを読み取り、次のように変数の置換を実行した後、HTML (またはJNLP)ページとしてユーザーのWebブラウザまたはFormsスタンドアロン・ランチャ(FSAL)にコンテンツを返します。

      Formsサーブレットは変数(%myParam%など)を検出すると、一致するURL問合せパラメータ(&myParam=xxxなど)を検索し、そのパラメータが見つからないときはformsweb.cfgファイル内で一致するパラメータを検索します。一致するパラメータが見つかると、変数(%myParam%)はそのパラメータの値で置換されます。

      この例では、ベースHTMLファイルにはテキスト%form%が記述されています。このテキストが値hrappに置き換わります。

  5. FormsサーブレットがどのベースHTMLファイルを選択したかに応じて、クライアントに送り返されるHTMLページには、Formsアプレットを起動するapplet、object、embedまたはjnlpタグが含まれます。Formsクライアントは、リクエスト・タイプに応じて、Oracle Javaプラグイン、Web StartまたはスタンドアロンJava実行可能ファイルによって提供されるJVM環境内で動作します。

  6. Formsアプレットを起動するには、そのJavaコードを最初にロードしておく必要があります。アプレットの場所は、アプレットのコードベースとアーカイブ・パラメータで指定されます。

    /forms/javaweblogic.xmlファイルにある仮想パスの定義により、Webサーバーからアプレット・コードをロードできます。

    ノート: Formsアプレット・コードがネットワークを介してロードされるのは、ユーザーがOracle Forms Servicesアプリケーションを最初に実行したとき、または、新しいバージョンのOracle Forms ServicesがWebサーバーにインストールされたときのみです。それ以外の場合は、ローカル・ディスクにあるJavaキャッシュからロードされます。

  7. Oracle Forms Servicesアプレットが実行されると、URL http://example.com:7777/forms/lservletにあるFormsリスナー・サーブレットに接続してFormsセッションを起動します。

  8. Oracle HTTP Serverリスナーはリクエストを受信します。このFormsリスナー・サーブレット用のweb.xmlファイルにあるサーブレット・マッピングにパス/forms/lservletが一致することから、このリクエストをOracle WebLogic管理対象サーバーに転送します。

  9. Formsリスナー・サーブレット(lservlet)は、FormsセッションのFormsランタイム・プロセス(frmweb.exeまたはfrmweb)を起動します。

  10. FormsアプレットとFormsランタイム・プロセス間の通信は、Formsセッションが終了するまでリスナー・サーブレットを介して継続します。

  11. URLの属性値(実行するフォーム名など)がFormsランタイム・プロセスに渡されます。ベースHTMLファイルのserverArgs値にある%form%はhrappに置き換わります。そのため、このランタイム・プロセスはファイルhrapp.fmxのフォームを実行します。

    このファイルは、環境ファイル(デフォルトではdefault.env)で定義されたFORMS_PATH環境設定に指定されているディレクトリのいずれかに格納されている必要があります。

  12. Formsセッションは、次のいずれかが起きた場合に終了します。

    • トップ・レベルのフォームが終了した場合(exit_form組込み関数をコールするPL/SQLトリガー・コードなどにより)。この場合、保存していない変更があれば、ユーザーはその変更を保存するように指示されます。exit_form(no_validate)を指定している場合は、この指示が表示されずにフォームが終了します。

    • ユーザーが保留中の変更を保存せずにセッションを終了すると、変更内容はすべて失われます。

アプリケーション・デプロイメント

Forms Developerでアプリケーションを作成したら、そのアプリケーションをWeb上に配布できます。Oracle Forms Servicesは、指定されたURLによってOracle Fusion Middlewareのアプリケーションにアクセスします。

次に、そのURLでHTTP Listenerにアクセスし、そこでListener Servletと通信します。リスナー・サーブレットは、Forms ServicesのセッションごとにFormsランタイム・プロセス(Windowsではfrmweb.exe、UNIXとLinuxではfrmweb)を起動します。

Forms Servicesが実行される仕組みの詳細は、「Oracle Forms Servicesのアクション」を参照してください。

内容は次のとおりです。

アプリケーションのデプロイ

Oracle Fusion Middleware構成ウィザードによって設定されるデフォルトのパラメータを使用して基本フォームをデプロイするには:

  1. Oracle Forms Developerでアプリケーションを作成し、関連するソース・ファイル(.fmb.mmb.pll.olb)がホストされるアプリケーション・サーバー上の目的の場所にこれらのファイルを保存またはコピーします。

    ソース・ファイルは、Forms Developer以外ではオープンできない設計時ファイルです。実行可能ファイル(.fmx.mmx.plx)は、(Forms Compilerを使用して)ソース・ファイルをコンパイルしたときに作成されるランタイム・ファイルで、Webデプロイメントに使用します。

    Formsファイル・タイプの詳細とForms Compiler (frmcmp)の使用方法は、Form Builderの「ヘルプ」メニューを参照してください。

  2. Forms Compilerを使用して、ソース・ファイルから実行可能ファイルを生成します。コンパイラおよびその場所は、次を参照してください。
    • UNIXプラットフォームの場合: FORMS_INSTANCE/bin/frmcmp.sh

    • Microsoft Windowsの場合: ORACLE_HOME\bin\frmcmp.exe

    起動時にコンパイラに引数が渡されない場合、グラフィカル・ユーザー・インタフェースの起動が試みられます。Forms Compilerの使用の詳細は、Forms Developer (Forms Builder)ヘルプを参照してください。または、–helpオプションを使用してオプションの引数を表示します。たとえば: frmcmp -help

    使用例: frmcmp.sh module=myForm.fmb module_type=form compile_all=yes userid=user1/user1@orcl

  3. 目的のアプリケーション・モジュールにOracle Forms Servicesからアクセスできるようにformsweb.cfgを変更します。このファイルは、Fusion Middleware Controlの「Web構成」ページで編集します(「Forms Servicesの構成」を参照)。

    表-1は、form=hrapp.fmxというフォーム・モジュールを持つアプリケーションmy_applicationの構成を示しています:

    表-1 構成セクションのパラメータ値の例

    構成セクション名 Formsモジュール名の値

    my_application

    hrapp.fmx

    構成が完了すると、ブラウザのURLに「...?config=my_application」(formsweb.cfg「Web構成」セクションの名前)と入力することにより、Web上でOracle Forms Servicesモジュールhrapp.fmxへアクセス可能になります。

    ノート:

    この構成セクションの名前に使用できる文字は、空白以外の英数字のみです。

  4. .fmxファイルの場所は、必ずFORMS_PATH環境変数で指定します。

    たとえばWindowsでは、.fmxファイルがd:\my_files\applicationsにある場合は、FORMS_PATHd:\my_files\applicationsと記述します。Windowsの場合、複数の場所を指定するには各ディレクトリ名をセミコロンで区切ります。UNIXとLinuxの場合はコロン(:)で区切ります。その環境ファイルの「環境構成」ページで、この情報を指定します。

  5. 環境ファイルを変更するには、Fusion Middleware Controlの「環境構成」ページで環境ファイルを選択し、アプリケーションの必要に応じて環境変数を追加または編集します。たとえば、次の表に示す環境変数を追加できます。

    表-2 環境変数の値の例

    環境変数の名前 環境変数の値

    NLS_LANG

    NLS_LANG=GERMAN_GERMANY.WE8ISO8859P15

    環境ファイルでこれらの環境変数を指定した場合は、「Web構成」ページを使用して、formsweb.cfgの該当する構成セクションでこの環境ファイルを指定します。

  6. 次のように、URLで記述したアプリケーションの名前を入力します。

    http://example.com:9001/forms/frmservlet?

    exampleはコンピュータのホスト名で、9001はWebLogic Manager Serverによって使用されるポートです

    構成セクションを作成した後、config=に続いてその構成セクション名を記述します。この例では、hrapp.fmxにアクセスするためのURLは次のようになります。

    http://example.com:9001/forms/frmservlet?config=my_application

パラメータの指定

Oracle Forms Servicesアプリケーションにパラメータ値を事前定義するには、2つの方法があります。次の方法でパラメータを定義できます。

  • Fusion Middleware Controlの「Web構成」ページのデフォルト・セクションで、アプリケーション設定を編集します。デフォルトの構成セクションには、Oracle Forms Servicesで使用するデフォルト値が表示されます。

  • 名前を付けたアプリケーションの構成セクションで、他のシステム・パラメータとユーザー・パラメータの値を管理(追加、編集、コピー、削除)します(「Fusion Middleware Controlでの構成セクションの作成」を参照)。たとえば、myApp用に作成した構成セクションで、次の表に示すパラメータおよびその値を追加または変更できます。

    表-3 構成セクションの例: myAppのパラメータ値

    パラメータ名 パラメータ値

    baseHTML

    mybase.htm

    baseHTMLjpi

    mybasejpi.htm

    form

    hrapp.fmx

    userid

    scott/tiger@orcl

ノート:

「Web構成」の名前付き構成セクションで指定したパラメータは、デフォルト・セクションの設定をオーバーライドします。

ノート:

システム・パラメータは、ユーザー・パラメータとは異なりURLにおいてオーバーライドできません。

Fusion Middleware Controlでの構成セクションの作成

アプリケーションのデプロイのステップ2で作成した構成セクションで、Oracle Forms Servicesアプリケーションのパラメータを指定できます。「Web構成」ページのデフォルト・セクションで使用可能なアプリケーションおよびシステム・パラメータを任意で指定できます。

たとえば、lookAndFeelパラメータをoracleの値に設定し、「適用」をクリックすると、アプリケーションのルック・アンド・フィールをOracleのルック・アンド・フィールに設定できます。

また、名前付き構成セクションのデフォルトのパラメータ値をオーバーライドすることもできます。たとえば、アプリケーションへの接続情報を<username>/<password>@orclとして事前定義するには、useridのパラメータ値を設定する必要があります。これには、名前を付けた構成セクションでuseridのパラメータ値を<username>/<password>@orclに変更します。

編集可能な他のパラメータは、「Forms構成パラメータ」を参照してください。

Oracle Forms Servicesアプリケーションへのアクセスに使用するURLの編集

Oracle Forms ServicesアプリケーションにアクセスするURLにパラメータを直接入力できます。前述の例の場合、構成ファイルにformパラメータを指定するかわりに、URLに次のように入力することもできます。

http://example.com:9001/forms/frmservlet?config=my_application&form=hrapp

アンパサンド(&)を使用すれば、フォームと名前を付けた構成パラメータの組合せをコールすることができます。前述の例では、my_applicationで指定したパラメータ設定を使用して、フォームhrappをコールしています。

ノート:

URLで指定したパラメータは、構成セクションで設定したパラメータをオーバーライドします(「アプリケーションのURLセキュリティの管理」を参照)。

ランフォーム・パラメータにおける特殊文字の指定

ランフォーム・パラメータに渡される値に特殊文字が含まれている場合は、特定の考慮事項が適用されます。この項では、こうした考慮事項について説明し、今回のリリースのデフォルト動作と前リリースのデフォルト動作を比較します。

ランフォーム・パラメータは、テンプレートHTMLファイルのserverArgsアプレット・パラメータで指定されるパラメータです。テンプレートHTMLファイルのserverArgsパラメータで指定された値は、変数の置換後に、コマンドライン・パラメータ文字列と呼ばれることもあります。これは、空白で区切られた一連のname=valueのペアで構成されます。この名前には、英数字またはアンダースコアのみが使用可能です。name=valueペアの値の部分には、任意の文字列を使用できます。

現行リリースのデフォルト動作

ランフォーム・パラメータの値は、次に示す3つの場所のいずれかで指定できます。

  1. テンプレートHTMLファイル(base.htmなど)のserverArgsパラメータの値。

  2. (1)の変数参照を(直接または再帰的に)置換する、構成ファイル(formsweb.cfgなど)で指定された変数の値。通常、これらの値は、Fusion Middleware Controlを使用して管理します。「Forms Servicesの構成」を参照してください。

  3. (1)または(2)の変数参照を直接置換する、URLの属性値。

(3)では、URL構文規則(ブラウザおよびアプリケーション・サーバーで実行される)により、URLエスケープ・シーケンスとして特定の文字を入力する必要があります(計3文字のうち、%に続く2桁の16進数字は文字のASCII値を表します)。

この要件には、%文字自体が含まれます(%25として入力する必要があります)。さらに、現在Oracle Forms Servicesでは、ブラウザおよびアプリケーション・サーバーでエスケープなしに引用符を入力できる場合でも、引用符('"')は%22として入力する必要があります。

URL構文規則では、(URLエスケープ・シーケンス%20の代替として)空白を+として入力することも許可されています。ただし、otherparams構成パラメータの値では、+は特別に扱われ、ランフォーム・パラメータの値に埋め込まれた空白を示すのとは対象的に、name=valueペアを分割します。

たとえば、ランフォーム・アプリケーションにユーザー・パラメータparam1param2が指定されており、これらのパラメータに「a b」および「c d」を割り当てる場合は、次の文字列をURLに取り込みます。

&otherparams=param1=a%20b+param2=c%20d

(1)および(2)のように、テンプレートHTMLファイルまたは構成ファイルでランフォーム・パラメータを指定する場合、Formsでは状況によってURLエスケープ・シーケンスが必要とされる場合やURLエスケープ・シーケンスの使用が許可される場合、また許可されない場合があります。

ランフォーム・パラメータの値の外部では、URLエスケープ・シーケンスは使用できません。たとえば、name=valueペアの=は、常にそのまま=として指定する必要があります。隣接する2つのname=valueペアを区切る空白は、常にそのまま" "(シングル・スペース文字)として指定する必要があります。

ランフォーム・パラメータの値の内部では、空白(' ')をURLエスケープ・シーケンス(%20)として指定する必要があります。HTMLデリミタ文字(構成ファイルで指定)もURLエスケープ・シーケンスとして指定する必要があります。また、(1)のようにランフォーム・パラメータがテンプレートHTMLファイルで指定されている場合は、引用符('"')をURLエスケープ・シーケンス(%22)として指定する必要があります。

その他の7ビットASCII文字も、URLエスケープ・シーケンスとして指定する場合があります。ただし、この指定は必須ではありません(次に示すとおり、%では必要な場合があります)。%文字には、特定の追加制限が適用されます。これには次のものがあります。

  • HTMLデリミタが% (デフォルト)である場合、ランフォーム・パラメータの値内の%の出現をエスケープする(%25として指定する)必要があります。(HTMLデリミタ文字のエスケープの必要性については、前述のとおりです)。さらに、7ビットのASCII値を表す2桁の16進数字(最初の文字が0から7の2桁の16進数字)で変数名を開始することはできません。

  • HTMLデリミタが%でなければ、その直後に8進数字と16進数字が続く場合、%の出現はエスケープする必要があります。%の他の出現もエスケープすることをお薦めしますが、これは必須ではありません。

(前リリースで作成した既存のテンプレートHTMLファイルまたは構成ファイルを所有し、そのファイルで%以外のHTMLデリミタが使用され、ランフォーム・パラメータの値に%が含まれている場合は、この推奨事項を無視することもできます)。

前リリースの動作

リリース9.0.4以降の動作は、テンプレートHTMLファイルと構成ファイルのランフォーム・パラメータの値では引用符をエスケープ(%22)する必要がある点を除いて、現行リリースと同じです。

9.0.4より前のリリースでは、テンプレートHTMLファイルや構成ファイルで指定したランフォーム・パラメータの値にはURLエスケープ・シーケンスを使用できませんでした(前述の(1)と(2)の場合)。3つのすべての場合において、特定の特殊文字、特に空白、引用符、アポストロフィを指定することは困難または不可能でした。さらに、パラメータ値には、値をランフォームに渡す前に特定の変換が適用されました。特に顕著なのは値がアポストロフィで開始および終了する場合で、通常これらのアポストロフィは削除されました。ただし、こうした変換は明確に定義されたものではなく、Web環境とクライアント/サーバー環境の間には差異がありました。

現行リリースでの前リリースの動作取得

使用しているアプリケーションが前リリースの動作に依存している場合は、構成ファイルでescapeparams変数の値をFalseに設定するだけで、現行リリースで前リリースの動作を取得できます(この作業はFusion Middleware Controlで実行します)。

以前の動作の取得を選択したアプリケーションに限定する場合は、異なる構成セクションのescapeparams変数に異なる値を指定できます。以前の動作を必要とするアプリケーションでは、escapeparams変数をFalseに設定した構成セクションを指定します。新しい動作を必要とする(または許容する)アプリケーションでは、escapeparams変数をTrueに設定した構成セクションを指定します。

テンプレートHTMLファイルの考慮事項

独自のテンプレートHTMLファイルを作成する場合は、次の点に留意してください。

escapeparams変数(%がHTMLデリミタ文字の場合は文字列%escapeparams%)への参照がserverArgsアプレット・パラメータ値の最初の部分に表示され、空白が続くように設定することをお薦めします。(例については、付属のbase.htmファイルを参照)。

escapeparams変数への参照が、テンプレートHTMLファイルの他の部分に表示されないよう注意してください。serverArgsアプレット・パラメータの値を引用符ではなくアポストロフィで囲む場合は、テンプレートHTMLファイル内のランフォーム・パラメータの値の内部でアポストロフィをエスケープする(%27)必要があります。引用符にはエスケープ・シーケンスは不要です。

serverArgsアプレット・パラメータ値の先頭からescapeparams変数への参照を省略することが可能です。これにより、構成ファイルでescapeparams変数に指定した値に関係なく、以前のリリースの動作が得られます。

静的HTMLページの考慮事項
静的HTMLを使用してランフォーム・エンジンを呼び出し、最新リリースの動作を取得する場合は、特定のステップに従う必要があります。

ノート:

静的HTMLまたはJNLPの使用はお薦めしません。Formsアプリケーションに対するコールはすべて、Formsサーブレット(frmservlet)を介してルーティングすることをお薦めします。これを行わないと、予期しない動作が発生することがあります。

基本的な規則として、静的HTMLがForms Servletで生成されたHTMLのように見える必要があります。具体的には、serverArgsアプレット・パラメータの値を文字列escapeparams=trueで開始する必要があります(大/小文字の区別なし)。

さらに、serverArgsアプレット・パラメータ値の各name=valueペアの値部分で、次の表に示すURLエスケープ・シーケンスによって特定の文字を指定する必要があります。

表-4 静的HTMLページのURLエスケープ・シーケンス

エスケープが必要な文字 URLエスケープ・シーケンス

改行' \n '

%0a

空白' '

%20

引用符' " '

%22

パーセント' % '

%25

アポストロフィ' ' '

%27

左カッコ' ( '

%28

右カッコ' ) '

%29

name=valueペアの値部分に使用されている他の7ビットASCII文字をエスケープすることもできます。

静的HTMLでのserverArgsアプレット・パラメータの書式の例を次に示します。この例は、my formという名前のフォームに関するものです。ここでは、値foo'barがユーザー定義パラメータmyparamに渡されます。

<PARAM NAME="serverArgs" VALUE="escapeparams=true module=my%20form userid=scott/tiger@mydb myparam=foo%27bar">

クライアント構成

Oracle Formsには、複数のクライアント構成オプションが用意されています。要件に基づいてオプションを選択します。

次のクライアントの構成が使用可能です。 前述の各オプションの構成例は、FormsのWeb構成formsweb.cfgファイルに提供されています。

また、クライアント構成オプションでサポートされているブラウザに関する情報については、「ブラウザに関する考慮事項」を確認してください。

HTMLに埋め込まれたJavaアプレット

これはデフォルト構成であり、Formsアプリケーション(アプレット)がWebページに埋め込まれているように見せます。

これはFormsアプリケーションを囲むHTMLコンテンツに関連情報または統合情報が含まれている場合に役立ちます。これは、Forms JavaScript統合機能を使用する場合にも役立ちます。この構成では、シングル・サインオンとシングル・サインオフがサポートされています。

この構成を使用するには、Java Plug-inと、Java Plug-inをサポートする動作保証済ブラウザが必要です。

ブラウザにhttps://example.com/forms/frmservlethttps://example.com/forms/frmservlet?config=defaultなどのURLを入力します。

この構成を実装するには、Fusion Middleware Controlの「Forms Web構成」ページでこれらのパラメータを構成します。

表-5 HTMLに埋め込まれたJavaアプレットのパラメータ

タイプ パラメータ
WebUtil非対応のForms
  • baseHTML=base.htm
  • baseHTMLjpi=basejpi.htm
WebUtil対応のForms
  • baseHTML=webutilbase.htm
  • baseHTMLjpi=webutiljpi.htm

HTMLに埋め込まれたJNLP

埋込みJNLPは、埋込みアプレットと非常によく似ていますが、アプリケーションは、Webページ内に埋め込まれていても、Java Web Startアプリケーションのように扱われます。

埋込みアプレットと同様に、埋込みJNLPは、JavaScript統合、シングル・サインオン、シングル・サインオフ、およびWebページにフォームを視覚的に埋め込む機能をサポートします。埋込みJNLPには、JNLPコンテンツ(クライアント側のHTMLソース)をbase-64でエンコードするという追加の利点があります。このコンテンツには、アプリケーション用に構成された大部分のパラメータと値のペアが含まれます。base-64でエンコードされたテキストは人間が読めないため、エンド・ユーザーがパラメータを読み取れないようにします。ほとんどのコンテンツはbase-64でエンコードされているため、起動パフォーマンスが若干改善されます。

ノート:

base-64エンコーディングは、セキュリティ・メカニズムではありません。Javaで使用され、サーバーからクライアントへの配信パフォーマンスの向上に役立ちます。

この構成には、Java Plug-inと、Java Plug-inをサポートする動作保証済ブラウザが必要です。

この構成を使用するには、用意されている構成例(jnlpという名前)を使用するか、独自の構成を作成します。
https://example.com/forms/frmservlet?config=jnlp
この構成を実装するには、Fusion Middleware Controlの「Forms Web構成」ページでこれらのパラメータを構成します。

表-6 HTMLに埋め込まれたJNLPのパラメータ

タイプ パラメータ
WebUtil非対応のForms
  • basejnlp=base.jnlp
  • baseHTMLjpi=basejpi_jnlp.htm
WebUtil対応のForms
  • basejnlp=webutil.jnlp
  • baseHTMLjpi=basejpi_jnlp.htm

ノート:

埋込みJNLPの使用時に、アプリケーションでカスタムjarファイル(jacob.jaricons.jarexample.jarなど)を使用している場合は、これらをextensions.jnlpファイルに追加します。このファイルは、ORACLE_HOME\forms\javaディレクトリに格納されています。テキスト・エディタでこのファイルを開き、ファイルに含まれるサンプルに基づいて必要なエントリを追加します。各エントリは、そのエントリの行に追加する必要があります。

Java Web Start

Java Web Startは、半分ブラウザが不要な構成と考えられます。

Java Web Start (JWS)を使用すると、Oracle Formsアプリケーションが、Webアプリケーションではなく、ネイティブにインストールされたアプリケーションのように見えます。これは、実行時にアプリケーションがブラウザの境界に含まれないためです。これは、デバイスでPoint of Saleアプリケーションしか使用されないPoint of Saleアプリケーションの場合や、アプリケーションが全画面を使用するように設計されている場合に、推奨されることが多いです。これは通常、ブラウザレスの構成であるため、この構成を使用するときは単一のサインオフ・イベントはサポートされません。

JWSに対するJavaScript統合サポートは、デフォルトでは存在しません。ただし、提供されたアドオンおよびサード・パーティ・ライブラリ(Eclipse/Jetty)でJS統合が有効化されます。詳細は、「Java Web StartとFormsスタンドアロン・ランチャに対するフォームとJavaScript統合」を参照してください。

separateFrame=trueを使用して提供される機能(HTMLに埋め込まれたJNLPおよびHTML構成に埋め込まれたJavaアプレットでのみ使用可能)とは異なり、Web Startを使用すると、アプリケーションのコールに使用されるブラウザ・ウィンドウを、起動後に閉じたり、ブラウザをまったく使用しないようにすることができます。Oracle FormsでJava Web Startを使用すると、ハイパーリンクを使用するかURLを直接入力して、アプリケーションをブラウザからコールできます。または、エンドユーザーのマシンに格納されているJNLPファイルからアプリケーションを実行できます。この方法により、アプリケーションがシングル・サインオンで保護される場合を除いて、ブラウザが不要になります。Java Web Startを使用して、コマンドラインからOracle Formsアプリケーションをコールすることもできます。Java Web Startの使用方法には複数のバリエーションがありますが、アプリケーションでシングル・サインオンを使用する必要がある場合は、ブラウザからコールする必要があります。静的JNLPファイルまたはコマンドラインから、SSOで保護されたアプリケーションをコールしようとすると、失敗します。

ブラウザからコールする場合、この構成にはJava Plug-inがインストールされている必要があります。ブラウザからコールしない場合は、Java Plug-inまたはJava Development Kit (JDK)をインストールする必要があります。ブラウザはオプションであり、シングル・サインオンを使用する場合にのみ必要です。

この構成を使用するには、用意されている構成例(webstartという名前)を使用するか、独自の構成を作成します。アプリケーションは、ブラウザからコールするか、コマンドラインまたはカスタム・スクリプトを使用できます。

jnlps://example.com/forms/frmservlet?config=webstart
https://example.com/forms/frmservlet?config=webstart
javaws “https://example.com/forms/frmservlet?config=webstart” 

ノート:

例で使用されているnlpおよびjnlpsプロトコルは、Microsoft Windows上のJava 8u92+でサポートされています。また、JNLP://またはJNLPS://プロトコルを使用して起動する場合、SSOはサポートされません。
この構成を実装するには、Fusion Middleware Controlの「Forms Web構成」ページでこれらのパラメータを構成します。

表-7 Java Web Startのパラメータ

タイプ パラメータ
WebUtil非対応のForms
  • basejnlp=base.jnlp
  • webstart=enabled
WebUtil対応のForms
  • basejnlp=webutil.jnlp
  • webstart=enabled

ノート:

Java Web Startの使用時に、アプリケーションでカスタムjarファイル(jacob.jaricons.jarexample.jarなど)を使用している場合は、これらをextensions.jnlpファイルに追加します。このファイルは、ORACLE_HOME\forms\javaディレクトリにあります。テキスト・エディタでこのファイルを開き、ファイルに含まれるサンプルに基づいて必要なエントリを追加します。各エントリは、そのエントリの行に追加する必要があります。

Formsスタンドアロン・ランチャ

Formsスタンドアロン・ランチャ(スタンドアロンまたはFSALとも呼ばれる)を使用すると、エンド・ユーザーはForms 12cアプリケーションを新しい方法で実行できます。ブラウザレスの最新のインタフェースが提供されます。

FSALを使用すると、ネイティブ・アプリケーションの外観と機能が提供されます。アプリケーションは独自のウィンドウで実行され、集中管理されたアプリケーション・サーバー(WebLogic Serverなど)でホストされます。これにより、Formsアプリケーション・モジュールはこのリモート中間層サーバーに安全に格納されます。ユーザーは、FMX、MMX、PLXなどのリモート・サーバー上にあるFormsモジュールに直接アクセスすることはできませんが、URLを使用してこれらのアプリケーションを実行できます。

FSALを使用すると、ブラウザの使用時に有効化されるイベント駆動型のシングル・サインオフのサポートを除いて、ブラウザでフォームを実行するときに使用できる機能と同じ機能が提供されます。

FSALに対するJavaScript統合サポートは、デフォルトでは存在しません。ただし、提供されたアドオンおよびサード・パーティ・ライブラリ(Eclipse/Jetty)でJS統合が有効化されます。詳細は、「Java Web StartとFormsスタンドアロン・ランチャに対するフォームとJavaScript統合」を参照してください。

要件

FSALを使用するための要件は次のとおりです:
  • frmsal.jar - このファイルはFormsスタンドアロン・ランチャであり、エンド・ユーザー・マシン、できればユーザーのホーム・ディレクトリに格納する必要があります。あるいは、ユーザーが自分のマシンの他のディレクトリへのアクセス権を持つ場合は、ファイルをそのディレクトリに格納できます。ファイルは、ORACLE_HOME\forms\javaディレクトリのサーバーにステージングされます。ファイルは、適切な方法(Webダウンロード、電子メールまたはftpなど)を使用してエンド・ユーザーのマシンに転送できます。

    このファイルはバージョン固有であり、他のFormsバージョンまたはパッチ・レベルで使用することはできません。チェックサムは、ランチャ(frmsal.jar)ファイルがサーバーとそのFormsバージョンと正しく一致していること、および誤って置き換えられていないか、悪意がある方法で置き換えられていないことを確認するために使用されます。そのため、Windowsサーバーからfrmsal.jarをダウンロードして、UNIXサーバーに対してアプリケーションを実行するために使用することはできません。

    FSALは、Windows、Unix、Linux、またはApple Macで使用できます。基本的に、Oracle Javaの実行をサポートする任意のプラットフォームです。

    すべてのインストールに、ランチャの使用方法を説明し、frmsal.jarファイルのダウンロード・リンクを指定する使用方法のページが含まれます。管理者は、必要に応じてこのページを無効化、削除または編集できます。https://example.com/forms/html/fsal.htmに移動してページを表示します。

  • Java - FSALはJavaアプリケーションであるため、ユーザーのマシンにはOracle Javaが必要です。FSALは、Javaアプリケーションの実行をサポートし、Formsのバージョンに対して動作保証されているすべてのOracle Javaディストリビューションの使用をサポートします。Fusion Middleware動作保証ガイドを参照して、使用する必要のあるバージョンが、使用しているFormsバージョンに対して動作保証されていることを確認してください。
    いくつかの使用可能なJavaディストリビューション・タイプがあります。アプリケーションのニーズに応じて、選択するディストリビューションは異なる場合があります。本番環境に移行する前に、選択したOracle Javaインストールの内容を確認し、アプリケーションを十分にテストすることをお薦めします。ほとんどのエンド・ユーザー・プラットフォームで使用可能で、FSALの実行に使用できるディストリビューションは、次のとおりです:
    • JRE (Java Runtime Environment) - JREでは、通常のエンド・ユーザーに必要なほとんどのコンポーネントがインストールされます。これには、ローカルJavaアプリケーションの実行に必要なすべてに加えて、Java Web StartやJava Plug-inなどのJavaデプロイメント・コンポーネントも含まれます。Javaデプロイメント・コンポーネントは、Java 8より後のリリースでは使用できない可能性があります。
    • JDK (Java Development Kit) - JDKはJava開発者向けで、通常、ユーザーが必要とする以上のコンポーネントが含まれています。JDKには、Javaアプリケーションを開発、デバッグおよび監視するためのJREおよびその他のツールが含まれています。
    • サーバーJRE (Java 8のみ) - サーバーJREは、主にJavaアプリケーションをサーバーにデプロイするために使用します。これには、JVMモニタリングおよびサーバー・アプリケーションのツールが含まれていますが、ブラウザ統合(Java Plug-in)、Java Web Start、自動更新またはインストーラは含まれていません。このディストリビューションは、手動で抽出する必要があるzipファイルとして提供されます。
    Server JREディストリビューションはソフトウェアのインストールを実行せず、軽量であるため(JREおよびJDKディストリビューションと比較した場合)、このオプションはカスタマイズされた起動スクリプトとともに使用される場合など、FSALに最適です。

FSALの実行

この構成を使用するには、用意されている構成例(standaloneappという名前)を使用するか、独自の構成を作成します。アプリケーションは、コマンドラインまたはカスタム・スクリプトからコールできます。FSALは、ブラウザと同様、実行するアプリケーションの場所を認識している必要があります。完全なFormsアプリケーションのURLを認識している必要があります。

ノート:

Java 11とFSALを使用し、アプリケーションでFormsオーディオ・サポートを使用している場合は、追加構成が必要です。ユーザーのマシンで、次のステップを完了します:

  1. このページからJava FXバージョン11+をダウンロードし、ファイルを抽出します。
  2. FSALをオーディオ・サポートとともに実行するには、起動コマンドを変更してください。次に例を示します。

    java --module-path <PATH TO JFX\lib> --add-modules=javafx.media,javafx.swing --add-exports=java.desktop/sun.swing=javafx.swing -jar frmsal.jar -url "<http://SERVER:PORT/forms/frmservlet?config=standaloneapp>"

現在、URLリダイレクトまたはリライトの使用はサポートされていませんが、サーバーの構成によっては技術的に可能です。FSALは、Forms環境を指す完全修飾URLを受け取る必要があります。ハイパーリンクのかわりにデスクトップ・ショートカット、スクリプト・ファイルまたはバッチ・ファイルを使用して、アプリケーションを起動できます。

FSALを使用してアプリケーションを起動するには、次のステップを実行します。
  1. シェル(Microsoft WindowsのDOSなど)を開き、必要なJavaバージョンがインストールされていることを確認します。

    java –version

    結果に、必要なJavaバージョンが示されます。示されていない場合は、システムのPATHが正しく設定されているかどうか確認します。

  2. ユーザーのホーム・ディレクトリ(またはfrmsal.jarファイルが格納されているディレクトリ)に切り替えて、次のコマンドを実行します。

    java -jar frmsal.jar -url "https://<server>/forms/frmservlet?config=standaloneapp"

    このコマンドで、<server>を使用するサーバーの詳細に置き換えます。次に例を示します。

    java –jar frmsal.jar –url “https://example.com/forms/frmservlet?config=standaloneapp” –t 30000

    サーバーでSSLを実行せず、HTTPを使用している場合は、推測されるhttp://をURLエントリから省略しても構いません。

    standaloneappというタイトルの構成セクションに関連付けられたアプリケーションが実行されます。提供されている例にあるエントリが含まれているすべての構成セクションを使用できます。

    ノート:

    SSL/TLSを使用している場合は、アプリケーションの実行前に、必要に応じて証明書をユーザーのJavaキーストアにインポートします。
  3. アプリケーションの起動に使用されるシェルに、出力が表示されます。シェルを閉じるとアプリケーションが終了するため、セッション存続中は、シェルを開いたままにしてください。

    ノート:

    この動作は、様々なシェル・コマンドや関連するスイッチを使用してニーズに対応できるように変更できます。プラットフォームでのコマンド・シェルの使用の詳細は、オペレーティング・システムのドキュメントを参照してください。

コマンドライン引数

FSALを実行するコマンドに含めることができるコマンドライン引数を次に示します。
引数 説明
-url

Forms環境を示す完全修飾Webアドレスを表し、構成名を含めます。構成が含まれない場合は、デフォルトの構成が使用されます。引用符("")で囲んで、URLを指定してください。

これは必須の引数です。

-t

タイムアウトするまでにサーバーの応答をランチャが待機する時間(ミリ秒)を指定します。値は整数である必要があります。

これはオプションの引数です。

デフォルト: 60000ミリ秒

-showConfig コンソールでサーバーから受信した構成パラメータを表示するかどうかを指定します。

これはオプションの引数です。

デフォルト: FALSE

ブラウザに関する考慮事項

次のリンクでは、クライアント・ブラウザ、Javaバージョンおよびサポートされている最新のプラットフォームの詳細を参照できます。また、Oracle Java Plug-inを使用してOracle Formsアプリケーションを表示することもできます。

ブラウザからOracle Formsアプリケーションをリクエスト(たとえば、アプリケーションのURLへのリンクをクリック)すると、Formsサーブレットにより、次の処理が行われます。

  1. 使用しているブラウザを検出します。

  2. 次の表を使用して、適切なベースHTMLファイルを選択します。

    表-8 ベースHTMLファイルの説明

    検出されたブラウザ 使用されるベースHTMLファイル

    Internet Explorer

    basejpi.htm

    Mozilla FireFox

    basejpi.htm

    その他すべてのブラウザとMacintoshクライアント

    base.htm

  3. ベースHTMLファイル内の変数(%variablename%)が、Formsのservlet.initArgsファイルやformsweb.cfgファイルに指定された適切なパラメータ値や、URLリクエストがある場合はその問合せパラメータの値で置換されます。

  4. HTMLファイルをユーザーのブラウザに送信します。

    ノート:

    Internet ExplorerのみがJavaプラグインの使用をサポートするため、ブラウザに埋め込まれたFormsアプリケーションの実行を許可する唯一のクライアント構成を提供します。他のブラウザは、Java Web Startを使用するように構成されたアプリケーションの起動で使用できます。