この章では、Forms 6iからのアップグレード・プロセスについて説明します。変更された機能または非推奨となった機能については、『Oracle Forms Oracle Forms 6iからOracle Forms 11gへのアップグレード』を参照してください。
この章には、次の項が含まれています。
Oracle Forms 10gおよびそれよりも前のリリースからのアップグレードでは、アップグレード・アシスタントを使用できます。詳細は次のドキュメントを参照してください。
Oracle Fusion Middlewareアップグレード・プランニング・ガイド
Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererアップグレード・ガイド
表13-1に、アップグレードされる項目を示します。これらの項目には、Oracle Forms Servicesをインストールするときに追加、変更、削除または置換する必要のあるファイル、実行可能ファイルおよび設定が含まれています。
表13.1 Oracle Forms Servicesのアップグレード項目
| アップグレード項目 | 6i Oracleホームでの場所 | 11g (11.1.1) Oracleホームでの場所 | 説明および注意 |
|---|---|---|---|
|
Oracle HTTP Server構成ファイル: |
|
|
仮想パス・マッピングが含まれています。 |
|
|
|
Formsサーブレット・ランタイム・プロセスの環境変数設定が含まれています。 |
|
|
|
|
||
|
アプリケーション構成ファイル: |
|
|
Forms Servicesアプリケーション構成情報が含まれています。 |
|
Formsサーブレット・テンプレートHTMLファイル: ( |
|
|
デフォルトおよびユーザー定義のFormsサーブレット・テンプレートHTMLファイルです。 |
|
Formsアプリケーション・モジュール( |
Oracle 6i Forms ServicesにデプロイするFormsモジュール( |
この項では、Oracle Forms Servicesをアップグレードする方法について説明します。内容は次のとおりです。
第13.2.3項「Common Gateway Interface (CGI)からOracle Formsサーブレットへのアップグレード」
第13.2.6項「Formsリスナー・サーブレット・アーキテクチャからOracle Forms Servicesへのアップグレード」
Formsアプリケーションをアップグレードする際には、次の推奨事項と考慮事項に注意してください。
アプリケーションを配布してテストが問題なく完了するまでは、Oracle6i Forms Servicesインストールを使用可能な状態に維持します。
すべてのファイルをバックアップおよび保護してからソース・ファイルをアップグレードします。
統合されたReportsに対するRun_Productのコールを、Oracle Reportsに対するRun_Report_Objectのコールに置き換えます(または、Oracle FormsでPL/SQL変換ユーティリティForms Migration Assistantを使用します)。
Oracle Fusion Middlewareをインストールし、実際のアプリケーションで使用する情報でformsweb.cfgファイルを構成します。
アプリケーションで使用されている環境ファイルを、同じ相対ディレクトリにコピーします。
アップグレードしたOracle Formsアプリケーション・モジュール・ファイルを、Oracle WebLogic Serverがインストールされているコンピュータにコピーします(同じコンピュータでない場合)。
Oracle WebLogic Serverを起動した後に、次のURL(デフォルトのポートは8888)を使用してForms Servicesリスナー・サーブレットのテスト・ページにアクセスします。
http://<hostname>:<port>/forms/frmservlet?form=test.fmx
すべてのアプリケーション設定がformsweb.cfgファイルに追加されていること、および環境変数Forms_Pathにアプリケーション・モジュールのディレクトリが含まれていることを確認します。
SQL*Plusを使用してデータベースに接続できることを確認します。
次のURLを使用して、アップグレードされたアプリケーションを起動します。
http://<hostname>:<port>/forms/frmservlet?config=<your application name>
この項では、Oracle6i Forms Servicesに配布されたFormsアプリケーション・モジュール(fmbファイル)からアップグレードを行う手順を説明します。Oracle6i Forms Servicesに配布されたFormsアプリケーション・モジュール(fmbファイル)をOracle Forms Servicesインストールにアップグレードする手順は、次のとおりです。
Formsアプリケーション・ファイルを新しいディレクトリにコピーします。
必要に応じ、Forms Migration Assistantを使用してFormsアプリケーション・モジュール(.fmbファイル)、Formsメニュー・モジュール(.mmbファイル)およびライブラリ・モジュール(.pllファイル)をアップグレードします。
Formsコンパイラ(Unixの場合はfrmcmp.sh、Windowsの場合はfrmcmp.exe)を使用して、Formsのアプリケーション実行可能ファイル(fmx、mmxおよびplxの各ファイル)を再生成します。
詳細は、次の場所にある『Oracle Forms Oracle Forms 6iからOracle Forms 11gへのアップグレード』を参照してください。
この項では、Forms CGIをFormsサーブレットにアップグレードする方法を説明します。Oracle 6i Forms Services Common Gateway Interfaceを使用して、アプリケーションのFormsアプレット開始HTMLファイルを動的にレンダリングしている場合は、次の手順に従います。
FormsアプリケーションのCGIは、Formsアプレット開始HTMLファイルの動的なレンダリングを可能にする目的で、Oracle Forms Servicesリリース6iに導入されました。Forms CGIでは、formsweb.cfg構成ファイルとHTMLテンプレートを使用して、アプリケーションの開始HTMLファイルが作成されます。CGIインタフェースは、Forms HTTP構成ファイル6iserver.confのエントリ(Oracle HTTP Serverのoracle_apache.confファイルのIncludeディレクティブで参照される)によって構成されます。このファイルには、ifcgi60.exeファイルを含んでいるディレクトリ構造のdev60cgiを識別するScriptAliasディレクティブが含まれています。
Formsサーブレットは、CGIと同じ方法でHTMLをレンダリングするほかに、ブラウザ・タイプの自動検出機能も備えています。Formsサーブレットは、Oracle Forms Servicesをインストールするときに構成され、frmservletと命名されます。
Formsサーブレットにアクセスするには、次のURLをリクエストします。
http://<hostname>:<port>/forms/frmservlet
このURLは、Oracle6i Forms ServicesのCGIインタフェースで使用されるURLと似ています。formsweb.cfgファイルのカスタム構成セクションでmyappとして構成されているアプリケーションをコールするには、次のURLをリクエストします。
http://<hostname>:<port>/forms/frmservlet?config=myapp
Formsサーブレットは、インストール時に自動的に構成されます。Oracle Forms Services構成であるformsappとformswebを指す仮想パス/forms/がインストーラで作成されます。
Oracle6i Forms Servicesリリース6i CGI環境をOracle Forms Servicesのサーブレット環境にアップグレードする手順は、次のとおりです。
アプリケーション固有の構成を<source_OH>/Forms60/Server/formsweb.cfgからすべてコピーし、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgに追加します。
|
注意:
|
default.envファイルのForms_Pathが、アップグレードされたOracle Forms Servicesアプリケーション・モジュールを指すように構成します。
Oracle6i FormsのHTMLテンプレート・ファイルを変更した場合は、Oracle Forms ServicesのHTMLテンプレート・ファイルも同様に変更します。
Oracle Forms Servicesに配布されたアプリケーションごとに、カスタム・アプリケーション定義がformsweb.cfg構成ファイルに構成されています。これは、ベースHTMLテンプレート・ファイルの名前と場所などの一般的なシステム設定を自動的に継承します。
カスタム・アプリケーション定義の名前は、FormsアプリケーションURLに組み込まれます。次のカスタム設定は、2つの異なるアプリケーションを定義しています。
[MyHR_app] serverURL=/forms/lservlet Form = hr_main.fmx lookAndFeel=oracle Otherparams=myParam1=12 Userid=scott/tiger@orcl
次のURLにより、このアプリケーションが起動されます。
http://<hostname>:<port>/forms/frmservlet?config=MyHR_app
もう1つのカスタム・アプリケーション定義は、次のようになっています。
[booking_app] ServerURL=/forms/lservlet Form = book.fmx lookAndFeel=oracle Otherparams= Userid=
次のURLにより、このアプリケーションが起動されます。
http://<hostname>:<port>/forms/frmservlet?config=booking_app
静的HTMLファイルごとに、カスタム・アプリケーション定義を作成する必要があります。静的HTMLファイルにはarchiveパラメータ・ディレクティブが含まれており、少なくともOracle Forms Servicesのfrmall.jarファイルが指定されています。カスタム・アーカイブ・ファイルを追加した場合は、archiveパラメータ・ディレクティブがArchive=frmall.jar,custom.jarのようになります。アーカイブの設定は、Formsサーブレットとformsweb.cfgファイルを使用して、User Parameterセクションに定義されます。カスタムのアプリケーション設定はすべてこれらの値を継承するため、アプリケーションの必要に応じてcustom.jarファイルを追加しないかぎり、このパラメータを明示的に設定する必要はありません。
custom.jarが追加されている場合は、次の行をカスタム・アプリケーション定義に追加できます。次の例は、別のVMを使用していることを前提としています。
[booking_app] archive=frmall.jar, custom.jar ServerURL=/forms/lservlet Form = book.fmx lookAndFeel=oracle Otherparams= Userid=
アプリケーションをアップグレードする手順は、次のとおりです。
default.envファイルを編集して、Oracle Forms Servicesアプリケーション・モジュールの場所をForms_Pathに追加します。
formsweb.cfgファイルを編集して、置換する静的HTMLアプリケーションごとにカスタム・アプリケーション・セクションを追加します。
各カスタム・アプリケーション・セクションに名前を付けます。名前は、空白を含めずに角カッコで囲んで指定します(例: [booking_app]、[MyHR_app])。
次のURLを使用してアプリケーションを起動します。
http://<hostname>:<port>/forms/frmservlet?config=<name>
必要であれば、Oracle Forms Servicesでも引き続き静的HTMLファイルを使用できます。ただし、静的HTMLファイルを使用する場合は、Formsアプリケーションで一部の機能(シングル・サインオンなど)を使用できなくなります。
インストール後、Formsリスナー・サーブレットはデフォルトで/forms/lservletを示します。Oracle Forms Servicesで静的HTMLファイルを使用するには、serverURLパラメータの値を含むように各静的HTML開始ファイルを変更する必要があります。serverPortパラメータとserverHostパラメータは使用されなくなったため、未定義のままでかまいません。
Oracle Forms Servicesで静的HTMLファイルを使用する手順は、次のとおりです。
default.envファイルのForms_Pathが、アップグレードされたOracle Forms Servicesアプリケーション・モジュールを指すように構成します。
$ORACLE_INSTANCE/config/OHS/<OHS Instance>/moduleconf/forms.confファイルに、静的HTML開始ファイルの場所を示す仮想ディレクトリを作成します。
アプリケーションの開始HTMLファイルを次のように変更します。
serverURLの値/forms/lservletを追加します。
codebaseパラメータをforms/javaに変更します。
$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INFに移動してweb.xmlファイルを編集します。
環境ファイル(通常はdefault.env)を指すように、リスナー・サーブレットのenvFile初期化パラメータを設定します。
編集後、web.xmlファイル内のFormsリスナー・サーブレットに対応するエントリは次のようになります。
<!--Forms listener servlet-->
<servlet>
<servlet-name>lservlet</servlet-name>
<servlet-class>oracle.forms.servlet.ListenerServlet</servlet-class>
<init-param>
<param-name>envFile</param-name>
<param-value>destination_Domain_Dir/forms/server/default.env</param-value>
</init-param>
</servlet>
Forms 6iリスナーは、受信するForms WebリクエストのかわりにFormsランタイム・プロセスを起動するCプログラムです。Forms Webランタイム・プロセスには、Formsクライアント・アプレットから直接ソケット接続またはHTTPソケット接続を介して直接アクセスします。この時点でFormsリスナーはアプリケーションのWebクライアント/サーバー間通信に関与しなくなり、他のWebリクエストを処理できるようになります。
JavaプログラムであるFormsリスナー・サーブレットも、Formsアプリケーションに対する受信Webリクエストを処理して、FormsのWebランタイム・プロセスを起動します。Forms 6iリスナーとは異なり、Formsリスナー・サーブレットは、Formsアプリケーションのアプレット/サーバー間通信に介在したままになります。
Forms 6iリスナーは特定のポート(デフォルトでは9000)でリスニングしますが、Formsサーブレットは追加のポートを必要とせず、HTTPリスナー・ポート経由でアクセスされます。Formsリスナー・サーブレットはForms 6iパッチ4で導入されたもので、Forms Servicesでサポートされている唯一のリスナーです。
Formsサーブレットは、インストール時に自動的に構成されます。Oracle Forms Services構成であるformsappとformswebを指す仮想パス/forms/がインストーラで作成されます。
Formsリスナー・サーブレットのテスト・フォームにアクセスするには、次のURLをリクエストします。
http://<hostname>:<port>/forms/frmservlet?form=test.fmx
このページにアクセスできるということは、Formsリスナー・サーブレットが構成され、すでに使用できるようになっていることを意味します。frmservletは、インストール時にFormsサーブレットに対して構成されたアクセス名です。リスナー・サーブレットの名前はlservletです。
Formsリスナー・サーブレットがFormsサーブレットによってアクセスされる場合は、Forms60/server/formsweb.cfgファイルのカスタム・アプリケーション設定のみをformsweb.cfgファイルに追加します。すべてのアプリケーション構成は、グローバル・システム・パラメータ設定から自動的にserverURLパラメータの値/forms/lservletを継承します。
Formsアプリケーションの配布をFormsリスナー・アーキテクチャからリスナー・サーブレット・アーキテクチャに変更するには、formsweb.cfgファイルのserverURLパラメータに値を指定します。インストール時に、このパラメータは/forms/lservletに設定されます。
Formsリスナー・サーブレットにアップグレードする手順は、次のとおりです。
Formsアプリケーションのファイルを新しいディレクトリにコピーし、これらを第13.2.2項「Oracle Forms Servicesアプリケーション・モジュールのアップグレード」での説明に従ってOracle Forms Servicesモジュールにアップグレードします。
forms/server/default.envファイルを編集して、アップグレードしたFormsアプリケーション・モジュールの場所をForms_Path変数に追加します。
カスタム・アプリケーション設定を<source_OH>/Forms60/Server/formsweb.cfgからすべてコピーし、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgに追加します。
アプリケーションに独自の環境ファイルが必要な場合は、リスナー・サーブレットに個別のサーブレットの別名を定義するかわりに、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgのカスタム・アプリケーション定義セクションでenvFileパラメータが新しい環境ファイルを指すように設定します。例:
envFile=myEnvFile.env
myEnvFile.envは、forms/serverディレクトリにあります。
Oracle6i Forms ServicesのHTMLテンプレート・ファイルを変更した場合は、Oracle Forms ServicesのHTMLテンプレート・ファイルも同様に変更します。
次のURLでアプリケーションを起動します。
http://<hostname>:<port>/forms/frmservlet? config=<application>
Oracle9iAS Forms Servicesリリース6iでは、別名のないリスナー・サーブレットはoracle.forms.servlet.ListenerServletによってアクセスされます。リスナー・サーブレット構成は、jserv.propertiesファイルとzone.propertiesファイルにあります。
Oracle Forms ServicesのFormsリスナー・サーブレットは、サーブレット名(frmservletおよびlservlet)とサーブレット・コンテナを除いて同じです。この構成はインストールの際に実行されます。Oracle WebLogic管理対象サーバーのリスナー・サーブレット構成は、$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INF/web.xmlに格納されます。envFileパラメータなどの一部の初期化パラメータは、formsweb.cfgファイルに移されたため、サーブレット・エンジンで構成する必要はなくなりました。
Formsリスナー・サーブレットは、Oracle WebLogic Serverのインストール時に自動的に構成されます。Oracle Forms Services構成であるformsappとformswebを指す仮想パス/forms/がインストーラで作成されます。
Formsリスナー・サーブレットのテスト・フォームにアクセスするには、次のURLをリクエストします。
http://<hostname>:<port>/forms/frmservlet?form=test.fmx
このページにアクセスできるということは、Formsリスナー・サーブレットが構成され、すでに使用できるようになっていることを意味します。frmservletは、インストール時にFormsサーブレットに対して構成されたアクセス名です。リスナー・サーブレットの名前はlservletです。
リスナー・サーブレット・アーキテクチャをOracle Forms Servicesにアップグレードする手順は、次のとおりです。
Formsアプリケーション・ファイルを新しいディレクトリにコピーして、それらをOracle Forms Servicesモジュールにアップグレードします。
forms/server/default.envファイルを編集して、アップグレードしたFormsアプリケーション・モジュールの場所をForms_Path変数に追加します。
カスタム・アプリケーション設定を<source_OH>/Forms60/Server/formsweb.cfgからすべてコピーし、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgに追加します。
アプリケーションに独自の環境ファイルが必要な場合は、リスナー・サーブレットにサーブレットの別名を定義するかわりに、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgのカスタム・アプリケーション定義セクションでenvFileパラメータが新しい環境ファイルを指すように設定します。例:
envFile=myEnvFile.env
myEnvFile.envは、forms/serverディレクトリにあります。
Forms Servicesリリース6iのHTMLテンプレート・ファイルを変更した場合は、Oracle Forms ServicesのHTMLテンプレート・ファイルも同様に変更します。
次のURLでアプリケーションを起動します。
http://<hostname>:<port>/forms/frmservlet? config=<application>
Forms Services 6iのロード・バランシングをアップグレードする方法は、使用した配布方法によって異なります。
Forms 6iリスナーでは、Metrics Server(別のプロセス)によってロード・バランシングが実行されます。
Forms 6iサーブレットでは、JServエンジン間のラウンド・ロビン・ロード・バランシングを使用して、JServサーブレット・エンジンでロード・バランシングが構成されます。
Oracle Forms Servicesでは、Oracle WebLogic管理対象サーバーのプロセスによってロード・バランシングが管理されます。これは、FormsサーブレットとFormsリスナー・サーブレットを処理するサーブレット・コンテナにWebリクエストをバインドします。
この項では、アップグレードで役立つヒントを紹介します。
Forms Servicesリリース6iでは静的HTML開始ファイルを使用することで、開始HTMLファイルを基準とした相対的な場所にイメージを格納できました。Oracle Forms ServicesのFormsサーブレットでは、これがサポートされていません。
かわりに、imagebaseパラメータにcodebaseの値を指定し、それをアプリケーションで使用されるアイコン・イメージの場所として使用します。codebaseの値は、FormsクライアントのすべてのJavaアーカイブ・ファイルを格納するforms/javaディレクトリを参照します。パフォーマンス上の理由から、ここにイメージを格納することはお薦めできません。
かわりに、アイコンを別のアーカイブ・ファイルにまとめて格納します。これによって、クライアント上でアーカイブが永続的にキャッシュされるため、パフォーマンスが向上します。このアーカイブ・ファイルを作成する手順は、次のとおりです。
jarコマンドが正常に実行されることを確認します。正常に実行されない場合は、システムにインストールされているJDKに、正しいPATH環境変数エントリが設定されていることを確認する必要があります(この変数はJDK_HOME/binディレクトリを指しています)。
アプリケーション・イメージが含まれているディレクトリに移動して、次のコマンドを発行します。
jar -cvf <application>_images.jar *.<extension>
説明:
applicationは、アプリケーションの名前です。
extensionは、イメージ・ファイルの拡張子(.gifなど)です。
jarファイル<application>_images.jarが現在のディレクトリに作成されます。
<application>_images.jarをforms/javaディレクトリにコピーします。
formsweb.cfgファイルを編集して、imageBase=codebaseパラメータをアプリケーションのカスタム・アプリケーション・セクションに追加します。
カスタム・アプリケーション・セクションに次の行を追加して、アプリケーションで使用されるアーカイブ・パスに<application>_images.jarファイルを追加します。
archive=frmall.jar,<application>_images.jar
Oracle Forms Servicesでのカスタム・アイコンの配置の詳細は、第4.7項「Forms Servicesで使用するフォント、アイコンおよびイメージの配置」を参照してください。
FormsでのOracle Reportsに対する統合コールは、クライアント側のバックグラウンド・エンジンで処理されなくなりました。Oracle Forms Servicesでは、アプリケーションがRUN_REPORT_OBJECTビルトインを使用してOracle Reportsをコールし、統合レポートを処理する必要があります。Oracle Reportsは、Business Intelligence and Formsインストールの一部として設定されます。
コールをアップグレードする手順は、次のとおりです。
すべてのRUN_PRODUCT (Reports,...)を、RUN_REPORT_OBJECT()を使用する同等のコールに変更します。
Oracle ReportsのReports_Pathが使用されるように、アプリケーションのReportsモジュールの場所を追加します。
Oracle Reportsを参照するようにRUN_REPORT_OBJECTを変更します。
詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。
パッチ8が適用される前のForms Servicesリリース6iでは、アプリケーションごとに個別の環境ファイルを使用するためには、$ORACLE_HOME/Apache/Apache/JServ/ conf/zone.propertiesファイルにFormsサーブレットの別名を作成する必要がありました。Oracle Forms ServicesのFormsサーブレットでは、これは必要ありません。次のようにenvFileパラメータを使用して、formsweb.cfgファイルに環境ファイル名を設定できます。
envFile=myApp.env
Formsサーブレットの別名は、$ORACLE_HOME/Apache/Apache/JServ/conf/zone.propertiesには作成されなくなりました。かわりに、$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INF/web.xmlに作成されます。
別名を作成するには、<servlet>タグと</servlet>タグの間の内容をコピーして、サーブレット名を変更します。新しいサーブレットの別名に対してURLマッピングを作成するには、ファイルに次の行を追加します。
<servlet-mapping> <servlet-name>new servlet name</servlet-name> <url-pattern>/new url name*</url-pattern> </servlet-mapping>
Oracle9iAS Forms Servicesリリース6iで次のURLにアクセスすると、リスナー・サーブレットのテスト・ページを表示できます。
http://<hostname>:<port>/servlet/ oracle.forms.servlet.ListenerServlet
表示される情報は、初期化パラメータTestModeの値に依存します。このパラメータは<source_OH>/Apache/Apache/JServ/conf/zone.propertiesファイルで設定します。
Oracle Forms Servicesのテスト・ページは、次のURLを使用して表示できます。
http://<hostname>:<port>/forms/frmservlet/admin
表示される情報は、初期化パラメータTestModeの値に依存します。このパラメータは$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INF/web.xmlファイルで設定します。次に例を示します。
<init-param>
<!-- Display sensitive options on the /admin page ? -->
<param-name>TestMode</param-name>
<param-value>true</param-value>
</init-param>
アップグレード・タスクが完了したら、Oracle Forms Servicesのアップグレード・バージョンが期待どおりに動作することを確認します。各サイト固有のアプリケーションや構成要素に合せたテストを考案し、実行する必要があります。アップグレード前およびアップグレード後のインストール環境で、各アプリケーションのパフォーマンスと特性を比較します。
Oracle9iASリリース1 (1.0.2.2.x)での一般的なFormsアプリケーションのURLは、次のとおりです。
http://<hostname>:<port>/servlet/<forms servlet alias>?<forms application name>
Oracle Forms 11gでの一般的なFormsアプリケーションのURLは、次のとおりです。
http://<hostname>:<port>/forms/<forms servlet alias>?form=<forms application name>