Oracle® Fusion Middleware

Forms Servicesデプロイメント・ガイド

11g リリース1 (11.1.1)

B61388-05(原本部品番号:E10240-09)

2013年7月

Oracle Fusion Middleware Forms Servicesデプロイメント・ガイド 11g リリース1 (11.1.1)

B61388-05

Copyright © 2001, 2013, Oracle and/or its affiliates. All rights reserved.

原本著者: Swati Thacker

協力者: Ananth Satyanarayana、Vinay Agarwal、Suvarna Balachandra、Hemant Bansal、Ramesh Gurubhadraiah、Laiju Mathew、Gururaja Padakandla、Opendro Singh、Ashish Tyagi、Sudarshan Upadhya、Syed Nisar Ahmed、Dhiraj Madan、James Amalraj、Phil Kuhn、Arthur Housinger、Rubik Sadeghi、Naseer Syed、Emerson deLaubenfels、Grant Ronald

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 Oracle Forms Servicesの新機能

- 1.1 JavaScriptの統合

- 1.2 Javaサポートの拡張

- 1.3 サーバー側イベントのサポート

- 1.4 プロキシ・ユーザーのサポート

- 1.5 PL/SQLトレース

- 1.6 Oracle Diagnostics Logging (ODL)との統合

2 Oracle Forms Servicesの概要

- 2.1 Oracle Forms

- 2.1.1 Oracle Forms Developer

- 2.1.2 Oracle Forms Services

- 2.1.3 Oracle Forms ServicesでのFormsアプリケーションの起動方法

- 2.2 Oracle Database

- 2.3 Oracle WebLogic Server

- 2.4 Oracle Fusion Middleware

- 2.5 Oracle Formsのインストールとアップグレードについて

- 2.6 Oracle Forms Servicesのアーキテクチャ

- 2.6.1 Oracle Forms Servicesのコンポーネント

3 Oracle Formsアプリケーションの配布の基本

- 3.1 Oracle Forms Servicesのアクション

- 3.2 構成ファイル

- 3.2.1 Oracle Forms構成ファイル

- 3.2.2 Forms Java EEアプリケーションのデプロイメント・ディスクリプタ

- 3.2.3 Oracle HTTP Listenerの構成ファイル

- 3.2.4 標準フォントとアイコン・ファイル

- 3.2.5 ベースHTMLファイル

- 3.2.6 WebUtil構成ファイル

- 3.3 アプリケーションの配布

- 3.3.1 アプリケーションの配布

- 3.3.2 パラメータの指定

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

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

- 3.3.5 リスナー・サーブレット管理ページへのアクセス

- 3.4 クライアント・ブラウザのサポート

- 3.4.1 構成パラメータとベースHTMLファイルをクライアント・ブラウザに連結する方法

- 3.4.2 Mozilla 3.xでのForms Single-Sign On

4 Forms Servicesの構成と管理

- 4.1 Fusion Middleware ControlとOracle Forms

- 4.1.1 Fusion Middleware ControlによるForms Servicesへのアクセス

- 4.2 Forms Servicesの構成

- 4.2.1 「Web構成」ページでの一般タスク

- 4.2.2 Fusion Middleware Controlによるパラメータの構成

- 4.2.3 構成セクションの管理

- 4.2.4 パラメータの管理

- 4.2.5 Forms構成パラメータ

- 4.3 環境変数の管理

- 4.3.1 環境構成ファイルの管理

- 4.3.2 環境変数の構成

- 4.3.3 デフォルトの環境変数

- 4.4 ユーザー・セッションの管理

- 4.5 アプリケーションのURLセキュリティの管理

- 4.5.1 Oracle Formsテスト・フォームの保護

- 4.6 ユーザー独自のテンプレートHTMLファイルの作成

- 4.6.1 テンプレートHTMLファイルでの変数参照

- 4.7 Forms Servicesで使用するフォント、アイコンおよびイメージの配置

- 4.7.1 Fusion Middleware Controlを使用したRegistry.datの管理

- 4.7.2 アプリケーションのフォントの管理

- 4.7.3 アプリケーション・アイコンの配置

- 4.7.4 スプラッシュ画面イメージおよびバックグラウンド・イメージ

- 4.7.5 アイコンとイメージを含むカスタムJARファイル

- 4.7.6 アイコンおよびイメージの検索パス

- 4.8 言語検出の有効化

- 4.8.1 言語検出の指定

- 4.8.2 インラインIMEサポート

- 4.8.3 言語検出機能の仕組み

- 4.9 キー・マッピングの有効化

- 4.9.1 fmrweb.resのカスタマイズ

5 HTTPリスナーとOracle WebLogic ServerでのOracle Forms Servicesの使用方法

- 5.1 Oracle WebLogic管理対象サーバーについて

- 5.2 Forms管理対象サーバーでの作業

- 5.2.1 Forms Java EEアプリケーションのカスタム・デプロイメント

- 5.2.2 Forms管理対象サーバー・クラスタの拡張

- 5.2.3 Forms Java EEアプリケーションの登録

- 5.2.4 Forms J2EEアプリケーションのデプロイメント・ディスクリプタの変更

- 5.3 パフォーマンス/スケーラビリティのチューニング

- 5.3.1 HTTPDプロセス数の制限

- 5.3.2 高い値のMaxClientsディレクティブの設定

- 5.4 Oracle WebLogic Serverのロード・バランシング

- 5.5 Formsリスナー・サーブレットでのHTTPSの使用

- 5.6 認証プロキシを使用したOracle Formsアプリケーションの実行

- 5.7 Oracle Forms ServicesとSSL

- 5.8 ロード・バランシング・ルーターによるSSLの有効化

6 Oracle FormsとJavaScriptの統合

- 6.1 Oracle Formsによる外部イベントのコールについて

- 6.1.1 Oracle Formsの外部でイベントをコールする理由

- 6.2 Oracle FormsをコールするJavaScriptイベントについて

- 6.2.1 イベントでOracle Formsを呼び出す理由

- 6.3 JavaScriptとOracle Formsの統合

- 6.4 formsweb.cfgの構成

- 6.5 環境変数の構成

7 Javaサポートの拡張

- 7.1 概要

- 7.1.1 Forms Developerからのイベントのディスパッチ

- 7.1.2 Forms Servicesからのイベントのディスパッチ

- 7.2 カスタム項目イベント・トリガーについて

- 7.2.1 カスタム項目イベント・トリガーを設計時に追加する方法

- 7.2.2 実行時のカスタム項目イベント・トリガーについて

- 7.2.3 例: プッシュ・ボタンのJavaクラス

8 サーバー・イベントでの作業

- 8.1 Oracle Formsとサーバー・イベントについて

- 8.2 イベントの作成

- 8.3 イベントのサブスクライブ

- 8.4 イベントの伝播

- 8.4.1 イベント発生処理トリガーについて

- 8.4.2 トリガーの定義レベルと有効範囲について

- 8.5 データベース・イベントの公開

- 8.6 Forms間におけるアプリケーションの統合について

- 8.6.1 同期型通信について

- 8.6.2 非同期型通信について

- 8.6.3 非同期型通信の構成

9 Oracle Single Sign-OnでのForms Servicesの使用

- 9.1 概要

- 9.1.1 認証フロー

- 9.2 OracleAS Single Sign-On、Oracle Internet DirectoryおよびFormsで使用可能な機能

- 9.2.1 Oracle Internet Directoryにリソースがない場合のリソースの動的な作成

- 9.2.2 FormsとOracleAS Single Sign-Onでの動的ディレクティブのサポート

- 9.2.3 OracleAS Single Sign-Onで実行されるFormsのデータベース・パスワード期限切れのサポート

- 9.3 Oracle Formsで使用されるOracleAS Single Sign-Onコンポーネント

- 9.4 アプリケーションでのOracleAS Single Sign-Onの有効化

- 9.4.1 ssoMode

- 9.4.2 ssoProxyConnect

- 9.4.3 ssoDynamicResourceCreate

- 9.4.4 ssoErrorURL

- 9.4.5 ssoCancelUrl

- 9.4.6 Formsからシングル・サインオン情報へのアクセス

- 9.4.7 OracleAS Single Sign-On ServerへのOracle HTTP Serverの登録

- 9.5 Oracle FormsとReportsの統合

- 9.5.1 非SSOモードでのFormsとReportsの統合

- 9.5.2 Oracle Forms Servicesにおける複数のReports Serverクラスタの使用

- 9.5.3 別々のインスタンスにインストールしたFormsとReportsの統合

- 9.6 プロキシ・ユーザーの有効化と構成

- 9.6.1 プロキシ・ユーザーの概要

- 9.6.2 プロキシ・ユーザー接続の有効化

- 9.6.3 formsweb.cfgでのSSOの有効化

- 9.6.4 Formsアプリケーションへのアクセス

- 9.6.5 Formsビルトインにおける変更

- 9.6.6 Reportsとプロキシ・ユーザーとの統合

- 9.7 Oracle Internet Directoryの構成

10 Java仮想マシンの構成と管理

- 10.1 Java仮想マシン・プーリングを使用する理由

- 10.1.1 FormsとReportsの統合でのJVMプーリング

- 10.2 子Java仮想マシンのプロセスについて

- 10.2.1 子JVMの例

- 10.3 複数のJVMコントローラについて

- 10.4 JVMプーリングの使用例

- 10.5 設計時の考慮事項

- 10.5.1 Javaコードの再インポート

- 10.5.2 複数のJVM間での静的変数の共有について

- 10.6 JVM構成の概要

- 10.7 コマンドラインからのJVMコントローラの管理

- 10.7.1 JVMコントローラのコマンドの例

- 10.7.2 コマンドの制限

- 10.7.3 起動コマンド・パラメータ

- 10.8 Fusion Middleware ControlからのJVMプーリングの管理

- 10.8.1 「JVM構成」ページでの一般タスク

- 10.8.2 JVM構成セクションの管理

- 10.8.3 パラメータの管理

- 10.8.4 JVM構成パラメータとそのデフォルト値

- 10.8.5 Fusion Middleware ControlによるJVMコントローラの起動と停止

- 10.8.6 Forms構成ファイル設定

- 10.8.7 起動の例

- 10.9 JVMコントローラのロギング

- 10.9.1 デフォルトのJVMロギング・プロパティの指定

- 10.9.2 JVMログのディレクトリ場所の指定

- 10.9.3 ログ・ファイルへのアクセス

- 10.9.4 JVMコントローラのログ・ファイルの削除

- 10.10 FormsとReportsの統合

- 10.11 JVMプーリングのエラー・メッセージ

11 Forms Servicesセキュリティの概要

- 11.1 Forms Servicesのシングル・サインオン

- 11.1.1 ユーザーのクラスとその権限

- 11.1.2 保護されるリソース

- 11.1.3 認証およびアクセス強制

- 11.1.4 Oracle Identity Management Infrastructureの使用

- 11.2 Oracle Forms Servicesセキュリティの構成

- 11.2.1 Oracle FormsのOracle Identity Managementオプションの構成

- 11.2.2 Oracle Fusion Middleware Security FrameworkのOracle Formsオプションの構成

- 11.2.3 RADの保護

12 トレースと診断

- 12.1 Forms Traceについて

- 12.1.1 トレースとデバッグの違い

- 12.2 Forms Traceの有効化と構成

- 12.2.1 Forms Traceの構成

- 12.2.2 URLパラメータ・オプションの指定

- 12.3 Forms Traceの開始と停止

- 12.4 Forms Trace出力の表示

- 12.4.1 Translateユーティリティの実行

- 12.5 トレース可能イベントのリスト

- 12.5.1 イベントの詳細のリスト

- 12.6 Oracle Diagnostics Loggingのツールの利用

- 12.6.1 Oracle Diagnostics Loggingの有効化

- 12.6.2 診断ログの表示

- 12.6.3 「サーブレット」ページの使用

- 12.6.4 ログ・ファイルの場所

- 12.6.5 各レベルのサーブレット・ロギングの出力例

13 Oracle Forms Services 11gへのアップグレード

- 13.1 Oracle Forms Servicesのアップグレード項目

- 13.2 Oracle Forms Servicesのアップグレード・タスク

- 13.2.1 アップグレードの推奨事項とトラブルシューティングのヒント

- 13.2.2 Oracle Forms Servicesアプリケーション・モジュールのアップグレード

- 13.2.3 Common Gateway Interface (CGI)からOracle Formsサーブレットへのアップグレード

- 13.2.4 静的HTML開始ファイルから汎用アプリケーションHTML開始ファイルへのアップグレード

- 13.2.5 Forms 6iリスナーからFormsリスナー・サーブレットへのアップグレード

- 13.2.6 Formsリスナー・サーブレット・アーキテクチャからOracle Forms Servicesへのアップグレード

- 13.2.7 ロード・バランシングのアップグレード

- 13.2.8 使用方法

- 13.3 Oracle Forms Servicesのアップグレードの確認

14 パフォーマンス・チューニングに関する考慮事項

- 14.1 Forms Servicesの組込み最適化機能

- 14.1.1 Forms Servicesの監視

- 14.1.2 Forms ServicesのWebランタイム・プーリング

- 14.1.3 クライアント・リソース要件の最小化

- 14.1.4 Forms Servicesリソース要件の最小化

- 14.1.5 ネットワーク使用量の最小化

- 14.1.6 ネットワークを介して送信されるパケットの効率の拡大

- 14.1.7 クライアントでのアプリケーション画面の効率的なレンダリング

- 14.2 Oracle Forms Servicesアプリケーションのチューニング

- 14.2.1 データ・サーバーに対するOracle Forms Servicesの位置

- 14.2.2 アプリケーションの起動時間の最小化

- 14.2.3 必須ネットワーク帯域幅の削減

- 14.2.4 パフォーマンスを改善するためのその他の方法

- 14.3 Web CacheとFormsの統合

A Oracle Forms Servicesのトラブルシューティング

- A.1 インストールの確認

- A.1.1 Web Form Testerの使用

- A.1.2 ポート情報の確認

- A.2 FRM-XXXXXエラーの診断

- A.2.1 Oracle Formsアプレット

- A.3 スタック・トレースを使用したサーバーのクラッシュの診断

- A.3.1 スタック・トレースについて

- A.3.2 スタック・トレースの構成と使用

- A.4 クライアント・クラッシュの診断

- A.4.1 クライアント・クラッシュの診断について

- A.4.2 ハングしているアプリケーションの診断

- A.5 Forms TraceとServlet Logging Tools

- A.6 メモリーの問題の解決

- A.6.1 Javaのメモリーの使用方法

- A.6.2 初期Javaヒープの設定

- A.6.3 メモリー・リークについて

- A.6.4 キャッシングによるパフォーマンスの向上

- A.7 トラブルシューティングのヒント

- A.8 さらに調査が必要な場合

B Java Plug-inの構成

- B.1 サポートされる構成

- B.2 レガシー・ライフサイクルの動作と構成の要件

- B.2.1 構成の要件

C 構成ファイルの場所とサンプル

- C.1 Forms構成ファイルの場所

- C.2 デフォルトのformsweb.cfg

- C.3 プラットフォーム固有のdefault.envファイル

- C.3.1 デフォルトのWindows用default.envファイル

- C.3.2 デフォルトのUNIXおよびLinux用default.envファイル

- C.4 base.htmファイルとbasejpi.htmファイル

- C.4.1 ベースHTMLファイル内のパラメータと変数

- C.4.2 デフォルトのbase.htmファイル

- C.4.3 デフォルトのbasejpi.htmファイル

- C.5 web.xml

- C.5.1 デフォルトのweb.xmlファイル

- C.6 weblogic.xml

- C.7 forms.conf

- C.7.1 デフォルトのforms.conf

- C.8 Registry.dat

- C.8.1 Registry.dat

- C.9 デフォルトのjvmcontroller.cfg

- C.10 デフォルトのwebutil.cfg

- C.11 デフォルトのwebutilbase.htm

- C.12 デフォルトのwebutiljpi.htm

索引

はじめに

対象読者

このマニュアルは、Oracle Fusion Middlewareを使用してOracle FormsアプリケーションをWebに配布するソフトウェア開発者を対象としています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/us/corporate/accessibility/index.html)を参照してください。

Oracle Supportへのアクセス

Oracleサポート・サービスでは、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/support/contact.html)か、聴覚に障害のあるお客様は(http://www.oracle.com/accessibility/support.html)を参照してください。

関連ドキュメント

詳細は、次のマニュアルを参照してください。

- Oracle Fusion Middlewareリリース・ノートfor Linux x86

- Oracle Fusion Middlewareリリース・ノートfor Microsoft Windows

- Oracle Forms Oracle Forms 6iからOracle Forms 11gへのアップグレード

- OTNにあるOracle Fusion Middlewareのライブラリ

- Oracle Forms Builderのオンライン・ヘルプ(Oracle Forms Developerの「ヘルプ」メニューから利用可能)

また、http://www.oracle.com/technology/products/forms/では、ホワイト・ペーパーなどの各種リソースを提供しています。

表記規則

本文では、次の表記規則を使用します。

表記規則

意味

太字

太字は、操作に関連するグラフィカル・ユーザー・インタフェース要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック

イタリックは、特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、パラグラフ内のコマンド、URL、例に記載されているコード、画面に表示されるテキスト、または入力するテキストを示します。

1 Oracle Forms Servicesの新機能

この章では、Oracle Fusion Middleware Forms Services 11g リリース1の機能と改良点について説明します。

- 第1.1項「JavaScriptの統合」

- 第1.2項「Javaサポートの拡張」

- 第1.3項「サーバー側イベントのサポート」

- 第1.4項「プロキシ・ユーザーのサポート」

- 第1.5項「PL/SQLトレース」

- 第1.6項「Oracle Diagnostics and Logging (ODL)との統合」

1.1 JavaScriptの統合

Oracle Forms 11gで提供されるようになったJavaScriptの統合を使用すると、JavaScriptでFormsアプレットをコールしたり、FormsアプレットでJavaScriptを実行できます。

詳細は、第6章「Oracle FormsとJavaScriptの統合」を参照してください。

1.2 Javaサポートの拡張

プラガブルなJavaコンポーネント(PJC)を拡張して、Oracle Forms Servicesでイベントを発生させることができます。

詳細は、第7項「Javaサポートの拡張」を参照してください。

1.3 サーバー側イベントのサポート

Oracle Forms Servicesは、Forms Servicesの外部で発生した外部イベントをサポートします。イベントは、データベースから、またはOracleアドバンスト・キューイングを通じてBPELから発生させることができます。

詳細は、第8章「サーバー・イベントでの作業」を参照してください。

1.4 プロキシ・ユーザーのサポート

このリリースのOracle Formsでは、Forms開発者はユーザーがプロキシ・ユーザーとしてデータベースに接続されるように指定できます。シングル・データベース・ユーザーは接続権限のみを持つユーザーとなります。これにより、データベースの自動監査機能を維持しながら、プロセスでのセキュリティ向上とユーザー管理の簡素化を実現できます。

詳細は、第9.6項「プロキシ・ユーザーの有効化と構成」を参照してください。

1.5 PL/SQLトレース

Oracle Forms Services 11gでは、コールされたPL/SQLプロシージャおよび関数の名前とパラメータのロギングを有効にして、出力をForms Traceで表示できます。

詳細は、第12章「トレースと診断」を参照してください。

1.6 Oracle Diagnostics Logging (ODL)との統合

Oracle Diagnostic Logging (ODL)は、Oracle Fusion Middlewareの機能の1つで、J2SEロギング・フレームワークを拡張したものです。ODLによって、Oracle Fusion Middlewareでの問題の診断とログ・ファイルの管理が容易になります。

詳細は、第12.6項「Oracle Diagnostics Loggingのツールの利用」を参照してください。

2 Oracle Forms Servicesの概要

この章ではOracle Formsについて説明します。Oracle Formsの開発およびデプロイメント環境の概要を説明し、Oracle Fusion Middlewareの関連するコンポーネントの詳しい情報を記述したリファレンスを提供します。

この章には、次の項が含まれています。

- 第2.1項「Oracle Forms」

- 第2.2項「Oracle Database」

- 第2.3項「Oracle WebLogic Server」

- 第2.4項「Oracle Fusion Middleware」

- 第2.5項「Oracle Formsのインストールとアップグレードについて」

- 第2.6項「Oracle Forms Servicesのアーキテクチャ」

2.1 Oracle Forms

Oracle FormsはOracle Fusion Middlewareのコンポーネントです。Oracle Formsを使用してFormsアプリケーションを開発および配布します。Formsアプリケーションは、効率的かつ密接に連結してOracle Databaseにアクセスするためのユーザー・インタフェースを提供します。JavaとWebのサービスにアプリケーションを統合して、サービス指向アーキテクチャ(SOA)を活用できます。

Oracle Formsは、次の内容で構成されています。

- Oracle Forms Developer: Formsアプリケーションの開発とコンパイルに使用します。

- Oracle Forms Services: アプリケーションの配布に使用するサーバー・コンポーネントです。

2.1.1 Oracle Forms Developer

Oracle Forms Developerは、Oracle Databaseにアクセスしてデータを提供できるフォームの開発に使用します。アプリケーションの迅速な開発を実現するウィザードとユーティリティが用意されています。ソース形式(*.fmb)を作成し、実行可能ファイル(*.fmx)にコンパイルします。Formsアプリケーションは、Formsランタイム・プロセスで実行(解釈)されます。

Oracle Forms Developerの詳細は次のドキュメントを参照してください。

- Oracle Forms Builderのオンライン・ヘルプ: Oracle Forms Builderで利用できます。Oracle Forms Developerを使用してFormsアプリケーションを開発、コンパイルする方法に関する情報が得られます。

- Oracle Forms 6iからOracle Forms 11gへのアップグレード: Oracle Forms Developerの非推奨となった機能と、Formsアプリケーションのアップグレード手順について説明しています。

2.1.2 Oracle Forms Services

Oracle Forms Servicesは、Formsアプリケーションを複数層環境に配布するために最適化された包括的なアプリケーション・フレームワークです。Webの使用やアクセスが簡単なことを利用し、Webに単なる静的な情報公開メカニズムを超えた、複雑で動的なアプリケーションをサポートできる環境としての機能を与えます。

Oracle Forms Developerで設計、開発したFormsアプリケーションは、Oracle Fusion Middlewareに配布されます。これらのアプリケーションは中間層で動作します(図2-2を参照)。ユーザー・インタフェースは、クライアントのブラウザで表示するJavaアプレットとしてクライアント層に置かれます。

このガイドでは、構成ファイルと、Formsアプリケーションの配布をカスタマイズするために使用できる環境変数について説明します。また、パフォーマンス、ロギング、および配布の監視についても取り上げます。Oracle Fusion MiddlewareのEnterprise Manager Controlを使用して、構成ファイルと環境変数の管理および配布の監視が可能です。

2.1.3 Oracle Forms ServicesでのFormsアプリケーションの起動方法

ユーザーが最初にOracle Formsアプリケーションを起動すると(アプリケーションのURLへのリンクをクリックすることで)、ベースHTMLファイルがFormsサーブレットによって読み取られます。ベースHTMLファイル内の変数(%variablename%)は、formsweb.cfgファイルに指定された適切なパラメータ値によって置換され、URLリクエストがある場合はその問合せパラメータの値によって置換されます。

変更が必要な場合は、Oracle Enterprise Manager Fusion Middleware Controlで容易に構成ファイルを変更できます。第2.6項「Oracle Forms Servicesのアーキテクチャ」では、一般的なFormsアプリケーションの配布および実行に関連するプロセスについて説明します。

2.2 Oracle Database

Oracle Databaseは、RDBMSの最新バージョンです。Oracle Real Application Clustersの無限のスケーラビリティと業界随一の信頼性、スタンバイ・データベース・テクノロジの利点を採り入れた新しい高可用性テクノロジ(Oracle Data Guard)、ビルトインOLAP、データ・マイニング機能、抽出、変換およびロード(ETL)機能など数多くの最新機能が盛り込まれています。

Oracle Databaseの詳細は、http://www.oracle.com/technology/documentation/index.htmlを参照してください。

2.3 Oracle WebLogic Server

Oracle WebLogic Server 11g リリース1は、稼働コストの低減、パフォーマンスの向上およびOracleアプリケーション群のサポートのための新しい機能を支援するエンタープライズJava EEアプリケーションの構築と配布を目的としたアプリケーション・サーバーです。

作成するのがステージング環境、本番環境またはテスト環境のいずれであっても、最初にWebLogicドメインを作成します。WebLogicドメインには、WebLogic Serverのインスタンスが含まれ、その1つが管理サーバーとして構成されます。管理サーバーは、ドメインの構成データを保持します。管理サーバーにアプリケーションをデプロイできますが、管理対象サーバーを作成して、管理対象サーバーにアプリケーションをデプロイすることをお薦めします。Oracle WebLogic Serverの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverの紹介』を参照してください。

構成の作業では、Formsの管理対象サーバーが作成されます(WLS_FORMS)。WLS_FORMSの詳細は、第5.1項「Oracle WebLogic管理対象サーバーについて」を参照してください。

2.4 Oracle Fusion Middleware

Oracle Fusion Middlewareは、Webサーバー、アプリケーション・サーバー、コンテンツ管理システムで構成されるほか、ソフトウェア・アプリケーションの開発、配布および管理を全面的にサポートする各種開発者向けツールを備えています。コンポーネントとしてOracle Forms Services、Oracle WebLogic ServerおよびOracle Enterprise Manager Fusion Middleware Controlがあり、ともにインターネット・コンピューティングの利点を最大限に実現するテクノロジを提供します。

Oracle Formsは、Oracle Enterprise Manager Fusion Middleware Controlを使用して管理および監視できます。

Oracle Fusion Middlewareの総合的な概要、コンポーネントのリストおよび概念的な情報は、次のマニュアルを参照してください。

- Oracle Fusion Middlewareコンセプト・ガイド

- Oracle Fusion Middleware管理者ガイド

2.5 Oracle Formsのインストールとアップグレードについて

Oracle Formsは、Oracle Portal、Forms、ReportsおよびDiscoverer 11g (11.1.1.4.0)のDVDからインストールします。インストーラでは、これらの製品をすべて構成できるほか、そのうちのいくつかを選択して構成することもできます。Oracle Formsのインストールの詳細は、次のガイドを参照してください。

- Oracle Fusion Middlewareインストレーション・プランニング・ガイド

- Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererインストレーション・ガイド

- Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererクイック・インストレーション・ガイド

アップグレードの詳細は、次のドキュメントを参照してください。

- Oracle Fusion Middlewareアップグレード・プランニング・ガイド

- Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererアップグレード・ガイド

Forms 6iからForms 11gへのアップグレードの詳細は、第13章「Oracle Forms Services 11gへのアップグレード」を参照してください。

変更された機能または非推奨となった機能については、『Oracle Forms Oracle Forms 6iからOracle Forms 11gへのアップグレード』を参照してください。

注意:

Oracle Formsをインストールした後は、次のオプションを使用して開発専用環境のRAM使用量を節減できます。

- WLS_REPORTS(または実行している他の管理対象サーバー)を停止してもかまいません。FormsアプリケーションのテストではWLS_FORMSのみが必要です。

- デフォルトでは、WLS_FORMSで、formsappとformsconfigmbeansが実行されています。これらのアプリケーションを管理サーバーで実行するよう再度ターゲットに設定して、Forms管理対象サーバー(WLS_FORMS)を停止できます。

2.6 Oracle Forms Servicesのアーキテクチャ

図2-1に、Forms Servicesを構成する3層アーキテクチャを示します。

- 図の最上部に示されているクライアント層には、アプリケーションを表示するWebブラウザが含まれます。このブラウザのほか、Java Runtime Environment (JRE)とJava Plug-In (JPI)が必要です。詳細は、付録B「Java Plug-Inの構成」とhttp://java.sun.com/reference/docs/を参照してください。

- 図の中央に示されている中間層は、アプリケーション・ロジックとサーバー・ソフトウェアが格納されるアプリケーション・サーバーです。

- 図の最下部に示されているデータベース層は、データベース・サーバー・ソフトウェアが格納されるデータベース・サーバーです。

図2-1 Oracle Forms Servicesのアーキテクチャ

2.6.1 Oracle Forms Servicesのコンポーネント

Oracle Forms Servicesは、複雑なトランザクション型のFormsアプリケーションをイントラネットやインターネットなどのネットワーク上に配布する、中間層のアプリケーション・フレームワークです。開発者は、Forms Developerを使用してFormsアプリケーションを作成し、Forms Servicesを使用して作成したアプリケーションを配布します。また、開発者は従来のクライアント/サーバー型アプリケーションを、3層のアーキテクチャに移行することもできます。3層アーキテクチャへの移行では、アプリケーション・コードの小規模な変更が必要になることもあります。

図2-2に示すとおり、フォームを実行するための3層構成は次の内容で構成されています。

- 図の最上部に示されているクライアントは、クライアント層に常駐します。

- 図の中央に示されているFormsリスナー・サーブレットは、中間層に常駐します。

- Formsランタイム・プロセスも中間層に常駐します。

図2-2 フォームを実行する3層構造

2.6.1.1 Formsリスナー・サーブレット

Formsリスナー・サーブレットは、JavaクライアントとFormsランタイム・プロセス間でブローカとしての役割を果たします。これは、Javaクライアント・プロセスから接続リクエストを受け取ると、Javaクライアント・プロセスにかわってFormsランタイム・プロセスを開始します。

図2-3は、クライアントがHTTPリクエストを送信し、Forms ServicesからHTTPレスポンスを受信する仕組みを示しています。Oracle Forms ServicesはFormsリスナー・サーブレットを使用して、Formsランタイム・プロセスの開始と終了、Formsランタイム・プロセスとの通信を行います。この図では、クライアントは左側に示されています。図の中央に示されているHTTPリスナーは、クライアントのネットワーク・エンドポイントとしての役割を果たし、他のサーバー・マシンやポートがファイアウォールで公開されないようにします。

図の右側に示されているFormsランタイム・プロセスは、特定のFormsアプリケーションに含まれているコードを実行します。Formsリスナー・サーブレットは、クライアントごとにFormsランタイム・プロセスの生成を管理し、クライアントとそれに対応するFormsランタイム・プロセス間のネットワーク通信を管理します。

注意:

Formsリスナー・サーブレットは、Oracle Fusion Middlewareのインストール・プロセスで構成されます。

図2-3 Formsリスナー・サーブレットを使用したアーキテクチャ

2.6.1.2 Formsランタイム・プロセス

Formsランタイム・プロセスは次の2つの役割を果たします。クライアント・ブラウザと通信する場合は、クライアント・ブラウザからのリクエストを処理するサーバーとしての役割を果たし、メタデータをクライアントに送信してユーザー・インタフェースを伝えます。データベース・サーバーと通信する場合は、リクエストされたデータをデータベースに問い合せるクライアントとしての役割を果たします。

アプリケーション・サーバーには、Oracle Formsセッションごとに1つのOracle Formsランタイム・プロセスが存在します。Oracle Formsは実際にはこのプロセスで実行され、アプリケーション・ロジックと処理はこのプロセスにより管理されます。また、これは、データベース接続の管理、データの問合せと更新、フォーム内の任意のPL/SQLの実行、トリガーの実行なども行います。クライアント/サーバー・モードで実行するのに使用されたのと同じフォーム、メニューおよびライブラリ・ファイルを使用します。

Formsランタイム・プロセスには、アプリケーションでJavaを実行するためのJava仮想マシン(JVM)も含まれています。最適化のために、このJVMはFormsアプリケーションでJava Importerが使用される場合に起動します。10gでJVMプーリング機能を使用するのはJava Importerのみです。11gでは、Formsランタイム・プロセスがReportsをコールするときに別のJVMを作成することはなくなりました。かわりに、フォームにJVMコントローラを構成しておくと、そのフォームはReportsをコールするときに共有JVMを使用できます。これにより、メモリー消費を削減できるので、サーバーではより多くのリソースを解放できます。JVMの使用とプーリングの管理の詳細は、第10章「Java仮想マシンの構成と管理」を参照してください。

3 Oracle Formsアプリケーションの配布の基本

この章では、Forms ServicesがOracle Fusion Middlewareで実行される仕組み、およびFormsアプリケーションを配布する際の手順について説明します。 また、基本的な構成ファイルについても説明します。インストールの完了後、この章に記載されている情報を使用して、初期構成の変更や必要な変更を行うことができます。

この章には、次の項が含まれています。

- 第3.1項「Oracle Forms Servicesのアクション」

- 第3.2項「構成ファイル」

- 第3.3項「アプリケーションの配布」

- 第3.4項「クライアント・ブラウザのサポート」

3.1 Oracle Forms Servicesのアクション

この項では、Formsサーブレットを使用して初期のHTMLページを生成することを前提に、Forms ServicesがOracle Fusion Middlewareで実行される仕組みと、構成ファイルが使用される仕組みについて説明します。ここでは、Webサーバーがexample.comと呼ばれるコンピュータのポート8888で実行されていると想定します。また、Oracle Fusion Middlewareのインストール・プロセス時に作成した標準構成には、一切変更を行っていないことを前提にします。

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

1. ユーザーはWebブラウザを起動し、次のようなURLを指定します。
http://example.com:8888/forms/frmservlet?config=myapp&form=hrapp

この例では、実行されるトップ・レベルのフォーム・モジュールはhrappで、使用する構成セクションはmyappです。

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

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

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

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

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

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

- ベースHTMLファイルを読み取り、次のように変数を置換した後、コンテンツをHTMLページとしてユーザーのWebブラウザに送り返します。
Formsサーブレットは変数(%myParam%など)を検出すると、一致するURL問合せパラメータ(&myParam=xxxなど)を検索し、そのパラメータが見つからないときはformsweb.cfgファイル内で一致するパラメータを検索します。一致するパラメータが見つかると、変数(%myParam%)はそのパラメータの値で置換されます。

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

5. FormsサーブレットがどのベースHTMLファイルを選択したかに応じて、Webブラウザに送り返されるHTMLページには、Formsアプレット(シン・クライアント)を起動するapplet、objectまたはembedタグが含まれます。Formsクライアントは、Sun社のJava Plug-inが提供するJVM環境で実行されます。

6. Formsアプレットを起動するには、そのJavaコードを最初にロードしておく必要があります。アプレットの場所は、アプレットのコードベースとアーカイブ・パラメータで指定されます。
/forms/javaのweblogic.xmlファイルにある仮想パスの定義により、Webサーバーからアプレット・コードをロードできます。

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

7. Oracle Forms Servicesアプレットが実行されると、URL http://example.com:8888/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環境設定に指定されているディレクトリのいずれかに格納されている必要があります。このディレクトリをformsweb.cfgで指定することもできます(例: form=c:\<path>\myform)。

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

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

- ユーザーがWebブラウザを終了した場合。この場合、保存されていない更新は失われます。

3.2 構成ファイル

この項では、Formsアプリケーションの構成に使用する基本ファイルについて説明します。構成の詳細は、第4章「Forms Servicesの構成と管理」を参照してください。

この項は、次の小項目に分かれています。

- 第3.2.1項「Oracle Forms構成ファイル」

- 第3.2.2項「Forms Java EEアプリケーションのデプロイメント・ディスクリプタ」

- 第3.2.3項「Oracle HTTP Listenerの構成ファイル」

- 第3.2.4項「標準フォントとアイコン・ファイル」

- 第3.2.5項「ベースHTMLファイル」

- 第3.2.6項「WebUtil構成ファイル」

注意:

ファイルの場所は、DOMAIN_HOMEとORACLE_INSTANCEディレクトリに関連して指定されます。Windowsでは、フォワードスラッシュをバックスラッシュに置き換える必要があります。Middlewareホーム、Oracleホーム、Oracleインスタンスなど、使用される用語の詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。

3.2.1 Oracle Forms構成ファイル

Oracle Forms構成ファイルを使用すると、Formsのパラメータを指定できます。これらのファイルは、Oracle Enterprise Manager Fusion Middleware Controlで管理できます。これらの構成ファイルには次のものが含まれます。

- default.env

- formsweb.cfg

- ftrace.cfg

注意:

Forms構成ファイルとその格納場所のリストは、表C-1を参照してください。

3.2.1.1 default.env

場所: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_SERVER>/applications/<appname>_<appversion>/config

通常、この場所は$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/configです。

このファイルにはFormsランタイムの環境設定が含まれています。UNIXおよびLinuxの場合、default.envにはPATHとLD_LIBRARY_PATHが記述されています。

default.envファイルのサンプルは、付録C「プラットフォーム固有のdefault.envファイル」を参照してください。

default.envの詳細は、第4章「環境変数の管理」を参照してください。

3.2.1.2 formsweb.cfg

場所: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_SERVER>/applications/<appname>_<appversion>/config

通常、この場所は$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/configです。

このForms構成ファイルには、次の内容が含まれています。

- Formsランタイムのコマンドライン・パラメータの値、使用する環境ファイルの名前(envFile設定)。

- インストール時に設定するサーブレット構成パラメータのほとんどの設定。変更が必要な場合は、これらのパラメータをカスタマイズできます。

base.htmファイル内の変数(%variablename%)は、formsweb.cfgファイルに指定された適切なパラメータ値によって置換されます。URLリクエストがある場合は、その問合せパラメータの値によって置換されます。

formsweb.cfgファイルのサンプルは、付録C「デフォルトのformsweb.cfg」を参照してください。

formsweb.cfgの詳細は、第4章「Fusion Middleware Controlによるパラメータの構成」を参照してください。

3.2.1.3 ftrace.cfg

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server

このファイルを使用して、Forms Traceを構成します。Forms Traceは、Oracle Formsの以前のリリースで利用できたForms Runtime Diagnostics (FRD)とPerformance Event Collection Services (PECS)の機能にかわるものです。Forms Traceは、フォームでの実行パス(たとえば、ユーザーがフォームの使用時に行った手順など)をトレースします。

ftrace.cfgの詳細は、第12章「トレースと診断」を参照してください。

3.2.2 Forms Java EEアプリケーションのデプロイメント・ディスクリプタ

Forms Services Java EEアプリケーションEAR (Enterprise Archive)ファイルformsapp.earは、Oracle Formsの構成時にWLS_FORMS (Oracle WebLogic管理対象サーバー)に配布されます。

これにより、$DOMAIN_HOME /servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string1>/APP-INFディレクトリの下に次のようなディレクトリ構造が作成されます。

./APP-INF
./APP-INF/lib
./APP-INF/lib/frmconfig.jar
./APP-INF/lib/frmconfigmbeans.jar
./META-INF
./META-INF/application.xml
./META-INF/jazn-data.xml
./META-INF/jps-config.xml
./META-INF/mbeans.xml
./META-INF/weblogic-application.xml

$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string2>/war/WEB-INFディレクトリの下には、次のようなディレクトリ構造が作成されます。

./WEB-INF
./WEB-INF/lib
./WEB-INF/lib/frmsrv.jar
./WEB-INF/web.xml
./WEB-INF/weblogic.xml

注意:

$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1のサブディレクトリは、Oracle WebLogic Serverのnostageデプロイメント・プロセスで作成されます。これらのディレクトリにはランダムな文字列の名前が割り当てられます。たとえば、e18uoiやwb1h9eなどのディレクトリ名になります。

デプロイメント・ディスクリプタ:

- application.xmlとweblogic-application.xmlでは、EARファイルの構造が定義されます。

- web.xmlでは、FormsサーブレットとFormsリスナー・サーブレット用に、別名frmservletとlservletが定義されます。

- weblogic.xmlでは、コンテキスト・パラメータとユーザー定義の仮想ディレクトリ・マッピングを定義します。

web.xmlファイルのサンプルは、付録C「web.xml」を参照してください。

3.2.3 Oracle HTTP Listenerの構成ファイル

この項では、Oracle Forms Services用のOracle HTTP Listenerの構成に使用するファイルについて説明します。

場所: $ORACLE_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconf

forms.confは、Oracle Forms Services用のOracle HTTP Listener構成ファイルです。forms.confでは、Forms Servicesアプリケーションが配布される管理対象サーバーのWebLogicハンドラ・マッピングが定義されます。

3.2.3.1 forms.confの編集について

forms.confは、Oracle HTTP Serverディレクティブ・ファイルです。Oracle Fusion Middlewareでは、$ORACLE_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconfのOracle HTTP Server構成ディレクトリにforms.confファイルがあります。

カスタムOracle HTTP Serverディレクティブをforms.confに追加した場合、これが存在するOracle HTTP Serverノードを再起動する必要があります。

forms.confの詳細は、付録C「forms.conf」を参照してください。

3.2.3.2 別のホストでのOHSの構成

別のホストでOracle HTTP Serverを構成するには、次のタスクを実行します。

1. Formsをホストする層からOHSをホストする層にForms OHSディレクティブ・ファイルforms.conf.backupをコピーし、その名前をforms.confに変更します。
コピー元の場所(Forms層):

$ORACLE_INSTANCE/config/FormsComponent/forms/server/forms.conf.backup

コピー先の場所(OHS層):

$ORACLE_INSTANCE/config/OHS/<OHS Component Instance>/moduleconf/forms.conf

2. 適切な管理対象サーバー・クラスタを指定するか、デフォルト・フォームのJava EEアプリケーションのコンテキスト・ルート(/forms)に対する管理対象サーバーを指定します。
クラスタ・エントリを指定する例:

<Location /forms>
SetHandler weblogic-handler
WebLogicCluster    <HOSTNAME>:<WLS_PORT>
DynamicServerList OFF
</Location>

非クラスタ・エントリを指定する例:

<Location /forms>
SetHandler weblogic-handler
WebLogicHost = <HOSTNAME>
WebLogicPort = <PORT>
</Location>

3. ユーザーが追加したディレクティブで参照されるディレクトリが、OHS層からアクセス可能であることを確認します。

4. OHS層のOHSインスタンスを再起動します。

3.2.4 標準フォントとアイコン・ファイル

Registry.datは、Forms Servicesで使用されるデフォルトのフォント、フォント・マッピングおよびアイコン情報を含んでいるファイルです。

場所: $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms/registry/oracle/forms/registry

デフォルトのRegistry.datファイルのサンプルは、付録C「Registry.dat」を参照してください。

Registry.datの詳細は、第4章「Forms Servicesで使用するフォント、アイコンおよびイメージの配置」を参照してください。

3.2.5 ベースHTMLファイル

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server/

base.htmとbasejpi.htmは、Oracle Formsアプリケーションの起動に使用するHTMLページを生成するときに、Formsサーブレットによりテンプレートとして使用されます。

構成の変更は、これらのファイルを編集するのではなく、Enterprise Managerを使用してformsweb.cfgファイルで行うことをお薦めします。ベースHTMLファイルを変更するには、ユーザー自身のバージョンを作成し、設定を適切に変更してformsweb.cfgファイルからそのユーザー・バージョンのファイルを参照します。

ベースHTMLファイルのサンプルは、付録C「base.htmファイルとbasejpi.htmファイル」を参照してください。

3.2.6 WebUtil構成ファイル

この項では、実行時にWebUtilを構成するために使用するファイルについて説明します。設計時に使用するWebUtilの詳細は、Oracle Forms Developerのオンライン・ヘルプを参照してください。WebUtil構成ファイルには次のものが含まれます。

- デフォルトのwebutil.cfg

- デフォルトのwebutilbase.htm

- デフォルトのwebutiljpi.htm

3.2.6.1 デフォルトのwebutil.cfg

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server

このファイルには、次のようなWebUtilの構成設定がすべて示されます。

- ロギング・オプション

- インストール・オプション

- ファイルのアップロードおよびダウンロードのオプション

- ロギング・エラーやログ・メッセージに対するサーバー・サイドのロギング・オプション

webutil.cfgファイルのサンプルは、付録C「デフォルトのwebutil.cfg」を参照してください。

3.2.6.2 デフォルトのwebutilbase.htm

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server/

これは、Webでフォームを実行するデフォルトのベースHTMLファイルです。汎用のAPPLETタグを使用して、WebUtilに証明書を登録するFormsアプレットを含めます。

webutilbase.htmファイルのサンプルは、付録C「デフォルトのwebutilbase.htm」を参照してください。

3.2.6.3 デフォルトのwebutiljpi.htm

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server/

これはJDK Java Plug-inを使用して、Webのフォームを実行するデフォルトのベースHTMLファイルです。このファイルは、たとえば、UNIX上でFirefoxを使用してWebのフォームを実行する場合やWebUtilの証明書を登録する場合に使用します。

webutiljpi.htmファイルのサンプルは、付録C「デフォルトのwebutiljpi.htm」を参照してください。

3.3 アプリケーションの配布

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が実行される仕組みの詳細は、第3.1項「Oracle Forms Servicesのアクション」を参照してください。

3.3.1 アプリケーションの配布

インストーラで設定されたデフォルトのパラメータを使用して基本フォームを配布する手順は次のとおりです。

1. Forms Developerでアプリケーションを作成し、保存します。
.fmbファイルは、Forms Developer以外ではオープンできない設計時ファイルです。.fmxファイルは.fmbをコンパイルしたときに作成されるランタイム・ファイルで、Webへの配布に使用します。

Forms Developerの詳細は、Forms Developerの「ヘルプ」メニューを参照してください。

2. 目的のアプリケーション・モジュールにOracle Forms Servicesからアクセスできるようにformsweb.cfgを変更します。このファイルは、Fusion Middleware Controlの「Web構成」ページで編集します。詳細は、第4.2項「Forms Servicesの構成」を参照してください。
表3-1は、form=hrapp.fmxというフォーム・モジュールを持つアプリケーションmy_applicationの構成を示しています。

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

構成セクション名

Formsモジュール名の値

my_application

hrapp.fmx

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

注意:

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

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

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

表3-2 環境変数の値の例

環境変数の名前

環境変数の値

NLS_LANG

NLS_LANG=GERMAN_GERMANY.WE8ISO8859P1

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

5. 次のように、URLで記述したアプリケーションの名前を入力します。
http://example.com:8888/forms/frmservlet?

exampleはコンピュータのホスト名、8888はHTTPリスナーで使用するポートです。

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

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

3.3.2 パラメータの指定

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

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

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

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

パラメータ名

パラメータ値

baseHTML

mybase.htm

baseHTMLjpi

mybasejpi.htm

form

hrapp.fmx

userid

scott/tiger@orcl

注意:

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

注意:

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

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

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

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

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

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

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

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

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

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

注意:

URLで指定したパラメータは、構成セクションで設定したパラメータをオーバーライドします。詳細は、第4章「アプリケーションのURLセキュリティの管理」を参照してください。

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

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

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

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

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

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

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

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

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

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

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

たとえば、ランフォーム・アプリケーションにユーザー・パラメータparam1とparam2が指定されており、これらのパラメータに「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デリミタが使用され、ランフォーム・パラメータの値に%が含まれている場合は、この推奨事項を無視することもできます)。

3.3.4.2 前リリースの動作

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

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

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

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

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

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

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

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

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

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

3.3.4.5 静的HTMLページの考慮事項

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

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

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

表3-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">

3.3.5 リスナー・サーブレット管理ページへのアクセス

次の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>

3.4 クライアント・ブラウザのサポート

Oracle Formsアプリケーションは、Sun社のJava Plug-inを使用するとWeb上で表示できます。今後のパッチのリリースによっては、他の仮想マシンもサポートできます。

サポートされている最新のプラットフォームなど、クライアント・ブラウザ・サポートの詳細は、Forms Developerのメニューから「ヘルプ」、「OTN上のForms」の順に選択し、クライアント・プラットフォームに関する指示書を参照してください。

http://www.oracle.com/technology/software/products/ias/files/fusion_certification.htmlのOTNにも、証明に関する情報があります。

3.4.1 構成パラメータとベースHTMLファイルをクライアント・ブラウザに連結する方法

ユーザーがWeb対応のアプリケーションを起動すると(アプリケーションのURLへのリンクをクリックすることで)、Formsサーブレットは次の処理を実行します。

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

2. 表3-5に示すように、適切なベースHTMLファイルを選択します。

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

検出されたブラウザ

使用されるベースHTMLファイル

Internet Explorer

basejpi.htm

Mozilla FireFox 3.0

basejpi.htm

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

base.htm

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

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

3.4.2 Mozilla 3.xでのForms Single-Sign On

Mozilla 3.xでFormsとSingle Sign-Onを使用する場合は、OracleサイトでCookieを必ず有効にしておきます。Cookieを有効にするには、次の手順を実行します。

1. Mozilla Firefoxを開いて「ツール」メニューを選択します。

2. 「オプション」→「プライバシ」を選択します。

3. 「サイトから送られてきたCookieを保存する」ボックスを選択します。
他のブラウザではこの手順を実行する必要はありません。

Mozillaでのデフォルト・ブラウザ設定の詳細は、http://www.mozilla.comを参照してください。

4 Forms Servicesの構成と管理

この章には、次の項が含まれています。

- 第4.1項「Fusion Middleware ControlとOracle Forms」

- 第4.2項「Forms Servicesの構成」

- 第4.3項「環境変数の管理」

- 第4.4項「ユーザー・セッションの管理」

- 第4.5項「アプリケーションのURLセキュリティの管理」

- 第4.6項「ユーザー独自のテンプレートHTMLファイルの作成」

- 第4.7項「Forms Servicesで使用するフォント、アイコンおよびイメージの配置」

- 第4.8項「言語検出の有効化」

- 第4.9項「キー・マッピングの有効化」

4.1 Fusion Middleware ControlとOracle Forms

Fusion Middleware Controlは、デフォルトのブラウザから起動するWebベースのツールです。デフォルトのURLは次のとおりです。

http://<example.com>:7001/em

WebベースのOracle Enterprise Manager Fusion Middleware Controlを使用して、次の操作を実行できます。

- Forms Servicesインスタンスのメトリックを監視する。詳細は、第14.1.1.1項「Forms Servicesインスタンスの監視」を参照してください。

- ユーザー・セッションを管理する。詳細は、第4.4項「ユーザー・セッションの管理」を参照してください。

- Forms Servicesインスタンスのパラメータを構成する。詳細は、第4.2.2項「Fusion Middleware Controlによるパラメータの構成」を参照してください。

- Forms Traceを構成してトレースのメトリックを監視する。詳細は、第12.2項「Forms Traceの有効化と構成」および第12.6項「Oracle Diagnostics Loggingのツールの利用」を参照してください。

- 複数の環境ファイルを構成する。詳細は、第4.3項「環境変数の管理」を参照してください。

- JVMプーリングを構成して使用する。詳細は、第10.8項「Fusion Middleware ControlからのJVMプーリングの管理」を参照してください。

4.1.1 Fusion Middleware ControlによるForms Servicesへのアクセス

Fusion Middleware Controlを使用してFormsインスタンスの大部分の管理タスクを実行するには、最初にFusion Middleware Controlで「Forms」ホームページにナビゲートします。

Fusion Middleware Controlで「Forms」ホームページにナビゲートするには:

1. 管理するFormsインスタンスが含まれるFusion Middleware Controlホームページにナビゲートします。
Enterprise Manager Fusion Middleware Controlの使用方法については、『Oracle Fusion Middleware管理者ガイド』のOracle Fusion Middleware管理ツールの概要に関する説明を参照してください。

2. 「ファーム」ペインで、「Fusion Middleware」フォルダをクリックし、Formsインスタンスのリンクをクリックします。これにより、「Forms」ホームページ(図4-1)がFusion Middleware Controlに表示されます。

図4-1 「Forms」ホームページ

3. 「Forms」ホームページには、Oracleインスタンスに配布されているFormsアプリケーションに関する情報があります。表4-1に、「Forms」ホームページに表示される情報を示します。

表4-1 「Formsデプロイメント」のフィールド

フィールド

説明

Formsアプリケーション

Oracle WebLogic Serverインスタンスに配布されているFormsアプリケーションの名前をリストします。この名前をクリックすると、「Formsアプリケーション」ホームページが表示されます。

WLSインスタンス

アプリケーションが配布されているOracle WebLogic Serverインスタンスの名前。

ステータス

Formsアプリケーションのステータスを示します。緑色の上矢印は、アプリケーションが実行中であることを示します。赤色の下矢印は、アプリケーションが起動されていないことを示します。

Formsセッションの数

アクティブなFormsセッションの数を表示します。

サーブレットURL

FormsサーブレットのURLを表示します。

新規接続

新規接続が有効かどうかを示します。

Web構成

「Web構成」ページへのリンク。

環境構成

「環境構成」ページへのリンク。

サーブレット・ログ

「サーブレット・ログ」へのリンク。

Fusion Middleware Controlの「Forms」メニューにアクセスするには:

1. Fusion Middleware Controlで「Forms」ホームページにナビゲートします。

2. 左上にある「Forms」をクリックします。これにより、「Forms」メニューが表示されます。表4-2に、「Forms」メニューで使用可能なメニュー選択を示します。

表4-2 「Forms」メニュー・オプション

選択肢

表示内容

ホーム

「Forms」ホームページ。このページには、Formsデプロイメントのリストとその詳細が表示されます。また、レスポンスと負荷の統計およびリソース・センターにある有用な一連のリンクもこのページに表示されます。

監視 - パフォーマンス・サマリー

「パフォーマンス・サマリー」ページ。このページには、特定のパフォーマンス・メトリック値を示す、デフォルトのパフォーマンス・グラフのセットが表示されます。

詳細は、Oracle Fusion Middlewareのパフォーマンス・ガイドを参照してください。

監視 - サーブレット・ログ

「ログ・メッセージ」ページ。Oracle Fusion Middlewareのコンポーネントでは、すべての型のイベントを記録したメッセージを収めたログ・ファイルが生成されます。

JVMコントローラ

「JVMコントローラ」ページ。このページを使用して、FormsインスタンスのJVMコントローラを管理します。

ユーザー・セッション

「ユーザー・セッション」ページ。このページを使用して、Formsインスタンスにあるユーザー・セッションを監視およびトレースします。

Web構成

「Web構成」ページ。このページを使用して、Formsアプリケーションのデプロイメントを構成し、formsweb.cfgの構成セクションと構成パラメータを管理します。

トレース構成

「トレース構成」ページ。このページを使用して、ユーザー・セッションのトレースに使用する設定を管理します。

フォントとアイコンのマッピング

「フォントとアイコンのマッピング」ページ。このページを使用して、Registry.datファイルのパラメータを変更、追加または削除します。

JVM構成

「JVM構成」ページ。このページを使用して、Formsインスタンス向けとして作成できるJVMコントローラを変更します。

環境構成

「環境構成」ページ。このページを使用して、Formsランタイムの環境設定を定義する環境変数を管理します。

OIDの関連付け/関連付けの解除

「OIDの関連付け/関連付けの解除」ページ。このページを使用して、FormsデプロイメントとOracle Internet Directoryホストとの関連付けを設定および解除して、シングル・サインオン機能を有効化します。

一般情報

「ターゲット名」、「バージョン」、「Oracleホーム」、「Oracleインスタンス」および「ホスト」の情報を表示します。

注意:

「ヘルプ」アイコンのあるページでは、「ヘルプ」アイコンをクリックしてページレベルのヘルプにアクセスできます。ページレベルのヘルプでは、そのページにある各要素を説明しています。

4.2 Forms Servicesの構成

formsweb.cfgを変更することでFormsアプリケーションのデプロイメントを構成するには、Fusion Middleware Controlの「Web構成」ページを使用します。

「Web構成」ページにアクセスするには:

1. Fusion Middleware Controlを起動します。

2. Fusion Middleware Controlのメイン・ページで、構成するForms Servicesインスタンスへのリンクをクリックします。

3. 「Forms」メニュー・リストから「Web構成」を選択します。
「Web構成」ページ(図4-2)が表示されます。

図4-2 「Web構成」ページ

4. 実行できるタスクは、表4-3および表4-4を参照してください。

注意:

ほとんどのWebアプリケーションでは、ページを移動するだけで、保存されていない変更は簡単に失われてしまいます。Fusion Middleware ControlでFormsの構成ファイルまたは環境ファイルに変更を加えた場合は、必ず保存してから他のページへ移動してください。

変更の保存に必要な時間は、変更を加えた行数によって異なります。たとえば、50行のコメントを追加した変更は、単一のエントリを削除した変更よりも保存に時間がかかります。

4.2.1 「Web構成」ページでの一般タスク

表4-3に、構成ファイルとそのパラメータのセクションで構成を編集するために実行できる一般的なタスクを示します。

表4-3 構成セクションで行う一般的なタスク

タスク

説明

コメント

類似作成

構成セクションのコピーを作成します。

既存の構成セクションのパラメータに基づいて構成セクションを作成する際に使用します。

編集

「説明の編集」ダイアログを開きます。

構成セクションの説明テキストを編集できます。

削除

構成セクションの削除時に「確認」ダイアログを開きます。

「確認」ダイアログで「削除」をクリックすると、構成セクションとその内容が無条件に削除されます。

作成

「セクションの作成」ダイアログを開きます。

構成セクションを作成します。必要な名前とオプションの説明を入力する必要があります。

表4-4に、名前を付けた構成セクション内のパラメータを変更するために実行できるタスクを示します。

表4-4 パラメータに対して行う一般的なタスク

タスク

説明

コメント

表示

構成セクション内の名前を付けたパラメータ・グループを選択するためのドロップダウン・リスト。

パラメータ・グループの表示および編集に使用します。パラメータ・グループには、次のものがあります。

- 基本

- SSO

- トレース

- プラグイン

- HTML

- アプレット

- 拡張

- すべて

詳細は、第4.2.5項「Forms構成パラメータ」を参照してください。

元に戻す

前回の変更適用以後に構成セクションでパラメータに対して指定したすべての変更を取り消して元に戻すことができます。

構成セクション内の個々の変更を元に戻すことはできません。

適用

構成セクション内のパラメータに対するすべての変更を適用およびアクティブ化します。

一度適用すると、個々のパラメータへの変更を元に戻すことはできません。

継承の非表示

親構成セクションから継承されたパラメータを表示または非表示にすることができます。

構成セクションに明示的に追加したパラメータの表示または(デフォルト・セクションから継承したものも含めて)すべてのパラメータの表示にはこれを使用します。

追加

「パラメータの追加」ダイアログを表示します。

必須の名前とオプションの値および説明に基づき、構成セクションにパラメータを追加します。

削除

パラメータを削除します。

「確認」ダイアログは表示されません。一度適用すると、個々のパラメータへの変更を元に戻すことはできません。

オーバーライド

デフォルト・セクションから継承したパラメータをオーバーライドして編集できます。

「適用」をクリックして、変更を保存し有効にします。

4.2.2 Fusion Middleware Controlによるパラメータの構成

Formsサーブレットの構成ファイル(formsweb.cfg)の説明と場所は、第3.2.1.2項「formsweb.cfg」を参照してください。

4.2.2.1 ファイルを指定するパラメータ

3つのパラメータでファイルを指定します。これらのパラメータのうち、2つのベースHTMLパラメータは適切な.htmファイルを示している必要があります。通常は、表4-5に示す値とそのパラメータがデフォルトの構成セクションに表示されます。

表4-5 ファイルを指定するデフォルトの構成パラメータ

パラメータ

値

baseHTML

base.htm

baseHTMLjpi

basejpi.htm

envFile

default.env

これらのすべてのパラメータでファイル名が指定されています。(この例のように)パスの指定がないファイルは、Formsサーブレットの構成ファイル(formsweb.cfg)と同じディレクトリ($DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config)にあると見なされます。

4.2.3 構成セクションの管理

この項では、名前を付けた構成セクションの作成、編集、複製および削除について説明します。

4.2.3.1 構成セクションの作成

formsweb.cfgに構成セクションを作成するには、Fusion Middleware Controlの「Web構成」ページを使用します。これらの構成は、フォームの実行に使用するエンド・ユーザーのURL問合せ文字列からリクエストできます。

構成セクションを作成するには:

1. Enterprise Manager Fusion Middleware Controlを起動します。

2. Fusion Middleware Controlのメイン・ページで、構成するForms Servicesインスタンスへのリンクをクリックします。

3. 「Forms」メニュー・リストから「Web構成」を選択します。

4. 「Web構成」リージョン上部の「作成」をクリックします。
「セクションの作成」ダイアログ・ボックスが表示されます。

5. 構成セクションの名前と説明を入力し、「作成」をクリックします。

注意:

この名前には、#、*などの特殊文字を含めることはできません。

構成セクションが追加されます。

たとえば、Oracleに似たルック・アンド・フィールを備えた別のブラウザ・ウィンドウでFormsを実行する構成を作成するには、sepwinというセクションを作成し、次の表4-6のパラメータを追加します。

表4-6 構成セクションに追加するサンプル・パラメータ

パラメータ

値

form

<モジュール>

separateFrame

True

lookandfeel

Oracle

たとえば、ユーザーがsepwin(または適用した名前)構成を使用するフォームを起動するには、次のURLを入力します。

http://server:port/forms/frmservlet?config=sepwin

4.2.3.2 名前を付けた構成の説明の編集

名前を付けた構成の説明(コメント)は、「Web構成」ページで編集できます。

注意:

編集する構成セクションは、事前に複製することでバックアップできます。詳細は、第4.2.3.3項「名前を付けた構成の複製」を参照してください。

名前を付けた構成の説明を編集するには:

1. 「Web構成」リージョンで、編集する構成セクションを含む行を選択します。

2. 「編集」をクリックします。

3. 「説明の編集」ダイアログが表示されます。

4. コメントのテキストを入力します。

5. 「保存」をクリックします。
「説明の編集」ダイアログ・ボックスが閉じ、変更内容が保存されます。

4.2.3.3 名前を付けた構成の複製

バックアップ用に、名前を付けた構成のコピーを作成できます。または、既存の構成や他の複製から構成セクションを作成できます。

名前を付けた構成を複製するには:

1. 「Web構成」リージョンで、「類似作成」を選択します。

2. 「類似作成」ダイアログで、「複製するセクション」メニュー・リストから複製する既存の構成セクションの名前を選択します。

3. 「新規セクション名」フィールドに構成セクションの名前を入力します。この構成セクションには、一意の名前を指定する必要があります。

4. 「作成」をクリックします。
複製元のセクションと同じパラメータ、パラメータ値およびコメントを備えたセクションが作成されます。

4.2.3.4 名前を付けた構成の削除

名前を付けた構成を削除すると、構成セクション内の情報はすべて削除されます。特定のパラメータのみを削除する方法は、第4.2.4項「パラメータの管理」を参照してください。

名前を付けた構成を削除するには:

1. 「Web構成」リージョンで、削除する構成セクションの行を選択します。

2. 「削除」をクリックします。
「確認」ダイアログが表示されます。

3. 「削除」をクリックします。
構成セクションが削除されます。

Oracle Enterprise Managerが「Web構成」ページに戻り、残りの構成が表示されます。

注意:

デフォルト構成セクションは削除できません。

4.2.4 パラメータの管理

名前を付けた構成内のパラメータを管理するには、Fusion Middleware Controlを使用します。Fusion Middleware Controlの「セクション」ペインで、パラメータの追加、編集または削除を行うことができます。

構成セクションで新しいパラメータまたはオーバーライドされたパラメータを編集するには:

1. 「Web構成」リージョンで、編集するパラメータを含む構成セクションの行を選択します。

2. 「セクション」リージョンで、「表示」メニュー・リストからパラメータ・グループを選択します。そのグループのパラメータが表示されます。

3. 編集するパラメータの行を選択します。「値」と「コメント」に入力します。

注意:

新しいパラメータまたはオーバーライドされたパラメータを編集できます。継承されたパラメータを編集するには、事前にオーバーライドする必要があります。図4-3では、test1は新しいパラメータの例で、lookandfeelはオーバーライドされたパラメータの例です。

4. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

構成にパラメータを追加するには:

1. Fusion Middleware Controlの「Web構成」リージョンで、パラメータを追加する構成セクションの行を選択します。

2. 「追加」をクリックしてパラメータを追加します。
「追加」ダイアログが表示されます。

3. パラメータの「名前」、「値」、および「コメント」に入力します。

4. パラメータを追加するには、「作成」をクリックします。

5. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

構成からパラメータを削除するには:

1. Fusion Middleware Controlの「Web構成」リージョンで、削除するパラメータを含む構成セクションの行を選択します。

2. 「セクション」リージョンの「表示」メニュー・リストから、削除するパラメータを含むパラメータ・グループを選択します。

3. 削除するパラメータを含む行を選択します。

4. 「削除」をクリックします。

5. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

注意:

複数のパラメータを同時に削除または編集できます。

注意:

ユーザー定義パラメータのみを削除できます。継承されたパラメータ(図4-3のenableJavascriptEventなど)は、削除できません。

注意:

オーバーライドされたパラメータを削除すると、そのパラメータは削除されるのではなく、継承したステータスを再び取得します。

図4-3 パラメータの状態

4.2.5 Forms構成パラメータ

この項では、Formsの構成パラメータについて説明します。前述の項で説明したように、これらのパラメータはForms構成ファイル(formsweb.cfg)で指定できます。また、これらのパラメータの多くはURLでも指定できます。URLで指定できないパラメータについては、第4.2.5.8項を参照してください。URL内の値は、formsweb.cfgからの値をオーバーライドします。次の注意は、第4.2.5.1項から第4.2.5.7項までのすべてのパラメータの表に当てはまります。

- 必須/任意: Forms Servicesが正しく機能するために(formsweb.cfgまたは可能な場合はURLからの)非NULL値を必要とする場合、そのパラメータは必須です。

- デフォルト値: 必須パラメータの場合、パラメータの説明には、Forms製品に付属するformsweb.cfgのデフォルト・セクションのデフォルト値が示されています(または、適切な値が指定されていることが示されています)。
オプションのパラメータについては、パラメータの説明には、Forms製品に含まれているformsweb.cfgのデフォルト・セクションからの非NULLのデフォルト値が示されています。さらに、パラメータの説明に、値が指定されていない場合に想定されるデフォルト値が示されている場合もあります(これは、NULL値と同じ動作をもたらす非NULL値です)。オプションのパラメータの説明に条件のないデフォルト値のみが示されている場合、これは、その値がForms製品に含まれているformsweb.cfgのデフォルト・セクションからのデフォルト値であり、値が指定されていない場合に想定されるデフォルト値でもあることを表しています。オプションのパラメータの説明にデフォルト値が明示的に示されていない場合は、デフォルト値がNULLであることを表しています。

- ランフォーム・パラメータ: 一部のパラメータの説明には、そのパラメータがランフォーム・パラメータであることが示されています。これらのパラメータは、serverArgsアプレット・パラメータを使用してfrmwebプロセスに渡します。このようなパラメータの場合、特殊文字を含む値を指定するときには、第3.3.4項で説明されている構文ルールに従う必要があります。

- otherparamsのサブ引数: 一部のパラメータの説明には、そのパラメータがotherparamsのサブ引数であることが示されています。つまり、(formsweb.cfgまたはURLで指定されたときに)有効になるには、otherparamsパラメータの値内にname=%name%の形式でこれが指定されている必要があります。したがって、たとえば構成セクションにパラメータarray(値はno)を追加する場合は、otherparamsパラメータの値にもarray=%array%を追加する必要があります。
これらのパラメータはすべてランフォーム・パラメータであり(パラメータ自体がランフォーム・パラメータであるため)、特殊文字を含む値を指定するときには、第3.3.4項で説明されている構文ルールに従う必要があることに注意してください。

この項は、次の小項目に分かれています。

- 第4.2.5.1項「基本構成パラメータ」

- 第4.2.5.2項「シングル・サインオンの構成パラメータ」

- 第4.2.5.3項「トレースの構成パラメータ」

- 第4.2.5.4項「Plug-inの構成パラメータ」

- 第4.2.5.5項「HTMLページの構成パラメータ」

- 第4.2.5.6項「アプレットの構成パラメータ」

- 第4.2.5.7項「詳細構成パラメータ」

- 第4.2.5.8項「URLで指定できないパラメータのリスト」

4.2.5.1 基本構成パラメータ

これらの基本パラメータは、Formsサーブレットの動作をコントロールします。表4-7に、これらのパラメータを示します。

表4-7 基本構成パラメータ

パラメータ

必須/
オプション

パラメータ値と説明

envFile

必須

環境構成ファイルの名前を指定します。

formsweb.cfgからのデフォルト値は、default.envです。

form

必須

実行するトップレベルのFormsモジュール(fmxファイル)の名前を指定します。

formsweb.cfgからのデフォルト値は、test.fmxです。このパラメータはランフォーム・パラメータです。

height

必須

フォーム・アプレットの高さをピクセルで指定します。

formsweb.cfgからのデフォルト値は、600です。

userid

任意

ログイン文字列。例: scott/tiger@ORADBこのパラメータはランフォーム・パラメータです。

width

必須

フォーム・アプレットの幅をピクセルで指定します。

formsweb.cfgからのデフォルト値は、750です。

4.2.5.2 シングル・サインオンの構成パラメータ

表4-8 シングル・サインオンの構成パラメータ

パラメータ

必須/
オプション

パラメータ値と説明

ssoCancelUrl

任意

動的リソース作成DASページの取消しURLを指定します。

ssoDynamicResourceCreate

任意

リソースがOIDでまだ作成されていない場合に、動的リソース作成を有効にするかどうかを指定します。

デフォルト値はtrueです。

ssoErrorUrl

任意

ssoDynamicResourceCreateがfalseに設定されている場合にリダイレクトするURLを指定します。

ssoMode

任意

URLを保護するかどうかを指定します。保護する場合は、mod_ossoによって認証が制御されます。保護しない場合は、Formsサーブレットで制御されます。特定のアプリケーションに対してシングル・サインオンを有効にするには、そのアプリケーション固有のセクションでこのパラメータをtrueに設定します。

デフォルト値はfalseです。

ssoProxyConnect

任意

セッションがプロキシ・ユーザーをサポートして動作するかどうかを指定します。特定のアプリケーションに対して有効にするには、ssoProxyConnectをyesに設定します。

デフォルト値はnoです。このパラメータはotherparamsのサブ引数です。

4.2.5.3 トレースの構成パラメータ

表4-9 トレースの構成パラメータ

パラメータ

必須/
オプション

パラメータ値と説明

debug

任意

デバッグ・モードでの実行を許可します。

デフォルト値はNOです。このパラメータはランフォーム・パラメータです。

EndUserMonitoringEnabled

任意

エンド・ユーザー監視の統合が有効かどうかを示します。デフォルト値はfalseです。

EndUserMonitoringURL

任意

エンド・ユーザー監視のデータを保存する場所を示します。

host

任意

内部でのみ使用されます。

デバッグ・セッションのホストを指定します。このパラメータは、デバッグでの使用のみを目的としています。Formsエンジンのプロセスを開始するホストを指定します。

このパラメータはランフォーム・パラメータです。

log

任意

トレースとロギングをサポートします。このパラメータに指定する値は、トレース・ログ・ファイルのファイル名です。

このパラメータはotherparamsのサブ引数です。

port

任意

内部でのみ使用されます。

デバッグに使用するポート。このパラメータは、デバッグでの使用のみを目的としています。このパラメータの値は、Formsエンジンのプロセスでリスニングするポートを指定します。値を指定しない場合はデフォルト値の9000になります。serverURLを指定した場合、このパラメータは無視されます。

このパラメータはランフォーム・パラメータです。

record

任意

トレースとロギングをサポートします。

このパラメータはotherparamsのサブ引数です。

tracegroup

任意

トレースとロギングをサポートします。

このパラメータはotherparamsのサブ引数です。

注意:

hostおよびportパラメータは、ユーザーによる変更は禁止されています。hostまたはportパラメータがNULL以外の値に設定されている場合、FRMエラーが発生します。

4.2.5.4 Plug-inの構成パラメータ

これらのパラメータは、Sun Java Plug-inで使用されます。

表4-10 Sun社Java Plug-inの構成パラメータ

パラメータ

必須/
オプション

パラメータ値と説明

archive

任意

使用するアーカイブ・ファイルまたはクライアントにダウンロードするアーカイブ・ファイルの名前をカンマで区切ったリスト。各ファイルに対し、ファイル名(ファイルがcodebaseディレクトリにある場合)または仮想パスとファイル名を記述します。

formsweb.cfgからのデフォルト値は、frmall.jarです。

codebase

必須

物理ディレクトリORACLE_HOME/forms/javaを示すために定義する仮想ディレクトリ。デフォルトでは、このディレクトリからアプレットJARファイルがダウンロードされます。

formsweb.cfgからのデフォルト値は、/forms/javaです。

imageBase

任意

アイコン・ファイルの格納場所を示します。有効な値:

- codeBase。アイコンの検索パスがJavaクラスの格納先ディレクトリを基準とした相対パスであることを示します。アイコンをJARファイルに格納する場合はこの値を使用します(推奨)。

- documentBaseは、HTMLファイルを指すURLです。

formsweb.cfgからのデフォルト値は、codeBaseです。値を指定しない場合は、documentBaseの値が使用されます。

jpi_classid

必須

Sun社のJava Plug-inのクラスID。formsweb.cfgにより、適切な値が指定されます。

jpi_codebase

必須

Sun社のJava Plug-inのコードベース設定。formsweb.cfgにより、適切な値が指定されます。

jpi_download_page

必須

Sun社のJava Plug-inのダウンロード・ページ。formsweb.cfgにより、適切な値が指定されます。

jpi_mimetype

必須

Java Plug-inのバージョンに関連するパラメータ。formsweb.cfgにより、適切な値が指定されます。

4.2.5.5 HTMLページの構成パラメータ

表4-11 HTMLページの構成パラメータ

パラメータ

必須/
オプション

パラメータ値と説明

baseHTML

必須

デフォルトのベースHTMLファイル。

formsweb.cfgからのデフォルト値は、base.htmです。

baseHTMLjpi

必須

Java Plug-inのタグを含むHTMLファイルへの物理パス。クライアント・ブラウザがWindows上に存在せず、クライアント・ブラウザがFirefoxまたはIEネイティブ設定のないIEの場合にベースHTMLファイルとして使用されます。

formsweb.cfgからのデフォルト値は、basejpi.htmです。

HTMLafterForm

任意

Formsアプリケーションが表示される領域の下のページに追加するHTMLコンテンツ。

HTMLbeforeForm

任意

Formsアプリケーションが表示される領域の上のページに追加するHTMLコンテンツ。

HTMLbodyAttrs

任意

HTMLページの<BODY>タグの属性。

pageTitle

任意

HTMLページ・タイトル、BODYタグの属性、フォームの前後に追加するHTML。

formsweb.cfgからのデフォルト値は、Oracle Fusion Middleware Forms Servicesです。

4.2.5.6 アプレットの構成パラメータ

これらのパラメータは、オブジェクト・パラメータまたはアプレット・パラメータの値としてベースHTMLファイルに指定します。これらは、アプレットの視覚的動作と外観を記述します。

表4-12 アプレットまたはオブジェクトの構成パラメータ

パラメータ

必須/
オプション

パラメータ値と説明

background

任意

背景に表示する.GIFファイルを指定します。背景なしの場合はNOに設定します。デフォルトの背景を使用する場合は空白のままにします。

colorScheme

任意

アプリケーションの配色を指定します。有効な値: Teal、Titanium、Red、Khaki、Blue、BLAF、SWAN、OliveまたはPurple。formsweb.cfgからのデフォルト値は、tealです。

注意: LookAndFeelがGenericに設定されている場合、colorSchemeは無視されます。

logo

任意

Formsメニュー・バーに表示する.GIFファイルを指定します。ロゴなしの場合はNOに設定します。デフォルトのOracleロゴを使用する場合は空白のままにします。

lookAndFeel

任意

アプリケーションのルック・アンド・フィールを指定します。有効な値: OracleまたはGeneric (Windowsのルック・アンド・フィール)。

formsweb.cfgからのデフォルト値は、Oracleです。

separateFrame

任意

アプレットを分割ウィンドウ内に表示するかどうかを指定します。有効な値: trueまたはfalse(デフォルト)。

splashScreen

任意

アプレットが表示される前に表示する.GIFファイルを指定します。スプラッシュなしの場合はNOに設定します。デフォルトのスプラッシュ・イメージを使用する場合は空白のままにします。

パラメータを設定するには、ファイル名(myfile.gifなど)または仮想パスとファイル名(images/myfile.gifなど)を記述します。

4.2.5.7 詳細構成パラメータ

表4-13 詳細構成パラメータ

パラメータ

必須/
オプション

パラメータ値と説明

allowAlertClipboard

任意

Formsアプレット・パラメータ。

デフォルト値はtrueです。

allowNewConnections

任意

新しいFormsセッションを許可するかどうかを指定します。これは、Fusion Middleware Controlの「Forms」ホームページで現在のFormsステータスを表示するためにも使用されます。

デフォルト値はtrueです。

applet_name

任意

JavaScript統合用の構成。これは、JavaScriptコードからの参照に使用できるFormsアプレットの名前です。

array

任意

配列処理を抑止するには、このパラメータをnoに設定します。この場合、FormsはINSERT、UPDATEまたはDELETE文で1度に1行のみをデータベースに送信し、1度に1行のクエリ結果のみがデータベースから返されます。通常、これにより、最初に取り出されたレコードの表示は早くなりますが、クエリ結果内のすべての行の表示は遅くなります。

指定されていない場合のデフォルト値は、yesです。このパラメータはotherparamsのサブ引数です。

buffer_records

任意

メモリーにバッファされるレコード数を、(ブロックごとに)表示される行数+3に設定するには、このパラメータをyesに設定します。これによりFormsランタイム・メモリーを節約できますが、ディスクI/Oが増加するため、処理速度が低下することがあります。otherparamsのサブ引数です。

指定されていない場合のデフォルト値は、noです。このパラメータはotherparamsのサブ引数です。

clientDPI

任意

1インチあたりのドット数(DPI)を指定し、JVMによって返されるDPI設定をオーバーライドします。これにより、プラットフォームごとに異なるDPI設定を管理できます。50から200の整数を使用することをお薦めします。

connectionDisallowedURL

任意

これは、セッションの開始が許可されていないHTMLページに表示されるURLです。

cursorBlinkRate

任意

カーソルの点滅速度を変更するか、点滅を無効にするには、クライアント・パラメータcursorBlinkRateを、<PARAM NAME="cursorBlinkRate" VALUE="1000">のように設定します。デフォルト値は600ミリ秒で、この状態では1回の点灯と1回の消灯が1.2秒(1,200ミリ秒)ごとに完了します。ゼロを指定すると点滅が無効になり、カーソルは常に点灯した状態になります。

debug_messages

任意

フォームの実行中にトリガーの実行に関する継続的なメッセージがFormsに表示されるようにするには、このパラメータをyesに設定します。

指定されていない場合のデフォルト値は、noです。このパラメータはotherparamsのサブ引数です。

defaultcharset

任意

サーブレットのリクエストおよびレスポンスで使用されるキャラクタ・セットを指定します。デフォルトは、ISO-8859-1です(Latin-1とも呼ばれます)。サーブレット・リクエストでキャラクタ・セットが指定されている場合は(POSTのコンテンツタイプ・ヘッダーなど)、このパラメータは無視されます。このパラメータの値は、IANAキャラクタ・セット名(SHIFT_JISなど)またはOracleキャラクタ・セット名(JA16SJISなど)で指定できます。これは、NLS_LANG環境変数で指定したキャラクタ・セットと一致している必要があり、同時にブラウザで表示できるキャラクタ・セットであることが必要です。また、URLエスケープ・シーケンスではなくIMEなどを使用してマルチバイト・キャラクタをURLに直接入力できるブラウザで、エンド・ユーザーにこの入力を許可する場合、このパラメータの値は、入力されたキャラクタをバイト・シーケンスに変換するためにブラウザで使用するキャラクタ・セットと一致している必要があります。

注意: 構成ファイルに7ビットASCII文字以外の文字を含む名前の構成セクションがある場合は、次のルールが適用されます。URLまたはキャラクタ・セットを指定していないPOSTリクエスト本文で構成パラメータを指定していて、その値に7ビットのASCII文字以外の文字を使用している場合、その値は、defaultcharsetパラメータで指定したキャラクタ・セットを使用して解釈されます。ただし、構成ファイルの言語依存デフォルト・セクションと言語非依存デフォルト・セクションのみはdefaultcharsetパラメータが検索されます。その他の構成セクションは、名前が未知のため、検索されません。

digitSubstitution

任意

BIDI digitSubstitutionを指定します。有効な値は、none、nationalおよびcontextです。デフォルト値はcontextです。

disableMDIScrollbars

任意

Formsメイン・アプレット・ウィンドウの水平スクロールバーと垂直スクロールバーを無効にするには、このパラメータをtrueに設定します。

このパラメータは、次のようにbasejpi.htmlのOBJECTタグに追加することもできます。

<PARAM NAME="disableMDIscrollbars"

VALUE="%disableMDIScrollbars%">

<EMBED SRC>タグに、次のように追加します。

disableMDIScrollbars="%disableMDIScrollbars%"

指定されていない場合のデフォルト値は、falseです。

disableValidateClipboard

任意

Formsアプレット・パラメータ。

デフォルト値はfalseです。

enableJavascriptEvent

任意

JavaScript統合用の構成。

デフォルト値はtrueです。

escapeparams

任意

9.0.4より前のリリースの場合と同様に、ランフォーム・パラメータ内の特殊文字をランフォームで処理するには、このパラメータをfalseに設定します。このパラメータはFormsランタイム引数で、他のランタイム引数のURLから抽出された値に含まれる特定の特殊文字をエスケープするかどうかを指定します。

デフォルト値はfalseです。

formsMessageListener

任意

ツール・ベンダー・インタフェース(TVI)やインターセプト・サーバーのFormsメッセージを記録可能にするためにFormsクライアントが使用するクラスを指定するFormsアプレット・パラメータ。

heartBeat

任意

このパラメータを使用して、クライアントがまだ実行中であることを示すためにサーバーにパケットを送信する頻度を設定します。この値は、分単位の整数値または小数値(たとえば、30秒の場合は0.5)で定義します。指定されていない場合のデフォルト値は、2分です。

heartBeatの値がFORMS_TIMEOUTより小さい場合、そのユーザーのセッションは、フォームをアクティブに使用していない場合でも有効のままで維持されます。

注意: heartBeatの値がパラメータsession-timeoutより大きいと、session-timeoutの値がheartBeatより優先されます。heartBeatの値を増やすには、session-timeoutの値をheartBeatより大きくする必要があります。このパラメータの詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のsession-timeoutに関する説明を参照してください。

highContrast

任意

highContrastをtrueに設定すると、フォアグラウンド・カラーとバックグラウンド・カラーが指定されていない場合のフレーム・ラベルは黒になります。デフォルト値はfalseです。

HTMLdelimiter

任意

このパラメータは、ベースHTMLファイル内のパラメータのデリミタを定義します。

デフォルトのデリミタは%です。

JavaScriptBlocksHeartBeat

任意

JavaScriptコールがブロッキング・コールである場合にHeartBeatをブロックするかどうかを指定する構成変数。

デフォルト値はfalseです。

legacy_lifecycle

任意

Sun社のJava Plug-inのアプレット・パラメータ。値trueを指定すると、リクエスト時に実行アプレットが再利用されます。このパラメータは、legacy_lifecycleがtrueに設定されたときのアプレットの再利用性を保証するため、Formsサーブレットからのレスポンスとして生成される初期ページの内容にも影響を与えます。trueに設定する場合は、JavaクライアントでJavaScriptが有効になっている必要があります。

デフォルト値はfalseです。

maxRuntimeProcesses

任意

このパラメータは、同時Formsランタイム・プロセス数の最大許容値を指定します。これは、顧客のハードウェア構成(およびFormsアプリケーションによって使用される部分)を考慮して設定する必要があります。値0(デフォルト)は、明示的な制限がないことを示します。サービス拒否攻撃に対するシステムの脆弱性のため、このデフォルトはお薦めしません。

指定されていない場合のデフォルト値は0です。

networkRetries

任意

ネットワーク障害の発生時にクライアントが再試行する回数。

デフォルト値は0です。

obr

任意

内部でのみ使用されます。

デフォルト値はnoです。このパラメータは、otherparamsのサブ引数です。

otherparams

任意

この設定は、formおよびuseridに加えてFormsランタイム・プロセスに渡すコマンドライン・パラメータを指定します。このパラメータはランフォーム・パラメータです。formsweb.cfgからデフォルト値は、obr=%obr% record=%record% tracegroup=%tracegroup% log=%log% term=%term% ssoProxyConnect=%ssoProxyConnect%です。

注意: このパラメータをURLで指定する場合は、複数のname=valueペアのセパレータとして、+を使用するという特殊な構文ルールが適用されます(詳細は、第3.3.4項「ランフォーム・パラメータにおける特殊文字の指定」を参照してください)。本番環境では、エンド・ユーザーがURLで指定できるランフォーム・パラメータをより細かく制御するために、restrictedURLparamsパラメータの値にotherparamsパラメータを含めます。

prestartIncrement

任意

事前に起動されるランタイム・プロセスの数がminRuntimes未満の場合に作成されるランタイム・プロセスの数。

指定されていない場合のデフォルト値は1です。

prestartInit

任意

最初に作成される必要のあるランタイム・プロセスの数。

指定されていない場合のデフォルト値は1です。

prestartMin

任意

プールに存在する必要のあるランタイム・プロセスの最小数。指定されていない場合のデフォルト値は0です。

prestartRuntimes

任意

trueに設定した場合にのみ、ランタイムの事前起動またはプーリングが有効になります。

指定されていない場合のデフォルト値は、falseです。

prestartTimeout

任意

このプール(構成セクション)の事前起動プロセスがすべて停止するまでの時間(分単位)。クライアント接続が確立するとランタイム・プロセスは事前起動プールから除外されるので、そのランタイム・プロセスは停止しません。

指定されていない場合のデフォルト値は0です。

query_only

任意

エンド・ユーザーによるレコードの挿入、更新または削除を防ぐには、このパラメータをyesに設定します。

指定されていない場合のデフォルト値は、noです。このパラメータはotherparamsのサブ引数です。

quiet

任意

メッセージによるビープ音の生成を防ぐには、このパラメータをyesに設定します。

指定されていない場合のデフォルト値は、noです。このパラメータはotherparamsのサブ引数です。

recordFileName

任意

記録したFormsメッセージを格納するファイルの名前(d:\temp\isなど)を指定するFormsアプレット・パラメータ。

指定されていない場合のデフォルト値は、'is'です(引用符は不要です)。

restrictedURLparams

任意

Formsアプレット・パラメータ。URLで指定された場合に拒否するパラメータのカンマ区切りリストを指定します。

formsweb.cfgからのデフォルト値は、pageTitle,HTMLbodyAttrs,HTMLbeforeForm,HTMLafterForm,logです。

restrictedURLchars

任意

Formsアプレット・パラメータ。リクエストURLの問合せ文字列では使用が制限される文字をカンマで区切って指定します。

serverApp

任意

Formsアプレット・パラメータ。

デフォルト値はdefaultです。

serverURL

必須

Formsリスナー・サーブレットへのURLパスを指定します。

デフォルト値は/forms/lservletです。

term

任意

(標準のfmrwebまたはfmrweb_utf8ファイルのかわりに使用される)カスタム・キー・バインディング・ファイルのフルパス。

このパラメータはotherparamsのサブ引数です。

4.2.5.8 URLで指定できないパラメータのリスト

この項では、サーブレット構成ファイル(formsweb.cfg)でのみ指定できるパラメータを示します。これらのパラメータをURLで指定した場合、その値は無視されます。さらに、restrictedURLparamsパラメータの値にリストされているすべてのパラメータは、URLで指定した場合は却下されます。

- allowNewConnections

- baseHTML

- baseHTMLjpi

- connectionDisallowedURL

- defaultCharset

- envFile

- escapeparams

- HTMLdelimiter

- maxRuntimeProcesses

- prestartIncrement

- prestartInit

- prestartMin

- prestartRuntimes

- prestartTimeout

- restrictedURLparams

- restrictedURLchars

- serverURL

- ssoCancelURL

- ssoDynamicResourceCreate

- ssoErrorURL

- ssoMode

- workingDirectory

4.3 環境変数の管理

環境変数を管理するには、Fusion Middleware Controlの「環境構成」ページを使用します。このページでは、必要に応じて環境変数の追加、編集または削除を行うことができます。

Formsランタイム実行可能ファイル(Windowsの場合はfrmweb.exe、UNIXの場合はfrmweb)の環境変数(PATH、ORACLE_INSTANCE、ORACLE_HOME、FORMS_PATHなど)は、default.envに定義されています。Formsリスナー・サーブレットは、実行可能ファイルをコールし、デフォルトで$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/configディレクトリにある環境ファイルに指定された変数値で初期化します。

default.envで定義されていない環境変数は、Oracle WebLogic管理対象サーバーから継承されます。「Web構成」ページの「デフォルト」セクションのenvFileパラメータで環境ファイル名を指定する必要があります。

環境変数をカスタマイズする際には、次の事項を考慮してください。

- 環境変数は、Windowsのレジストリでも指定できます。環境ファイルの値はレジストリの設定をオーバーライドします。変数が環境ファイルで設定されていない場合は、レジストリ値が使用されます。

- レジストリ値を変更するには、管理者権限が必要です。

- サーバーを再起動しなくても、構成の変更は反映されます。

- Formsプロセスを開始した後で環境変数を定義しても、開始済のFormsプロセスはその影響を受けません。

- 環境ファイルまたはWindowsのレジストリで設定されていない環境変数は、Oracle WebLogic管理対象サーバーである親プロセスの環境から継承されます。

表4-14「デフォルトの環境変数」は、default.envで指定されている重要な環境変数の説明です。

4.3.1 環境構成ファイルの管理

「環境構成」ページにアクセスするには:

1. Fusion Middleware Controlを起動します。

2. Fusion Middleware Controlのメイン・ページで、構成するForms Servicesインスタンスへのリンクをクリックします。

3. 「Forms」メニュー・リストから「環境構成」を選択します。「環境構成」ページ(図4-4)が表示されます。

図4-4 「環境構成」ページ

環境構成ファイルを複製するには:

1. 「環境構成」ページで、「重複ファイル」をクリックします。
「重複ファイル」ダイアログが表示されます。

2. 複製するファイルを選択して、ファイルの一意な名前を入力します。

3. 「重複」をクリックしてファイルを作成します。

環境構成ファイルを削除するには:

1. 「環境構成」ページで「表示」メニュー・リストから、削除する環境構成ファイルを選択します。

2. 「ファイルの削除」をクリックします。
「確認」ダイアログが表示されます。

3. 「はい」をクリックして削除を確認します。

注意:

default.envは削除できません。削除できる環境構成ファイルはユーザーが定義したもののみです。

環境構成ファイルを表示するには:

1. 「環境構成」ページで「表示」メニュー・リストから、表示する環境構成ファイルを選択します。

2. パラメータとその値が表示されます。

4.3.2 環境変数の構成

環境変数を編集するには:

1. 「環境構成」ページで、編集する環境変数を含むパラメータの行を選択します。

2. 「値」と「コメント」に入力します。

3. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

環境変数を追加するには:

1. 「表示」メニュー・リストから、変数を追加する環境構成ファイルを選択します。

2. 「追加」をクリックしてパラメータを追加します。
「追加」ダイアログが表示されます。

3. 「名前」、「値」および「コメント」に入力します。

4. 「作成」をクリックします。

5. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

環境変数を削除するには:

1. 「表示」メニュー・リストから、環境変数を削除する環境構成ファイルを選択します。

2. 削除するパラメータの行を選択します。複数のパラメータを同時に削除できます。

3. 「削除」をクリックします。

4. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

4.3.3 デフォルトの環境変数

表4-14に、いくつかの環境変数について有効な値と変数の説明を示します。

表4-14 デフォルトの環境変数

パラメータ

有効値

説明

ORACLE_HOME

ORACLE_HOME(デフォルト)

Oracle製品の基本インストレーション・ディレクトリを示します。

ORACLE_INSTANCE

ORACLE_INSTANCE(デフォルト)

すべての構成ファイル、リポジトリ、ログ・ファイル、配布されたアプリケーションおよび一時ファイルを含みます。

PATH

ORACLE_HOME/bin(デフォルト)

Oracle製品の実行可能ファイルを含みます。

FORMS_PATH

ORACLE_HOME/forms:ORACLE_INSTANCE/FormsComponent/forms(デフォルト)

実行するフォーム、メニューまたはライブラリを探すときにOracle Formsで検索するパスを指定します。

Windowsの場合、複数のパスはセミコロン(;)で区切ります。

UNIXの場合、複数のパスはコロン(:)で区切ります。

FORMS_RESTRICT_ENTER_QUERY

TRUE(デフォルト)

問合せ入力モードのときに任意のSQL文が入力される可能性がある検索条件入力機能をエンドユーザーが使用する場合は、この変数を無効にするか削除します。

TNS_ADMIN

ORACLE_INSTANCE/config

TNSNAMES.ORA、SQLNET.ORAなどのTNSファイルへのパス名を指定します。

CLASSPATH

ORACLE_HOME/jdk/bin/java

Formsデバッガに必要なJavaクラス・パスを指定します。

LD_LIBRARY_PATH

初回使用時、LD_LIBRARY_PATH環境変数は次のように設定します。

ORACLE_HOME/lib

LD_LIBRARY_PATHをリセットするには、Bourneシェルで次のように入力します。

$ set LD_LIBRARY_PATH=ORACLE_HOME/lib:${LD_LIBRARY_PATH}

$ export LD_LIBRARY_PATH

または、Cシェルで次のように入力します。

% setenv LD_LIBRARY_PATH ORACLE_HOME/lib:${LD_LIBRARY_PATH}

Oracle Forms DeveloperおよびReports Developer製品では、ダイナミック・ライブラリまたは共有ライブラリが使用されています。そのため、LD_LIBRARY_PATHを設定して、ダイナミック・リンカーでライブラリが検出できるようにする必要があります。

WEBUTIL_CONFIG

ORACLE_INSTANCE/config/FormsComponent/forms/server/webutil.cfg

FORMS_MESSAGE_ENCRYPTION

TRUE

有効な値はTRUEまたはFALSEです。HTTPモードを使用しているときにFormsメッセージに適用する独自の不明瞭化を無効または有効にするには、この環境変数を使用します。デフォルトでは通信は不明瞭化されています。

LD_PRELOAD

<JDK_HOME>/jre/lib/i386/libjsig.so

ライブラリlibjsig.soの場所を指定します。このライブラリは、JVM 1.5のシグナルチェーン機能で使用します。シグナルチェーン機能を使用すると、アプリケーションではシステム・ライブラリよりも先に共有ライブラリlibjsig.soのリンクとロードが可能です。UNIXまたはLinuxで、これがFormsとReportsの統合用に設定されていることを確認します。

注意: 複数の環境ファイルがある場合は、LD_PRELOADの設定がdefault.envの設定と同一になっていることを確認します。

FORMS_PLSQL_BHVR_COMMON_SQL

この機能を有効化するには、FORMS_PLSQL_BHVR_COMMON_SQLをtrueまたは1に設定します。

この機能を無効化するには、falseまたは0に設定します。

この変数が設定されていると、静的SQLのコンパイル用にPL/SQLに組み込まれているパーサーではなく、一般的なSQLパーサー(RDBMS SQLエンジンのものなど)を使用してSQLコードをPL/SQLでコンパイルできます。

注意:

Windowsの場合、Oracle環境設定が環境変数として設定されていないと、Oracle Forms ServicesはWindowsレジストリからOracle環境設定を読み取ります。

4.4 ユーザー・セッションの管理

管理者は、Fusion Middleware Controlを使用して、ユーザー・セッションとそれに関連する監視、デバッグ、トレースなどの機能を管理できます。

ユーザー・セッションはfrmwebプロセスの開始によって始まります。Formsインスタンス内でFormsセッションを監視およびトレースするには、「Formsユーザー・セッション」ページを使用します。「Formsユーザー・セッション」ページにアクセスするには、「Forms」メニュー・リストから「ユーザー・セッション」を選択します。

Formsユーザー・セッションを表示するには:

1. Fusion Middleware Controlを起動します。

2. 「Forms」メニュー・リストから「ユーザー・セッション」を選択します。
「ユーザー・セッション」ページ(図4-5)が表示されます。

図4-5 「ユーザー・セッション」ページ

3. 表4-15に、「ユーザー・セッション」ページに表示されるフィールドを示します。

表4-15 「ユーザー・セッション」ページ

フィールド

説明

プロセスID

ユーザー・セッションのプロセスID。

データベース

Formsアプリケーションでユーザー・セッションのために使用するデータベース名。データベース名をクリックすると、「データベース・セッション」ページが表示されます。

CPU使用率

ランタイム・プロセスによって使用されるCPUの使用率。

プライベート・メモリー(KB)

ランタイム・プロセスによって使用されるメモリー。Linuxプラットフォームでは、プライベート・メモリーは実際にはプライベート・メモリーではなく、常駐セット・サイズ(RSS)を表します。

IPアドレス

Forms Servicesへの接続で使用されるクライアント・コンピュータのIPアドレス。

ユーザー名

データベース・ユーザー名。

接続時間

ユーザーがForms Servicesに接続した時間。クライアント接続時間とクライアントIPが空白の場合、そのセッションは、まだどのクライアントにも接続していない事前開始済セッションです。

トレース・グループ

ユーザー・セッションのトレースに使用されるトレース・グループ。トレースが有効になっている場合、この列にはトレース・グループ名またはトレースされているイベントが表示されます。イベントが表示されるのは、セッションに対して有効になっているトレース・グループのイベントが後から「トレース構成」で変更された場合です。

ビルトインを使用してトレースが制御されている場合、表示されるトレース・グループ名は、トレースされているイベントとは正確には異なることがあります。

トレース・ログ

ユーザー・セッションのトレース・ログが存在する場合は、そのログを表示します。

構成セクション

Formsアプリケーションによって使用される構成セクションを示します。

フォーム名

フォーム・アプリケーションのモジュール名を示します。

CPU時間

接続時間後にFormsアプリケーションによって使用される合計CPU時間を示します。

新しいFormsユーザー・セッションを有効にするには:

新しいFormsユーザー・セッションはデフォルトで有効となります。これを無効にするには、Fusion Middleware Controlを使用してallowNewConnectionsパラメータをfalseに設定します。

1. Fusion Middleware Controlを起動します。

2. 「Forms」メニューから「Web構成」を選択します。

3. デフォルトの構成セクションを選択します。名前付きセクションでは、allowNewConnectionsをオーバーライドできません。

4. 「セクション」リージョンで、allowNewConnectionsパラメータの値を探して編集します。値true(デフォルト)を指定すると新しいユーザー・セッションが有効になり、falseを指定すると無効になります。

5. 「適用」をクリックして変更を保存します。

新しいFormsユーザー・セッションを無効にするには:

1. Fusion Middleware Controlを起動します。

2. 「Forms」メニューから「Web構成」を選択します。

3. デフォルトの構成セクションを選択します。名前付きセクションでは、allowNewConnectionsをオーバーライドできません。

4. 「セクション」リージョンで、allowNewConnectionsパラメータの値を探して編集します。値true(デフォルト)を指定すると新しいユーザー・セッションが有効になり、falseを指定すると無効になります。

5. 「適用」をクリックして変更を保存します。

新規ユーザー・セッションが無効の場合、接続の試行はformsweb.cfgパラメータconnectionDisallowedURL(デフォルト・セクション)で識別されるURLへ向けられます。完全で有効なURLを値として指定する必要があります。

connectionDisallowedURLが指定されていない場合は、次のメッセージがブラウザに表示されます。

The Forms servlet will not allow new connections. Please contact your System Administrator.

新規ユーザー・セッションを無効化しても、既存のFormsセッションは影響を受けず、Oracle WebLogic管理対象サーバー・インスタンスは起動した状態を維持します。

Formsユーザー・セッションのトレースを有効にするには:

1. Fusion Middleware Controlを起動します。

2. 「ユーザー・セッション」ページで、トレースを有効にするユーザー・セッションが表示されている行を選択します。

3. 「トレースの有効化」を選択します。

4. トレース・グループの選択リストで使用可能なトレース・グループを選択し、「OK」をクリックします。

Formsユーザー・セッションのトレースを無効にするには:

1. 「ユーザー・セッション」ページで、トレースを無効にするユーザー・セッションが表示されている行を選択します。

2. 「トレースの無効化」をクリックします。

3. 「OK」をクリックします。「トレースの無効化」ダイアログが閉じられ、選択したFormsユーザー・セッションのトレースが停止します。

Formsユーザー・セッションを終了するには:

1. 終了するユーザー・セッションを含むForms Servicesインスタンスへのリンクを選択します。

2. 「Forms」メニューから「ユーザー・セッション」を選択します。

3. 削除するユーザー・セッションの行をクリックします。

4. 「停止」をクリックします。

5. 「確認」ダイアログが表示されます。

6. 「はい」をクリックします。
ユーザー・セッションが削除され、ランフォーム・インスタンスが終了します。

Formsユーザー・セッションのトレース・ログを表示するには:

1. 「Forms」メニューから「ユーザー・セッション」を選択します。

2. アクティブなユーザー・セッションの「トレース・ログ」列で「トレース・ログの表示」をクリックします。ログインしてトレース・ファイルを表示します。

Formsユーザー・セッションを検索するには:

1. 「Forms」メニューから「ユーザー・セッション」を選択します。

2. 検索する列名を選択します。

3. 検索文字列を入力します。

4. 青色の矢印をクリックして検索します。検索結果が表示されます。

Formsユーザー・セッションのリストをソートするには:

1. 「Forms」メニューから「ユーザー・セッション」を選択します。

2. マウスを列に合せます。

3. 上矢印または下矢印をクリックして、昇順または降順にソートします。ページが更新され、ソートされたユーザー・セッションが表示されます。「トレース・ログ」を除くすべての列を基準にしてソートできます。

Formsユーザー・セッションの表示をカスタマイズするには:

1. 「ユーザー・セッション」ページで「表示」をクリックします。

2. 「表示」メニューから次の操作を実行できます。

- 「すべて表示」を選択すると、すべての列を表示できます。

- 表示する列を選択します。

- 「列の並替え」を選択すると、列の表示順序を変更できます。

- 「列を増やす」を選択すると、特定の列を表示または非表示にすることができます。

Formsユーザー・セッションのデータベース・セッションを表示にするには:

1. 「Forms」メニューから「ユーザー・セッション」を選択します。

2. 「データベース」列でデータベース名をクリックします。
ログインして「データベース・セッション」ページ(図4-6)を表示します。「データベース・セッション」ページにログインするにはデータベース管理者権限が必要です。

図4-6 「データベース・セッション」ページ

3. 表4-16、表4-17および表4-18に、「データベース・セッション」ページに表示される情報を示します。

表4-16 「データベース・セッション」ページ

フィールド

説明

ユーザー名

データベースへの接続に使用されるデータベース・ユーザー名。

セッションID

データベース・セッション識別子。

ログオン時間

ユーザーがセッションにログオンした日時。

シリアル番号

セッションのシリアル番号。セッションのオブジェクトを一意に識別するために使用されます。この番号により、あるセッションの終了と別のセッションの開始が同じセッションIDで行われる場合に、セッション・レベルのコマンドが正しいセッション・オブジェクトに適用されるようになります。

ステータス

セッションがアクティブかどうかを示します。

SQL HASH

実行されたSQL文を識別するために使用されます。

CPU使用率(%)

特定セッションによるデータベース・システムのCPU使用率(%)。

論理読取り

特定セッションでの論理読取りの数。

物理読取り

特定セッションでの物理読取りの数。

PGA (プログラム・グローバル領域)メモリー

間隔が終了した時点でのPGA(プログラム・グローバル領域)メモリーのサイズ。

表4-17 選択したデータベース・セッションの詳細

フィールド

説明

選択したデータベース・セッションのSQL文

最新のSQL文を表示します。

表4-18 選択したデータベース・セッションの実行計画

フィールド

説明

操作

実行ステップで実行された内部操作の名前(TABLE ACCESSなど)。

オブジェクト

表または索引の名前。

オブジェクト・タイプ

オブジェクトのタイプ。

ID

実行計画の各ステップに割り当てられた番号。

親ID

現在のステップの出力に基づいて実行される次の実行ステップのID。

深さ

ツリー内の操作の深さ(レベル)。レベル情報を取得するために、必ずしもCONNECT BY文(通常、PLAN_TABLE表からの行をインデントするために使用)を発行する必要はありません。ルート操作(文)は、レベル0です。

位置

同じPARENT_IDを持つすべての操作の処理順序。

行

操作によって生成された行数のコストベース・オプティマイザによる見積り。

サイズ(KB)

操作によって生成されたバイト数のコストベース・オプティマイザによる見積り。

コスト

オプティマイザのコストベース・アプローチによって見積られた操作のコスト。ルールベースのアプローチを使用する文の場合、この列はNULLです。

時間(秒)

オプティマイザのコストベース・アプローチによって見積られた操作の経過時間(秒)。ルールベースのアプローチを使用する文の場合、この列はNULLです。

CPUコスト

オプティマイザのコストベース・アプローチによって見積られた操作のCPUコスト。ルールベースのアプローチを使用する文の場合、この列はNULLです。

I/Oコスト

オプティマイザのコストベース・アプローチによって見積られた操作のI/Oコスト。ルールベースのアプローチを使用する文の場合、この列はNULLです。

4.5 アプリケーションのURLセキュリティの管理

Oracle Formsアプリケーションは、ユーザーがブラウザでアクセスするWeb配布のソリューションです。Oracle Formsアーキテクチャでは、Forms開発者は2種類の方法でFormsアプリケーションの実行方法を構成できます。ひとつは、パラメータとその値をURLで設定する方法です。もうひとつは、パラメータとその値を構成ファイル(formsweb.cfg)で設定する方法です。formsweb.cfgで設定したパラメータは、URLで設定したパラメータによりオーバーライドできます。

Forms管理者はこのデフォルト動作をオーバーライドして、URLで使用可能なパラメータを完全に制御できます。

URLで使用可能にするパラメータを決定する際は、2つのシナリオを検討します。最初のシナリオは、管理者が、単にデフォルトのログイン・ウィンドウを使用したログインを常にユーザーに強制するURLでのUSERIDパラメータの使用を制限する場合です。2番目のシナリオは、CONFIG=MyAppのような少数のパラメータを除いて、URLでのすべてのパラメータの使用を管理者が禁止する場合です。

パラメータrestrictedURLparamsでは、Forms管理者は、formsweb.cfgファイル内のURLへアクセス可能なパラメータをユーザーの使用が制限されたものと見なすことができます。管理者は、名前を付けた構成セクションでこのパラメータを指定して、デフォルトの構成セクションで指定したパラメータをオーバーライドできます。restrictedURLparamsパラメータ自体はURLで設定できません。

設計上、URLで渡すコマンドライン引数は、formsweb.cfgにある同様の定義よりも必ずオーバーライドします。

この例では、useridはscott/tigerとして定義され、debugはfalseに設定されます。このデータベースにscott/tigerとして接続するように構成したアプリケーションは、URLパラメータとしてuseridパラメータを追加した別のユーザーとして接続できます。これを防止するには、図4-7「restrictedURLparamsパラメータの定義」にあるように、restrictedURLparamsでuseridパラメータを定義します。

図4-7 restrictedURLparamsパラメータの定義

同様に、管理者はrestrictedURLparamsパラメータを使用して、制限されたパラメータのうち、使用されたもののリストを表示するページにユーザーをリダイレクトできます。

4.5.1 Oracle Formsテスト・フォームの保護

実行するアプリケーションを指定しないでOracle Forms URLにアクセスすると、テスト・フォームが実行されます。たとえば、通常は次の構文を使ってOracle Formsアプリケーションをコールします。

http://<host>:<port>/forms/frmservlet?config=myApp

Formsサーブレットは、formsweb.cfgファイルで[myApp]を探し出し、該当のアプリケーションを起動します。アプリケーションが指定されないときは、次のようになります。

http://<host>:<port>/forms/frmservlet

Formsサーブレットは、formsweb.cfgファイルのデフォルトのセクションの設定を使用します。これらの設定は、Forms構成ファイルの[default]にあります(アプリケーションがこれらの設定をオーバーライドしない場合は、デフォルトが使用されます)。デフォルトのセクションには、次の設定が含まれます。

form=test.fmx

これは、Oracle Forms Servicesのインストールと構成をテストできるテスト・フォームです。このため、アプリケーションを指定していない場合は、Formsによってtest.fmxファイルが起動します。これを次のように変更できます。

form=

このようにすると、フォームは実行されません。ただし、これは最適ではありません。Formsサーブレットは動的に生成されたHTMLファイルをクライアントに送信するため、ユーザーが情報を勝手に取得することができます。保護を最適にするソリューションは、クライアントに表示される情報HTMLページにリクエストをリダイレクトすることです。formsweb.cfgファイルにあるパラメータをいくつか変更する必要があります。

Oracle Forms Servicesのインストール時に変更するパラメータを、デフォルトの値とともに次に示します。

# System parameter: default base HTML file
baseHTML=base.htm
# System parameter: base HTML file for use with Sun's Java Plug-In
baseHTMLjpi=basejpi.htm

これらのパラメータは、クライアントに送信されるHTML情報のテンプレートです。情報HTMLページを作成して、これらの変数をかわりにポイントします。たとえば、$ORACLE_INSTANCE/config/FormsComponent/forms/serverディレクトリに、次のコンテンツを含むforbidden.htmlという名前の簡単なHTMLページを作成します。

<html>
<head>
<title>Forbidden</title>
</head>
<body>
<h1>Forbidden!</h1>
<h2>You may not access this Forms application.</h2>
</body>
</html>

注意:

クライアント情報をリダイレクトしたことで表示されるこのメッセージ・ページは、リクエストしたコンテンツにアクセス権の制限がある場合にWebサーバーが返すWebページとは異なります。

次に、元のパラメータをコメント・アウトまたは変更して、formsweb.cfgパラメータを変更します。

# System parameter: default base HTML file
#baseHTML=base.htm
baseHTML=forbidden.html
# System parameter: base HTML file for use with Sun's Java Plug-In
#baseHTMLjpi=basejpi.htm
baseHTMLjpi=forbidden.html
# System parameter: base HTML file for use with Microsoft Internet Explorer
# (when using the native JVM)

ユーザーが次のURLを入力すると、

http://<host>:<port>/forms/frmservlet

カスタマイズされたWebページが表示されます。formsweb.cfgファイルで該当するパラメータを変更すれば、forbidden.htmlのコンテンツ、ファイル名、および場所などもカスタマイズできます。この情報Webページには、警告、エラー、タイムスタンプ、IPロギングまたは問合せ先などの情報を、サーバー構成への影響を最小限にして格納できます。

注意:

formsweb.cfgのデフォルト・セクションのベースHTMLテンプレートのエントリをオーバーライドするには、アプリケーション固有の名前が付いた構成に元の値(または他の有効なHTMLファイル)を示す同じエントリを追加する必要があります。

[myApp]
form=myApplication.fmx
lookandfeel=oracle
baseHTML=base.htm
baseHTMLjpi=basejpi.htm

これらのベースHTMLの値を指定していない状態でユーザーによるアプリケーションの実行が発生すると、アプリケーション固有の構成セクションがデフォルト値をオーバーライドしていないのでforbidden.htmlページが表示されます。

4.6 ユーザー独自のテンプレートHTMLファイルの作成

ここでは、(Oracleが提供するテンプレートを変更して)ユーザー独自のHTMLファイル・テンプレートを作成することを検討します。ユーザー独自のテンプレートを作成すると、標準のFormsパラメータおよびパラメータ値をテンプレートに直接指定できます。作成したテンプレートには、標準テキスト、ブラウザ・ウィンドウ・タイトル、またはイメージ(会社のロゴなど)を挿入でき、これらはWebで使用できるフォームを実行するときに参照できる、最初のWebページに表示されます。標準パラメータ、値、および追加のテキストまたはイメージを追加すると、特定のアプリケーションのテンプレートをカスタマイズするために必要な作業量を減らすことができます。テキスト、イメージまたはウィンドウ・タイトルを追加するには、テンプレートHTMLファイルに適切なタグを挿入する必要があります。

serverArgsアプレット・パラメータのコーディングの詳細は、第3章「ランフォーム・パラメータにおける特殊文字の指定」を参照してください。

ユーザーが追加してカスタマイズした構成ファイル(ユーザー・クライアント・レジストリ・ファイル、ユーザー・キー・バインディング・ファイル、複数の環境ファイルなど)は、対応するデフォルトの構成ファイルと同じディレクトリにコピーしておく必要があります。

たとえば、ユーザーが作成したフランス語環境の構成ファイルdefault_fr.envは、$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/configディレクトリに置く必要があります。

4.6.1 テンプレートHTMLファイルでの変数参照

引用符またはアポストロフィで区切られた文字列(アプレット・パラメータの値など)内で変数参照が発生すると、変数参照が変数の値で置換されるときに、HTMLのメタ文字('&'、'<'、'>'、引用符およびアポストロフィ)がHTMLエスケープ・シーケンスで置換されます。

このシーケンスは、区切られた文字列外の変数参照に対して実行されません。このため、セキュリティ上の理由から、このような変数はシステムのデフォルトの構成パラメータrestrictedURLparamsで指定する必要があります。

注意:

カーソルの点滅速度を変更するか、点滅を無効にするには、クライアント・パラメータcursorBlinkRateを<PARAM NAME="cursorBlinkRate" VALUE="1000">のように設定します。

デフォルト値は600ミリ秒で、この状態では1回の点灯と1回の消灯が1.2秒(1,200ミリ秒)ごとに完了します。ゼロを指定すると点滅が無効になり、カーソルは常に点灯した状態になります。

4.7 Forms Servicesで使用するフォント、アイコンおよびイメージの配置

この項では、Registry.datのフォント、アイコンおよびイメージのデフォルトのディレクトリおよび検索パスの指定方法を説明します。デフォルトのRegistry.datファイルのサンプルを確認するには、第C.8.1項「Registry.dat」を参照してください。

4.7.1 Fusion Middleware Controlを使用したRegistry.datの管理

Registry.dat.のパラメータを変更、追加または削除するには、Fusion Middleware Controlを使用します。

「フォントとアイコンのマッピング」ページにアクセスするには:

1. Fusion Middleware Controlを起動します。

2. 「Forms」メニュー・リストから「フォントとアイコンのマッピング」を選択します。
「フォントとアイコンのマッピング」ページ(図4-8)が表示されます。

図4-8 「フォントとアイコンのマッピング」ページ

Registry.datパラメータの値を編集するには:

1. Fusion Middleware Controlを起動します。

2. 「Forms」メニュー・リストから「フォントとアイコンのマッピング」を選択します。

3. 「値」テキスト・フィールドで、値を変更するパラメータを含む行を選択します。

4. 「適用」をクリックして変更を保存します。

Registry.datパラメータとその値を追加するには:

1. 「Forms」メニュー・リストから「フォントとアイコンのマッピング」を選択します。

2. 「追加」をクリックします。
「追加」ダイアログが表示されます。

3. このパラメータの名前、値およびコメントを入力します。

4. 「作成」をクリックします。

5. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

Registry.datパラメータとその値を削除するには:

1. 「Forms」メニュー・リストから「フォントとアイコンのマッピング」を選択します。

2. 削除するパラメータを含む行を選択し、「削除」をクリックします。

3. パラメータが削除されます。

4. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

4.7.2 アプリケーションのフォントの管理

Fusion Middleware Controlでは、デフォルトのフォントおよびRegistry.datファイルによるフォント設定を変更することもできます。フォント名は、いずれもJavaフォントの名前です。各パラメータは、指定がない場合のデフォルトのプロパティを示します。

配布されたアプリケーションのフォント設定を変更するには:

1. Fusion Middleware Controlを起動します。

2. 「Forms」メニュー・リストから「フォントとアイコンのマッピング」を選択します。

3. 表4-19に基づいて、目的のフォント設定となるように設定を変更します。

表4-19 デフォルトのフォント値

フォント名

デフォルト値

default.fontMap.defaultFontname

Dialog

デフォルトのJavaフォント名です。

default.fontMap.defaultSize

900

デフォルトのフォント・サイズです。サイズには100が乗算されるので注意してください(たとえば10ptのフォントのサイズは1000)。

default.fontMap.defaultStyle

PLAIN

デフォルトのフォント・スタイル。PLAINまたはITALICです。

default.fontMap.defaultWeight

PLAIN

デフォルトのフォントの太さ。PLAINまたはBOLDです。

default.fontMap.appFontnames

Courier New,Courier,courier,System,Terminal,Fixedsys,Times,Times New Roman,MS Sans Serif,Arial

デフォルトのフォント・マッピング。アプリケーションのフォント名をカンマで区切ったリストです。

appFontnameリスト内のエントリ数は、javaFontnameリスト内の数と一致する必要があります。リストの要素はカンマで区切られ、すべての文字は文字どおりの意味を持ち、前後の空白はフォント名から削除されます。

このファイルは、NLS Planeを処理できるように、Java 1.1のフォント名を使用します。

default.fontMap.javaFontnames

MonoSpaced,MonoSpaced,MonoSpaced,Dialog,MonoSpaced,Dialog,Dialog,Serif,Serif,Dialog,SansSerif

Javaフォント名をカンマで区切ったリストです。

たとえば、デフォルトのフォントをTimes New Romanに変更するには、DialogをTimes New Romanに置き換えます。

デフォルトのフォント・マッピングは、次のように変更できます。

default.fontMap.appFontnames=Courier New,Courier,
courier,System,Terminal,Fixed,Fixedsys,Times,Times New Roman,
MS Sans Serif,Arial
default.fontMap.javaFontnames=MonoSpaced,MonoSpaced,MonoSpaced,Dialog,
MonoSpaced,Dialog,Dialog,Serif,Serif,Dialog,SansSerif

4. 「適用」をクリックして変更を保存します。

WindowsにはJavaに対応しないフォントもあります。そのため、対応しないフォントが見つかったときに表示されるJava対応のフォントを指定する(マップさせる)ことができます。前述の例では、default.fontMap.appFontnamesの各フォントは、default.fontMap.javaFontnamesのフォントに対応しています。

4.7.3 アプリケーション・アイコンの配置

Oracle Formsアプリケーションをデプロイする場合、使用するアイコン・ファイルはJPGやGIF (GIFがデフォルトの形式)などのWeb対応形式にする必要があります。

デフォルトでは、アイコンはDocumentBaseディレクトリを基準とした相対パスにあります。つまり、DocumentBaseはアプリケーションの開始HTMLファイルのベース・ディレクトリを基準にした相対ディレクトリからイメージを検索します。開始HTMLファイルはFormsサーブレットにより動的にレンダリングされるので、formsディレクトリがドキュメント・ベースになります。

たとえば、アプリケーションでボタンのアイコンのディレクトリをmyapp/<iconname>に定義している場合、そのアイコンはディレクトリforms/myapp内で検索されます。

デフォルトのディレクトリを変更するには、Enterprise Manager Fusion Middleware Controlの「Web構成」ページでimageBaseパラメータをcodebaseに設定します。または、$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms/registry/oracle/forms/registryディレクトリにあるRegistry.datファイルのdefault.icons.iconpath値を変更することもできます。

imageBaseパラメータをcodebaseに設定すると、Oracle Formsはforms/javaディレクトリでアイコン・ファイルを検索します。この設定を使用するのは、ユーザーのイメージがJavaアーカイブ・ファイルに格納されている場合です。アプリケーションやOracle Formsのインストールに依存しない中央のディレクトリにイメージを格納するように、Registry.dat構成ファイルでイメージのディレクトリを変更しておくと便利です。

4.7.3.1 アイコンのJavaアーカイブ・ファイルへの格納

アプリケーションで多くのカスタム・アイコン・イメージを使用する場合、そのアイコンをJavaアーカイブ・ファイルに格納し、imageBase値をcodebaseに設定しておくようお薦めします。アイコン・ファイルは、Java Software Development Kit (Java SDK)のJarコマンドを使用してJavaアーカイブにzip圧縮できます。

たとえば、コマンドjar -cvf myico.jar *.gifを使用すると、拡張子.gifの付いたファイルはすべてmyico.jarという名前のアーカイブ・ファイルにパッケージされます。

このアーカイブに格納したアイコン・ファイルにOracle Formsからアクセスできるようにするには、そのアーカイブをforms/javaディレクトリに格納する必要があります。また、アーカイブ・ファイルの名前は、formsweb.cfgファイルのカスタム・アプリケーション・セクションで使用しているアーカイブ・タグの一部にする必要があります。これで、初期アプリケーションを起動すると、アイコン・ファイルがクライアントにダウンロードされ、アーカイブ・ファイルを変更しないかぎりクライアントに保存されたままになります。

注意:

Oracle Formsのデフォルトのアイコン(デフォルトのスマート・アイコン・バーに表示されるアイコンなど)は、frmall.jarファイルの一部であるため、配置する必要はありません。

4.7.3.2 アイコンのマッピングの追加、変更および削除

アプリケーションで使用するRegistry.datファイルにアイコンの変更を追加するには、Fusion Middleware Controlを使用します。

アイコンのマッピングを追加するには:

1. Fusion Middleware Controlを起動します。

2. 「Forms」メニューから「Formsのフォントとアイコンのマッピング」を選択します。

3. 「追加」をクリックします。
「追加」ダイアログが表示されます。

4. 名前、値およびオプションのコメントを入力します。

5. 「作成」をクリックしてマッピングを作成します。
マッピングがリストに追加されます。

6. 「適用」をクリックして変更を保存します。

アイコンのマッピングを変更するには:

1. 「フォントとアイコンのマッピング」リージョンで、変更するマッピングを選択します。

2. マッピングの名前と値を変更します。次に例を示します。

- アイコンのディレクトリを指定するiconpathパラメータを次のように変更します。
default.icons.iconpath=/mydir

(絶対パスの場合)

または

default.icons.iconpath=mydir

(DocumentBaseディレクトリから始まる相対パスの場合)

- iconextensionパラメータを次のように変更します。
default.icons.iconextension=gif

または

default.icons.iconextension=jpg

3. 「適用」をクリックして、変更を保存し有効にします。

アイコンのマッピングを削除するには:

1. 「フォントとアイコンのマッピング」リージョンで、削除するマッピングを選択します。

2. 「削除」をクリックします。

3. 選択したアイコンのマッピングが削除されます。

4. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

アプリケーション・ファイルを参照するには:

- formsweb.cfgファイル内の名前を付けた固有の構成セクションで、serverAppパラメータの値を変更し、ユーザーのアプリケーション・ファイルのディレクトリと名前で値を設定します。
例:

[my_app]

ServerApp=/appfile/myapp

(絶対パスの場合)

または

[my_app]

ServerApp=appfile/myapp

(CodeBaseディレクトリを基準とする相対パスの場合)

表4-20は、アプリケーション・アイコンを配置する正しい場所を示したものです。

表4-20 アイコンのディレクトリ・ガイド

アイコンのディレクトリ

用途

方法

DocumentBase

デフォルト。カスタム・アイコンが少ないかまったくないアプリケーション。

アイコンをformsディレクトリかformsの相対ディレクトリに格納します。

Javaアーカイブ

多くのカスタム・アイコンを使用するアプリケーション。

ImageBaseをcodebaseに設定し、アイコンのJavaアーカイブ・ファイルを作成したら、アーカイブ・ファイルをformsweb.cfgのアーカイブ・パラメータに追加します。

Registry.dat

Oracle Formsのインストールとは異なる場所(別のサーバー)に保存されているカスタム・アイコンがあるアプリケーション。

Registry.datファイルでフォント・マッピングなどの他の変更を行う必要がある場合に有効です。

Registry.datをコピーし、formsweb.cfgのServerAppパラメータを変更します。

4.7.4 スプラッシュ画面イメージおよびバックグラウンド・イメージ

アプリケーションを配布する場合、(接続中に表示される)スプラッシュ画面イメージおよびバックグラウンド・イメージ・ファイルを指定することができます。

これらのイメージはHTMLファイルで次のように定義します。または、Enterprise Managerの「Web構成」ページで定義することもできます。

<PARAM NAME="splashScreen" VALUE="splash.gif">

<PARAM NAME="background" VALUE="back.gif">

スプラッシュ画面およびバックグラウンド・イメージ・ファイルのデフォルト・ディレクトリは、ベースHTMLファイルが含まれているDocumentBaseディレクトリ内にあります。

注意:

スプラッシュ画面とアイコンのイメージ形式は、java.awt.Imageでサポートされている標準形式です。java.awt.Imageの詳細は、http://java.sun.comでJava Advanced Imaging (JAI) APIを参照してください。

4.7.5 アイコンとイメージを含むカスタムJARファイル

(スプラッシュ画面またはバックグラウンドの)アイコンまたはイメージを使用するたびに、HTTPリクエストがWebサーバーに送信されます。クライアントとサーバー間のHTTPラウンドトリップ数を減らすには、Javaアーカイブ(JAR)ファイルにアイコンおよびイメージを格納するための機能を使用します。この方法を使用すると、JARファイルをダウンロードするのに、1回のHTTPラウンドトリップのみで済みます。

4.7.5.1 イメージのJARファイルの作成

Java SDKには、JARと呼ばれる実行可能ファイルが含まれています。このユーティリティを使用すると、Javaアーカイブ内にファイルを格納できます。詳細は、http://java.sun.com/を参照してください。

例:

jar -cvf myico.jar Splash.gif Back.gif icon1.gif

このコマンドにより、myico.jarと呼ばれる単一のJARファイルに3つのファイル(Splash.gif、Back.gif、icon1.gif)が格納されます。

4.7.5.2 JARファイル内でのファイルの使用

アイコンおよびイメージのデフォルトの検索パスは、documentBaseを基準とした相対パスです。ただし、それらのファイルを格納するためにJARファイルを使用する場合、検索パスは、Javaアプレットを含むディレクトリであるcodebaseディレクトリを基準とする相対パスにする必要があります。

JARファイルを使用してアイコンおよびイメージを格納するには、formsweb.cfgファイルまたはHTMLファイル内のimageBaseパラメータを使用して、検索パスがcodebaseを基準とした相対パスになるように指定する必要があります。

このパラメータには次の2つの異なる値を指定できます。

- documentBase: 検索パスはdocumentBaseディレクトリを基準とした相対パスです。imageBaseの値を指定しない場合は、documentBaseの値が使用されます。

- codeBase: 検索パスはJARファイルを使用できるようにするcodeBaseディレクトリを基準とした相対パスです。

この例では、アイコンを含むJARファイルを使用して、検索がcodeBaseの相対パスになるように指定します。パラメータimageBaseを設定していない場合は、documentBaseを基準とした相対的な検索となり、アイコンはJARファイルからは検索されません。

例(formsweb.cfg):

archive=frmall.jar, icons.jar

imageBase=codeBase

4.7.6 アイコンおよびイメージの検索パス

アイコンおよびイメージの検索パスは次の内容によって異なります。

- カスタム・アプリケーション・ファイルで指定した内容(アイコンの場合)

- デフォルトのForms構成ファイルまたはHTMLファイルのsplashScreenパラメータおよびbackgroundパラメータで指定した内容(イメージの場合)

- Fusion Middleware Controlの「Web構成」ページ(Web構成ファイル)またはHTMLファイルのimageBaseパラメータで指定した内容(アイコンとイメージの両方の場合)

Forms Servicesでは、指定した内容に応じてアイコンが検索されます。この例では、次のように仮定します。

- hostはコンピュータ名

- DocumentBaseはHTMLファイルを指すURL

- codebaseは、(formsweb.cfgファイルまたはHTMLファイルで指定した)開始クラス・ファイルのディレクトリを指すURL

- mydirは、アイコンまたはイメージのディレクトリを指すURL

4.7.6.1 DocumentBase

アイコンおよびイメージのデフォルトの検索パスは、DocumentBaseを基準とした相対パスです。この場合、imageBaseパラメータは指定しないでください。

表4-21 アイコンの検索パス

指定ディレクトリ

Forms Servicesで使用する検索パス

デフォルト

http://host/documentbase

iconpath=mydir

(アプリケーション・ファイルで指定)

http://host/documentbase/mydir

(相対パス)

iconpath=/mydir

(アプリケーション・ファイルで指定)

http://host/mydir

(絶対パス)

表4-22 イメージの検索パス

指定ディレクトリ

Forms Servicesで使用する検索パス

file.gif(たとえば、formsweb.cfgでsplashscreen=file.gifとして指定)

http://host/documentbase/file.gif

mydir/file.gif

http://host/documentbase/mydir/file.gif

(相対パス)

/mydir/file.gif

http://host/mydir/file.gif

(絶対パス)

4.7.6.2 codebase

imageBase=codebaseパラメータを使用して、JARファイルでのアイコンの検索(表4-23)およびイメージの検索(表4-24)を可能にします。

表4-23 Forms Servicesで使用するアイコンの検索パス

指定ディレクトリ

Forms Servicesで使用する検索パス

デフォルト

http://host/codebaseまたはJARファイルのルート

iconpath=mydir

(アプリケーション・ファイルで指定)

http://host/codebase/mydirまたはJARファイルのmydirディレクトリ

(相対パス)

iconpath=/mydir

(アプリケーション・ファイルで指定)

http://host/mydir

(絶対パス)

JARファイルは使用されない

表4-24 Forms Servicesで使用するイメージの検索パス

指定ディレクトリ

Forms Servicesで使用する検索パス

file.gif

http://host/codebase/file.gifまたはJARファイルのルート

mydir/file.gif

(HTMLファイルで指定)

http://host/codebase/mydir/file.gifまたはJARファイルのmydirディレクトリ

(相対パス)

/mydir/file.gif

(HTMLファイルで指定)

http://host/mydir/file.gif

(絶対パス)

JARファイルは使用されない

4.8 言語検出の有効化

Oracle Formsアーキテクチャは、複数言語の配置をサポートしています。この機能の目的は、ユーザーが使用する言語に一致する適切な構成を自動的に選択することです。この機能を使用すれば、だれでも同じURLを使用してOracle Formsアプリケーションを実行でき、しかもユーザーが使用する言語でアプリケーションを実行することができます。Oracle Forms Servicesには統合翻訳ツールは提供されていないため、翻訳済のアプリケーション・ソース・ファイルを用意する必要があります。

4.8.1 言語検出の指定

「Web構成」ページの各構成セクションに、<config_name>.<language-code>などの名前を付けた言語固有のセクションを作成できます。たとえば、構成セクションhrを作成し、フランス語と中国語を作成する場合は、構成セクションは次のようになります。

[hr]
lookAndFeel=oracle
width=600
height=500
envFile=default.env
workingDirectory=/private/apps/hr
[hr.fr]
envFile=french.env
workingDirectory=/private/apps/hr/french
[hr.zh]
envFile=chinese.env
workingDirectory=/private/apps/hr/chinese

4.8.2 インラインIMEサポート

キーを一度打つと挿入カーソルのわきにその文字が直接表示されること(いわゆるインラインまたはオンザスポット入力)が(アジア言語の文字のように)不可能な場合であっても、インラインIMEサポートにより、Forms Webアプリケーションでは作成するテキストを正しく表示できます。これはデフォルトで有効になっています。これを無効にするには、baseHTMLファイルのアプレット・パラメータinlineIMEをfalseに設定します。

<HTML>
<!-- FILE: base.htm (Oracle Forms) -->
<BODY>
...
<OBJECT classid=...
>
<PARAM NAME="inlineIME" VALUE="false">
<EMBED SRC="" ...
inlineIME="false"
>
...
.
</BODY>
</HTML>

ベースHTMLの使用方法の詳細は、付録C「base.htmファイルとbasejpi.htmファイル」を参照してください。

4.8.3 言語検出機能の仕組み

Formsサーブレットが特定の構成(http://myserv/servlet/frmservlet?config=hrなど)のリクエストを受信した場合、リクエスト・ヘッダーaccept-languageからクライアントの言語設定を取得します。この設定には、優先順位の付いた言語のリストがあります。たとえば、accept-language: de, fr, en_usは、優先順位がドイツ語、フランス語、米語となります。サーブレットは、最初の言語に一致する言語固有の構成セクションを検索します。1つの構成セクションが見つからなければ、次の構成セクションへと検索を続けていきます。言語固有の構成が検索できなかった場合は、基本の構成を使用します。

Formsサーブレットが、特定の構成が指定されていないリクエストを受信した場合(config= URLパラメータがないhttp://myserv/servlet/frmservletなど)、サーブレットはデフォルトのセクションで最初の言語([.fr]など)に一致する言語固有のセクションを検索します。

4.8.3.1 マルチレベルの継承

基本構成のあらゆる言語固有の可変の値で共通の値が重複しないように、使いやすさを考慮した結果、言語固有のセクションでは言語固有のパラメータしか定義できないように設計されています。次の4つのレベルでの継承をサポートしています。

1. config=myconfigのようなURLの問合せパラメータを使用した特定の構成が必要な場合、各パラメータの値は、ユーザーのブラウザの言語設定で最も優先順位の高い言語固有の構成セクション(たとえば、セクション[myconfig.fr])で検索されます。

2. 検出されなかった場合、その値は基本構成セクション([myconfig])で検索されます。

3. そこでも検出されなかった場合は、言語固有のデフォルト・セクション([.fr]など)で検索されます。

4. 最終的には、デフォルト・セクションで検索されます。

一般に、言語間で最も変更されやすいパラメータはworkingDirectoryとenvFileです。各言語で異なるenvFile設定を使用すると、NLS_LANG(異なるキャラクタ・セット、日付、数値書式が可能)とFORMS_PATH(言語固有のfmxファイルの取得)に異なる値を設定できます。異なるworkingDirectory設定を使用することにより、言語固有の.fmxファイルを別の方法で取得できます。

4.9 キー・マッピングの有効化

キー・バインディングは、アプリケーション機能にキーを接続します。キーを機能にバインドすると、プログラムはそのキーストロークが入力されるとバインドした機能を実行します。UNIXでは、$ORACLE_INSTANCE/config/FormsComponent/forms/admin/resource/<lang>ディレクトリ($ORACLE_INSTANCE/config/FormsComponent/forms/admin/resource/USなど)にあるfmrweb.resファイルでキー・バインディングを定義します。Windowsの場合、このディレクトリはORACLE_INSTANCE\config\FormsComponent\formsです。

キー・バインディングを定義することで、様々なキーボードを統合して、アプリケーションの使い勝手に類似性を持たせることができます。ただし、プラットフォームによっては、再マップできないキーもあります。たとえば、Microsoft Windowsでは、キーはWindowsのキーボード・デバイス・ドライバで定義されるので、キーの一部を再マップできません。[Alt]+[F4](ウィンドウを閉じる)や[F1](ヘルプ)など、Windowsに必須のキーの組合せは、再マップできません。一般に、拡張キーボードの一部であるキーも再マップできません。これらのキーには、テンキー、矢印および編集キー、[Print Screen]、[Scroll Lock]および[Pause]などがあります。

注意:

異なるNLS_LANG設定(たとえば、NLS_LANG=GERMAN_GERMANY=WE8ISO8859P1)で実行すると、異なるリソース・ファイル(fmrwebd.res)が使用されます。サポートされる各言語には、リソース・ファイルがあります。これをオーバーライドするには、パラメータterm=fullpath\filename.resをOracle Formsランタイム・プロセスに渡します。

このパラメータはURL内で直接渡すことができます。例:

http://hostname:port/forms/frmservlet?Form=test.fmx&term=fullpath/filename.res

formsweb.cfgファイルでこのパラメータを設定することもできます。例:

otherParams=term=fullpath\filename.res

4.9.1 fmrweb.resのカスタマイズ

fmrweb.resは、UNIXのviあるいはWindowsのメモ帳やワードパッドなどのテキスト・エディタを使って編集できるテキスト・ファイルです。Oracle 6i Formsとは異なり、Oracle Terminalエディタは不要です。テキスト・ファイルは自己ドキュメント化されます。

注意:

カスタマイズは、特にキャラクタ・モード・フォームと比較すると限定的です。fmrweb.resは、Oracle Enterprise Manager Fusion Middleware Controlでは編集できません。

4.9.1.1 変更の例: 入力マッピングと実行マッピングのスワッピング

USER-READABLE STRINGSとマークされたセクションで、次のエントリを検索します。

122 : 0 : "F11" : 76 : "Enter Query"
122 : 2 : "Ctrl+F11" : 77 : "Execute Query"

これを次に変更します。

122 : 2 : "Ctrl+F11" : 76 : "Enter Query"
122 : 0 : "F11" : 77 : "Execute Query"

注意:

デフォルトでは、fmrweb.resはMicrosoft Windowsクライアント/サーバーのキーボード・マッピングを反映していません。UNIX X-Windows/Motifでクライアント/サーバーを実行している場合は、キー・マッピングを反映しています。

Microsoft Windowsのクライアント/サーバーのキーボード・マッピングを実行するfmrpcweb.resと呼ばれるファイルも提供されます。このファイルを使用するには、fmrpcweb.resをfmrweb_orig.resの名前に変更して、fmrpcweb.resをfmrweb.resにコピーします。または、前述のとおりtermパラメータを使用します。

4.9.1.2 例外または特殊なキー・マッピング

次に特殊なキー・マッピングの例を示します。

- 第4.9.1.2.1項「[F2]のマッピング」

- 第4.9.1.2.2項「KEY-ENTER-TRIGGERを起動する[Enter]のマッピング」

- 第4.9.1.2.3項「ナンバー・キーのマッピング」

- 第4.9.1.2.4項「Webフォームを終了する[Esc]キーのマッピング」

4.9.1.2.1 [F2]のマッピング

[F2]をマップするには、[F2]のデフォルトのエントリ、"List Tab Pages"を別のキーに変更します。次にデフォルトのエントリの例を示します。

113: 0 : "F2" : 95 : "List Tab Pages"

次に示すように、これを別のキー・マッピングに明示的に変更する必要があります。

113: 8 : "F2" : 95 : "List Tab Pages"

F2機能を[F2]キーにマップするには、113: 0および113: 8で始まる行を#記号でコメント・アウトし、次の行をリソース・ファイルの最後に追加します。

113: 0 : "F2" : 84 : "Function 2"
113: 8 : " " : 95 : " "

デフォルトで[F2]を使用する新しい機能が追加されたので、[F2]キーをマップするにはこの新しい機能を別のものに明示的にマップする必要があります。この機能の追加により、タブ・キャンバス・ページ間のキーボード・ナビゲーションが可能になりました。このデフォルトは[F2]です。この機能がコメント・アウトされており、[F2]に割り当てられていなくても、この機能Forms Function Number 95が別のキーにマップされないかぎり[F2]キーはマップされません。

4.9.1.2.2 KEY-ENTER-TRIGGERを起動する[Enter]のマッピング

デフォルトでは、クライアント/サーバーまたはWeb上のいずれの場合も[Enter]キーを押して配置すると、カーソルがブロックの次のナビゲート先のアイテムに移動します。このデフォルトの動作をオーバーライドするには、フォームのリソース・ファイルを変更して、キーのマッピングの詳細を変更することが必要です。

fmrweb.resを変更して、[Return]キーに対するForms Function Number (FFN)を27から75に変更します。行は次のように変更します。

10 : 0 : "Return" : 75 : "Return"

デフォルトでは、この行のFFNは次のように27と表示されています。

10 : 0 : "Return" : 27 : "Return"

[Return]または[Enter]キーでは、実際にはFFN 27で表されるReturn関数が返されるため、この行はKey-Enter-Triggerを起動しません。FFN 75はEnter関数を表し、Key-Enter-Triggerを起動します。

4.9.1.2.3 ナンバー・キーのマッピング

目的は、fmrweb.resで数字0から9に対して[Ctrl]+<数字>キーをマップすることですが、fmrweb.resにはこれらの数字のためのJava関数キーがありません。実行する手順と、[Ctrl]+[1]を「次のレコード」にマップするための例を次に示します。

1. fmrweb.resファイルでキー・マッピングに実装するJava関数キーの数字をリストします。例:

public static final int VK_1 = 0x31;

2. 16進値は、fmrweb.resで使用する前に、10進の等価に変換する必要があります。
ステップ1では、0x31は16進値なので10進の等価に変換する必要があります。(Note:1019580.6)。次に例を示します。

SQL> select hextodec('31') from dual;
HEXTODEC('31')
--------------
49

3. この10進値をfmrweb.resの数字キー[1]のマッピングに使用します。たとえば、[Ctrl]+[1]は次のとおり「次のレコード」にマップされます。

49 : 2 : "CTRL+1" : 67 : "Next Record"

4.9.1.2.4 Webフォームを終了する[Esc]キーのマッピング

1. fmrweb.resのバックアップ・コピーを作成します。

2. パスORACLE_HOME/FORMSで示されるfmrweb.resファイルを開いて、次のエントリを追加します。

27 : 0 : "Esc" : 32 : "Exit"

3. 古いエントリをコメント・アウトするか削除します。

#115 : 0 : "F4" : 32 : "Exit"

最初の数字(115)は、別のバージョンまたはプラットフォームでは異なる可能性があります。Web Formを実行して、[Esc]キーを押すと、Formは終了します。

5 HTTPリスナーとOracle WebLogic ServerでのOracle Forms Servicesの使用方法

Oracle WebLogic Serverは、エンタープライズ対応のスケーラブルなJava EEアプリケーション・サーバーです。Java EEテクノロジの全機能を実装しており、高度な管理サービス、クラスタリング・サービス、Webサービスなどの数多くの追加の機能を備えています。それはOracle Fusion Middlewareプラットフォームの中核となる製品であり、スケーラブルで可用性が高く、安全なアプリケーションを構築するための安定したフレームワークを提供します。

この章には、次の項が含まれています。

- 第5.1項「Oracle WebLogic管理対象サーバーについて」

- 第5.2項「Forms管理対象サーバーでの作業」

- 第5.3項「パフォーマンス/スケーラビリティのチューニング」

- 第5.4項「Oracle WebLogic Serverのロード・バランシング」

- 第5.5項「Formsリスナー・サーブレットでのHTTPSの使用」

- 第5.6項「認証プロキシを使用したOracle Formsアプリケーションの実行」

- 第5.7項「Oracle Forms ServicesとSSL」

- 第5.8項「ロード・バランシング・ルーターによるSSLの有効化」

5.1 Oracle WebLogic管理対象サーバーについて

管理対象サーバーは、ビジネス・アプリケーション、アプリケーション・コンポーネント、Webサービスおよび関連リソースをホストします。パフォーマンスを最適化するために、管理対象サーバーは、ドメインの構成ドキュメントの読取り専用コピーを保持します。管理対象サーバーが起動すると、ドメインの管理サーバーに接続して、その構成ドキュメントと管理サーバーに保持されているドキュメントが同期化されます。Oracle Fusion Middlewareシステム・コンポーネント(SOA、WebCenter Portal、Identity Managementコンポーネントなど)とカスタマによって配布されたアプリケーションは、ドメイン内の管理対象サーバーに配布されます。構成中に、Oracle Fusion Middlewareシステム・コンポーネント(wls_soa、wls_portal、wls_formsなど)のホスト用にいくつかの管理対象サーバーが作成されます。

図5-1に、Oracle WebLogic管理対象サーバーの簡単な使用例を示します。この図の左側で、Formsサーブレットは開始HTMLファイルをレンダリングし、Formsリスナー・サーブレットに関する情報をクライアントに提供します。次に、HTTPリクエストがOracle HTTP Serverリスナーで受信され、リスナーはこれをOracle WebLogic管理対象サーバー内で動作しているFormsリスナー・サーブレット(図の右側)に渡します。Formsリスナー・サーブレットはランタイム・プロセスを確立し、クライアント・ブラウザとランタイム・プロセス間で継続的な通信を維持します。多くのユーザーがOracle Formsセッションをリクエストした場合、そのリクエストはOracle HTTP Serverリスナーで受信されます。HTTPリスナーは再びそのリクエストをFormsリスナー・サーブレットに渡し、サーブレットはさらにランタイム・プロセスを確立します。Formsリスナー・サーブレットは、多数のFormsランタイム・セッションを同時に処理できます。同時ユーザー数を制限する必要はありますが、このアーキテクチャでは高いパフォーマンスを得るためのチューニングや構成を行うことができます(次の項を参照)。

図5-1 Oracle WebLogic管理対象サーバーとForms Services

5.2 Forms管理対象サーバーでの作業

デフォルト(特別な設定をしていないインストール)では、Forms ServicesのJava EEアプリケーション(formsapp.ear)はForms管理対象サーバー(WLS_FORMS)に配布されます。Oracle WebLogic管理コンソールまたはOracle Enterprise Manager Fusion Middleware Controlを使用して、WLS_FORMSとformsapp.earを管理できます。詳細は次のトピックを参照してください。

- Forms管理対象サーバーの起動と停止: 詳細は、『Oracle Fusion Middleware管理者ガイド』のプロシージャの起動と停止の概要に関する説明を参照してください。

- FormsアプリケーションのForms管理対象サーバーへのデプロイ: 詳細は、WebLogic管理コンソール・オンライン・ヘルプのエンタープライズ・アプリケーションのインストールに関する説明を参照してください。アプリケーションのデプロイ、アンデプロイおよび再デプロイについては、『Oracle Fusion Middleware管理者ガイド』のアプリケーションのデプロイに関する説明を参照してください。

- Forms Java EEアプリケーションのカスタム・デプロイメント: 詳細は、第5.2.1項「Forms Java EEアプリケーションのカスタム・デプロイメント」を参照してください。

- Forms管理対象サーバー・クラスタの拡張: 詳細は、第5.2.2項「Forms管理対象サーバー・クラスタの拡張」を参照してください。

- クローン化された管理対象サーバーの管理: Fusion Middleware Controlを使用してクローン化された管理対象サーバーを管理する方法の詳細は、第5.2.3項「Forms Java EEアプリケーションの登録」を参照してください。

- 配布後のweblogic.xml、web.xml、application.xmlおよびweblogic-application.xmlの変更: 詳細は、第5.2.4項「Forms J2EEアプリケーションのデプロイメント・ディスクリプタの変更」を参照してください。

- WindowsサービスとしてのForms管理対象サーバーの起動: 詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverサーバーの起動と停止の管理』のWindowsサービスとしてのWebLogic Serverインスタンスの起動に関する説明を参照してください。

5.2.1 Forms Java EEアプリケーションのカスタム・デプロイメント

カスタム管理対象サーバーを作成し、そこにFormsアプリケーションをデプロイするには、次の手順を実行します。

5.2.1.1 前提条件ステップ

1. 次の環境変数を指定のパスに設定します。

- MW_HOME: この変数をOracle Middlewareホームの場所を指すように設定します(詳細は、『Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererインストレーション・ガイド』のインストール場所の指定画面に関する項を参照してください)。

- ORACLE_HOME: この変数にOracleホーム・ディレクトリの絶対パスを設定します。詳細は、『Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererインストレーション・ガイド』のインストール場所の指定画面に関する項を参照してください。

- DOMAIN_HOME: この変数に、『Oracle Fusion Middleware Oracle Portal, Forms, Reports and Discovererインストレーション・ガイド』のドメインの選択画面に関する項で指定したドメインのOracle WebLogic Serverで作成されたフォルダの場所を設定します。

2. システム・パスにJDKパスを指定します。
Java実行可能ファイルへのパスを入力します。たとえば、UNIXオペレーティング・システムでは、システム・パスに$MW_HOME/jdk<version>/binを入力します(Windowsオペレーティング・システムの場合、パスは%MW_HOME%\jdk<version>\binです)。

3. デフォルトの管理対象サーバー(WLS_FORMS)と同じクラスタの一部として管理対象サーバー(WLS_FORMS_CUSTOM_APPなど)を作成します。
管理対象サーバーの追加の詳細は、『Oracle Fusion Middleware管理者ガイド』の管理対象サーバーのドメインへの追加に関する説明を参照してください。

4. WebLogic管理コンソールを使用して管理対象サーバーの次のプロパティを指定します。

- クラスパス: 値として<ORACLE_HOME>/opmn/lib/optic.jar (Windowsオペレーティング・システムの場合は<ORACLE_HOME>\opmn\lib\optic.jar)を指定します。<ORACLE_HOME>を絶対パスに置き換えます。

- 引数: 次の値を指定します。

-Dclassic.oracle.home=<ORACLE_HOME> -Doracle.instance=<ORACLE_INSTANCE> -
Doracle.instance.name=<ORACLE_INSTANCE_NAME> -Doracle.forms.weblogic=1

すべてのエントリは一行(改行なし)である必要があります。<ORACLE_HOME>、<ORACLE_INSTANCE>を絶対パスに置き換えます。<ORACLE_INSTANCE_NAME>をOracleインスタンスの名前(デフォルト名はasinst_1)に置き換えます。

詳細は、Oracle WebLogic管理コンソール・ヘルプのサーバーの起動に関する説明を参照してください。

5. 次の手順を実行して、ORACLE_HOMEにフォルダ構造を作成します。

1. UNIXオペレーティング・システムで、カスタム・アプリケーション用の新しいフォルダを作成します。
たとえば、次のようにcustomappを作成します。

mkdir -p $ORACLE_HOME/customapp

次のように、customappにJavaフォルダを作成し、そのフォルダのシンボリック・リンクを作成します。

例:

cd $ORACLE_HOME/customapp

ln -s $ORACLE_HOME/forms/java $ORACLE_HOME/customapp/java

アプリケーション・ファイルを新しいフォルダにコピーします。

例:

cp -rpf $ORACLE_HOME/forms/j2ee $ORACLE_HOME/customapp/

2. Windowsオペレーティング・システムで、次のコマンドを使用し、ORACLE_HOMEディレクトリの下にフォルダ構造を作成します。
mkdir %ORACLE_HOME%\customapp\java

mkdir %ORACLE_HOME%\customapp\j2ee

cd %ORACLE_HOME%\customapp

xcopy /S /E %ORACLE_HOME%\forms\java %ORACLE_HOME%\customapp\java

xcopy /S /E %ORACLE_HOME%\forms\j2ee %ORACLE_HOME%\customapp\j2ee

5.2.1.2 デフォルトのサーブレット別名とコンテキスト・ルートのオーバーライド

1. EARファイルを展開します。
たとえば、UNIXオペレーティング・システムでは、次のようにします。

cd $ORACLE_HOME/customapp/j2ee

jar xvf formsapp.ear

Windowsオペレーティング・システムの場合:

cd %ORACLE_HOME%\customapp\j2ee

jar xvf formsapp.ear

2. WARファイルを展開します。
たとえば、UNIXオペレーティング・システムでは、次のようにします。

mkdir -p $ORACLE_HOME/customapp/j2ee/warfile

cd $ORACLE_HOME/customapp/j2ee/warfile

jar xvf $ORACLE_HOME/customapp/j2ee/formsweb.war

Windowsオペレーティング・システムの場合:

mkdir %ORACLE_HOME%\customapp\j2ee\warfile

cd %ORACLE_HOME%\customapp\j2ee\warfile

jar xvf %ORACLE_HOME%\customapp\j2ee\formsweb.war

3. Web-INFフォルダにあるweb.xmlデプロイメント・ディスクリプタでサーブレット別名をオーバーライドします。
たとえば、UNIXオペレーティング・システムでは、次のようにします。

cd $ORACLE_HOME/customapp/j2ee/warfile/WEB-INF

Windowsオペレーティング・システムの場合:

cd %ORACLE_HOME%\customapp\j2ee\warfile\WEB-INF

エディタでweb.xmlを編集し、frmservletをcustomservletに置き換えます(<Servlet-Name>、<url-pattern>、<welcome-file>タグの下のエントリ)。

4. WARファイルを再びパッケージします。
たとえば、UNIXオペレーティング・システムでは、次のようにします。

cd $ORACLE_HOME/customapp/j2ee/warfile

jar cvfM formsweb.war ./*

mv formsweb.war $ORACLE_HOME/customapp/j2ee/

Windowsオペレーティング・システムの場合:

cd %ORACLE_HOME%\customapp\j2ee\warfile

jar cvfM formsweb.war .\*

copy formsweb.war %ORACLE_HOME%\customapp\j2ee\

del formsweb.war

5. META-INFフォルダにあるapplication.xmlデプロイメント・ディスクリプタで、アプリケーションのコンテキスト・ルートをオーバーライドします。
たとえば、UNIXオペレーティング・システムでは、次のようにします。

cd $ORACLE_HOME/customapp/j2ee/META-INF

Windowsオペレーティング・システムの場合:

cd %ORACLE_HOME%\customapp\j2ee\META-INF

application.xmlを編集して、context-rootをcustomappに変更します。

6. formsweb.cfgでcodebaseおよびserverURLエントリを変更します。
たとえば、UNIXオペレーティング・システムでは、次のようにします。

cd $ORACLE_HOME/customapp/j2ee/config

Windowsオペレーティング・システムの場合:

cd %ORACLE_HOME%\customapp\j2ee\config

formsweb.cfgを編集し、serverURLのcontext-rootとcodebaseパラメータを変更します。

たとえば、serverURL=/forms/lservletをserverURL=/customapp/lservletに変更します。codebaseを/forms/javaからcustomapp/javaに変更します。

7. EARファイルを再びパッケージします。
たとえば、UNIXオペレーティング・システムでは、次のようにします。

cd $ORACLE_HOME/customapp/j2ee

jar cvfM customapp.ear META-INF/MANIFEST.MF APP-INF/* config/* formsweb.war META-INF/*

Windowsオペレーティング・システムの場合:

cd %ORACLE_HOME%\customapp\j2ee

jar cvfM customapp.ear META-INF\MANIFEST.MF APP-INF\* config\* formsweb.war META-INF\*

8. 展開したEARファイルの内容を消去します。UNIXオペレーティング・システムでは、次のようにします。
rm -rf META-INF APP-INF config META-INF formsweb.war

Windowsオペレーティング・システムの場合:

RMDIR META-INF APP-INF config META-INF /s /q

DEL formsweb.war

5.2.1.3 デプロイメント・プランの作成

1. customappに11.1.1というフォルダを作成します。
たとえば、UNIXオペレーティング・システムでは、次のようにします。

mkdir -p $DOMAIN_HOME/deploymentplans/customapp/11.1.1

Windowsオペレーティング・システムでは、次のようにします。

mkdir %DOMAIN_HOME%\deploymentplans\customapp\11.1.1

2. 次のエントリをファイル$DOMAIN_HOME/deploymentplans/customapp/11.1.1/plan.xml (Windowsオペレーティング・システムの場合は%DOMAIN_HOME%\deploymentplans\customapp\11.1.1\plan.xml)にコピーします。例5-1は、アプリケーション名がcustomappで、管理対象サーバー名がWLS_FORMS_CUSTOM_APPである場合のデプロイメント・プランについて説明しています。次の変更を行ってください。

- カスタム・アプリケーション名、EARファイルの場所および管理対象サーバーをご使用の環境の名前と場所に置き換えます。

- <DOMAIN_HOME>、<ORACLE_HOME>を絶対パスに置き換えます。

例5-1 デプロイメント・プランの例

<?xml version='1.0' encoding='UTF-8'?>
<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"
global-variables="false">
<application-name>customapp</application-name>
<variable-definition>
<variable>
<name>vd-<ORACLE_HOME>/customapp</name>
<value><ORACLE_HOME>/customapp</value>
</variable>
<variable>
<name>vd-<DOMAIN_HOME>/config/fmwconfig/servers/WLS_FORMS_CUSTOM_APP/applications/customapp_11.1.1/config/customapp</name>
<value><DOMAIN_HOME>/config/fmwconfig/servers/WLS_FORMS_CUSTOM_APP/applications/customapp_11.1.1/config/customapp</value>
</variable>
</variable-definition>
<module-override>
<module-name>customapp.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-<ORACLE_HOME>/customapp</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="java/*"]/local-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-<ORACLE_HOME>/customapp</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/local-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-<DOMAIN_HOME>/config/fmwconfig/servers/WLS_FORMS_CUSTOM_APP/applications/customapp_11.1.1/config/customapp</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="registry/*"]/local-path</xpath>
</variable-assignment>
</module-descriptor>
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
</module-descriptor>
</module-override>
</deployment-plan>

5.2.1.4 カスタムEARファイルのデプロイ

WebLogic Scripting Tool (WLST)コマンドを使用してカスタムEARファイルをデプロイします。たとえば、UNIXオペレーティング・システムでは、次のようにします。

$MW_HOME/oracle_common/common/bin/wlst.sh

Windowsオペレーティング・システムの場合: %MW_HOME%\oracle_common\common\bin\wlst.cmd

WLSTのdeployコマンドを使用して、アプリケーションをデプロイします。

wls:/offline> connect('weblogic','welcome1')

wls:/ClassicDomain/serverConfig> deploy('customapp', '<ORACLE_HOME>/customapp/j2ee/customapp.ear', 'WLS_FORMS_CUSTOM_APP', 'nostage','<DOMAIN_HOME>/deploymentplans/customapp/11.1.1/plan.xml')

コマンドでは次の変更を行ってください。

- customappを実際のコンテキスト・ルートと置き換えます。

- <DOMAIN_HOME>、<ORACLE_HOME>を絶対パスに置き換えます。

5.2.1.5 デプロイされたカスタムForms Java EEアプリケーションの登録

第5.2.3項「Forms Java EEアプリケーションの登録」の手順を実行して、新しくデプロイされたカスタム・アプリケーションを登録します。次の例に示すカスタム・アプリケーションのmanagedserver、formsappNameおよびasinstNameの値を入力します。

$FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
--adminServerName=AdminServer --asinstName=asinst_1
--managedServer=WLS_FORMS_CUSTOM_APP --formsappName=customapp name -o registerApp

5.2.1.6 パッチ適用後のタスク

既存のOracle Fusion Middleware 11gパッチ・セット1(リリース11.1.1.2.0)またはパッチ・セット2(リリース11.1.1.3.0)環境にパッチを適用して最新のパッチ・セットに対応してある場合は、次の手順を実行します。

1. Forms J2EEアプリケーション・ファイルをcustomappディレクトリにコピーします。UNIXオペレーティング・システムでは、次のようにします。
cp -rpf $ORACLE_HOME/forms/j2ee/* $ORACLE_HOME/customapp/j2ee/*

Windowsオペレーティング・システムの場合:

xcopy /S /E %ORACLE_HOME%\forms\java %ORACLE_HOME%\customapp\java

xcopy /S /E %ORACLE_HOME%\forms\j2ee %ORACLE_HOME%\customapp\j2ee

2. 「デフォルトのサーブレット別名とコンテキスト・ルートのオーバーライド」の手順を繰り返します。

3. カスタム管理対象サーバーを再起動します。

5.2.1.7 カスタム・デプロイメントのテスト

http://<Host>:<Port Number>/<context root>/<servlet name>のURLを使用して、デプロイメントをテストします。

この項の例の場合、URLはhttp://<Host>:<Port Number>/customapp/customservlet.となります。

5.2.2 Forms管理対象サーバー・クラスタの拡張

ハイエンド・マシン(マルチプロセッサと大容量メモリーを搭載したマシン)でFormsデプロイメントのスケーラビリティとパフォーマンスの向上を図るには、Forms管理対象サーバー・クラスタ(cluster_forms)を拡張します。次の手動の手順を実行してForms管理対象サーバー・クラスタを拡張します。

1. 次の手順を実行して、新しい管理対象サーバーをクラスタ(cluster_forms)に追加します。

1. Oracle WebLogic Server管理コンソールを使用して、デフォルトのForms管理対象サーバー(WLS_FORMS)を複製するか、新しい管理対象サーバー(ポート番号を9010としたWLS_FORMS_1など)を作成するかを選択できます。
Fusion Middleware Controlを使用して新しい管理対象サーバーまたはクローン化された管理対象サーバーを管理する方法の詳細は、第5.2.3項「Forms Java EEアプリケーションの登録」を参照してください。

2. 「サーバー・プロパティ」ページで、新しく作成した管理対象サーバーをFormsクラスタcluster_formsに追加します。

3. 「一般」タブで、この管理対象サーバーにポート番号を割り当てます。

4. この管理対象サーバーにマシンを割り当てます。

2. 次の手順を実行して、新しい管理対象サーバーの構成を編集します。

1. Oracle WebLogic Server管理コンソールの「サーバーの起動」タブで、次の「サーバーの起動」プロパティを設定します。

2. 次のシステム・プロパティを追加します。引数の間には改行を記述しません。
-Dclassic.oracle.home=<ORACLE_HOME location>-Doracle.instance=<ORACLE_INSTANCE location>-Doracle.instance.name=<ORACLE_INSTANCE Name>

-Doracle.forms.weblogic=1

3. クラスパスに<ORACLE_HOME>/opmn/lib/optic.jar:<FMW_HOME>/oracle_common/modules/oracle.ldap_11.1.1/ldapjclnt11.jar:<FMW_HOME>/oracle_common/jlib/rcucommon.jarを追記します。

3. 変更をアクティブにして、新しい管理対象サーバーを起動します。

4. forms.confのWebLogicClusterエントリに、新しい管理対象サーバーのホストとポートの情報を追加します。
<Location /forms>

SetHandler weblogic-handler

WebLogicCluster <HostName>:9001, <HostName>:9010

DynamicServerList OFF

</Location>

5. OHSを再起動します。

5.2.3 Forms Java EEアプリケーションの登録

Fusion Middleware Controlを使用して、デフォルトのForms WLSクラスタの下で新しい管理対象サーバーまたはクローン化された管理対象サーバーを管理するには、Forms Java EEアプリケーションを登録します。

Forms Java EEアプリケーションを登録するには、次の手順を実行します。

1. 例5-2に示すようにサンプルWLSTスクリプトを作成します。この例の場合、スクリプト名はformsappRegistration.pyです。

例5-2 WLSTスクリプトのサンプル

#
# formsappRegistration.py
# Workaround script to register/unregister Forms J2EE application Mbean
# as a member of Forms System Component Mbean
#
from javax.management import ObjectName, Attribute
from jarray import array
import getopt, sys
#
# function prints the usage
#
def usage():
message = "--------------------------------------------------------------------------------\n" \
+ "Usage : " + \
" $FMW_HOME/oracle_common/common/bin/wlst.sh " + sys.argv[0] +" \
--adminServerName=<admin server name> --asinstName=<Oracle Instance name> \
--managedServer=<newly added Forms managed server name>  --formsappName=<forms \
J2EE application name> -o <option> " + \
"\n \nvalid option - registerApp or unregisterApp" + \
"\n \n examples:" +   \
"\n$FMW_HOME/oracle_common/common/bin/wlst.sh " + sys.argv[0] +"\ --adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1 \ --formsappName=formsapp -o registerApp " + \
"\n$FMW_HOME/oracle_common/common/bin/wlst.sh " + sys.argv[0] + "\
--adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1 \
--formsappName=formsapp -o unregisterApp " +  \
"\n--------------------------------------------------------------------------------"
print message
#
# getFormsCompMbeanObjectName - function to generate the Forms System Component
#                                                      Mbean ObjectName.
#
def getFormsCompMbeanObjectName(asInstName, adminServerName):
frmCompONameString = "oracle.as.management.mbeans.register:" \
+ "Location="+ adminServerName + ",type=SystemComponent,name=/" \
+ asinstName +"/forms,instance=" + asinstName \
+ ",component=forms,EMTargetType=oracle_forms";
print frmCompONameString
frmCompOName = ObjectName(frmCompONameString)
return frmCompOName
#
# getFormsAppMbeanObjectName - function to generate the Forms J2EE application
#                                                    ObjectName.
#
def getFormsAppMbeanObjectName(appName, managedServer):
frmappONameString = "com.bea:Name="+formsappName+ "#11.1.1,Location=" +\
managedServer+ ",Type=AppDeployment"
frmappOName = ObjectName(frmappONameString)
return frmappOName
#
# doesMemberExist - utility function to check if app is already registered as a member
#
def doesMemberExist(member, list):
for item in list:
if item == member:
return 1
return None
#
#  registerFormsApp - registers Forms J2EE application Mbean as a member of
#                              Forms System Component Mbean
#
def registerFormsApp(formsCompMbean, frmappMbean):
domainRuntime()
membersArray = mbs.getAttribute(formsCompMbean,"Members")
membersList = membersArray.tolist()

if membersList == []:
print "Members list is empty"
else:
print "Members list is not empty"

if doesMemberExist(frmappMbean, membersList):
print "Member already registered, skipping registration"
else:
print "Member is not found, append it to the members list"
membersList.append(frmappMbean)
membersArray = array(membersList, ObjectName)
membersAttrib = Attribute("Members",membersArray)
mbs.setAttribute(formsCompMbean, membersAttrib)
#
#  unregisterFormsApp - unregisters Forms J2EE application Mbean as a member of
#                              Forms System Component Mbean
#
def unregisterFormsApp(formsCompMbean, frmappMbean):
domainRuntime()
membersArray = mbs.getAttribute(formsCompMbean,"Members")
membersList = membersArray.tolist()

if membersList == []:
print "Members list is empty"
else:
print "Members list is not empty"

if doesMemberExist(frmappMbean, membersList):
print "Found the Member, removing it."
membersList.remove(frmappMbean)
membersArray = array(membersList, ObjectName)
membersAttrib = Attribute("Members",membersArray)
mbs.setAttribute(formsCompMbean, membersAttrib)
else:
print "Member not found, skipping unregister"
#
# execution starts here
#

if len(sys.argv) != 7 :
print "invalid arguments passed to the script"
usage()
sys.exit(0)

# trim the first argument which is the name of the script

args = sys.argv[1:7]
optlist, args = getopt.getopt(args,'o', [ 'adminServerName=','asinstName=','managedServer=','formsappName='])
options = dict(optlist)

adminServerName = options["--adminServerName"]
asinstName = options["--asinstName"]
managedServer = options["--managedServer"]
formsappName  = options["--formsappName"]

if adminServerName == [] or \
managedServer == [] or formsappName == [] or not args:
print "invalid arguments passed to the script "
usage()
sys.exit(0)

argument = args[0]
print "enter the WLST connection paramters ..."
connect()

frmcompMbean = getFormsCompMbeanObjectName(asinstName,adminServerName)
print frmcompMbean

frmappMbean = getFormsAppMbeanObjectName(formsappName,managedServer)
print frmappMbean

if argument == "registerApp":
print "registering Forms J2EE application " + formsappName
registerFormsApp(frmcompMbean,frmappMbean)
elif argument == "unregisterApp":
print "unregistering Forms J2EE application " + formsappName
unregisterFormsApp(frmcompMbean,frmappMbean)

else:
print "invalid option passed to the scripts ..."
usage()

disconnect()
print "done... "

2. スクリプトを実行します。例5-3に示すようにhelp引数を使用して、詳細を参照できます。

例5-3 サンプル・スクリプトの実行

$FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py help

--------------------------------------------------------------------------------
Usage :
$FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
--adminServerName=<admin server name> --asinstName=<Oracle Instance name>
--managedServer=<newly added Forms managed server name>  --formsappName=<forms
J2EE application name> -o <option>

valid options - registerApp or unregisterApp

examples:
$FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
--adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1
--formsappName=formsapp -o registerApp

$FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
--adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1
--formsappName=formsapp -o unregisterApp

$FMW_HOME/oracle_common/common/bin/wlst.sh formsappRegistration.py
--adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1
--formsappName=formsapp -o unregisterApp
--------------------------------------------------------------------------------

3. プロンプトが表示されたら、管理サーバーのユーザー名、パスワードおよび接続情報を入力します。

4. デフォルトのサーバーURLを受け入れます。

5. 例5-4は、サンプルの実行とサーバー登録の結果を示しています。

例5-4 サンプルの実行と結果

$FMW_HOME/oracle_common/common/bin ( ) -> ./wlst.sh formsappRegistration.py –
adminServerName=AdminServer --asinstName=asinst_1 --managedServer=WLS_FORMS1 –
formsappName=formsapp -o registerApp

CLASSPATH=. . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
Your environment has been set.

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

enter the WLST connection paramters ...
Please enter your username :weblogic
Please enter your password :
Please enter your server URL [t3://localhost:7001] :
Connecting to t3://localhost:7001 with userid weblogic ...
Successfully connected to Admin Server 'AdminServer' that belongs to domain
'ClassicDomain'.

Warning: An insecure protocol was used to connect to the
server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.

registering Forms J2EE application formsapp
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean
as the root.
For more help, use help(domainRuntime)

Members list is not empty
Member is not found, append it to the members list
Disconnected from weblogic server: AdminServer
done...

5.2.4 Forms J2EEアプリケーションのデプロイメント・ディスクリプタの変更

配布後は、Forms J2EEアプリケーションのデプロイメント・ディスクリプタ(weblogic.xml、web.xml、application.xmlおよびweblogic-application.xml)をOracle WebLogic Serverで変更することはできなくなります。

次の手順を実行してForms J2EEアプリケーションのデプロイメント・ディスクリプタをカスタマイズし、そのアプリケーションを再配布することでこの問題を解決できます。

1. デフォルトのformsappデプロイメント・プラン$DOMAIN_HOME/deploymentplans/formsapp/11.1.1/plan.xmlのバックアップを作成します。

2. Forms J2EEアプリケーションのデプロイメント・プランに、デプロイメント・ディスクリプタのカスタマイズを追加します。例は、「デプロイメント・プランの変更」を参照してください。

注意:

デプロイメント・プランの更新の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。

3. WebLogic管理コンソールを使用して、Formsアプリケーションを更新(再配布)し、オプション「このアプリケーションを新しいデプロイメント・プランの変更とあわせた場所に更新します。」を選択します。

4. WebLogic管理コンソールを使用してForms J2EEアプリケーションを再起動します。

デプロイメント・プランの変更

この例では、FormsサーブレットのtestModeパラメータをオーバーライドしてその値をtrueに設定するようにデプロイメント・プランを変更します。デプロイメント・プランを変更するには、次の手順を実行します。

1. 次のコマンドを入力します。

mkdir –p $CLASSIC_ORACLE_HOME/forms/j2ee/backup
cd $CLASSIC_ORACLE_HOME/forms/j2ee
cp $DOMAIN_HOME/deploymentplans/formsapp/11.1.1/plan.xml backup/
vi $DOMAIN_HOME/deploymentplans/formsapp/11.1.1/plan.xml

2. デプロイメント・プランを変更します。次はデプロイメント・プランの例で、追加したエントリを太字で強調表示しています。

<?xml version='1.0' encoding='UTF-8'?>
<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" global-variables="false">
<application-name>formsapp</application-name>
<variable-definition>
<variable>
<name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
<value>/scratch/t_work/Oracle/Middleware/as_1/forms</value>
</variable>
<variable>
<name>vd-/scratch/t_work/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms</name>
<value>/scratch/t_work/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms</value>
</variable>
<variable>
<name>FormsServlet_InitParam_testMode</name>
<value>true</value>
</variable>
</variable-definition>
<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/Middleware/as_1/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/Middleware/as_1/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/local-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="registry/*"]/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>

3. WebLogic管理コンソールを使用して、Forms J2EEアプリケーション・デプロイメント(formsapp (11.1.1))を更新します。Forms J2EEアプリケーションの再デプロイの詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。

4. WebLogic管理コンソールを使用してForms J2EEアプリケーションを再起動します。

5.3 パフォーマンス/スケーラビリティのチューニング

Formsリスナー・サーブレットをチューニングする手順は、スループットの高いサーブレット・アプリケーションをチューニングする手順と同様です。特定のForms Servicesの構成に最適なチューニングを行うには、リソース管理とユーザーのニーズを考慮する必要があります。詳細は、OTN(http://www.oracle.com/technology/documentation/)にあるOracle Fusion Middlewareのパフォーマンス・ガイドを参照してください。

5.3.1 HTTPDプロセス数の制限

メモリーを大量に消費するHTTPDプロセス生成を制御するには、Oracle HTTP Listener構成ファイル(httpd.conf)でKeepAliveディレクティブをKeepAlive Offと設定します。

KeepAliveでは、永続的な接続(接続ごとに複数のリクエスト)を許可するかどうかを指定します。たとえば、別のアプリケーションに対してKeepAlive Onを使用する必要がある場合は、KeepAliveTimeoutをデフォルトの15秒のような低い数値に設定してください。KeepAliveの設定は、クライアント(ブラウザ)とOHSサーバー間で永続的な接続を維持するために使用されます。OHSとOracle WebLogic Server間の接続には関係ありません。

5.3.2 高い値のMaxClientsディレクティブの設定

多数のHTTPDプロセスを作成するタイミングは、HTTPリスナーで判断できます。そのため、構成ファイル(httpd.conf)ではMaxClientsディレクティブを高い値に設定します。ただし、このパラメータを設定する際にはシステム上のメモリー容量を考慮する必要があります。

MaxClients=256は、同時にリクエストを処理するHTTPDプロセスをリスナーが最大256作成できることを示します。

HTTPリクエストが急激に増大し、必要なHTTPDプロセスを開始する時間を短縮する必要がある場合は、適切な数のプロセスに対応するように、MinSpareServersとMaxSpareServers (httpd.conf内)を設定できます。ただし、ほとんどのサイトではそれぞれ5と10のデフォルト値で十分です。

5.4 Oracle WebLogic Serverのロード・バランシング

Formsリスナー・サーブレットのアーキテクチャでは、標準のHTTPロード・バランシング技術を使用して、システムのロード・バランスを実現します。

Oracle HTTP Serverリスナーで提供するロード・バランシング・メカニズムでは、複数のWebLogicインスタンスをHTTPプロセスと同じホストで実行することも、複数の異なるホストやその組合せで実行することもできます。次に、HTTPリスナーはHTTPリクエストをOracle WebLogic管理対象サーバー・インスタンスにルーティングします。

次の使用例では、ホストを組み合せた使用方法を紹介します。ユーザーのサイトにどのような選択が最も適しているかは、様々な要因により異なります。

この機能の詳細は、OTN(http://www.oracle.com/technology/documentation/index.html)にあるOracle Fusion Middlewareのパフォーマンス・ガイドを参照してください。

次の図では、配置例を4つ示します。

- 図5-2は、Oracle HTTP Serverによって、Oracle HTTP Listenerと同じホスト上にある複数のOracle WebLogic管理対象サーバー間で受信リクエストが分散される場合を示しています。

- 図5-3は、Oracle HTTP Serverによって、Oracle HTTP Listenerとは異なるホスト上にある複数のOracle WebLogic管理対象サーバー間で受信リクエストが分散される場合を示しています。

- 図5-4は、Oracle HTTP Serverによって、複数の異なるホスト上にある複数のOracle WebLogic管理対象サーバーと、それぞれOracle HTTP Listenerを実行する複数の異なるホスト間で、受信リクエストが分散される場合を示しています。

- 図5-5は、Oracle HTTP Serverによって、1つのホスト上にある複数のOracle WebLogic管理対象サーバーと、それぞれOracle HTTP Listenerを実行する複数の異なるホスト間で、受信リクエストが分散される場合を示しています。

図5-2 Oracle HTTP Listenerと同じホスト上にある複数のOracle WebLogicサーバー

図5-3 Oracle HTTP Listenerとは異なるホスト上にある複数のOracle WebLogicサーバー

図5-4 それぞれが異なるホスト上にある複数のOracle WebLogicサーバーと複数のOracle HTTP Listener

図5-5 異なるホスト上にある複数のOracle HTTP Listenerと同じホスト上にある複数のOracle Weblogicサーバー

HTTPリスナーとOracle WebLogic ServerでのForms Servicesのチューニングおよび最適化の詳細は、Oracle Technology Network (OTN)(http://www.oracle.com/technology/documentation/index.html)にあるOracle Fusion Middlewareのパフォーマンス・ガイドを参照してください。

5.5 Formsリスナー・サーブレットでのHTTPSの使用

Oracle FormsにHTTPSを使用するのは、他のWebベースのアプリケーションでHTTPSを使用するのと変わりません。HTTPSでは、デジタル証明書(VeriSignなど)を使用する必要があります。Forms ServicesサーブレットはユーザーのWebサーバーからアクセスできるため、Oracle Formsのクライアントとサーバー間の通信に特別な証明書を購入する必要はありません。正式な認証局からユーザーのWebサーバー用の証明書を購入するだけで済みます。

5.6 認証プロキシを使用したOracle Formsアプリケーションの実行

Oracle Fusion Middlewareのインストール・プロセスで設定されたデフォルトの構成では、認証プロキシがサポートされます。認証プロキシでは、アプリケーションを実行する接続先サーバーにアクセスできるように、ユーザーがユーザー名とパスワードを指定する必要があります。認証プロキシは通常、ユーザーがログインしているか(または認証されているか)どうかを検出するためにCookieを設定します。Cookieはその後のすべてのネットワーク要求時に送信され、不要なログイン・プロンプトを回避します。

Oracle WebLogic Serverのインストール・プロセスで設定されるコードベースおよびサーバーURLの値には、$ORACLE_HOME/forms/javaおよび/forms/lservletが含まれます。これらはページのドキュメント・ベース($ORACLE_HOME/forms)の下にあるので、認証プロキシが機能します。

5.7 Oracle Forms ServicesとSSL

Oracle Forms ServicesアプリケーションをSSLモードで実行するには:

- 証明書を管理するウォレットを作成します。

- Oracle HTTP ServerでHTTPSポートを有効にします。デフォルトのOracle HTTP Serverでは、SSLポートが1つ(8890)有効になっています。

- Web Cacheを有効にして、Oracle HTTP ServerからのHTTPS接続を受け入れます。

前述のトピックの詳細は、『Oracle Fusion Middleware管理者ガイド』のOracle Fusion MiddlewareでのSSL構成に関する項を参照してください。

注意:

Enterprise Managerを使用してOracle Web Cacheポートを変更する場合は、osso.confを再生成し、生成したosso.confファイルを$ORACLE_INSTANCE/config/OHS/<OHS_INSTANCE>/moduleconfディレクトリにコピーします。変更を有効にするために、Oracle HTTP ServerとOracle Web Cacheを再起動します。

5.8 ロード・バランシング・ルーターによるSSLの有効化

HTTPSポートを使用するFormsアプリケーションを実行するには、証明書をインポートする必要があります。Oracle Formsがロード・バランシング・ルーターの後ろにあり、そのOracle FormsでSSLが終了する場合、証明書をロード・バランシング・ルーターからインポートする必要があります。

ロード・バランシング・ルーター上のFormsアプリケーションでSSLを有効にするには:

1. Webブラウザを起動して、FormsアプリケーションのHTTPS URLを入力します。このURLでは、Oracleインストールで使用している完全修飾ホスト名を指定します(必要に応じてポート番号も指定)。たとえば、https://example.com:443/forms/frmservletとします。
「セキュリティ・アラート」ダイアログ・ボックスが表示されます。

2. 「証明書の表示」をクリックします。

3. 「証明書」ダイアログで、「詳細」タブをクリックします。

4. 「ファイルへコピー」をクリックします。

5. 証明書エクスポート・ウィザードの「ようこそ」ページで、「次へ」をクリックします。

6. エクスポート・ファイル形式ページで、「Base-64 encoded X.509 (.CER)」を選択し、「次へ」をクリックします。

7. c:\temp\formsなどのファイル名を入力して、「次へ」をクリックします。

8. 「終了」をクリックします。
エクスポートが正常に終了したことを示すメッセージが表示されます。

9. 「OK」をクリックします。

10. 「セキュリティ・アラート」ダイアログは開いたまま証明書エクスポート・ウィザードを終了します。

11. 使用しているJVMの証明書ストアに保存してあるセキュリティ証明書ファイルをインポートします。詳細は、次の項を参照してください。

12. 「セキュリティ・アラート」ダイアログで「はい」をクリックしてセキュリティ証明書を受け入れ、Formsアプリケーションを起動します。

Java Plug-inへの証明書のインポート

1. クライアント・マシンでコントロール・パネルを開きます。

2. Javaを開きます。

3. 「セキュリティ」タブにナビゲートします。

4. 「証明書」をクリックします。

5. 前述の項でエクスポートした証明書をインポートします。

6. 「適用」をクリックします。

6 Oracle FormsとJavaScriptの統合

この章には、次の項が含まれています。

- 第6.1項「Oracle Formsによる外部イベントのコールについて」

- 第6.2項「Oracle FormsをコールするJavaScriptイベントについて」

- 第6.3項「JavaScriptとOracle Formsの統合」

- 第6.4項「formsweb.cfgの構成」

- 第6.5項「環境変数の構成」

6.1 Oracle Formsによる外部イベントのコールについて

以前のリリースのOracle Formsでは、Forms外部の限られた数のイベント型と対話するためにOLEおよびDDEを実装する必要がありました。その後のバージョンのFormsで、外部アプリケーション・ソースとのインタフェースを実現するためにweb.show_documentおよびJavaの統合が提供されました。ただし、Formsが表示されるWebページへのコールに関しては、簡単なソリューションがありませんでした。また、HTMLフォームから取得した値を更新する場合などに、WebページからFormsをコールすることもできませんでした。

Oracle Forms 11gでは、JavaScriptの統合により、JavaScriptイベントからのFormsのコールやFormsによるJavaScriptイベントの実行が可能になっています。図6-1は、JavaScriptとOracle Formsが連携する仕組みを示しています。図の左側で、FormsアプレットがホストされているページでJavaScriptが実行されます。Oracle Formsには、ネイティブのビルトインを使用してJavaScript機能をコールできる機能が加わりました。また、JavaScript機能は、提供されている新しいAPIを使用してOracle Formsトリガーを起動できるようになりました。

図6-1 Oracle FormsとJavaScript

web組込みパッケージには、次の2つの新しいコールが提供されています。

- web.javascript_eval_expr

- web.javascript_eval_function

最初のコールweb.javascript_eval_exprは、式とターゲットの2つの引数を使用するプロシージャです。引数のデータ型はどちらもvarchar2です。この有効なJavaScript式は、Formsアプレットが埋め込まれているWebページで解釈されます。この式は、ターゲット・ページで定義されている関数のコール、またはターゲット・ページで実行できる有効なJavaScript式(たとえばdocument.bgColor='red'.)です。この式は、LiveConnectのJSObject.eval()メソッドを使用して、ターゲット引数に指定されたページまたはフレームのコンテキストで実行されます。ターゲット引数がNullの場合は、Formsアプレットが埋め込まれているページまたはフレームで式が実行されます。

2番目のコールweb.javascript_eval_functionは関数であり、varchar2値を返します。web.javascript_eval_exprとweb.javascript_eval_functionの機能は、javascript_eval_exprがFormsクライアントからForms Servicesに戻り値を送信しない点を除いて同じです。アプリケーションが戻り値を必要としない場合は、web.javascript_eval_exprを使用してください。FormsクライアントからForms Servicesに戻り値を渡す場合に必要となる余分なネットワーク送信を省くことができます。

IDがoutside_field_idであるHTMLテキスト項目の値を、insideというFormsフィールドの値に設定するには、次のPL/SQLコードを記述します。

web.javascript_eval_expr('
document.getElementById("outside_field_id").value='
||:inside
);

JavaScriptでは一重引用符と二重引用符を自由に使用できますが、PL/SQL文字列には一重引用符を使用する必要があるので注意してください。式の内部で二重引用符を使用する場合は、エスケープ・シーケンスを使用する必要はありません。Webページ内で関数を記述することもできます。

<SCRIPT>
function set_field(field_id, myvalue){
document.getElementById(field_id).value=myvalue;
};
</SCRIPT>

outsideフィールドの値を取得してinsideフィールドに割り当てるには、次のPL/SQLコードを記述します。

:inside:=web.javascript_eval_function('
document.getElementById("outside_field_id").value
');

6.1.1 Oracle Formsの外部でイベントをコールする理由

Oracle Forms 11gでは、新たに追加されたJavaScript機能によって、FormsとHTMLベースのアプリケーション・テクノロジをWebブラウザで統合することができます。たとえば、HTMLフロントエンドに基づく新しい機能を備えたページ上でFormsベースのアプリケーションを統合する必要がある場合に、JavaScript統合を使用できます。

6.2 Oracle FormsをコールするJavaScriptイベントについて

FormsアプレットをホストするWebページでJavaScriptを使用して、JavaScriptからOracle Formsをコールすることもできます。DOM (Document Object Model)ツリー内の埋め込まれたFormsオブジェクトに新しい機能が提供されています。JavaScriptを使用して次の処理を行います。

document.forms_applet.raiseEvent(event_name, payload);

ここでは、ID構成変数をforms_appletに設定していたことを前提としています。

周囲のWebページがこのJavaScriptコードを実行すると、Oracle FormsがWHEN-CUSTOM-JAVASCRIPT-EVENTという新しいタイプのトリガーを起動します。このトリガーには、system.javascript_event_valueとsystem.javascript_event_nameの2つの有効なシステム変数があります。これらの変数に含まれているペイロードとイベント名は、raiseEventメソッドを通じてFormsに渡されたものです。raiseEventメソッドがコールされると、WHEN-CUSTOM-JAVASCRIPT-EVENTという名前のトリガーがサーバー側で起動されます。

declare
event_val varchar2(300):= :system.javascript_event_value;
begin
if (:system.javascript_event_name='show') then
handleShowEvent(event_val);
elsif(:system.javascript_event_name='grab') then
handleGrabEvent(event_val);
else
null;
end if;
end;

このPL/SQLコードは、showとgrabの2つのイベントを認識します。それ以外の名前は無視されます。

6.2.1 イベントでOracle Formsを呼び出す理由

HTMLベースのアプリケーションは、Javaベースであるかどうかにかかわらず、同じホスト元Webページ内のFormsベース・アプリケーションと同期できます。たとえば、HTMLベースのアプリケーションを使用してデータの問合せを行い、ユーザーが適切なアクセス権限を持っている場合にのみ、Formsを使用してそのデータを更新します。

6.3 JavaScriptとOracle Formsの統合

この項では、Oracle FormsアプリケーションでJavaScriptを統合する例について説明します。Oracle FormsアプリケーションでJavaScriptを統合するには、次の手順を実行します。

1. 第6.1項「Oracle Formsによる外部イベントのコールについて」と第6.2項「Oracle FormsをコールするJavaScriptイベントについて」の説明に従い、JavaScriptイベントを使用するFormsアプリケーションを構築します。WHEN-CUSTOM-JAVASCRIPT-EVENTトリガーで:system.javascript_event_nameおよび:system.javascript_event_valueを使用します。このモジュールをコンパイルします。詳細は、Forms Builderのオンライン・ヘルプを参照してください。

2. Oracle Formsアプリケーションの起動で使用するHTMLページを生成するときにFormsサーブレットがテンプレートとして使用するhtmlファイルを作成します(test.htmlなど)。このファイルを、Formsの構成ディレクトリ$ORACLE_INSTANCE/config/FormsComponent/forms/serverにコピーします。

3. イメージ、htmlファイル、JavaScriptファイル、cssファイルなどの必要なファイルをすべて$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string2>/war/ディレクトリにコピーします。

4. JavaScriptを使用してサーブレットのURLを呼び出すhtmlファイル(js.htmlなど)を作成します。

5. Enterprise Managerを使用し、新しい構成セクションを作成するか、既存の構成セクションを変更して、enableJavascriptEventを有効にします。baseHTMLjpiをtest.htmlに設定します。

6. Enterprise Managerを使用し、default.envファイルを編集して、Formsアプリケーションを保存したディレクトリを環境変数FORMS_PATHに追加します。

7. ブラウザでURLにhttp://<localhost>:9001/forms/js.htmlを指定して、アプリケーションを実行します。

6.4 formsweb.cfgの構成

Formsアプリケーションの管理者は、formsweb.cfgのパラメータenableJavascriptEventをtrueまたはfalseに設定することによってJavaScript統合を有効または無効にすることができます。enableJavascriptEventがtrueに設定されていない場合、JavaScriptからのコールは無視されます。document.<applet_name>を介してFormsアプレットを参照するには、applet_nameパラメータをHTML開発者によって使用される値に設定する必要があります。

また、管理者はformsweb.cfgのJavaScriptBlocksHeartBeat(デフォルト値: false)をtrueに設定する必要があります。これにより、JavaScriptの実行中にFormのHEARTBEATがブロックされます。FORMS_TIMEOUTの時間内にJavaScriptが実行全体をコールする場合、JavaScriptBlocksHeartBeatをtrueに設定すると追加のネットワーク・メッセージを回避でき、パフォーマンスが向上します。

JavaScriptBlocksHeartBeatをtrueに設定した場合は、JavaScriptの実行に要する時間がFORMS_TIMEOUTの値を超えるとFormsが異常終了します。

6.5 環境変数の構成

default.env内のFORMS_ALLOW_JAVASCRIPT_EVENTSという名前の環境変数を使用して、JavaScript統合を有効または無効にすることもできます。デフォルトでは、この変数の値はtrueです。この変数をfalseに設定すると、formsweb.cfgでenableJavascriptEventに設定されている値に関係なく、default.envのインスタンスを使用するすべてのFormsアプリケーションでJavaScript統合が無効になります。

7 Javaサポートの拡張

この章には、次の項が含まれています。

- 第7.1項「概要」

- 第7.2項「カスタム項目イベント・トリガーについて」

7.1 概要

Oracle Formsには、標準のユーザー・インタフェース・コンポーネント(ボタン、テキスト領域、ラジオ・ボタンのグループ、リスト項目など)の外観と動作を定義するJavaクラスが用意されています。FormsのプラガブルなJavaコンポーネント(PJC)は、デフォルトのFormsクライアント・コンポーネントの拡張機能とみなすことができます。PJCを作成するときは、用意されているデフォルト・クラスの機能を拡張するように、独自のJavaコードを記述します。

7.1.1 Forms Developerからのイベントのディスパッチ

標準のFormsユーザー・インタフェース・コンポーネントの機能を拡張できるだけでなく、Java Swingユーザー・インタフェース・コンポーネントがフォームに含まれるPJCを作成することもできます。プラガブルなJavaコンポーネントにより、Formsで用意されているクラス(oracle.forms.ui.VBean)を拡張し、Formsキャンバスで表示されるようにBean領域で活用します。Bean領域には独自のユーザー・インタフェースはありませんが、コンテナになります。実装クラスを関連付けてユーザー・インタフェース・コンポーネントをいくつか追加するまでは、レイアウト・エディタやキャンバスで、空の矩形のみ表示されます。

以前のリリースのOracle Formsでは、Formsユーザー・インタフェース・コンポーネントには、IViewインタフェースが実装されていました。しかし、プラガブルなJavaコンポーネントやビューからCustomListenerの追加や削除を行う特別な方法はありませんでした。Oracle Forms 11gでは、CustomListenerの追加や削除がIViewインタフェースでできます。

7.1.2 Forms Servicesからのイベントのディスパッチ

Oracle Forms 11gでは、パラメータとペイロード付きのCustomEventが簡単にディスパッチされます。パブリック・メソッドdispatchCustomEventを公開することでJavaBeanクラスでこれが行われるので、PJCで同じメソッドを追加する必要があります。dispatchCustomEventメソッドをPJCからコールして、CustomEventをディスパッチします。

CustomEventは一般的にパラメータと関連付けられているので、Formsでは追加する方法が用意されています。JavaBeanでは、getHandler().setProperty()メソッドを使用して、パラメータを設定できます。ユーザーは、PJCで同じことができる必要があります。詳細は、第7.2.2項「実行時のカスタム項目イベント・トリガーについて」を参照してください。

7.2 カスタム項目イベント・トリガーについて

Oracle Forms 11gでは、設計時にWHEN-CUSTOM-ITEM-EVENTトリガーを項目に追加でき、実行時にトリガーを起動させるようにプラガブルなJavaコンポーネントをコーディングできます。フォームのJavaBeanカスタム・コンポーネントによってイベントが発生すると、このトリガーが起動します。WHEN-CUSTOM-ITEM-EVENTトリガーを使用して、カスタム・コンポーネントの値の選択や変更に応答できます。システム変数SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERSには、カスタム・コントロールによって起動するイベントの補足的引数を収めたパラメータの名前が格納されます。コントロールのイベント名では大文字と小文字が区別されます。

7.2.1 カスタム項目イベント・トリガーを設計時に追加する方法

トリガーを項目に追加する最も一般的な方法は、「トリガー」ノードにフォーカスがあるときに、Oracle Forms Developerにあるオブジェクト・ナビゲータ用ツールバーで「作成」ボタンをクリックするか、対応するショートカット・キーを押すことです。Forms Developerでは、使用可能なトリガーの一覧が、そのレベルかその項目に対して表示されます。

一般的に使用されるトリガーをいくつか追加する別の方法は、オブジェクト・ナビゲータで項目のトリガー・ノードを右クリックすることです。そして、「スマート・トリガー」メニューの一覧で、トリガーのいずれかを選択します。

トリガーでの作業方法の詳細は、Oracle Forms Developerのオンライン・ヘルプを参照してください。

7.2.2 実行時のカスタム項目イベント・トリガーについて

Oracle Forms 11gでは、プラガブルなJavaコンポーネントで、WHEN-CUSTOM-ITEM-EVENTトリガーを起動できます。この機能強化版トリガーでは、クライアントとサーバーとの間における通信の内容をより綿密に制御できます。

Formsクライアントでは、プラガブルなJavaコンポーネントを介して、CustomEventがディスパッチされます。これによって、WHEN-CUSTOM-ITEM-EVENTトリガーがForms Serviceで起動されます。WHEN-CUSTOM-ITEM-EVENTトリガーには、CustomEventを介してクライアントのプラガブルなJavaコンポーネントから渡されたイベント名とパラメータ値を取得する簡単な方法が用意されています。イベント名は、SYSTEM.CUSTOM_ITEM_EVENTに格納されます。パラメータ(名前と値)は、SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERSに格納されます。

Formsビルトインのget_parameter_attrは、SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERSから異なるパラメータと値を取得するために使用します。get_parameter_attrから返される値やペイロードでサポートされているデータ型は、VARCHAR2文字列です。

7.2.3 例: プッシュ・ボタンのJavaクラス

この例では、File Openオプションを使用してクライアント・ファイルを選択できるようにし、そのパスをサーバーに返すプッシュ・ボタンのJavaクラスを作成します。

1. 次のような単純なPJCコードにより、プッシュ・ボタンのJavaクラスを作成します。

// MyButtonPJC.java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFileChooser;
import oracle.forms.ui.CustomEvent;
import oracle.forms.ui.VButton;
import oracle.forms.properties.ID;
public class MyButtonPJC extends VButton implements ActionListener
{
private static final ID CLIENT_SELECTED_FILE = ID.registerProperty("CLIENT_SELECTED_FILE");
public MyButtonPJC()
{
addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
JFileChooser fc = new JFileChooser();
if(fc.showOpenDialog(getHandler().getApplet()) == JFileChooser.APPROVE_OPTION)
{
CustomEvent ce = new CustomEvent(getHandler(), "MyButtonPJC_Event");
ce.setProperty(CLIENT_SELECTED_FILE, fc.getSelectedFile().getAbsolutePath());
this.dispatchCustomEvent(ce);
}
}
public void destroy()
{
removeActionListener(this);
super.destroy();
}
}

2. 該当の環境でCLASSPATH変数を定義し、$ORACLE_HOME/forms/java/frmall.jarを追加します。

3. このJavaクラスをコンパイルします。後でJARを容易に作成できるように、javac (Javaコンパイラ)の-d <output-directory>オプションを使用することで、独立したディレクトリに出力クラス・ファイルを置きます。

4. 出力ディレクトリに移動し、次のコマンドを使用して、生成したクラス・ファイルを収めたJARファイル(MyButtonPJC.jarなど)を作成します。
jar cvf <jar-file-path> *

5. MyButtonPJC.jarは、Formsアプレットに配置する前に署名が必要です。$ORACLE_INSTANCE\binディレクトリにあるsign_webutil.sh (Windowsではsign_webutil.bat)を使用してJARファイルに署名できます。詳細は、Forms Builderのオンライン・ヘルプを参照してください。

6. MyButtonPJC.jarを$ORACLE_HOME/forms/javaディレクトリにコピーします。

7. FORMS_BUILDER_CLASSPATHにMyButtonPJC.jarのパスを追加します。これにより、このJARに収めたクラス・ファイルをForms Builderで利用できるようになります。

8. Formsアプリケーションのレイアウトにプッシュ・ボタンを追加します。

9. プッシュ・ボタンの「プロパティ・パレット」で、MyButtonPJCを実装クラスとして設定します。

10. WHEN-CUSTOM-ITEM-EVENTトリガーをプッシュ・ボタンに追加します。

11. プッシュ・ボタンのWHEN-CUSTOM-ITEM-EVENTトリガーに、次のPL/SQLコードを追加します。このコードはPJCによってディスパッチされたCustomEventを処理し、イベントのパラメータを抽出します。

declare
filePath VARCHAR2(1024);
dataType      PLS_INTEGER;
begin
Message('Custom Event Name='||:SYSTEM.CUSTOM_ITEM_EVENT);
get_parameter_attr(:SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS,'CLIENT_SELECTED_FILE',dataType, filePath);
Message('The selected client file path is '|| filePath);
end;

12. Forms構成ファイル(formsweb.cfg)のarchiveパラメータで、JARのカンマ区切りリストにMyButtonPJC.jarを追加します(フル・パスではなく、JARファイル名のみを記述します)。これにより、クライアント側でFormsアプレットにこのJARファイルがロードされるようになります。

8 サーバー・イベントでの作業

この章には、次の項が含まれています。

- 第8.1項「Oracle Formsとサーバー・イベントについて」

- 第8.2項「イベントの作成」

- 第8.3項「イベントのサブスクライブ」

- 第8.4項「イベントの伝播」

- 第8.5項「データベース・イベントの公開」

- 第8.6項「Forms間におけるアプリケーションの統合について」

8.1 Oracle Formsとサーバー・イベントについて

タイマーを除いて、Oracle Formsのイベントのほとんどは、ユーザーの操作介入により発生します。以前のリリースのOracle Formsでは、フォームのグラフィカル・ユーザー・インタフェースにバインドできない場合に、外部イベントを簡単に受信することができませんでした。開始していなかった外部イベントを処理するには、Formsクライアントでポーリングなどの手法を使用して、これらのイベントに応答するためのコードを記述する必要がありました。

Oracle Forms 11gおよびOracle Databaseでは、データベース・キューを使用して、非同期イベントなど、外部イベントを処理できます。Oracle Forms 11gでデータベース・キューを使用するには、Oracle Database 10g リリース2以上を使用している必要があります。非同期のキューイング機能であるOracle Streamsアドバンスト・キューイング(AQ)は、メッセージを異なるプログラム間で交換できるようにします。AQ機能は、PL/SQLパッケージであるDBMS_AQ、DBMS_AQADM、DBMS_AQELMなどのインタフェースを使用して実装されます。アドバンスト・キューイングの詳細は、http://www.oracle.com/technology/documentation/index.htmlにある『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。

通常、イベントとデータベース・キューの統合に必要な手順は次のとおりです。

データベース

- キュー表の作成: アドバンスト・キューイングを設定するユーザーの管理権限とアクセス権限(AQ_ADMINISTRATOR_ROLE、AQ_USER_ROLE)を定義します。ペイロードのオブジェクト・タイプと、そのオブジェクト・タイプを使用するメッセージのペイロードを定義します。ペイロードを使用して、キュー表を定義します。

- キューの作成: キュー表のキューを定義します。キュー表には、同じペイロード・タイプを持つ複数のキューを保持できます。

- キューの開始: キューに対するエンキュー/デキューを有効化します。

- メッセージのエンキュー: DBMS_AQ.ENQUEUEプロシージャを使用して、キューにメッセージを記述します。

Forms Builder

- イベント・オブジェクトの作成: Forms Builderのオブジェクト・ナビゲータで、「イベント」ノードに新しいイベントを作成します。

- キューへのイベント・オブジェクトのサブスクライブ: キューの名前は、「サブスクリプション名」プロパティに指定します。

- 必要な通知のコード化: Formsによって実行されるためにキューに入れられ、クライアントからのリクエストをサーバーが受信したときに実行されるイベント処理ファンクションを記述します。「イベント」ノードに接続されるイベント発生処理トリガーのトリガー・コードを記述します。

Forms Services

- フォームを実行して、サブスクリプションを登録します。

- イベント通知を受信したら、イベント発生処理トリガーを起動します。

以前のリリースのFormsでは、外部イベントを処理するには、カスタムのプログラムを作成する方法でのみ可能でした。これは一般的に、FormsのJava Beanサポート機能を使用してJavaで実現していました。Oracle Forms 11gでは、アドバンスト・キューイング(AQ)と対話的に処理できる手法(Java Message Service (JMS)など)からFormsにコールすることが可能です。

図8-1に、アプリケーションと連携する各種コンポーネントの統合の向上を活用したイベントのフローを示します。図の左側に示されているOracle Formsは、Oracle DatabaseのAQ機能と双方向で通信します。図の中央に示されているOracle DatabaseのAQ機能は、Forms内部イベントをトリガーできる外部イベントとも双方向で通信します。図の右側に示されている外部イベントには、動的コンテンツを含むファイル、Webサービス、メール、JMS、データベース・コンテンツなどのテクノロジがあり、これらの外部イベントはBPELプロセスと対話し、BPELプロセスはAQと対話します。ただし、BPELは必ずしも必要ではありません。たとえば、JMSはBPELを経由しなくても、AQと直接対話できます。

注意:

ウイルス対策ソフトウェアやセキュリティ・ソフトウェアなどのサード・パーティ・ツールが稼働していると、Oracle Formsではアドバンスト・キューイングが正しく機能しないことがあります。対策として、サード・パーティのセキュリティ・ツールをすべて停止します。

図8-1 Oracle Databaseのアドバンスト・キューイングによるOracle Formsの外部イベント処理

8.2 イベントの作成

Oracle Forms Developerでは、イベント・オブジェクトを作成して管理する宣言的環境が用意されています。既知の外部イベントの場合、Forms Developerでは、使用可能なサブスクライブ・イベントの一覧が用意されています。イベント・オブジェクトのプロパティは、実行時または設計時に設定できます。特定の外部イベントに対してサブスクリプションを終了することも、イベント・オブジェクトのプロパティを動的に設定する機能でできます。

また、新しいイベント機能のほとんどは、標準のOracleインタフェースを介して使用できます。クライアント側とサーバー側のPL/SQLの両方で、データベース・イベントの作成、サブスクライブおよび公開を行う必要な機能がすべて用意されています。Oracle Formsでは、データベース・イベントを登録するために宣言的で使いやすい方法が用意されています。Oracle Formsでは、ほとんどの複雑な処理をエンド・ユーザーから隠すことで、イベントを処理する標準的方法が用意されています。

8.3 イベントのサブスクライブ

関心があることを登録しているイベントがイベント・キューに追加されると、Forms Servicesは通知を受け取ります。登録は、そのイベントの種類に応じて、ランタイムの起動時またはデータベースとの接続時に行われます。データベース・イベントの場合、イベント・キューのタイプ(永続タイプか非永続タイプ)も、イベントを作成する処理の一部として保存されます。

8.4 イベントの伝播

図8-2は、Formsクライアントがアイドル状態にある状況を示しています。Oracle FormsはHTTPプロトコルによって駆動されますが、これはリクエストとレスポンスのプロトコルのみであり、クライアントがアイドル状態の場合にクライアントで変更できません。新しいアプレット・プロパティMaxEventWaitは、イベントが発生しているかどうかをチェックするまでアプリケーションが待機する時間を制御するもので、ミリ秒で指定します。つまり、クライアントからサーバーにリクエストを送信する頻度を指定できます。このリクエストによって、イベントへのレスポンスとして指定したPL/SQLが実行されます。

ただし、サーバー側では、Forms Servicesはポーリングせずにすべてのイベントを受け取ります。一方、サーバーは、Formsクライアントからの通知を受け取らないかぎり、WHEN_EVENT_RAISEDトリガーの実行を開始しません(これは、FormsクライアントのHTTPリクエストとHTTPリプライの組合せのパラダイムによってMaxEventWaitプロパティが必要になることに起因しています)。

図8-2 アイドル状態またはアクティブ状態のクライアントにおける通知フロー

8.4.1 イベント発生処理トリガーについて

Oracle Formsでは、トリガーに対して応答したり、様々なイベントに対してトリガーを起動します。Forms Developerと内部イベントの両方に対して、Formsではトリガーのためにエントリ・ポイントが用意されています。これによって、アプリケーション開発者は、イベントを処理するコードを関連付けて実行することができます。

たとえば、定義されているトリガーは、フォームの特定オブジェクトに接続されます。トリガーが接続されるオブジェクトは、トリガーの有効範囲を定義します。たとえば、WHEN-BUTTON-PRESSEDトリガーは、ボタンが押されたときに発生するイベントに応答しますが、このイベントは、オペレータがボタンを選択したときに発生します。トリガーの名前により、イベントとトリガー・コードとの間における対応付けが確立されます。ユーザーがボタンをクリックすると、WHEN-BUTTON-PRESSEDトリガーでコードが実行されることでFormsで応答処理が行われます。

この新しいイベント・オブジェクトには、イベント・オブジェクトのレベルで定義された対応トリガーがあります。サブスクリプションが設定されたデータベース・イベントが発生すると、それに応答してそのWHEN-EVENT-RAISEDトリガーが起動します。新しいトリガーの起動は、トリガーの内部処理に似ています。ただし、この場合のイベントの発生源は、データベース・イベントのように動作の結果として起動する外部イベントであり、フォームとユーザーとの対話の結果や内部フォーム処理の結果ではありません。

8.4.2 トリガーの定義レベルと有効範囲について

Oracle Formsのトリガーは一般的に、特定のオブジェクト(項目、ブロック、フォームなど)に接続されます。トリガーが接続されるオブジェクトによって、オブジェクト階層内におけるトリガーの定義レベルが決まります。トリガーの定義レベルによって、トリガーの有効範囲が決まります。トリガーの有効範囲は、Formsオブジェクト階層内部のドメインであり、これによって、イベントに応答するトリガーに対応するイベントが発生する場所が決まります。WHEN-EVENT-RAISEDトリガーがイベント・オブジェクトに接続されていても、サーバー中心型イベントの特性により、アプリケーション・レベルの有効範囲があります。登録済データベース・イベント用の非同期コールバック・メカニズムの結果としてイベント通知が起動されると、アプリケーション内部で実行していてそのイベントのサブスクリプションのあるフォームで通知を受信します。これによって、イベントを処理するためにアプリケーション開発者が複雑なロジックのコードを記述する必要性が軽減します。

また、フォーム・レベルの有効範囲もあります。これによって、イベントが定義されている場所からアプリケーションで特定のフォームが実行している場合にのみ、イベントが処理されます。

8.5 データベース・イベントの公開

標準のPL/SQLインタフェースを使用して、データベース・イベントをFormsから公開します。たとえば、エンキュー・インタフェースをコールして、必要な引数をすべて指定すると、SalaryExceedイベントを公開できます。また、ストアド・プロシージャをコールすると、この作業を実行できます。

キュー名を渡すと、WHEN-BUTTON-PRESSEDトリガーで、次のプログラム・ユニットをコールできます。キューをデータベースにおいて定義した方法に応じて、イベントを実際に公開するために、コミット処理が必要な場合と不要な場合があります。次のサンプル・コードでは、コミットが発行されていないので、イベントは実際に公開されません。

Declare
msgprop      dbms_aq.message_properties_t;
enqopt       dbms_aq.enqueue_options_t;
enq_msgid    raw(16);
payload      raw(10);
correlation  varchar2(60);
begin
payload := hextoraw('123');
correlation := 'Jones';
enqopt.visibility := dbms_aq.IMMEDIATE;
msgprop.correlation := correlation;
DBMS_AQ.ENQUEUE( queue, enqopt, msgprop, payload, enq_msgid);
end;

データベース・イベントの詳細は、Oracle Database PL/SQLリファレンスを参照してください。

8.6 Forms間におけるアプリケーションの統合について

多くのエンタープライズ・アプリケーションは、大量のフォームで構成されています。それらのフォームは、購買、経理および販売部隊の管理などの特定の作業を実行するために定義されているものです。また、これらのアプリケーションは、フォーム・ベースでない他のアプリケーションと作業実行の一環として対話的に処理される場合があります。企業のアプリケーション(データを渡すアプリケーションも含まれる)を、パートナ、仕入先および卸売業者のアプリケーションと簡単に統合できる統合モデルを用意する必要性は、非常に重要です。

以前のリリースのOracle Formsでは、user_exitコールを使用したものから、タイマー経由でポーリングするもの、さらにプラガブルなJavaコンポーネントを使用したものまで様々なメカニズムを利用して、疎結合されたアプリケーションの統合が試みられていました。これらの方法はすべて、限定された状況において便利ですが、エンタープライズ・アプリケーションの統合では、一様なインフラストラクチャは実現されません。

配布の問題やパフォーマンスの問題を別にすると、これらの方法で完全にアプリケーションが統合されない主な理由としては、ほとんどすべてのイベントがFormsビジュアル・コンポーネントにバインドされているときにForms Developerを介してのみ統合が実現されることにあります。また、Forms Servicesとの通信は、リクエストとリプライの組合せのモデルを介して必ずFormsクライアントが開始します。

アプリケーション統合のサポートを改善するために、Oracle Forms 11gでは、同期型と非同期型のサーバー中心型イベントがサポートされています。

8.6.1 同期型通信について

同期型通信は、リクエストとリプライの組合せのパラダイムに従っています。このパラダイムでは、あるプログラムで別のプログラムにリクエストを送信し、そのリプライを受信待ちします。HTTPはこのパラダイムに従っています。この通信モデル(別名としてオンラインまたは接続済と呼ばれる)は、処理を続行する前にリプライの受信が必要なプログラムに最適です。従来のクライアント/サーバー型アーキテクチャは、このモデルに基づいています。以前のリリースのOracle Formsクライアント/サーバー・アーキテクチャも、このモデルの一例です。同期型通信モデルの短所の1つは、アプリケーションが処理を行うためにすべてのプログラムが実行している必要がある点です。ネットワークやマシンに障害が発生すると、プログラムの機能は停止します。たとえば、Forms Servicesが停止すると、Formsクライアントも機能が停止します。PL/SQLやデータベースなどの他のシステムとForms Servicesが対話的に処理する際にも、同期型通信モデルを使用します。Formsシステムでは、処理が続行する前に、現在の処理は停止してブロックされ、受信待ち状態になります。また、コールするプログラムはレスポンスを待つ必要があり、予期しないイベントはそれをポーリングするまで処理できないことも同期型通信の短所です。

8.6.2 非同期型通信について

ユーザーやフォームがリクエストをキューに置き、そのリプライを待たずに作業を続行する場合や、最初のリクエストなしで非同期イベントを受け取る場合は非同期型通信です。コンシューマのロールのプログラムでは、リクエストをキューから取得してから処理を行います。リクエストをキューに登録した後で処理を続行できるアプリケーションは、リプライの受信待ちで処理がブロックされないので、このモデルが最適です。取得するメッセージがあるまで処理を続行できるアプリケーションにも最適です。

Oracle Forms 11gでは、データベース・イベントを活用して非同期型通信をサポートしています。軽いキューイング・メカニズムにより、非同期型イベント用のメカニズムが実現されます。現在の処理対象操作がないと、キューにメッセージがあるかどうかがチェックされます。

たとえば、ある特定の条件が満足した後に、アプリケーションでデータの入力が必要な場合や、後で実行する操作が存在する場合があります。受信プログラムでは、リクエストをキューから取得してから処理を行います。

8.6.3 非同期型通信の構成

Oracle Formsでは、アプリケーション・レベルでポーリング手法を使用します。クライアントでは、指定された時間間隔でサーバーの更新がポーリングされます。ポーリングの頻度は、MaxEventWaitパラメータおよびHEARTBEATパラメータを使用して変更できます。ポーリングの頻度が高いと、クライアントでサーバーの更新がより頻繁にポーリングされますが、これは非常に多くのリソースを消費します。

ポーリング頻度の値は、formsweb.cfgで設定します。この定数に関連付けた値は、ミリ秒単位の正の整数です。

構成ファイルが設定されていないと、現在のOracle FormsのHEARTBEAT設定が使用されます。ただし、MaxEventWaitを設定して使用するには、注意が必要です。MaxEventWaitが設定されていないデフォルト設定では、HEARTBEATメカニズムがポーリングに使用されます。HEARTBEATメカニズムが使用される場合のデフォルトの遅延は2分です。MaxEventWait(ミリ秒単位)をHEARTBEATよりも小さい値に設定すると、レスポンス時間を短縮できます。

Enterprise Managerを使用してこれらのパラメータを構成する方法の詳細は、第4章「パラメータの管理」を参照してください。

9 Oracle Single Sign-OnでのForms Servicesの使用

この章には、次の項が含まれています。

- 第9.1項「概要」

- 第9.2項「OracleAS Single Sign-On、Oracle Internet DirectoryおよびFormsで使用可能な機能」

- 第9.3項「Oracle Formsで使用されるOracleAS Single Sign-Onコンポーネント」

- 第9.4項「アプリケーションでのOracleAS Single Sign-Onの有効化」

- 第9.5項「Oracle FormsとOracle Reportsの統合」

- 第9.6項「プロキシ・ユーザーの有効化と構成」

- 第9.7項「Oracle Internet Directoryの構成」

9.1 概要

Oracle Forms Servicesアプリケーションは、Oracle Application Server Single Sign-On Server (OracleAS Single Sign-On)とOracle Internet Directoryを使用して、ユーザー名とパスワード情報が格納されるシングル・サインオン環境で実行できます。OracleAS Single Sign-Onは、複数のWebベースのアプリケーションにブラウザからアクセスできるWeb環境で機能するように設計されています。OracleAS Single Sign-Onがない場合、各ユーザーはアクセスするアプリケーションごとにIDやパスワードを保持する必要があります。複数のアカウントやパスワードを保持するのは安全とは言えず、しかも効率的ではありません。

OracleAS Single Sign-On Server 10gは、共有される認証トークンまたは認証局を使用してユーザーを認証するアプリケーション機能です。あるアプリケーションで認証されたユーザーは、同一の認証ドメイン内にある他のすべてのアプリケーションでも自動的に認証されます。

Formsアプリケーションでは、OracleAS Single Sign-On Server 10gはデータベース接続認証を取得するためにのみ使用されます。この接続が確立すれば、OracleAS Single Sign-On Server 10gとの相互作用は発生しません。Formsアプリケーションを終了しても、OracleAS Single Sign-On Server 10gのログアウトは実行されません。また、OracleAS Single Sign-On Serverセッションをログアウトしても、アクティブなFormsセッションは終了しません。データベース・セッションは、サーバーのFormsランタイム(frmweb.exeなど)が(通常は明示的にフォームを終了することによって)終了するまで存続します。

OracleAS Single Sign-On Server 10gを使用すると、オラクル社の製品ではないアプリケーション(カスタムJava EEアプリケーションなど)も認証できます。

Oracle Formsアプリケーションは、OracleAS Single Sign-On ServerとOracle Internet Directoryに基づいて、企業のOracleAS Single Sign-On Serverアーキテクチャに統合されます。Oracle Forms Servicesでは、サーバー・インスタンスで実行されるすべてのFormsアプリケーションに対するシングル・サインオンが、最初からサポートされています。Formsアプリケーションでさらにコーディングを行う必要はありません。

注意:

Formsとシングル・サインオンのブラウザ・サポートの詳細は、第3.4.2項「Mozilla 3.xでのForms Single-Sign On」を参照してください。

注意:

Oracle Forms Servicesアプリケーションは、次のOIDとSSOの組合せを使用して、シングル・サインオン環境で実行されます。

- Oracle Internet Directory 10g (10.1.2.3)とOracle Single Sign-On 10g (10.1.2.3)

- Oracle Internet Directory 10g (10.1.4.3)とOracle Single Sign-On 10g (10.1.4.3)

- Oracle Internet Directory 11g (11.1.1)とOracle Single Sign-On 10g (10.1.4.3)

OracleAS Single Sign-Onの詳細は、OTNにある『Oracle Application Server Single Sign-On管理者ガイド』を参照してください。Oracle Internet Directoryの詳細は、『Oracle Fusion Middleware Oracle Identity Managementエンタープライズ・デプロイメント・ガイド』を参照してください。

9.1.1 認証フロー

図9-1に、ユーザーが最初にOracleAS Single Sign-On Server 10gで保護されたアプリケーションURLをリクエストした場合におけるOracle FormsのOracleAS Single Sign-On Server 10gサポートの認証フローを示します。

図9-1 最初のクライアント・リクエストの認証フロー

1. 図の左上で、ユーザーは、http(s)://<hostname>:<port>/forms/frmservlet?config= <application>&...のようなForms URLをリクエストします。

注意:

シングル・サインオンを使用するFormsアプリケーションでは、HTTPまたはWeb Cacheのポート番号をForms URLで指定します。Forms URLはhttp://<host name>:<http port>/forms/frmservlet?config=ssoappのように記述します。ssoappは、Forms構成ファイルの中で(ssoModeを指定して)シングル・サインオンを有効にしたセクションの名前です。

2. Formsサーブレットが、図の左下に示されているOracleAS Single Sign-On Serverログイン・ページにユーザーをリダイレクトします。

3. ユーザーが、ログイン・フォームでユーザー名とパスワードを指定します。

4. 図の中央に示されているOracle Internet Directory (LDAP Server)で、パスワードが検証されます。

5. 図の右上に示されているように、ユーザーのリクエストがsso_userid情報とともにURLにリダイレクトされます。

6. FormsサーブレットがOracle Internet Directoryからデータベース接続情報を取得します。

7. Formsサーブレットがランフォーム・セッションにユーザーIDパラメータを設定し、アプレットのFormsリスナー・サーブレットへの接続を許可します。

8. FormsサーブレットがFormsサーバーを起動します。

図9-2に、別のパートナ・アプリケーションで認証されたユーザーが、OracleAS Single Sign-On Serverで保護されたアプリケーションをリクエストした場合におけるOracle Forms Servicesのシングル・サインオン・サポートの認証フローを示します。

図9-2 後続のクライアント・リクエストの認証フロー

1. 図の左上に示されているように、ユーザーがForms URLをリクエストします。

2. Formsサーブレットが、図の左下に示されているOracleAS Single Sign-On Serverサーバーとそのログイン・ページにユーザーをリダイレクトします。

3. ユーザーのリクエストが、sso_userid情報とともにURLにリダイレクトされます。

4. Formsサーブレットが、図の中央に示されているOracle Internet Directoryからデータベース接続情報を取得します。

5. Formsサーブレットがランフォーム・セッションにユーザーIDパラメータを設定し、アプレットがFormsリスナー・サーブレットに接続されます。

6. Formsサーブレットが、図の右下に示されているFormsサーバーを起動します。

9.2 OracleAS Single Sign-On、Oracle Internet DirectoryおよびFormsで使用可能な機能

このリリースのOracle Forms Servicesでは、次の機能および拡張機能が利用可能です。

- 第9.2.1項「Oracle Internet Directoryにリソースがない場合のリソースの動的な作成」

- 第9.2.2項「FormsとOracleAS Single Sign-Onでの動的ディレクティブのサポート」

- 第9.2.3項「OracleAS Single Sign-Onで実行されるFormsのデータベース・パスワード期限切れのサポート」

9.2.1 Oracle Internet Directoryにリソースがない場合のリソースの動的な作成

シングル・サインオン・モードでは、ユーザーがFormsを使用してデータベースに接続しようとすると、そのユーザーは、OracleAS Single Sign-On ServerとOracle Internet Directoryの連係動作でmod_ossoによって認証されます。認証されたユーザーは、Formsサーブレットに送られます。Formsサーブレットは、シングル・サインオンのユーザー名が含まれたユーザーのリクエスト情報を取得します。このユーザー名とアプリケーション名によって、Oracle Internet Directoryでこのアプリケーションに対するユーザーのリソース情報を識別する一意のペアが作成されます。

認証されたFormsユーザーが、リクエストしている特定のアプリケーションのリソース、またはOracle Internet Directoryのデフォルトのリソースのいずれも持たない場合、Oracle Internet Directory/DASのセルフサービス・コンソール・ページにリダイレクトされリソースが動的に作成されます。このリソースの作成後、ユーザーは元のFormsのリクエストURLに再びリダイレクトされます。

不足したリソース情報をForms Servicesで処理する方法は、アプリケーションまたはForms Services管理者によってカスタマイズできます。次のオプションが利用可能です。

- リソースの動的な作成の許可(デフォルト)

- ssoErrorUrlパラメータに指定されている事前定義されたURLへのユーザーのリダイレクト

- Formsのエラー・メッセージの表示

システム管理者は、Forms構成ファイルにリダイレクションURL(絶対URLまたは相対URL)を指定します。

9.2.2 FormsとOracleAS Single Sign-Onでの動的ディレクティブのサポート

Formsでのシングル・サインオンの適用はformsweb.cfgファイルで行われます。シングル・サインオン・パラメータssoModeをTRUEに設定すると、アプリケーションはOracleAS Single Sign-On Serverによる認証を要求します。

このパラメータを使用すると、データベースのパスワードで保護されているアプリケーションとOracleAS Single Sign-On Serverで保護されているアプリケーションの両方をForms Servicesインスタンスで扱うことができます。シングル・サインオンはformsweb.cfgファイルで構成するので、Enterprise Manager Fusion Middleware Controlを使用して、認証のこの側面を管理できます。

9.2.3 OracleAS Single Sign-Onで実行されるFormsのデータベース・パスワード期限切れのサポート

Oracle Formsの以前のリリースでは、データベース・パスワードは問題なく変更できましたが、これらの変更(期限切れも含む)はOracle Internet Directoryに伝播されませんでした。

Oracle Forms Services 11gでは、データベース・パスワードが期限切れになった場合は、シングル・サインオン・モードで実行されるForms Servicesアプリケーションを使用してパスワードを更新すると、ユーザーが入力した新しいパスワードによって、Oracle Internet Directoryでこのアプリケーションのリソース・アクセス記述子(RAD)が更新されます。この機能により、Formsユーザーのデータベース・パスワードが変更されても、FormsでのOracleAS Single Sign-On Serverによるそのユーザーの認証が引き続き機能します。ただし、Oracle FormsではなくSQL*PLUSでパスワードが変更された場合、データベース接続文字列はOracle Internet Directoryで更新されません。

9.3 Oracle Formsで使用されるOracleAS Single Sign-Onコンポーネント

シングル・サインオン・モードでFormsアプリケーションを実行すると、Oracle Fusion Middlewareの次のソフトウェア・コンポーネントが使用されます。

- OracleAS Single Sign-On Server - Oracle Fusion Middlewareの認証サービス。Oracle Internet Directoryを使用してユーザー名とパスワードを格納します。

- mod_osso - HTTPモジュールmod_ossoは、OracleAS Single Sign-On Serverに対する唯一のパートナ・アプリケーションとして認証プロセスを簡素化し、アプリケーションで認証を透過的に行います。Oracle Forms ServicesおよびOracle Reports Servicesは、mod_ossoを使用してOracleAS Single Sign-On Serverにパートナ・アプリケーションとして登録します。

- Oracle Internet Directory - LDAP V3準拠のディレクトリ・サーバー。ユーザーのログイン情報を格納します。LDAPサーバーは、読取りアクセス用に最適化された特別なデータベースです。

- Formsサーブレット - Oracle Forms Servicesコンポーネント。最初のユーザー・リクエストを受け取り、Formsアプリケーションを起動します。Formsサーブレットは、アプリケーションでOracleAS Single Sign-On Serverが必要かどうかを検出し、リクエストをOracleAS Single Sign-On Serverにダイレクトし、Oracle Internet Directoryにアクセスしてデータベースの接続情報を取得します。

- formsweb.cfg - Forms構成ファイル。Formsアプリケーションでシングル・サインオンを有効にするためのパラメータが含まれます。formsweb.cfgファイルは、$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/configディレクトリにあります。

9.4 アプリケーションでのOracleAS Single Sign-Onの有効化

Oracle Formsアプリケーションは、中央の構成ファイル($DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/configディレクトリにあるformsweb.cfgファイル)を使用して構成されます。formsweb.cfgファイルの管理には、Fusion Middleware Controlを使用することをお薦めします。

シングル・サインオンおよびエラー処理は、formsweb.cfgファイル内の次のパラメータで定義されます。

- ssoMode [true|false]

- ssoProxyConnect [yes|no]

- ssoDynamicResourceCreate [true|false]

- ssoErrorUrl [文字列URL]

- ssoCancelUrl [文字列URL]

formsweb.cfgファイル内のこれらのOracle Formsパラメータは、User Parameterセクションで設定します。これらのパラメータは、サーバーで実行されるすべてのFormsアプリケーションの動作を定義します。これらのパラメータは、Named Configurationで設定することもできます。これらは特定のアプリケーションのみに対して定義されます。Named Configurationセクションで設定したシングル・サインオン・パラメータは、User Parameterセクションで設定した同一のパラメータをオーバーライドします。

アプリケーションのシングル・サインオンを有効にするには:

1. Fusion Middleware Controlを起動します。

2. 「Forms」メニューから「Web構成」を選択します。

3. アプリケーションの構成セクションをリストする行を選択します。

4. 「セクション」リージョンの「表示」ドロップ・ダウン・リストからssoを選択します。

5. 「セクション」リージョンで、ssoModeを含む行を選択します。

6. 「値」フィールドに、trueと入力します。

7. 「適用」をクリックしてformsweb.cfgファイルを更新します。
選択したアプリケーションでシングル・サインオンが有効になります。

アプリケーションのシングル・サインオンを無効にするには:

1. 「Forms」メニューから「Web構成」を選択します。

2. アプリケーションの構成セクションをリストする行を選択します。

3. 「セクション」リージョンの「表示」ドロップ・ダウン・リストからssoを選択します。

4. 「セクション」リージョンで、ssoModeを含む行を選択します。

5. 「値」列に、falseと入力します。

6. 「適用」をクリックします。
選択したアプリケーションでシングル・サインオンが無効になります。

9.4.1 ssoMode

ssoModeパラメータを使用して、Forms ServicesアプリケーションをOracleAS Single Sign-On Serverに接続できます。デフォルトでは、Oracle Formsアプリケーションは、シングル・サインオン・モードで実行するようには構成されません。ssoModeパラメータは、formsweb.cfgファイル内の2つの場所で設定できます。

- formsweb.cfgのデフォルト・セクションでssoModeに値trueを設定します。これにより、このForms Servicesインスタンスによってすべてのアプリケーションがシングル・サインオン・モードで実行されます。

- Oracle Formsアプリケーションの名前を付けた構成でssoModeパラメータを設定します。これにより、この特定のアプリケーションでのみ、シングル・サインオンが有効または無効になります。例:

[myApp]
form=myFmx
ssoMode=true

9.4.2 ssoProxyConnect

ssoProxyConnectパラメータを使用することにより、ユーザーは、Oracle Formsでデータベースへのプロキシ接続を使用するかどうかを制御できます。ssoProxyConnectパラメータは、次の2つの方法で設定できます。

- formsweb.cfgのデフォルト・セクションでssoProxyConnectに値yesを設定します。これにより、このForms Servicesインスタンスによってすべてのアプリケーションがシングル・サインオン・モードで実行されます。

- ssoProxyConnectパラメータを実行時のURLで渡します(例: http://<host>:<port>/?config=myapp&……&ssoProxyConnect=yes)。

9.4.3 ssoDynamicResourceCreate

ssoDynamicResourceCreateパラメータはデフォルトでtrueに設定されます。これにより、ユーザーはOracle Internet Directoryでリソース・アクセス記述子(RAD)エントリを作成し、アプリケーションを実行できます(このリソース・エントリが存在しない場合)。使用されるWebページは、Oracle Delegated Administration Servicesで用意された標準フォームです。このWebページはOracle Forms固有のものであるため、カスタマイズできません。

リソースが動的に作成されることによって、管理者がユーザーのRAD情報を事前に作成する必要がなくなるため、Oracle Internet Directoryの管理が簡素化されます。ssoDynamicResourceCreateパラメータは、システム・パラメータとしてformsweb.cfgファイルに設定するか、名前を付けた構成のパラメータとして設定できます。デフォルトでtrueに設定されているため、このパラメータを特定のアプリケーションの名前を付けた構成で使用し、デフォルトとは異なる方法で不足したRADエントリを処理できます。

ssoDynamicResourceCreateパラメータをfalseに設定してアプリケーションでシングル・サインオンを有効にし、ssoErrorURLに値を指定しないでおくと、認証されたユーザーとこのアプリケーションにRADリソースがない場合にOracle Formsにエラー・メッセージが表示されます。

管理者にとって、ユーザーが自分自身のリソースを作成することは望ましくないこともあるため(Oracle Internet Directoryで問題を起こす可能性もあるため)、管理者はこれらのパラメータを使用して、Oracle Internet Directoryのリソース作成を制御できます。デフォルトの動作では、リソースを作成できるHTMLフォームにユーザーをダイレクトしますが、管理者はその設定を変更し、ユーザーをカスタムURLにリダイレクトできます。

Formsアプリケーションの構成セクションで、次のパラメータを設定する必要があります。

[myApp]
form=myFmx
ssoMode=true
ssoDynamicResourceCreate=false

Enterprise Manager Fusion Middleware Controlを使用してこれらのパラメータを設定する方法の詳細は、第4.2.4項「パラメータの管理」を参照してください。

9.4.4 ssoErrorURL

管理者はssoErrorURLパラメータを使用して、特定のアプリケーションにユーザーのRADエントリがない場合の処理を行うリダイレクションURLを指定できます。このパラメータは、ssoDynamicResourceCreateパラメータがfalseに設定され、動的リソース作成の動作が無効になっている場合にのみ有効になります。ssoErrorURLパラメータは、デフォルト・セクションで定義できるほか、名前を付けた構成セクションのパラメータとして定義することもできます。URLには、任意のアプリケーション、静的HTMLファイル、RADを作成するカスタム・サーブレット(JSP)アプリケーション(次の例を参照)などを指定できます。

[myApp]
form=myFmx
ssoMode=true
ssoDynamicResourceCreate=false
ssoErrorURL=http://example.com:7779/servlet/handleCustomRADcreation.jsp
…

9.4.5 ssoCancelUrl

ssoCancelURLパラメータは動的RAD作成機能(ssoDynamicResourceCreate= true)とともに使用します。このパラメータでは、ユーザーがHTMLフォーム(要求されたアプリケーションのRADエントリを動的に作成するためのフォーム)で取消しボタンを押した場合にリダイレクトされるURLが定義されます。

9.4.6 Formsからシングル・サインオン情報へのアクセス

FormsアプリケーションでOracleAS Single Sign-On Serverの認証情報を扱う場合は、必要に応じてGET_APPLICATION_PROPERTY()ビルトインを使用すると、シングル・サインオンのログイン情報(シングル・サインオンのユーザーID、ユーザー識別名(DN)およびサブスクライバ識別名(サブスクライバDN))を取得できます。

authenticated_username := get_application_property(SSO_USERID);
userDistinguishedName := get_application_property(SSO_USRDN);
subscriberName := get_application_property(SSO_SUBDN);
config := get_application_property(CONFIG).

注意:

configは非シングル・サインオン・モードでも取得できます。

9.4.7 OracleAS Single Sign-On ServerへのOracle HTTP Serverの登録

Formsを非SSOモードでインストールおよび構成した後に、SSOを有効にする必要がある場合は、次の手順に従います。次の手順を実行して、WebTier OHSのモジュールmod_ossoを、パートナ・アプリケーションとしてOracleAS Single Sign-On Serverに登録します。

1. 「OIDホストをFormsアプリケーションに再度関連付けるには」のステップ3とステップ4に従い、osso.confファイルを作成してコピーします。

2. $ORACLE_INSTANCE/config/OHS/<OHS_INSTANCE>/moduleconfディレクトリにmod_osso.confファイルを作成します。このファイルの内容は次のようになります。

LoadModule osso_module ${ORACLE_HOME}/ohs/modules/mod_osso.so
<IfModule mod_osso.c>
OssoIpCheck off
OssoSecureCookies off
OssoIdleTimeout off
OssoConfigFile osso.conf
#
# Insert Protected Resources: (see Notes below for
# how to protect resources)
#
#______-
#
# Notes
#
#______-
#
# 1. Here's what you need to add to protect a resource,
#    e.g. <ApacheServerRoot>/htdocs/private:
#
<Location /private>
require valid-user
AuthType Osso
</Location>

</IfModule>

#
# If you would like to have short hostnames redirected to
# fully qualified hostnames to allow clients that need
# authentication via mod_osso to be able to enter short
# hostnames into their browsers uncomment out the following
# lines
#
#PerlModule Apache::ShortHostnameRedirect
#PerlHeaderParserHandler Apache::ShortHostnameRedirect

3. forms.confファイルの先頭に次の行を追加します。

<IfModule !mod_osso.c>
LoadModule osso_module  ${ORACLE_HOME}/ohs/modules/mod_osso.so
</IfModule>
<IfModule mod_osso.c>
OssoHTTPOnly off
</IfModule>

4. 第9.7項「Oracle Internet Directoryの構成」のトピック「OIDホストをFormsアプリケーションに関連付けるには」に従って、Enterprise ManagerでOIDホストを関連付けます。

5. 変更を有効にするために、Oracle WebLogic管理対象サーバー(WLS_FORMS)とフロントエンドOHSを再起動します。

9.5 Oracle FormsとOracle Reportsの統合

Oracle Reportsは、OracleAS Single Sign-On Serverを有効にしてインストールします。

Oracle Formsアプリケーションで統合Oracle Reportsをコールする最適な方法は、Oracle FormsビルトインのRUN_REPORT_OBJECTを使用することです。

SSOを有効にしたFormsアプリケーションからレポートを要求する場合、RUN_REPORT_OBJECTビルトインへの各コールを使用して、認証されたユーザーのSSOアイデンティティが暗黙的にReports Serverに渡されます。必要に応じてさらに認可チェックを行う場合は、このSSOアイデンティティを使用してReports Serverへのユーザーを認証します。

非SSOモードで実行されているFormsアプリケーションは、SSOで保護されたReports Serverのレポートを実行できますが、Reports Serverで認可が要求されるとレポートは実行できなくなります。また、Web上でReports出力を取得する場合、ユーザーは自身のSSO資格情報を指定する必要があります。

Formsでのシングル・サインオンの有効化の詳細は、第9.4項「アプリケーションでのOracleAS Single Sign-Onの有効化」を参照してください。

Reportsでのシングル・サインオンの構成の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

Oracle FormsとOracle Reportsの統合の詳細は、http://www.oracle.com/technology/products/forms/でホワイト・ペーパーOracle Forms 11gとOracle Reports 11gの統合を参照してください。

9.5.1 非SSOモードでのFormsとReportsの統合

11gリリース1 (11.1.1)よりも前のOracle ReportsではジョブIDを順番に生成していたので、ジョブIDを容易に予測できました。その結果、認可されていないユーザーや悪意のあるユーザーがrwservlet経由でGETJOBIDを使用してジョブの出力を見ることができ、別のユーザーのジョブ出力を取得する可能性がありました。11gのOracle Reportsでは、ジョブIDの生成を順番どおりではなくランダム化しているので、特定のジョブのジョブIDを予測することは不可能です。レポートの出力を見ることができるのは、Oracle Forms Servicesでそのレポートを実行しているユーザーのみです。ジョブIDはランダムであり、順序どおりの番号になっていないので、他のユーザーがレポート出力を見ることはできません。

保護されていないReports Serverでは、Reports Serverの構成ファイルにある識別子要素に、管理者のユーザーIDとパスワードを設定できます。

ユーザーに対するアクセス・レベルの構成の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

9.5.2 Oracle Forms Servicesにおける複数のReports Serverクラスタの使用

以前のリリースのOracle Forms アプリケーションで複数のReports Serverクラスタ名を使用する場合は、各クラスタ名を別のReports Serverにマップできます。Reports Serverクラスタ名を含むOracle Formsアプリケーションでは、参照先のReports Serverクラスタにバインドできません。

この問題を解決するには、reports_servermap要素でクラスタ名をReports Server名にマップします。これにより、すべてのOracle Formsアプリケーションでクラスタ名を変更する必要がなくなります。

Oracle Formsアプリケーションでは、次の方法でOracle Reportsをコールできます。

- RUN_REPORT_OBJECTの使用: コールで指定する名前がReports Server名ではなく、Reports Serverクラスタ名である場合は、Oracle Forms Servicesのdefault.envファイルでreports_servermap環境変数を設定する必要があります。Oracle Formsアプリケーションで複数のReports Serverクラスタ名を使用している場合は、rwservlet.propertiesで次のようにreports_servermapを使用して、各クラスタ名を別のReports Serverにマップできます。
<reports_servermap>

cluster1:repserver1;cluster2:repserver2;cluster3:repserver3

</reports_servermap>

たとえば、10.1.2のOracle Formsアプリケーションにdev_cluster、prd_clusterおよびqa_clusterという名前の3つのクラスタが含まれる場合、10.1.2よりも後のリリースでは、これらのクラスタ名を次のようにそれぞれ別のサーバー名にマップできます。

<reports_servermap>

dev_cluster:dev_server;prd_cluster:prd_server;qa_cluster:qa_server

</reports_servermap>

11gでReports Serverクラスタに対してRUN_REPORT_OBJECTを使用する場合の詳細は、My Oracle Supportを参照してください。RUN_REPORT_OBJECTを使用してFormsからReportsをコールする場合の詳細は、My Oracle Support Note 1074804.1(http://support.oracle.com)を参照してください。

- WEB.SHOW_DOCUMENTの使用: この場合はリクエストがrwservletに送信されます。コールで指定する名前がReports Server名ではなく、Reports Serverクラスタ名である場合は、rwservlet.propertiesファイルでreports_servermap要素を設定する必要があります。例:
<reports_servermap>

cluster:repserver

</reports_servermap>

詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

9.5.3 別々のインスタンスにインストールしたFormsとReportsの統合

11gでは、FormsとReportsをそれぞれ別々のインスタンスで構成できます。別々のOracleインスタンスにインストールしたFormsとReportsを統合する必要が後で発生した場合は、Reports Serverとの通信の確立に必要なファイルを手動で構成する必要があります。詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

9.6 プロキシ・ユーザーの有効化と構成

この項は、次の小項目に分かれています。

- 第9.6.1項「プロキシ・ユーザーの概要」

- 第9.6.2項「プロキシ・ユーザー接続の有効化」

- 第9.6.3項「formsweb.cfgでのSSOの有効化」

- 第9.6.4項「Formsアプリケーションへのアクセス」

- 第9.6.5項「Formsビルトインにおける変更」

- 第9.6.6項「Reportsとプロキシ・ユーザーとの統合」

9.6.1 プロキシ・ユーザーの概要

Oracle E-Business Suiteなどの大規模なアプリケーションの多くでは、すべての接続で単一のユーザー名が使用されます。これにより、多くの場合、大企業に適した方法でユーザーを管理できますが、監査に関する問題が発生します。レコードの挿入、更新および削除のすべてでは、シングル・ユーザーにより実行されるようにデータベースでは見えます。監査をリストアするには、アプリケーション開発者は、カスタマイズされた監査コードをデータベースにおいて記述して実装する必要があります。コードでは、ユーザー名をアプリケーションからデータベースに渡す必要があります。この手順は、開発時間が必要になるだけでなく、Oracle Databaseで実装済の機能と重複することにもなります。2番目の問題はセキュリティです。シングル・ユーザーのアクセスは脆弱であり、脆弱なユーザーがアプリケーション・スキーマ全体にアクセスできてしまいます。これらの問題に対処するために、Oracle Databaseではプロキシ・ユーザー認証がサポートされています。これによって、クライアント・ユーザーはデータベースにアプリケーション・サーバー経由でプロキシ・ユーザーとして接続できます。

図9-3は、Formsプロキシ・ユーザーの認証を示します。

図9-3 プロキシ・ユーザーの認証

- 図の中央に示されているOracle Internet Directory (LDAP)を使用して、Oracle Formsでユーザーが認証されます。

- Formsではプロキシ・ユーザーとして接続(パスワードを使用する場合と使用しない場合のどちらか)し、実際のユーザー名をOracle Internet Directoryリポジトリから渡します。

- 通常、プロキシ・ユーザーは最低限の権限で構成されています。次の手順では、プロキシ・ユーザーには接続権限とセッション作成権限が割り当てられています。

- データベースでは、プロキシ・ユーザー用にcreateセッション・アクションを受け付け、実際のユーザー名を監査とアクセス制御で使用します。

- Oracle Internet Directoryのユーザーは、プロキシ・ユーザー・アカウントの構成がないとデータベースに単独では接続できません。

- プロキシ・ユーザー・アカウントは、SQL *Plusにクライアントが直接接続できないようにします。

9.6.2 プロキシ・ユーザー接続の有効化

Formsでプロキシ・サポートを使用できるようにするには、まずプロキシ・ユーザーを作成する必要があります。この例では、プロキシ・ユーザー名はmidtierです。

1. データベースにプロキシ・ユーザーを作成します。

SQL> CREATE USER midtier IDENTIFIED BY midtierPW;

2. midtierへの接続を割り当て、midtierへのセッション権限を作成します。

SQL> GRANT CONNECT,CREATE SESSION TO midtier;

この時点で、このプロキシ・ユーザーは接続権限とセッション作成権限を持っていますが、どのユーザー・スキーマに対しても権限はありません。

3. SSOユーザー名に対して1対1でマップしたデータベース・ユーザーを作成します(たとえば、SSOユーザー名がappuserであれば、appuserというデータベース・ユーザーを作成します)。

SQL> CREATE USER appuser IDENTIFIED BY appuserPW;

4. appuserにセッション作成権限を割り当てます。

SQL> GRANT CREATE SESSION TO appuser;

5. midtierユーザーを介して接続できるようにするには、次のようにデータベース・ユーザーを変更する必要があります。

SQL> ALTER USER appuser GRANT CONNECT THROUGH midtier;

これで、ユーザーappuserがmidtierアカウントを介して接続できるようになります。

また、次のようにプロキシ・ユーザーからデータベースへの接続が可能なロールを定義することもできます。

SQL> ALTER USER appuser GRANT CONNECT THROUGH midtier WITH ROLE <role_name>;

プロキシ・ユーザー・アカウントを使用する必要があるすべてのデータベース・ユーザーについて、ステップ3とステップ4を繰り返します。

また、エンタープライズ・ユーザー・セキュリティと呼ばれるデータベース機能を使用することで、データベース・ユーザーをOracle Internet Directoryで設定することもできます。この方法を選択すると、プロキシ・ユーザーは、データベースにおいて定義された唯一のユーザーになり、管理が容易になるという利点があります。エンタープライズ・ユーザー・セキュリティの使用の詳細は、Oracle Fusion Middleware Oracle Internet Directory管理者ガイド 11gリリース1 (11.1.1)を参照してください。

アプリケーション・ユーザーのパスワードは、データベースに渡されません。アプリケーション・ユーザーの名前、プロキシ・ユーザーの名前とパスワードのみ渡されます。Formsでは、OCIコールを使用して、次のコマンドと同等のコマンドを発行します。

SQL> connect midtier[appuser]/midtierPW@databaseTnsName

たとえば、必ずmidtierを使用してデータベースに接続するアプリケーションがあるとします。このmidtierからは、実際のユーザーがappuserであることがデータベースに通知されます。プロキシ・ユーザーを使用しない場合、SQLコマンドselect USER from DUALはmidtierを返しますが、プロキシ・ユーザーを使用すると、この問合せはappuserを返します。これは、ユーザーが他の方法で認証済であることを信頼し、パスワードなしでのユーザー接続を許可して接続のロールを付与するようにデータベースに指示していることになります。

注意:

- 前述の手順のステップ3で、データベース・ユーザーは通常スキーマに付与されている権限の一部を持つように構成されます。たとえば、appuserには、次のSQLコマンドを使用して、スキーマapp_schemaに対するCREATE権限が付与されます。

SQL> GRANT CREATE ON SCHEMA app_schema TO appuser

したがって、appuserはプロキシ・ユーザー・モードのアクションの実行のみに限定されます。

- データベース・ユーザー(appuserなど)がプロキシ・モードで接続すると、監査対象となるユーザー・アクションは、プロキシ・ユーザーのものではなくデータベース・ユーザーのものになります。ユーザー・アクションの監査の詳細は、http://www.oracle.com/technology/documentation/index.htmlでOracle Databaseのドキュメントを参照してください。

9.6.3 formsweb.cfgでのSSOの有効化

formweb.cfgにシングル・サインオン用の構成セクション(たとえばssoapp)を作成し、SSOProxyConnectをyes、ssoModeをtrueにそれぞれ設定します。

プロキシ接続で使用されるユーザー名とパスワードは、Oracle Internet Directoryにおいてログオン・ユーザー用のRADエントリに定義されています。ssoProxyConnect=yesに設定されている場合、Formsによって発行された接続文字列は有効になります。

SQL> connect RADUsername[appuserName]/RADPassword@databaseTnsName

9.6.4 Formsアプリケーションへのアクセス

プロキシ・ユーザーの接続とシングル・サインオンを有効にした後、次の手順を実行してFormsアプリケーションにアクセスします。

1. http://<host name>:<http port>/forms/frmservlet?config=ssoappというURLを使用して、Formsアプリケーションを実行します。ssoappはシングル・サインオン(ssoMode)を有効にした構成セクションの名前です。

2. シングル・サインオンのユーザー名とパスワードを使用してログインします(第9.6.2項「プロキシ・ユーザー接続の有効化」で取り上げたこの例では、シングル・サインオンのユーザー名はappuser、パスワードはappuserPWです)。

9.6.5 Formsビルトインにおける変更

ビルトインのget_application_propertyには、IS_PROXY_CONNECTION(ブール型)の新しいパラメータがあります。このパラメータが渡されたときに、フォームがプロキシ・ユーザー・モードで実行中の場合、コールによりtrueが返されます。それ以外の場合は、falseが返されます。

9.6.6 Reportsとプロキシ・ユーザーとの統合

プロキシ・ユーザーがFormsで使用されていると、Reportsとの統合が維持されます。Oracle Reports管理者は、プロキシ・ユーザーを設定する必要があります。Reportsの構成ファイルで次の構成が完了していることを確認してください。

rwserver.confに、Forms構成セクション名(frm_config_name)とプロキシ・ユーザー・サポート用に構成されているデータベースSID名(dbname)を入力します。

<dbProxyConnKeys>

<dbProxyKey name="frm_config_name" database="dbname"/>

</dbProxyConnKeys>

rwservlet.propertiesで、プロキシ・モードが有効になっていることを確認します。

<enabledbproxy>yes</enabledbproxy>

Reportsの構成ファイルの詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

9.7 Oracle Internet Directoryの構成

Formsアプリケーションを介してプロキシ・ユーザーとして接続するユーザーは、OracleAS Single Sign-On ServerとOracle Internet Directoryでも定義しておく必要があります。Oracle Formsでは、OracleAS Single Sign-On Serverを介してこのユーザーを認証します(プロキシ・ユーザーを使用する際、FormsではOracleAS Single Sign-On Serverを使用する必要があります)。次に、Oracle Formsはデータベースにプロキシ・ユーザーとして接続しますが、その接続で使用するプロキシ・ユーザーの名前とパスワードは、アプリケーション・ユーザー用のOracle Internet DirectoryエントリのRADに格納されています。

Oracle FormsとOracle Identity Managementの統合の詳細は、第11.1.4項「Oracle Identity Management Infrastructureの使用」を参照してください。

注意:

Enterprise Managerを使用してOracle Web Cacheポートを変更する場合は、osso.confを再生成し、生成したosso.confファイルを$ORACLE_INSTANCE/config/OHS/<OHS_INSTANCE>/moduleconfディレクトリにコピーします。変更を有効にするために、Oracle HTTP ServerとOracle Web Cacheを再起動します。

「OIDの関連付け/関連付けの解除」ページにアクセスするには:

1. Oracle Enterprise Managerを起動します。

2. Formsのホーム・ページにナビゲートします。

3. 「Forms」メニューから「OIDの関連付け/関連付けの解除」を選択します。
「OIDの関連付け/関連付けの解除」ページが表示されます。

図9-4 OIDの関連付け/関連付けの解除

OIDホストをFormsアプリケーションに関連付けるには:

1. Oracle Internet DirectoryホストをFormsアプリケーションに初めて関連付けるには、「OIDの関連付け/関連付けの解除」ページでそのFormsアプリケーションを選択します。「関連付け」をクリックします。
「関連付け」ダイアログが表示されます。

2. 表9-1「Oracle Internet Directoryホストの詳細」に従ってOracle Internet Directoryホストの詳細を入力します。

3. 「関連付け」をクリックします。
「OIDの関連付け/関連付けの解除」ページが再び表示されます。

表9-1 Oracle Internet Directoryホストの詳細

パラメータ

説明

OIDホスト

リストからOracle Internet Directoryホストを選択するか、「新規OIDホスト」を選択して新しいホストの詳細を追加します。

新規OIDホスト

LDAPディレクトリ・サーバーのホスト名このフィールドは、新規のOracle Internet Directoryホストを追加する場合に有効になります。

新規OIDポート

LDAPがリスニングしているポート番号このフィールドは、新規のOracle Internet Directoryホストを追加する場合に有効になります。

ユーザー名

Oracle管理者のユーザー名

パスワード

Oracle管理者のパスワード

SSLポートの使用

Oracle Internet Directoryホストへの接続でSSLを使用する場合はこのボックスを選択します(この場合、指定するポート番号は、SSLポートとなります)。

4. OracleAS Single Sign-On Serverで、$ORACLE_HOME/sso/binのssoreg.shスクリプトを実行します。

ORACLE_HOME/sso/bin/ssoreg.sh
-oracle_home_path <ORACLE_HOME>
-site_name www.example.com
-config_mod_osso TRUE
-mod_osso_url http://www.oidtierexample.com:7777
-config_file osso.conf
-remote_midtier

Windowsでssoreg.batファイルを実行します。

5. 生成されたosso.confファイルを$ORACLE_INSTANCE/config/OHS/<OHS_INSTANCE>/にコピーします。詳細は、OTNでOracle Application Server Single Sign-On管理者ガイドを参照してください。

6. 変更を有効にするために、Oracle WebLogic管理対象サーバーとフロントエンドOHSを再起動します。
アクティブなFormsセッションからユーザーが誤って接続解除されないように、Oracle WebLogic管理対象サーバーとフロントエンドOHSの再起動は、ユーザーがFormsセッションを実行していない都合の良い時間に実行するようにします。

OIDホストとFormsアプリケーションの関連付けを解除するには:

1. 「OIDの関連付け/関連付けの解除」ページから、Formsアプリケーションを選択します。「関連付けの解除」をクリックします。
「確認」ボックスが表示されます。

2. 「はい」をクリックします。
Oracle Internet DirectoryホストとFormsアプリケーションの関連付けが解除されます。

3. 変更を有効にするために、Oracle WebLogic管理対象サーバーとフロントエンドOHSを再起動します。
アクティブなFormsセッションからユーザーが誤って接続解除されないように、Oracle WebLogic管理対象サーバーとフロントエンドOHSの再起動は、ユーザーがFormsセッションを実行していない都合の良い時間に実行するようにします。

OIDホストをFormsアプリケーションに再度関連付けるには:

1. 「OIDの関連付け/関連付けの解除」ページから、Formsアプリケーションを選択します。「関連付けの解除」をクリックします。

2. 「OIDの関連付け/関連付けの解除」ページから、Formsアプリケーションを選択します。「関連付け」をクリックします。
表9-1「Oracle Internet Directoryホストの詳細」に従ってOracle Internet Directoryホストの詳細を入力します。

3. OracleAS Single Sign-On Serverで、$ORACLE_HOME/sso/binのssoreg.shスクリプトを実行します。

ORACLE_HOME/sso/bin/ssoreg.sh
-oracle_home_path <ORACLE_HOME>
-site_name www.example.com
-config_mod_osso TRUE
-mod_osso_url http://www.oidtierexample.com:7777
-config_file osso.conf
-remote_midtier

Windowsでssoreg.batファイルを実行します。

4. 生成されたosso.confファイルを$ORACLE_INSTANCE/config/OHS/<OHS_INSTANCE>/にコピーします。詳細は、OTNでOracle Application Server Single Sign-On管理者ガイドを参照してください。

5. 変更を有効にするために、Oracle WebLogic管理対象サーバーとフロントエンドOHSを再起動します。
アクティブなFormsセッションからユーザーが誤って接続解除されないように、Oracle WebLogic管理対象サーバーとフロントエンドOHSの再起動は、ユーザーがFormsセッションを実行していない都合の良い時間に実行するようにします。

10 Java仮想マシンの構成と管理

この章には、次の項が含まれています。

- 第10.1項「Java仮想マシン・プーリングを使用する理由」

- 第10.2項「子Java仮想マシンのプロセスについて」

- 第10.3項「複数のJVMコントローラについて」

- 第10.4項「JVMプーリングの使用例」

- 第10.5項「設計時の考慮事項」

- 第10.6項「JVM構成の概要」

- 第10.7項「コマンドラインからのJVMコントローラの管理」

- 第10.8項「Fusion Middleware ControlからのJVMプーリングの管理」

- 第10.9項「JVMコントローラのロギング」

- 第10.10項「FormsとReportsの統合」

- 第10.11項「JVMプーリングのエラー・メッセージ」

10.1 Java仮想マシン・プーリングを使用する理由

FormsアプリケーションからJavaをコールすると、各Formsプロセスは初めてJavaをコールするときにJVMに接続されます。以降は、個別のプロセスが再びJavaをコールしなくても、そのプロセスが有効なかぎり、このJVMはプロセスに接続された状態を維持するので、リソースの競合が発生する可能性があります。JVMプーリングは、関係するすべてのFormsプロセス間で限られた数のJVMを共有するためのプロビジョニングを行います。すべてのFormsプロセスが、ある時点でJavaをコールすることがあったとしても、特定の時点でこれらのプロセスの一部のみがJavaをコールするならば、開始する必要のあるJVMの数は、使用率のピーク時に必要な数のみとなります。JVMプーリングを使用すると、JavaをコールするFormsインストールのリソースの使用率を大幅に低減できる可能性があります。

Formsランタイム・プロセスは、Javaの実行が必要になると、Java仮想マシン(JVM)コントローラに含まれるJVMにメッセージを送信します。JVMは、そのFormsランタイム・プロセス用に新しいスレッドを作成します。その後、JVMは別のFormsランタイム・プロセスからの次の新しいリクエストのリスニングを続行します。一方、リクエストは新しく作成されたスレッドによって処理され、結果がFormsランタイム・プロセスに返されます。該当のFormsセッションが有効である間、Formsランタイム・プロセスはそのスレッドと直接通信します。

Java仮想マシン・プーリングは、JVMコントローラを含む別のプロセスです。JVMプーリングでは、JVMはFormsランタイム・プロセスの外部で実行されます。また、JVMを複数のFormsランタイム・プロセスで共有することもできます。JVMコントローラ・プロセスはJVMそのものではなく、JVMを含むコンテナです。これは、Formsランタイム・プロセスがインプロセスJVMを含む仕組みと同様です。JVMプーリングの使用はオプションです。管理者は、JVMプーリングを使用せず、JVMがFormsランタイム・プロセスに含まれるようにすることもできます。

Java仮想マシン(JVM)プーリングは、Java Importerとの組合せで機能します。また、ReportsをコールするFormsの機能との組合せでも動作します。Java Importerを使用すると、開発者は設計時にForms Builder内のPL/SQLからJavaクラスを参照できます。実行時に、FormsはJava仮想マシン(JVM)を使用してJavaコードを実行します。Oracle Formsの以前のバージョンでは、Java Importerを使用する各Formsセッションに、Javaコードを実行するための個別のJVMインスタンスがありました。このモデルでは、各JVMがサーバー上のメモリーを消費するため、同時に多数のユーザーが存在すると、複数のJVMプロセスによって消費されるメモリーの量は膨大なものになる可能性があります。

Java Importerの詳細は、Oracle Forms Developerのオンライン・ヘルプを参照してください。

JVMプーリングを有効化すると、管理者は実行中のJVMインスタンスの数を整理して、複数のFormsセッションでJVMを共有し、Formsセッションごとに個別のJVMインスタンスを持たないようにすることができます。これにより、メモリー消費が大幅に削減されるため、サーバーのより多くのリソースが解放されます。

アプリケーションの設計および配布においても、JVMプーリングを考慮する必要があります。詳細は、「第10章の「設計時の考慮事項」を参照してください。

10.1.1 FormsとReportsの統合でのJVMプーリング

10gの場合、Formsランタイム・プロセスではReportsをコールする前にJVMが個別に作成され、ReportsではこのJVMを使用してJavaメソッドを実行します。このJVMはFormsランタイム・プロセスに属しています。10gでJVMプーリング機能を使用するのはJava Importerのみです。一方、JVMプーリングを有効にした11gの場合、Oracle Forms ServicesではOracle Reportsのリクエストに対して共有JVMコントローラを使用します。

各Formsランタイム・プロセスで専用のJVMインスタンスを持たずに、複数のFormsランタイム・プロセスでJVMを共有できます。JVMプーリングでは、JVMを収容するJVMコントローラと呼ばれるプロセスを使用できます。このJVMを複数のFormsランタイム・プロセスで共有できます。これにより、メモリー消費を大幅に削減できるので、サーバーではより多くのリソースを解放できます。

jvmcontrollerパラメータを使用すると、特定のJVMコントローラを使用するようにフォームを構成できます。jvmcontrollerパラメータは、どのJVMコントローラを使用するかをFormsランタイム・プロセスに指示します。これは、Forms構成ファイルformsweb.cfgで設定できます。また、Formsアプリケーションの呼び出しに使用するURLのパラメータとしてこの情報を渡すこともできます。jvmcontrollerを起動するときに必要な各種のパラメータは、JVMコントローラの構成ファイルjvmcontrollers.cfgで指定する必要があります。

Reportsの統合でのJVMプーリングの使用の詳細は、第10.10項「FormsとReportsの統合」を参照してください。

10.2 子Java仮想マシンのプロセスについて

各Formsランタイム・プロセスがJVM内に個別にスレッドを持つため、同時実行性が実現します。JVMが同時リクエストの指定数に達すると、負荷を分散させるために子JVMを生成します。さらに、複数のJVMコントローラを持ち、それぞれに子JVMを持つことも可能です。

たとえば、複数のFormsアプリケーションで、オプションやクラスパスが異なるJVMを使用する場合があります。特定のFormsアプリケーションで使用するJVMコントローラは、Forms構成ファイル(formsweb.cfg)の名前を付けたセクションで指定できます。詳細は、第10.8.6項「Forms構成ファイル設定」を参照してください。

図10-1は、JVMプーリングを使用した場合の環境の例を示しています。2つのJVMコントローラがあり、1つはインプロセスJVMのみを使用し、もう1つは3つのJVMを使用しています。

図10-1 子プロセスを持つ複数のJVMコントローラ

図10-1には示されていませんが、各JVMコントローラには、起動、停止、またはForms構成ファイル内で参照に使用される一意な名前があります。

図10-1は、複数のFormsアプリケーションで異なるJVMコントローラを使用していることを概念的に示しているだけです。ただし、Formsランタイム・プロセスは、JVMコントローラと通信せず、使用可能なJVMのいずれかと直接通信します。したがって、図の最初の2つのクライアントはインプロセスJVMを使用できるだけですが、残りのクライアントには処理に使用できるJVMが3つあります。

JVMのパフォーマンスが大幅に低下した場合は、そのJVMが処理するリクエストが多すぎる可能性があります。その場合は、そのJVMコントローラで複数の子JVMを持つようにできます。子JVMは必要に応じて動的に作成されます。

JVMパラメータのmaxsessionsは、新しい子JVMが作成されるまでに1つのJVMに対して接続できるFormsランタイム・プロセスの数を指定します。子JVMが起動すると、その子JVMはJVMコントローラと同じパラメータを継承します。

JVMがmaxsessionsで指定された接続数に達すると、そのJVMは新しいFormsランタイム・プロセスからのリクエストを受け付けなくなります。新しいFormsランタイム・プロセスが初めてJavaコードを実行しようとすると、そのプロセスは使用可能なJVM (maxsessionsより少ない接続数のもの)に接続されます。JVMの選択方法は完全に任意で、ロード・バランシングやラウンドロビン・アルゴリズムはありません。

JVMがmaxsessionsで指定された接続数に達しても、別のJVMがそれに達していなければ、新しいJVMは作成されません。すべてのJVMが同時にmaxsessionsで指定された接続数に達した場合は、別の子JVMが作成されます。

子JVMは負荷が低下しても自動的に削除されません。そのため、一部の子JVMを削除する場合は、JVMコントローラを停止する必要があります。これにより、すべての子JVMも停止します。その後、JVMコントローラを再起動できます。

子JVMの有効範囲は、JVMコントローラのネームスペースのコンテキスト内に限定されます。たとえば、2つのJVMコントローラ、ordersJVMおよびhrJVMがある場合、ordersJVMとその子JVMは、hrJVMやその子JVMに影響を与えることはなく、これらから影響を受けることもありません。

10.2.1 子JVMの例

ordersJVMというJVMコントローラがmaxsessions=50に設定されているとします。実行中の各オーダー・アプリケーションは、ordersJVMにリクエストを送信します。新しいFormsランタイム・プロセスがordersJVMにリクエストを送信すると、そのたびにFormsランタイム・プロセスと通信する新しいスレッドが作成されます。その後、JVMコントローラは新しいリクエストのリスニングに戻ります。ユーザーがセッションを終了すると、JVM内のスレッドも終了します。

ordersJVMコントローラが50番目の同時リクエストを受信すると(一部のユーザーが終了した後で開始するユーザーも存在するため、最初から50番目のユーザーとはかぎりません)、コントローラは子JVMを生成します。子JVMは親の設定を継承するため、この子JVMのmaxsessionsも50になります。この段階では、JVMコントローラには50の接続があり、子JVMには接続はありません。

新しいユーザーがこのOracle Formsアプリケーションを起動し、Javaコードを実行すると、Formsランタイム・プロセスはそのJVMコントローラのネームスペース内でリスニングを実行しているJVMに接続します。このJVMコントローラには50の接続があり、使用できないため、子JVMがこのリクエストを受信します。その後、親のJVMコントローラで一部のユーザーがアプリケーションを終了し、接続数が減少すると、コントローラはmaxsessionsで指定された接続数に達しないかぎり新しいリクエストを受信することができます。

このような処理が行われる間、hrJVMはこれとは別に動作しています。ordersJVMで接続が超過してもhrJVMには接続されず、ordersJVMの子JVMに対してのみ接続が行われます。

10.3 複数のJVMコントローラについて

JVMプーリングのアーキテクチャでは、複数のJVMコントローラを持ち、それぞれが子JVMを持つことができます。複数のJVMコントローラを使用するのは、次のような場合です。

- アプリケーションごとにJVMコントローラを持ち、他のコントローラとは個別に起動および停止できるようにする場合。

- アプリケーションごとに異なる設定が必要な場合。たとえば、複数のコントローラでクラスパスやJVMの設定を分ける場合です。

- Fusion Middleware ControlからJVMコントローラのリソース使用率を監視する場合。複数のアプリケーションまたはユーザー・グループで異なるJVMコントローラが使用されている場合は、Java Importerコードによってどのようにリソースが消費されているかを確認できます。

- 同一コンピュータ上に複数の開発環境、テスト環境または本番環境がある場合。

- 複数の異なるアプリケーションで静的データを共有しない場合。

10.4 JVMプーリングの使用例

ここでは、ユーザー・インタフェースのボタンを持つOracle Formsアプリケーションについて検討します。ユーザーがボタンを押すと、Oracle Formsは画面上のフィールドから値を取得してJavaに渡し(Java Importer機能を使用)、PL/SQLでは実行できないなんらかの複雑な計算を実行します。その後、結果が返され、フォーム内のフィールドに表示されます。このFormsセッションを実行するために、1つのJVMプロセスが実行されています。

図10-2は、JVMプーリングが有効になっていないために、このOracle Formsセッションに個別のインプロセスJVMが存在する様子を示しています。図の左側には、独自のFormsセッションを実行する複数のクライアントが示されています。図の中央で、各クライアントは、独自のJVMプロセスを含む独自のFormsランタイム・プロセスをコールします。

図10-2 JVMプーリングを使用しない場合のFormsランタイム

図10-3は、JVMプーリングが有効になっている場合に、複数のFormsランタイム・プロセスで単一のJVMプロセスが共有される様子を示しています。

図10-3 JVMプーリングが有効な場合のFormsランタイム

この例では、同じアプリケーションでそれぞれ独自のランタイム・プロセスを使用して機能している5つのクライアントが、独自のJVMインスタンスを生成するそれぞれのFormsランタイム・プロセスを使用するかわりに、1つのプールされたJVMプロセスを使用しています。このため、メモリー使用率とシステム・リソースを大幅に節約できます。

10.5 設計時の考慮事項

この項は、次の小項目に分かれています。

- 第10.5.1項「Javaコードの再インポート」

- 第10.5.2項「複数のJVM間での静的変数の共有について」

10.5.1 Javaコードの再インポート

JVMプーリングが利用可能になる時点より前にOracle FormsのJava Importer機能を使用していた場合は、JVMプーリングを使用する前にJavaクラスを再インポートする必要があります。Javaクラスを初めてインポートしたときには、そのJavaクラスのPL/SQLラッパーが生成されています。これは、フォームで作成されたプログラム・ユニット内で確認することができます。ただし、JVMプーリングを使用するJava Importerで生成されているPL/SQLラッパーはこれとは異なります。

Oracle Forms Services 10g以降では、Java Importerは新しいPL/SQLラッパーを生成します。Java Importerを使用し、JVMプーリングを利用しない場合は、インプロセスJVMは新しい PL/SQLラッパーで正常に機能します。また、旧スタイルのPL/SQLラッパーでもこれまでどおりに機能します。

10.5.2 複数のJVM間での静的変数の共有について

JVMプーリングのメリットの1つに、同一クラスの複数のインスタンス間で静的変数を使用してデータを共有する機能があります。ただし、静的変数は1つのJVM内の同一クラスのインスタンス間で共有され、複数のJVM間では共有されません。この条件に従って計画を立案する必要があります。

たとえば、ローン・クラスのすべてのインスタンスで同じ金利を使用して計算を実行するという理由で、interestRateという静的変数が用意されているとします。JVMを1つのみ使用する場合は、ローン・クラスの1つのインスタンスでinterestRateが変更されると、その他のすべてのインスタンスが影響を受けます(これは意図した動作です)。

ただし、JVMコントローラに1つ以上の子JVMが存在する場合は、2つ以上のJVMが存在する場合があります。1つのJVMでinterestRateが変更されても、他のJVMにあるローン・インスタンスでは新しい値が認識されません。子JVMの管理の詳細は、第10.2項「子Java仮想マシンのプロセスについて」を参照してください。JVMプーリングを使用しておらず、interestRateを変更した場合は、各Oracle Formsのランタイム・プロセスが個別にインプロセスJVMを持つため、その変更により他のインスタンスは影響を受けません。

静的変数を使用してクラスの複数のインスタンス間で情報を共有する場合は、maxsessionsを65535に設定して、子JVMが生成されないようにしてください。

10.6 JVM構成の概要

Fusion Middleware Controlを使用してJVMを構成するには、次の手順を実行します。

1. Fusion Middleware Controlを使用して、formsweb.cfgに新しい構成セクションを追加するか、そこにある既存の構成セクションを変更し、アプリケーションでのJVMコントローラの使用を有効または無効にします。詳細は、第10.8.6項「Forms構成ファイル設定」を参照してください。

2. default.envまたはjvmcontrollers.cfgでCLASSPATHが更新されていることを確認します。

3. Fusion Middleware Controlを使用してJVMパラメータを構成します。詳細は、第10.8.3項「パラメータの管理」を参照してください。

4. JVMコントローラを起動します。詳細は、第10.8.5項「Fusion Middleware ControlによるJVMコントローラの起動と停止」を参照してください。

10.7 コマンドラインからのJVMコントローラの管理

コマンドラインからJVMコントローラを管理するには、JVMコントローラの起動および停止のオプションを理解し、環境を指定する必要があります。JVMコントローラを実行しているコンピュータと同じコンピュータ上にあるJVMコントローラにのみアクセスできます。

注意:

この章で説明するJVMコントローラの制御メカニズムは、主にコマンドラインに関連しています。使いやすい画面とオンライン・ヘルプのあるFusion Middleware Controlを使用する方法のほうが簡単です。ただし、各種のフィールドやオプションの意味およびJVMコントローラの動作の仕組みを理解するために、Fusion Middleware Controlのユーザーも次の情報を参照することをお薦めします。

10.7.1 JVMコントローラのコマンドの例

この項では、JVMコントローラのコマンドの例について説明します。これらの例の詳しい説明は、第10.8.7項「起動の例」を参照してください。

- dejvm -start jvmcontroller=hrJVM
hrJVMというIDのJVMコントローラを起動します。コントローラ名hrJVMは、構成ファイルの名前付きセクションで定義されています。このため、JVMオプションとクラスパス・パラメータは構成ファイルから取得されます。maxsessionsはデフォルト・セクションでの定義に従って50になり、他のパラメータはそれぞれのデフォルト値になります。

- dejvm -start jvmcontroller=myJVM
myJVMというIDのJVMコントローラを起動します。オプションの指定がなく、jvmcontrollers.cfgに名前付きセクションがないため、JVMオプション・パラメータは、デフォルト・セクションでの設定に従って"-Xms512m -Xmx1024m"およびmaxsessions=50になります。他のパラメータはそれぞれのデフォルト値になります。たとえば、CLASSPATHの値はシステムCLASSPATHです。

- dejvm -start jvmcontroller=hrJVM jvmoptions="-Xms128m -Xmx256m" maxsessions=75
名前付きセクションでの定義に従って、クラスパスを/myJava/hrClassesに設定します。コマンド・ラインはjvmcontrollers.cfgファイルをオーバーライドするため、JVMオプションは"-Xms128m -Xmx256m"になります。同様に、maxsessionsは75になります。他のパラメータはすべて、それぞれのデフォルト値になります。

- dejvm -start jvmcontroller=myJVM maxsessions=100 classpath=/myJava/myClasses;/moreJava/moreClasses
jvmcontrollers.cfgのデフォルト・セクションでの定義に従って、コントローラにはjvmoptions="-Xms512m -Xmx1024m"が設定されます。maxsessionsは100になり(デフォルト・セクションをオーバーライドする)、クラスパスは/myJava/myClasses;/moreJava/moreClassesとなります。他のパラメータはすべて、それぞれのデフォルト値になります。

- dejvm -stop jvmcontroller=hrJVM
hrJVMコントローラを停止します。これは、このコマンドを正常に発行するために、起動済である必要があります。

10.7.2 コマンドの制限

次のコマンド制限に注意してください。

- コマンドでは、大文字と小文字が区別されます。

- 1度に1つのコマンドのみをJVMコントローラに発行できます。

- 1度に1つのJVMコントローラに対してのみ、コマンドを発行できます。

JVMコントローラ(dejvmプロセス)で使用可能なコマンドを表10-1に示します。Enterprise Managerを使用している場合は、これらのコマンドを発行するためのインタフェースを含む画面があります。コマンドラインを使用している場合は、Enterprise Managerを使用したJVMコントローラの管理はできないことがあります。

10.7.3 起動コマンド・パラメータ

表10-1に、コマンドラインからJVMを起動するために使用するJVMパラメータを示します。

表10-1 JVMパラメータ

パラメータ

説明

jvmcontroller

JVMの名前を入力します。この名前は、文字で始まり、英数字、'_'、'$'、または'#'で構成される有効なOracle識別子にする必要があります。Oracle識別子の最大長は30バイトです。

ヒント: 名前は、そのJVMにアクセスするアプリケーションの名前に基づいたものを入力することをお薦めします。このJVMコントローラの名前は後から変更できません。

maxsessions

新規JVMが生成される前に該当のJVMが処理する最大同時Oracle Formsセッション数を指定します。この値は、デフォルトJVMコントローラ用のセットをオーバーライドします。

classpath

クラスパスを指定すると、環境で指定されたクラスパスまたはシステムのクラスパス、またはデフォルトJVMコントローラ用のクラスパス・セットをオーバーライドします。

jvmoptions

JVMに渡すために有効なオプションを入力します。この値は、デフォルトJVMコントローラ用のセットをオーバーライドします。有効なJVM起動オプションの詳細は、Sun社のJavaドキュメントを参照してください。

logdir

デフォルトJVMコントローラのログ・ディレクトリを使用する場合は、「ログ・ディレクトリ」を空白のままにしておきます。他のディレクトリが設定されている場合は、Enterprise Managerからログ・ファイルにアクセスできないことがあります。

logging

オンまたはオフ。

10.8 Fusion Middleware ControlからのJVMプーリングの管理

Fusion Middleware Controlでは、使用可能なすべてのJVMプーリング・オプションを管理するためにWebベースの環境が用意されています。また、環境内のすべてのJVMコントローラが一覧表示され、(リモートで)これらを管理することができます。たとえば、JVMコントローラの起動や停止、新規コントローラの追加、既存のコントローラの再構成などができます。さらに、Fusion Middleware Controlでは、JVMコントローラで消費されるリソース(メモリーやCPU)、接続されているFormsの数、JVMの総数などのメトリック情報も得られます。

Formsランタイム・プロセスが直接JVMと対話的に処理するとき、JVMコントローラではそのJVMを管理(JVMの起動や停止、JVMの状態情報の取得など)します。たとえば、管理者がJVMコントローラを停止すると、JVMコントローラではすべての子JVMを終了したことを確認します。Fusion Middleware Controlを使用してJVMコントローラを管理します。

JVMコントローラは、次の3通りの場合に起動されます。

- Fusion Middleware Controlから起動した場合

- 既存のJVMコントローラにバインドされているFormsアプリケーションがコントローラの起動を要求した場合

- コマンドラインから起動した場合

Fusion Middleware Controlでは、JVMコントローラの構成ファイルが読み取られます。これには、名前と値のペア、デフォルト・セクションおよび名前を付けたセクションが含まれ、Forms構成ファイル(formsweb.cfg)と同様の機能を果たします。jvmcontrollers.cfgに含まれるパラメータは、JVMコントローラの起動パラメータに相当します。

注意:

JVMコントローラの構成ファイルのディレクトリや名前を変更することはできません。

JVMコントローラを起動すると、設定が構成ファイルから取得されます。このファイルでは、デフォルト・セクションと名前を付けたセクションの両方で、オプションをまったく指定しないことも、一部またはすべてのオプションを指定することもできます。

Fusion Middleware Controlの「JVM構成」ページと「JVMコントローラ」ページを使用して、次のようなJVMプーリング・タスクを管理します。

- 第10.8.1項「「JVM構成」ページでの一般タスク」

- 第10.8.2項「JVM構成セクションの管理」

- 第10.8.3項「パラメータの管理」

- 第10.8.4項「JVM構成パラメータとそのデフォルト値」

- 第10.8.5項「Fusion Middleware ControlによるJVMコントローラの起動と停止」

- 第10.8.6項「Forms構成ファイル設定」

- 第10.8.7項「起動の例」

10.8.1 「JVM構成」ページでの一般タスク

この項では、JVM構成ファイルとそのパラメータのセクションで構成を編集するために実行できる、一般的なタスクについて説明します。

表10-2に、JVM構成ファイル内の名前を付けた構成セクションで実行できるタスクを示します。

表10-2 構成セクションで行うタスク

タスク

説明

コメント

類似作成

構成セクションのコピーを作成します。

既存の構成セクションのパラメータに基づいて構成セクションを作成する際に使用します。

編集

「説明の編集」ダイアログを開きます。

構成セクションの説明テキストを編集できます。

削除

構成セクションの削除時に「確認」ダイアログを開きます。

「確認」ダイアログで「削除」を押すと、構成セクションとその内容が無条件に削除されます。

作成

「セクションの作成」ダイアログを開きます。

新しい構成セクションを作成します。必要な名前とオプションの説明を入力する必要があります。

表10-3に、名前を付けた構成セクション内のパラメータを変更するために実行できるタスクを示します。

表10-3 名前を付けた構成セクションでのパラメータ処理のタスク

タスク

説明

コメント

元に戻す

以前のバージョンの構成セクションに戻すことができます。

構成セクション内の個々の変更を元に戻すことはできません。

適用

構成セクション内のパラメータに対するすべての変更を適用およびアクティブ化します。

一度適用すると、個々のパラメータへの変更を元に戻すことはできません。

追加

「パラメータの追加」ダイアログを開きます。

必須の名前とオプションの値および説明に基づき、構成セクションにパラメータを追加します。

削除

パラメータを削除します。

変更を保存するには「適用」、破棄するには「元に戻す」をそれぞれ使用します。一度適用すると、個々のパラメータへの変更を元に戻すことはできません。

10.8.2 JVM構成セクションの管理

この項では、名前を付けたJVM構成セクションの作成、編集、複製および削除について説明します。

10.8.2.1 「JVM構成」ページへのアクセス

「JVM構成」ページにアクセスするには:

1. Enterprise Manager Fusion Middleware Controlを起動します。

2. Fusion Middleware Controlのメイン・ページで、構成するForms Servicesインスタンスへのリンクをクリックします。

3. 「Forms」メニュー・リストから「JVM構成」を選択します。
「JVM構成」ページ(図10-4)が表示されます。

図10-4 「JVM構成」ページ

10.8.2.2 新しい構成セクションの作成

jvmcontrollers.cfgに新しい構成セクションを作成するには、Fusion Middleware Controlの「JVM構成」ページを使用します。これらの構成は、フォームの実行に使用するエンド・ユーザーのURL問合せ文字列からリクエストできます。

新しい構成セクションを作成するには:

1. Fusion Middleware Controlのメイン・ページで、構成するForms Servicesインスタンスへのリンクをクリックします。

2. 「Forms」メニュー・リストから「JVM構成」を選択します。

3. 「作成」をクリックします。
「作成」ダイアログが表示されます。

4. 新しい構成セクションの名前と説明を入力し、「作成」をクリックします。
新しい構成セクションが追加されます。

10.8.2.3 名前を付けた構成の説明の編集

名前を付けた構成の説明(コメント)は、「JVM構成」ページで編集できます。

名前を付けた構成の説明を編集するには:

1. 「JVM構成」リージョンで、説明を編集する名前を付けた構成を含む行を選択します。

2. 「編集」をクリックします。

3. 「説明の編集」ダイアログが表示されます。

4. 「コメント」フィールドに説明を入力します。

5. 「保存」をクリックします。
「説明の編集」ダイアログ・ボックスが閉じ、変更内容が保存され、表示されます。

10.8.2.4 名前を付けた構成の複製

名前を付けた構成のコピーをバックアップ用に作成できます。または、既存の構成セクションから新しい構成セクションを作成できます。

名前を付けた構成を複製するには:

1. 「JVM構成」リージョンで、「類似作成」を選択します。

2. 「類似作成」ダイアログで、「複製するセクション」メニューから複製する既存の構成セクションの名前を選択します。

3. 「新規セクション名」フィールドに、新しい構成セクションの名前を入力します。新しい構成セクションには、一意の名前を指定する必要があります。

4. 「作成」をクリックします。
複製元のセクションとまったく同じパラメータ、パラメータ値およびコメントを備えた新しいセクションが作成されます。

10.8.2.5 名前を付けた構成の削除

名前を付けた構成セクションを削除すると、構成セクション内の情報はすべて削除されます。特定のパラメータのみを削除する方法は、第10.8.3項「パラメータの管理」を参照してください。

名前を付けた構成を削除するには:

1. 「JVM構成」リージョンで、削除する構成セクションの行を選択します。

2. 「削除」をクリックします。
「確認」ダイアログが表示されます。

3. 「削除」をクリックします。
構成セクションが削除されます。

Oracle Enterprise Managerが「JVM構成」ページに戻り、残りの構成が表示されます。

注意:

デフォルト構成セクションは削除できません。

10.8.3 パラメータの管理

名前を付けた構成内のパラメータを管理するには、Fusion Middleware Controlを使用します。Fusion Middleware Controlを使用して、パラメータを追加、編集または削除できます。

構成セクションでパラメータを編集するには:

1. 「JVM構成」リージョンで、編集するパラメータを含む構成セクションの行を選択します。

2. 編集するパラメータの行を選択します。「値」と「コメント」に入力します。

3. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

構成セクションにパラメータを追加するには:

1. Fusion Middleware Controlの「JVM構成」リージョンで、パラメータを追加する構成セクションの行を選択します。

2. 「追加」をクリックして新しいパラメータを追加します。
「追加」ダイアログが表示されます。

3. パラメータの「名前」、「値」、および「コメント」に入力します。

4. パラメータを追加するには、「作成」をクリックします。

5. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

構成セクションのパラメータを削除するには:

1. Fusion Middleware Controlの「JVM構成」リージョンで、削除するパラメータを持つ構成セクションを選択します。

2. 削除するパラメータを含む行を選択します。

3. 「削除」をクリックします。

4. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

10.8.4 JVM構成パラメータとそのデフォルト値

表10-4に、JVM構成パラメータとそのデフォルト値を示します。

表10-4 JVM構成パラメータ

パラメータ

説明

デフォルト値

JVM当たりの最大セッション数

新規JVMが生成される前にデフォルトのJVMが処理する、最大同時Oracle Formsセッション数を指定します。

65535

クラスパス

クラスパスを指定すると、システムのクラスパスまたは環境で指定されたクラスパスをオーバーライドします。

$ORACLE_HOME/jdk/bin/java

JVMオプション

JVMに渡すために有効なオプションを入力します。有効なJVM起動パラメータの詳細は、Sun社のJavaドキュメントを参照してください。

Null

ログ・ディレクトリ

デフォルトJVMコントローラのログ・ディレクトリを使用する場合は、「ログ・ディレクトリ」を空白のままにしておきます。他のディレクトリが設定されている場合は、ログ・ファイルはEnterprise Managerで表示できません。

$ORACLE_INSTANCE/FRComponent/frcommon/tools/jvm/log

ロギング

ロギングが有効かどうかを指定します。有効値: On、Off

On

コメント

このテキスト領域に、デフォルトのJVMに関するコメントを追加します。

Null

10.8.5 Fusion Middleware ControlによるJVMコントローラの起動と停止

Fusion Middleware Controlは、JVMコントローラの起動、停止、再起動など、Oracle Forms Servicesを管理するツールです。Oracle Forms Servicesの管理には、このツールの使用をお薦めします。

JVMコントローラが停止した場合は、起動することができます。JVMコントローラがすでに実行中の場合は、手動で停止せずに再起動することができます。Fusion Middleware Controlでは、自動的にこの手順が実行されます。

注意:

JVMを停止または再起動する前に、JVMコントローラを使用しているFormsセッションをユーザーが停止したことを確認します。JVMを再起動すると、ユーザー側ではセッションの再起動が必要になることがあります。

「JVMコントローラ」ページにアクセスするには:

1. Enterprise Manager Fusion Middleware Controlを起動します。

2. 「Forms」ホームページで、「JVMコントローラ」を選択します。
「JVMコントローラ」ページ(図10-5)が表示されます。

図10-5 「JVMコントローラ」ページ

実行中でないJVMコントローラを起動するには:

1. 「Forms」メニューで、「JVMコントローラ」を選択します。
「JVMコントローラ」ページが表示されます。

2. 起動するJVMコントローラを選択します。実行されていないJVMコントローラには赤い下矢印が表示されています。

3. 「起動」をクリックします。
JVMコントローラが起動すると、「ステータス」に緑色の上矢印(図10-5)が表示されます。

実行中のJVMコントローラを再起動するには:

1. 「Forms」メニューで、「JVMコントローラ」を選択します。
「JVMコントローラ」ページが表示されます。

2. 再起動するJVMコントローラを選択します。

3. 「再起動」をクリックします。

4. 「確認」ダイアログで「はい」をクリックします。
「JVMコントローラ」ページが再表示されます。

JVMコントローラが再起動すると、「ステータス」に緑色の上矢印が表示されます。

JVMコントローラを停止するには:

1. 「Forms」メニューで、「JVMコントローラ」を選択します。
「JVMコントローラ」ページが表示されます。

2. 停止する対象となる実行中のJVMコントローラ(緑色の上矢印で表示されているコントローラ)を選択します。

3. 「停止」をクリックします。

4. 「確認」ダイアログで「はい」をクリックします。
JVMコントローラが停止すると、「ステータス」に赤色の下矢印(図10-5)が表示されます。

JVMコントローラのその他の詳細を表示するには:

1. 「Forms」メニューで、「JVMコントローラ」を選択します。
「JVMコントローラ」ページが表示されます。

2. JVMコントローラの横にあるプラス記号をクリックします。行が開き、JVMコントローラに関する追加の詳細(図10-5)が表示されます。

10.8.6 Forms構成ファイル設定

この項では、アプリケーションでのJVMコントローラの使用を有効または無効にするためにForms構成ファイル(formsweb.cfg)で使用するJVMプーリング・パラメータについて説明します。パラメータ名には大/小文字の区別はありません。Fusion Middleware Controlを使用して、Forms構成ファイルを管理できます。

表10-5「Oracle FormsのJVMコントローラ起動パラメータ」に、formsweb.cfgファイルで指定する起動オプションを示します。

formsweb.cfgでのパラメータの変更の詳細は、第4.2.4項「パラメータの管理」を参照してください。

表10-5 Oracle FormsのJVMコントローラ起動パラメータ

パラメータ

説明

jvmcontroller

有効値: jvmcontrollerの名前。空白のままにしてJVMを指定しないこともできます。

デフォルト値はありません。

注意: formsweb.cfgでこのパラメータを指定するには、jvmcontroller=%jvmcontroller%の形式でotherparamsにこのパラメータを指定する必要があります。otherparamsの詳細は、表4-13「詳細構成パラメータ」を参照してください。

このパラメータはデフォルト・セクションでグローバルに設定することも、アプリケーション・セクションを選択してオーバーライドすることもできます。これによって、Formsランタイム・プロセスで使用するJVMコントローラが決まります。dejvm実行可能ファイルのjvmcontrollerパラメータに対応します。

jvmcontrollerに値を指定していない場合(jvmcontroller=)、Formsランタイム・プロセスは自身のインプロセスJVMを起動します。これは、Java Importerの動作は10gより前のリリースのものとなることを意味します。

allowJVMControllerAutoStart

有効値: true、false。

デフォルト値: true

JVMコントローラを使用するようにFormsが構成されていて、そのJVMコントローラが実行されていない場合、このパラメータにより、Oracle FormsでJVMコントローラを実行することができます。

10.8.7 起動の例

この例では、複数のアプリケーションで複数のJVMを使用する環境を示します。

表10-6に示すように、formsweb.cfgは4つの構成セクションで構成されます。

図10-6 複数のアプリケーションで使用する複数のJVM

名前を付けた構成セクション

JVM構成

デフォルト

jvmcontroller=commonJVM

ordersApp

なし

hrApp

jvmcontroller=hrJVM

salesApp

jvmcontroller=

ユーザーがordersAppアプリケーションを起動し、アプリケーションがJavaコードを実行すると、Formsランタイム・プロセスはそのリクエストをcommonJVMという名前のJVMコントローラにルーティングします。[ordersApp]アプリケーション・セクションでは使用するJVMコントローラが指定されていないので、Formsランタイム・プロセスはグローバルなJVMコントローラを使用します。JVMコントローラが起動していない場合は、動的に起動します。別のユーザーが同じアプリケーションを起動すると、同様にcommonJVMに接続します。

ユーザーがhrAppアプリケーションを起動し、アプリケーションがJavaコードを実行すると、Formsランタイム・プロセスはそのリクエストをhrJVMという名前のJVMコントローラに送ります。これは、[hrApp]アプリケーション・セクションがグローバル設定をオーバーライドするためです。JVMコントローラが起動していない場合は、動的に起動します。別のユーザーが同じアプリケーションを起動すると、同様にhrJVMに接続します。

ユーザーがsalesAppアプリケーションを起動し、アプリケーションがJavaコードを実行すると、Java ImporterがJVMプーリングなしで機能するのと同様に、Formsランタイム・プロセスはインプロセスJVMを起動します。別のユーザーが同じアプリケーションを起動すると、そのアプリケーションは自身のインプロセスJVMを取得するため、図10-6に示すようにメモリーの消費量が多くなります。

図10-6 複数のアプリケーションで使用する複数のJVM

10.9 JVMコントローラのロギング

ロギングを有効にすると、JVMコントローラは次のような情報をログ・ファイルに記録します。

- JVMパラメータ(maxsessions、classpathなど)の値。

- JVMコントローラが起動および終了した日時。

- 子JVMが生成された日時。

- Formsランタイム・プロセスが新規の接続を開始した日時とそのプロセスID。
この情報は、診断または管理の目的でどのFormsランタイム・プロセスがどのJVMコントローラに接続されているかを調べるうえで役立ちます。

- Formsランタイム・プロセスのセッションが終了しJVMとの接続が解除された日時。

この項は、次の小項目に分かれています。

- 第10.9.1項「デフォルトのJVMロギング・プロパティの指定」

- 第10.9.2項「JVMログのディレクトリ場所の指定」

- 第10.9.3項「ログ・ファイルへのアクセス」

- 第10.9.4項「JVMコントローラのログ・ファイルの削除」

10.9.1 デフォルトのJVMロギング・プロパティの指定

Fusion Middleware Controlを使用して、JVMコントローラのロギング・プロパティを管理します。

1. 「JVM構成」ページで、JVM構成セクションを選択します。

2. 「ロギング」パラメータに、「オン」または「オフ」を入力します。

3. 「適用」をクリックします。

10.9.2 JVMログのディレクトリ場所の指定

ログ・ファイルのディレクトリはJVMコントローラで指定できます。また、他のJVMコントローラが使用するデフォルトJVMコントローラのログ・ファイル・ディレクトリも指定できます。

ログ・ファイルのディレクトリの場所を指定するには:

1. JVMコントローラを作成します。詳細は、第10.8.2.2項「新しい構成セクションの作成」または第10.8.2.4項「名前を付けた構成の複製」を参照してください。

2. 「ログ・ディレクトリ」パラメータを追加します。詳細は、第10.8.3項「パラメータの管理」を参照してください。
「ログ・ディレクトリ」パラメータが定義されている名前の付いた構成セクションを複製した場合は、第10.8.3項「パラメータの管理」にあるように、既存のそのパラメータを編集できます。

3. 「適用」をクリックして変更を保存します。
「JVM構成」ページが再表示されます。

10.9.3 ログ・ファイルへのアクセス

ログ・ファイルが存在する場合は、「ログ・ファイル」列にアイコンが表示されます。

ログ・ファイルにアクセスするには:

- 該当のJVMコントローラで使用可能な「ログ・ファイル」列の「ログ・ファイル」リンクをクリックします。
「ログ・ファイル」ページが開き、そのログの情報が表示されます。

10.9.4 JVMコントローラのログ・ファイルの削除

Fusion Middleware Controlを使用して、ログ・ファイルを削除します。

JVMコントローラのログ・ファイルを削除するには:

1. 「JVMコントローラ」ページで、ターゲットJVMを選択します。

2. 「ログ・ファイルを削除」をクリックします。
「削除の確認」ダイアログが表示されます。

3. 「削除」をクリックします。
ログ・ファイルが削除され、「JVMコントローラ」ページが再び表示されます。

注意:

実行中のJVMのログ・ファイルを削除した場合、JVMを再起動すると、そのログ・ファイルが再び使用可能になります。ロギングを可能にするには、JVMを再起動する必要があります。

10.10 FormsとReportsの統合

FormsでのReportsの統合にはJVMコントローラ(dejvm)を使用します。Reports Serverでのレポートの実行、レポートのステータスの取得、Reports出力の取得、Reports Serverに送信したジョブのキャンセルなど、Reportsに関するすべてのリクエストはdejvmにルーティングされ、dejvm対応のランフォームがReportsをコールします。

Reportsの統合でdejvmを使用するには、次の手順を実行します。Oracle FormsからReportsを直接コールする場合、この設定は不要です。

Reportsの統合にdejvmを使用するには:

1. formsweb.cfgでJVMプーリングを有効にします。詳細は、第10.8.6項「Forms構成ファイル設定」を参照してください。

2. Reportsの統合では、2つの.jarファイルがdejvmで別途必要です。jvmcontrollers.cfgで、クラスパスにこの2つのJARファイル、zrcclient.jar($ORACLE_HOME/jlib/zrclient.jar)とrwrun.jar($ORACLE_HOME/reports/jlib/rwrun.jar)を追加します。

注意:

JVMコントローラを使用してレポートを実行する場合にReports Serverの名前を返すようにするには、次に示すようにREPORTS_SERVERMAP環境変数をjvmcontrollers.cfgに定義する必要があります。

[myjvm]
jvmoptions=-DREPORTS_SERVERMAP=<value> <other-jvmoption-parameters>

10.11 JVMプーリングのエラー・メッセージ

PDE-JM001: JVMコントローラ: <jvm_name>と通信できません。

原因: JVMコントローラの起動または既存のJVMコントローラへの接続に失敗しました。

処置: 管理者に連絡してください。

11 Forms Servicesセキュリティの概要

Webコンテンツへのユーザー・アクセスを制御し、システムへの侵入者からサイトを保護する機能は非常に重要です。この章では、Oracle Forms Servicesにおけるセキュリティのアーキテクチャと構成について説明します。

- 第11.1項「Forms Servicesのシングル・サインオン」

- 第11.2項「Oracle Forms Servicesセキュリティの構成」

関連項目:

セキュリティの詳細は、次のドキュメントを参照してください。

- 『Oracle Fusion Middlewareセキュリティ概要』には、Oracle Fusion Middlewareセキュリティと、そのコア機能の概要が記載されています。

- Oracle Fusion Middleware Oracle Identity Managementスタート・ガイドには、Oracleセキュリティ・インフラストラクチャの管理者用の手引きが記載されています。

11.1 Forms Servicesのシングル・サインオン

Oracle Forms Servicesのシングル・サインオンは、Oracle HTTP ServerのOracleモジュールmod_ossoを通じて利用できます。mod_ossoは、Oracle Single Sign-On Serverに対してユーザーを認証し、次にOracle Internet Directoryをユーザー・リポジトリとして使用してからFormsアプリケーションのリクエストをFormsサーブレットに転送します。

Formsアプリケーションでは、データベース接続文字列がアプリケーションのリクエストとともに渡されます。渡されない場合は、ログイン・ダイアログが表示されます。Oracle Single Sign-On Server環境でデータベース接続情報を取得するには、ユーザーのOracle Single Sign-On Server名、認証されたユーザー名およびユーザーが起動をリクエストしているアプリケーション名を結合して作成される一意キーの値を、Formsサーブレットを使用してOracle Internet Directoryに問い合せます。

リソース・アクセス記述子(RAD)は、各ユーザーおよびアプリケーションに対して定義される、必要なデータベース接続情報を含むOracle Internet Directoryのエントリです。Forms ServletはRADからデータベース接続情報を読み取って、Forms Webアプリケーションを起動するコマンドラインとともに渡します。Forms認証はまだデータベース中心ですが、mod_ossoおよびFormsサーブレットはWebベースのOracle Single Sign-On Server環境に統合されています。

11.1.1 ユーザーのクラスとその権限

従来、Formsアプリケーションでは、アプリケーション・ユーザーの認証にデータベースが使用されています。Oracle Single Sign-On ServerでOracle Forms Servicesを使用するには、ユーザー・アカウントとその接続情報がOracle Internet Directoryで利用可能である必要があります。Oracle Internet Directoryでは、PL/SQL、JavaまたはOracle Delegated Administration Servicesを使用した複数の方法でユーザー・データがプロビジョニングされます。Oracle Delegated Administration Servicesは、Oracle Single Sign-On Serverユーザーおよび委任管理者用のWebベースのユーザー・インタフェースであり、権限を持つOracle Internet Directoryのセルフサービス・データの管理に使用します。

Oracle Internet Directoryでユーザー・アカウントを作成した後は、ユーザーによるFormsアプリケーションの初回リクエスト時に、(このアプリケーションに必要なデータベース接続情報をユーザーが知っていることを前提として)リソース・アクセス記述子(RAD)のエントリを動的に作成できます。

もうひとつの選択肢は、Oracle Delegated Administration Servicesで作成可能なRADのエントリを使用することです。デフォルトのRADエントリには、Oracle Single Sign-On Serverで認証されるすべてのユーザーがアクセスできます。特定のFormsアプリケーションをWebで実行しているときに、すべてのユーザーが同じデータベース接続情報を共有している場合はデフォルトのRADを使用します。このように、ユーザーはそのOracle Single Sign-On Server接続情報によって個別に認証されますが、デフォルトのRADエントリで定義されたアプリケーションでは、すべてのユーザーが共通のデータベース接続(情報)を共有します。

11.1.1.1 ユーザー・アカウントのデフォルトのシングル・サインオン動作

デフォルトでは、OracleAS Single Sign-On Serverが有効となり、プロキシ・ユーザーは使用されません。Oracle Formsユーザーは、OracleAS Single Sign-On Serverで認証を行い、アイデンティティ・ストア(通常はOracle Internet Directory)からリソース・アクセス記述子を取得し、これらの資格証明を使用してデータベースに接続する必要があります。

11.1.1.2 データベース・プロキシ機能を使用するユーザー

Oracle Single Sign-On ServerパラメータssoProxyConnectが新たに追加されました。これをtrueに設定すると、ユーザーはプロキシ・ユーザーとして接続できるようになります。ユーザーはOracle Single Sign-On Serverで認証を行うように求められ、プロキシ・ユーザーのユーザー名とパスワードを保持するリソース・アクセス記述子が構成されます。データベース管理者は、プロキシ接続を許可するために、データベース構成を追加で実装する必要があります。

11.1.2 保護されるリソース

Formsアプリケーションに対してOracle Single Sign-On Serverを有効化する場合、次の機能でFormsアプリケーションを保護できます。

11.1.2.1 動的ディレクティブ

動的ディレクティブmod_ossoは、Oracle Single Sign-On Serverで保護されたFormsアプリケーションを実行します。必要に応じ、このディレクティブを使用して、同じOracle Forms Servicesインスタンスから保護されていないFormsアプリケーションを実行できます。これらのアプリケーションは、同じ構成ファイルとFormsサーブレットを使用します。アプリケーションに対するシングル・サインオンは、formsweb.cfg構成ファイルのアプリケーション定義にあるOracleAS Single Sign-On Serverパラメータを使用して有効化します。

11.1.2.2 Oracle Internet Directoryにおける動的リソースの作成

以前のOracle Forms Servicesの一部のリリースでは、特定のアプリケーションおよびユーザーでRAD定義が見つからない場合に、エラー・メッセージが表示され、認証済にもかかわらずユーザーはそのFormsアプリケーションを実行できませんでした。Oracle Forms Servicesのこのリリースでは、RAD定義が存在しない場合は、ユーザーがOracle Forms Servicesを構成してリアルタイムにこのアプリケーションのRADを作成できます。DASページにリダイレクトする機能は、シングル・サインオン・パラメータssoDynamicResourceCreateで実現しています。

11.1.2.3 シングル・サインオン使用時のデータベース・パスワードの期限切れ

以前のOracle Forms Servicesの一部のリリースでは、データベース・パスワードが期限切れの場合、Oracle Internet DirectoryのRAD情報は更新されませんでした。そのため、ユーザーは、Formsアプリケーションへの接続時にデータベース・パスワードを更新していました。Oracle Forms Servicesのこのリリースでは、Formsによるデータベース・パスワードの更新に伴ってOracle Internet DirectoryのRAD情報も自動的に更新されます。Oracle Forms Servicesのこの機能を使用するために、追加構成を行う必要はありません。

11.1.3 認証およびアクセス強制

ユーザーによるOracle Forms Services URLの初回リクエスト時など(パートナ・アプリケーションからのリクエスト時も含む)、Oracle Forms ServicesにおけるOracle Single Sign-On Serverサポートの認証フローの詳細は、第9.1.1項「認証フロー」を参照してください。

11.1.4 Oracle Identity Management Infrastructureの使用

Oracle Forms Servicesでは、最小限の構成でOracle Internet Directoryとの統合が強化されています。FormsアプリケーションにOracle Single Sign-On Serverサーバーを構成するとき、Oracle Forms Servicesでは、構成と相互作用の大部分がOracle Internet Directoryで処理されます。

11gにはリポジトリAPIがないことから、Oracle FormsとIdentity Managementの統合では、Formsアプリケーションの配布でFormsとOracle Internet Directory (OID)ホスト間の関係が確立されるときにFormsアプリケーションのIDが登録されます。このプロセスは、Oracle Internet Directoryとの関連付けと呼ばれています。Forms識別名(formsDN)やパスワードなどの関連する情報はCredential Storage Framework (CSF)に格納されます。実行時には、必要な情報がCSFから抽出された後、Oracle Internet DirectoryとのJNDI接続が確立します。Oracle FormsとIdentity Managementの統合には次の統合があります。

- ブートストラップ時の統合: パスワードを割り当てられたFormsアプリケーション・エンティティ(および識別名)がOracle Internet Directoryに作成されます。

- 実行時の統合: 以前は、Oracle Internet Directoryへの接続ではリポジトリAPIを使用していました。11gでは、JNDIコールを使用してOracle Internet Directoryに直接接続します。

Oracle Internet Directoryの関連付けと関連付け解除の詳細は、第9.7項「Oracle Internet Directoryの構成」を参照してください。

11.2 Oracle Forms Servicesセキュリティの構成

Oracle Forms Servicesのセキュリティの構成は、Oracle Fusion Middleware Controlで行われます。画面ごとにオンライン・ヘルプを利用できます。詳細は、第4章「Forms Servicesの構成と管理」および第9章「Oracle Single Sign-OnでのForms Servicesの使用」を参照してください。

11.2.1 Oracle FormsのOracle Identity Managementオプションの構成

Oracle Internet Directoryでリソースを動的に作成したり、Oracle Internet Directoryリソースを持たないユーザーが共通リソースを使用できるように、Oracle Forms Servicesを構成することができます。

詳細は、第9章「Oracle Single Sign-OnでのForms Servicesの使用」を参照してください。

11.2.2 Oracle Fusion Middleware Security FrameworkのOracle Formsオプションの構成

Oracle Formsの構成と保護の詳細は、次の各章を参照してください。

- 第3章「Oracle Formsアプリケーションの配布の基本」

- 第4章「Forms Servicesの構成と管理」

- 第9章「Oracle Single Sign-OnでのForms Servicesの使用」

- 第12章「トレースと診断」

11.2.3 RADの保護

RADのセキュリティを強化し、OID管理者が閲覧できないようにするには、次の手順に従います。

1. ---aci-change.ldif---で囲まれた内容をaci-change.ldifファイルにコピーします。

---aci-change.ldif---
dn: cn=Extended Properties,%s_OracleContextDN%
changetype: modify
delete: orclaci
orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute) by
guidattr=(orclOwnerGUID)(read,search,compare,write) by
dnattr=(orclresourceviewers) (read,search, compare, write) by
groupattr=(orclresourceviewers) (read,search, write) by * (none)
-
add: orclaci
orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute)
DenyGroupOverride by guidattr=(orclOwnerGUID)(read,search,compare,write) by
dnattr=(orclresourceviewers) (read,search, compare, write) by
groupattr=(orclresourceviewers) (read,search, write) by * (none)
---aci-change.ldif---

注意:

aci-change.ldifの中で、orclaci: access to attr=から始まる行は、by * (none)で終わる単独の行なので途中に改行を入れないようにする必要があります。

2. このLDIFファイルにある%s_OracleContextDN%を、レルム固有のOracleコンテキストが持つ識別名(DN)に置き換えます。
たとえば、配布でのDNがdc=acme,dc=comである場合、レルム固有のOracleコンテキストはcn=OracleContext,dc=acme,dc=comです。

3. OID層で次のコマンドを実行します。
ldapmodify -p <port> -h <host> -D cn=orcladmin -q -v -f aci-change.ldif

4. このコマンドでは、コマンドライン・パラメータとしてcn=orcladminパスワードを指定していないので、実行するとこのパスワードを要求するメッセージが表示されます。

これらの変更を取り消すには、.ldifファイルにある次の内容を使用して同じコマンドを実行します(前述の注意に留意してください)。

---aci-revert.ldif---
dn: cn=Extended Properties,%s_OracleContextDN%
changetype: modify
delete: orclaci
orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute)
DenyGroupOverride by guidattr=(orclOwnerGUID)(read,search,compare,write) by
dnattr=(orclresourceviewers) (read,search, compare, write) by
groupattr=(orclresourceviewers) (read,search, write) by * (none)
-
add: orclaci
orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute) by
guidattr=(orclOwnerGUID)(read,search,compare,write) by
dnattr=(orclresourceviewers) (read,search, compare, write) by
groupattr=(orclresourceviewers) (read,search, write) by * (none)
---aci-revert.ldif---

12 トレースと診断

この章には、次の項が含まれています。

- 第12.1項「Forms Traceについて」

- 第12.2項「Forms Traceの有効化と構成」

- 第12.3項「Forms Traceの開始と停止」

- 第12.4項「Forms Trace出力の表示」

- 第12.5項「トレース可能イベントのリスト」

- 第12.6項「Oracle Diagnostics Loggingのツールの利用」

12.1 Forms Traceについて

Forms Traceを使用すると、正確に定義されたフォーム機能の部分やユーザー・アクションのクラスに関する情報を記録できます。これを行うには、トレース情報を収集する必要があるイベントを定義します。たとえば、トリガーの実行やマウスクリック、あるいはその両方に関する情報を記録できます。Enterprise Manager Fusion Middleware Controlから、トレース出力を使用してOracle Formsアプリケーションのパフォーマンスやその他の問題を診断できます。

Forms Traceは、Oracle Formsの以前のリリースで利用できたForms Runtime Diagnostics(FRD)とPerformance Event Collection Services (PECS)の機能に代わるものです。Forms Traceを使用すると、フォームの使用中にユーザーが実行した手順など、フォームでの実行パスをトレースできます。

12.1.1 トレースとデバッグの違い

Formsデバッグは、ユーザーがボタンを押したときの動作を確認する場合に使用します。リモートの開発者は、デバッグを使用することで、既存のFormsユーザー・セッションに接続し、アプリケーション実行時のユーザー・アクションのトレースやローカル・マシン上でのデバッグができます。Forms Traceは、特定のイベントのタイミングに関する情報を提供します。Oracleサポートでは、トレースを使用して問題を分離および分析します。たとえば、実行に最も時間がかかる問合せや、Oracle Formsでパフォーマンスの問題を引き起こしているトリガーを、Forms Traceを使用して特定できます。

12.2 Forms Traceの有効化と構成

イベントとは、ユーザー・アクションの直接的または間接的な結果としてOracle Forms内で発生するものです。例として、問合せを実行するボタンをユーザーが押す場合などがあります。イベント・セットは、トレースを開始するときに各イベント番号を個別に指定するのではなく、イベント・セット名を指定することによってユーザーがトレースできるイベントのグループを指定します。

「Oracle Enterprise Manager」ページの「Forms」メニューで、「トレース構成」を選択して、トレース対象のイベントを定義します。このページで、ftrace.cfgファイルの変更がすべて管理されます。

Forms Traceを使用する際には、次のことに注意してください。

- 最初にトレースをOFFにし、新しい設定でトレースを再度ONにすると、トレースは新しいトレース・グループで有効になります。

- Windows上でFormsプロセスをトレースするには、Process Manager Serviceの「デスクトップとの対話をサービスに許可」チェック・ボックスが選択されている必要があります。この設定を行っていない場合、トレースをオンにしようとすると、次のエラーが発生します: oracle.sysman.emSDK.emd.comm.RemoteOperationException. Check the User Name and Password.

- ftrace.cfgファイルとdefault.envファイルをFusion Middleware Controlで編集する前に、これらのファイルをバックアップする必要があります。

- ほとんどのWebアプリケーションでは、ページを移動するだけで、保存されていない変更は簡単に失われてしまいます。Fusion Middleware ControlでFormsの構成ファイル、トレース・ファイルまたは環境ファイルに変更を加えた場合は、必ず保存してから他のページへ移動してください。
変更の保存に必要な時間は、変更を加えた行数によって異なります。たとえば、50行のコメントを追加する変更は、単一のエントリを削除する変更よりも保存に時間がかかります。

イベントとそれに対応するイベント番号は、第12.5項「トレース可能イベントのリスト」を参照してください。

12.2.1 Forms Traceの構成

「トレース構成」ページにアクセスするには:

1. Fusion Middleware Controlを起動します。

2. Fusion Middleware Controlのメイン・ページで、構成するForms Servicesインスタンスへのリンクをクリックします。

3. 「Forms」メニュー・リストから「トレース構成」を選択します。
「トレース構成」ページ(図12-1)が表示されます。

図12-1 「トレース構成」ページ

新しいトレース・グループを作成するには:

1. Fusion Middleware Controlのメイン・ページで、構成するForms Servicesインスタンスへのリンクをクリックします。

2. 「Forms」メニュー・リストから「トレース構成」を選択します。
「トレース構成」ページが表示されます。

3. 「追加」をクリックします。
「追加」ダイアログが表示されます。

4. 新しいトレース・グループの情報を入力します。
名前: トレース・グループの名前を入力します。

値: トレース可能イベントの値は、表12-2を参照してください。

コメント: コメントを入力します。

- トレース・グループ名にスペースを含めることはできません。たとえば、a_b_cというトレース・グループ名を使用できます。

- 「値」に指定するイベント番号の間は、カンマで区切る必要があります。たとえば、65,66,96,194という値を使用できます。

- 番号の範囲を使用できます。たとえば、32-46という範囲を使用できます。

5. 「追加」をクリックします。
新しいトレース・グループが追加されます。

6. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

トレース・グループを削除するには:

1. 「トレース構成」ページで、削除するグループを選択します。

2. 「削除」をクリックします。
トレース・グループが削除され、「トレース構成」ページが再び表示されます。

3. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

既存のトレース・グループを編集するには:

1. 「トレース構成」ページで、編集するグループを選択します。

2. そのトレース・グループの値と説明を入力します。

3. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

12.2.2 URLパラメータ・オプションの指定

Forms Traceを構成するには、次のコマンドライン・パラメータを使用します。

Record =
Tracegroup =
Log = <filename>

表12-1に、パラメータの値を示します。

表12-1 Forms Traceのコマンドライン・パラメータ

パラメータ

値

説明

Record

フォーム

Forms Traceを有効にします。

Tracegroup

名前、イベント番号またはイベント範囲

記録またはロギング対象となるイベントを指定します。

- Tracegroupを指定しないと、エラー・メッセージと起動メッセージのみが収集されます。

- Forms Traceがコマンドラインで有効にされていない場合、Tracegroupは無視されます。

- 次のようなTracegroupキーワードを使用すると、名前付きのイベント・セットを作成できます。

Tracegroup=<keyword>。<keyword>はftrace.cfgで指定します(例: Tracegroup=MyEvents)。

これにより、名前を付けたセットMyEventsにイベントをロギングできます。

- 次のようなTracegroupキーワードを使用すると、指定した範囲内のすべてのイベントをロギングできます。

Tracegroup = 0-3

これにより、0 <= event <=3によって定義された範囲内のすべてのイベントをロギングできます。

- 次のようなTracegroupキーワードを使用すると、個別のイベントをロギングできます。

Tracegroup = 34,67

- 次のようなTracegroupキーワードを使用すると、イベント・セットを組み合せることができます。

Tracegroup = 0-3,34,67,SQLInfo

12.3 Forms Traceの開始と停止

トレースを開始するには、URLにトレース・エントリを指定するか、Fusion Middleware Controlを使用します。エントリには、収集するイベントのグループとトレース・ファイル名を含める必要があります。トレースの収集は、フォームの実行時に開始されます。

次の例は、トレースを開始するURLのサンプルです。

http://example.com/forms/frmservlet?form=cxl&record=forms&tracegroup=0-199
http://example.com/forms/frmservlet?form=cxl&record=forms&tracegroup=mysql

Fusion Middleware Controlからセッションのトレースを開始するには:

1. 「Forms」メニューから「ユーザー・セッション」を選択します。
「ユーザー・セッション」ページが表示されます。

2. トレースを有効にするFormsユーザー・セッションを含む行を選択します。

3. 「トレースの有効化」をクリックします。
「トレースの有効化」ダイアログが表示されます。

4. トレース・グループの選択リストで使用可能なトレース・グループを選択し、「OK」をクリックします。
「トレースの有効化」ダイアログが閉じられ、選択したFormsユーザー・セッションに対してトレースが有効になります。

Fusion Middleware Controlからセッションのトレースを停止するには:

1. 「Forms」メニューから「ユーザー・セッション」を選択します。
「ユーザー・セッション」ページが表示されます。

2. トレースを無効にするFormsユーザー・セッションを含む行を選択します。

3. 「トレースの無効化」をクリックします。
「トレースの無効化」ダイアログが表示されます。

4. 「OK」をクリックします。
「トレースの無効化」ダイアログが閉じられ、選択したFormsユーザー・セッションのトレースが停止します。

セッションのトレース・グループを切り替えるには:

1. トレース・グループを変更するFormsユーザー・セッションを含む行を選択します。

2. 「トレースの有効化」をクリックします。
「トレースの有効化」ダイアログが表示されます。

3. トレース・グループの選択リストで新しいトレース・グループを選択し、「OK」をクリックします。
「トレースの有効化」ダイアログが閉じられます。ページを更新します。

12.4 Forms Trace出力の表示

トレース・ログ・ファイルを見ることができるのは、管理者または管理者のグループに属するユーザーのみです。ユーザーは一度ログインすると、異なるセッションのトレース・ログ・ファイルを表示するために同じブラウザ・セッションに再度ログインする必要がなくなります。

トレース・データは、*.trc拡張子の付いたバイナリ形式ファイルで保存されます。トレース・ログのデフォルトの場所は$ORACLE_INSTANCE/FormsComponent/forms/trace/forms_pid.trcです。pidはユーザー・セッションのプロセスIDです。Enterprise Manager Fusion Middleware Controlを使用しない場合は、Translateユーティリティを使用する必要があります。Translateユーティリティの実行の詳細は、次の第12.4.1項「Translateユーティリティの実行」を参照してください。

トレース・データを表示するには:

1. Fusion Middleware Controlの「Forms」メニューから「ユーザー・セッション」を選択します。

2. ユーザー・セッション行を選択し、「トレース・ログ」をクリックしてトレース・ログの内容を表示します。

3. ログインしてトレース・ファイルを表示します。

12.4.1 Translateユーティリティの実行

Translateユーティリティは、トレース・データをXML、HTMLまたはテキスト形式に変換します。WriteOutTEXT、WriteOutXMLまたはWriteOutHTMLの3つの有効値のいずれかを指定して、パラメータOutputClassを追加する必要があります。outputclassを指定しないと、出力ファイルはテキスト形式になります。これらの値では、大文字と小文字が区別されます。

注意:

Translateユーティリティを使用するには:

1. Java実行可能ファイルを格納したディレクトリへのパスを含むようにPATH変数を設定します。

2. frmxlate.jarへのパスを含むようにCLASSPATH変数を設定します。

トレース・データをテキスト形式に変換するには:

- コマンドラインで、次のコマンドを入力します。
java oracle.forms.diagnostics.Xlate datafile=a.trc outputfile=myfile.txt outputclass=WriteOutTEXT

これにより、myfile.txtファイルがテキスト形式で作成されます。

トレース・データをHTML形式に変換するには:

- コマンドラインで、次のコマンドを入力します。
java oracle.forms.diagnostics.Xlate datafile=a.trc outputfile=myfile.html outputclass=WriteOutHTML

これにより、myfile.htmlファイルがHTML形式で作成されます。

トレース・データをXML形式に変換するには:

- myfile.xmlを作成するには、コマンドラインで次のように入力します。
java oracle.forms.diagnostics.Xlate datafile=a.trc outputfile=myfile.xml outputclass=WriteOutXML

これにより、myfile.xmlファイルが XML形式で作成されます。

12.5 トレース可能イベントのリスト

表12-2「トレース可能イベントのリスト」は、トレースに定義できるイベントを示しています。Formsの今後のリリースでは、さらに多数のイベントがこのリストに追加される可能性があります。

イベント型には、次のものがあります。

- ポイント・イベント: 識別可能な継続時間がないユーザー・アクションや内部信号の結果としてOracle Formsに発生したイベント(ステータス行のエラー・メッセージの表示など)。このイベント型のインスタンスのたびに、ログ・ファイルに1つのエントリが作成されます。

- 期間イベント: トリガーのように開始と終了があるイベント。このイベント型のインスタンスのたびに、ログ・ファイルに1組のエントリ(開始と終了のイベント)が作成されます。

- ビルトイン・イベント: ビルトインに関連したイベント。このイベント型のインスタンスのたびに、イベントに関する様々な情報(たとえば、引数の値など)が得られます。

表12-2 トレース可能イベントのリスト

イベント番号

定義

型

0

異常エラー

ポイント

1

フォーム・オープン時のエラー

ポイント

2

Formsの使用不能エラー

ポイント

3

ステータス・バー上のエラー・メッセージ

ポイント

4-31

予約済

該当せず

32

起動

ポイント

33

メニュー

ポイント

34

キー

ポイント

35

クリック

ポイント

36

ダブルクリック

ポイント

37

値

ポイント

38

スクロール

ポイント

39

LOV選択

ポイント

40

未使用

未使用

41

ウィンドウのクローズ

ポイント

42

ウィンドウのアクティブ化

ポイント

43

ウィンドウの非アクティブ化

ポイント

44

ウィンドウのサイズ変更

ポイント

45

タブ・ページ

ポイント

46

タイマー

ポイント

47

DBイベント

ポイント

48

予約済

該当せず

49-63

予約済

該当せず

64

フォーム(開始と終了)

期間

65

プログラム・ユニット(開始と終了)

期間

66

トリガー(開始と終了)

期間

67

LOV(開始と終了)

期間

68

エディタの起動

ポイント

69

キャンバス

ポイント

70

アラート

期間

71

ファイルの取得

ポイント

72-95

予約済

該当せず

96

ビルトイン(開始と終了)

ビルトイン

97

ユーザー・イグジット(開始と終了)

期間

98

SQL(開始と終了)

期間

99

メニューの作成(開始と終了)

期間

100

DB PU(開始と終了)

期間

101

問合せの実行

期間

102-127

予約済

該当せず

128

クライアントの接続

ポイント

129

クライアントのハンドシェイク

ポイント

130

ハートビート

ポイント

131

HTTPの再接続

ポイント

132

ソケット(開始と終了)

期間

133

HTTP(開始と終了)

期間

134

SSL(開始と終了)

期間

135

DB処理(開始と終了)

期間

136

DBログイン(開始と終了)

期間

137

DBログオフ(開始と終了)

期間

138-159

予約済

該当せず

160-168

予約済

該当せず

169-191

予約済

該当せず

192*

環境ダンプ

該当せず

193*

状態変化

該当せず

194*

ビルトイン引数

該当せず

195*

ユーザー・イグジット引数

該当せず

196*

プログラム・ユニット引数

該当せず

256以上

ユーザー定義

該当せず

1024以上

予約済

該当せず

* これらのイベント番号は、実際のイベントではなくイベントの詳細であるため、これらにはTYPEがありません。たとえば、State Deltaは表示するために選択できるものですが、これは実際のアクションまたはイベントによってトリガーされます。

12.5.1 イベントの詳細のリスト

トレースに定義できるイベントの詳細を次の表に示します。

- 表12-3「ユーザー・アクション・イベントの詳細」

- 表12-4「Forms Servicesのイベントの詳細」

- 表12-5「イベントの詳細」

- 表12-6「3層イベントの詳細」

- 表12-7「その他のイベントの詳細」

注意:

イベント名では大文字と小文字が区別されます。

12.5.1.1 ユーザー・アクション・イベント

表12-3 ユーザー・アクション・イベントの詳細

アクション

詳細

番号

メニュー選択

メニュー名、選択内容

33

キー

キー・プレス、フォーム、ブロック、項目

34

クリック

マウス/キー、フォーム、ブロック、項目

35

ダブルクリック

フォーム、ブロック、項目

36

値

フォーム、ブロック、項目

37

スクロール

フォーム、上、下、ページ、行

38

LOV選択

LOV名、選択項目

39

アラート

アラート名、選択内容

40

タブ

フォーム

45

DBイベント

キュー名

47

ウィンドウのアクティブ化、非アクティブ化、クローズ、サイズ変更

ウィンドウ名、フォーム名、サイズ

41,42,43,44

12.5.1.2 Forms Servicesのイベント

表12-4 Forms Servicesのイベントの詳細

イベント名

詳細

番号

フォーム

フォームID、名前、パス、連結ライブラリ、連結メニュー

64

プログラム・ユニット

プログラム・ユニット名、フォームID

65

トリガー

トリガー名、フォーム名、ブロック名、項目名、フォームID

66

LOV

LOV名、フォームID

67

エディタ

フォームID、エディタ名

68

キャンバス

フォームID、キャンバス名

69

12.5.1.3 イベントの詳細

表12-5 イベントの詳細

イベント名

詳細

番号

ビルトイン

ビルトイン名、フォームID

96

ユーザー・イグジット

ユーザー・イグジット名、フォームID

97

メニューの作成

メニュー名、フォームID

99

PLSQL

PLSQLSTmt、フォームID

100

問合せの実行

ブロック名

101

12.5.1.4 3層イベント

表12-6 3層イベントの詳細

イベント名

詳細

番号

クライアントの接続

タイムスタンプ

128

クライアントのハンドシェイク

タイムスタンプ

129

ハートビート

タイムスタンプ

130

HTTPの再接続

該当せず

131

ソケット

フォームID、パケット、バイト

132

HTTP

フォームID、パケット、バイト

133

HTTPS

フォームID、パケット、バイト

134

DB処理

フォームID、文

135

DBログイン

フォームID

136

DBログオフ

フォームID

137

12.5.1.5 その他のイベント

表12-7 その他のイベントの詳細

イベント名

詳細

番号

環境ダンプ

選択した環境情報

192

状態変化

最後のアクション/イベントにより生じた内部状態の変化

193

ビルトイン引数

ビルトインに対する引数の値

194

ユーザー・イグジット引数

ユーザー・イグジットに渡される引数

195

プロシージャ引数

プロシージャに渡される引数(イン/アウト)

196

12.6 Oracle Diagnostics Loggingのツールの利用

Oracle Diagnostics Logging (ODL)はOracle Fusion Middlewareの機能の1つです。管理者はこの機能を使用して、Oracle Formsのセッションをすべて記録し、Oracle Forms関連のネットワークの通信量を監視し、サイトの構成問題をデバッグできます。Forms Servicesで使用できるOracle Diagnostics Loggingの機能には、次のものがあります。

- セッションの開始時間と終了時間、ユーザーのIPアドレス、ホスト名を含むのすべてのOracle Formsセッションの記録(セッション・レベルのロギング)

- Oracle Forms関連のネットワークの通信量とパフォーマンスの監視(セッション・パフォーマンスとリクエスト・パフォーマンス・レベルのロギング)

- サイトの構成に関するデバッグ情報の生成(デバッグ・レベルのロギング)

- Fusion Middleware Controlで処理されるロギング

- これらのログ・ファイル内のイベントとデータベースのイベントとの関連付け

- ログ・ファイルのローテーションの自動処理

- 以前のようなOSレベルのスクリプトによる方法ではなく、メカニズムによるログ・サイズ制限の処理

Servlet Logging Toolsに関する情報は、次の各項を参照してください。

- 第12.6.1項「Oracle Diagnostics Loggingの有効化」

- 第12.6.4項「ログ・ファイルの場所」

- 第12.6.5項「各レベルのサーブレット・ロギングの出力例」

12.6.1 Oracle Diagnostics Loggingの有効化

ロギングを起動すると、Listener Servletがログ・メッセージをサーブレットのログ・ファイルに書き込みます。各ロギング・レベルにおける出力例は、第12.6.5項「各レベルのサーブレット・ロギングの出力例」に記載されています。

表12-8はサポートされているロギング機能を示しています。serverURLに文字列を付加しない場合は、デフォルトのロギングがサポートされます。別のロガーを開始するには、次の項の説明にあるようにそれらをserverURLで指定する必要があります。

表12-8 サポートされているロギング機能

serverURLクライアント・パラメータに追加する文字列

ロギングの説明

(なし)

Formsサーブレットの初期化時に、使用される構成ファイルの名前とパスを示すメッセージがログ・ファイルに書き込まれます。logging.xmlでデフォルトのロガーに対して設定されたログ・レベル以上のレベルのメッセージがログに記録されます。デフォルト値はNOTIFICATION:1で、NOTIFICATION:1、WARNING:1、ERROR:1およびINTERNAL_ERRORの各レベルがログに記録されます。

/session

Formsセッションが開始または終了するときには、必ずログ・メッセージが書き込まれます。このメッセージには、クライアント(ユーザーのWebブラウザが稼働しているコンピュータ)のホスト名とIPアドレス、ランタイム・プロセスID、および一意の内部セッションID番号が含まれます。

/sessionperf

セッション終了メッセージにパフォーマンス・サマリー統計が含まれます。

/perf

クライアントからのリクエストすべてに、パフォーマンス・メッセージが書き込まれます。

/debug

すべてのデバッグ・メッセージ。前述のメッセージを含むその他のデバッグ・メッセージが書き込まれます。このロギング・レベルは情報量が多く、主にデバッグやサポート用に使用します。

12.6.1.1 ロギングの指定

すべてのユーザーに対してロギングを指定するには、「Web構成」ページのデフォルト・セクションでserverURLエントリを次のように変更します。

serverURL=/forms/lservlet/<string>

<string>には、表12-8で定義されているロギング機能を指定します。stringを指定しないとデフォルトのロギングになります。たとえば、セッションレベルのロギングを開始するには、serverURLを次のように変更します。

serverURL=/forms/lservlet/session

12.6.1.2 Fusion Middleware Controlを使用したロギング・レベルの指定

Fusion Middleware Controlを使用してFormsサーブレットのロギングにログ・レベルを設定するには、次の手順を実行します。

1. Fusion Middleware Controlで管理対象サーバーを選択します(WLS_FORMSなど)。

2. 「WebLogic Server」メニューで、「ログ」→「ログ構成」を選択します。

3. 「ロガー名」フィールドでルート・ロガーを開きます。oracleとoracle.formsをそれぞれ開きます。第12.6.1.1「ロギングの指定」に記載のとおりに、serverURLに定義されたロガー名(たとえばoracle.forms.servlet.debug)が表示されます。

4. 「Oracle Diagnostic Loggingレベル」フィールドのリストから、必要なログ・レベルを選択します。内部Formsログ・レベルからJavaレベルへのマッピングは表12-9を参照してください。

表12-9 Oracle Diagnostic Loggingレベル

内部Formsログ・レベル

Javaログ・レベル

DEBUG

TRACE:32

REQUEST_PERFORMANCE

TRACE:16

SESSION_PERFORMANCE

TRACE:1

SESSION_START_END

NOTIFICATION:16

NOTIFICATION

NOTIFICATION:1

WARNING

WARNING:1

ERROR

ERROR:1

INTERNAL_ERROR

INTERNAL_ERROR

この構成によって、管理対象サーバーのlogging.xmlファイルが変更されます。

12.6.1.3 Formsサーブレットを起動するURLでの完全診断の指定

完全診断を開始するには、次のようにformsweb.cfgでserverURLパラメータを指定します。

serverURL=/forms/lservlet/debug

次のURLを使用してOracle Formsアプリケーションを起動します。

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

12.6.2 診断ログの表示

診断ログの内容は、Fusion Middleware Controlから表示します。

診断ログの内容を表示するには:

1. 「Forms」メニューから「ホーム」を選択します。
Fusion Middleware Controlホームページが表示されます。

2. 「Formsデプロイメント」リージョンで、「サーブレット・ログ」列にスクロールします。

3. 対象の配布済アプリケーションに対応するログ・リンクをクリックします。
「ログ・メッセージ」ページが表示されます。

12.6.3 「サーブレット」ページの使用

「Forms」メニューから「監視」→「サーブレット・ログ」を選択します。このページで、収集されたサーバー診断ログの検索、ソート、表示、ダウンロードおよびエクスポートを実行できます。

ログ・ファイルの管理と表示の詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。

12.6.4 ログ・ファイルの場所

デフォルトのサーブレット・ログ・ファイル名はformsapp-diagnostic.logです。これは、Formsが配置されているOracle WebLogic管理対象サーバーのWLS_FORMS/logsディレクトリに書き込まれます。

Oracle Forms Servicesでのフル・パスは、次のとおりです。

$DOMAIN_HOME/servers/WLS_FORMS/logs/<application name>-diagnostic.log

デフォルトでは、forms_pid.trcファイルにトレース・ログが格納されます。pidはユーザー・セッションのプロセスIDです。このトレース・ログのデフォルトの場所は次のとおりです。

$ORACLE_INSTANCE/FormsComponent/forms/trace/forms_pid.trc

このログを表示するには、第12.4.1項「Translateユーティリティの実行」の説明にあるTranslateユーティリティを使用します。

12.6.5 各レベルのサーブレット・ロギングの出力例

次のロギング・レベルを使用した場合の各種の出力例を示します。

- (なし)

- /session

- /sessionperf

- /perf

- /debug

12.6.5.1 (なし)

[2008-09-10T06:58:47.106-07:00] [WLS_FORMS] [NOTIFICATION] [FRM-93100]
[oracle.forms.servlet] [tid: 11] [ecid: 0000HlCYKnmD4i8nvgy0V118lx4u000000,0]
[APP: formsapp] [arg:
configFileName:     <configfilename>
testMode:           false] Initializing the Forms Servlet.  Initialization
parameters are:[[
configFileName:    <configfilename>
testMode:
false
]]
[2008-09-10T06:58:53.517-07:00] [WLS_FORMS] [NOTIFICATION] [FRM-93180]
[oracle.forms.servlet] [tid: 11] [ecid: 0000HlCZfTDD4i8nvgy0V118lx4u000003,0]
[APP: formsapp] [arg:
envFile:            null
WorkingDirectory:   null
executable:         null
WaitTime:           500
MaxBlockTime:       1000]
Initializing ListenerServlet.  Initialization parameters
are:[[
envFile:            null
WorkingDirectory:   null
executable:         null
WaitTime:           500
MaxBlockTime:       1000
]]

12.6.5.2 /session

[2008-09-11T07:35:01.507-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93251]
[oracle.forms.servlet.session] [tid: 14] [ecid:
0000HlHpYGDD4i8nvgy0V118mFuv00000V,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: <init>] [FORMS
SESSION_ID: ..8] [arg: supadhya-pc1] [arg: 10.177.254.46] Runtime session started
for client <pc1> (IP address <ip address>).
2008-09-11T07:35:01.798-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93548]
[oracle.forms.servlet.session] [tid: 14] [ecid:
0000HlHpYGDD4i8nvgy0V118mFuv00000V,0] [SRC_CLASS:
oracle.forms.servlet.RunformProcess] [APP: formsapp] [SRC_METHOD: connect] [FORMS
SESSION_ID: ..8] [arg: 7765] Runtime process ID is 7765.
2008-09-11T07:38:11.372-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93252]
[oracle.forms.servlet.session] [tid: 14] [ecid:
0000HlHpYGDD4i8nvgy0V118mFuv00000V,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: stop] [FORMS
SESSION_ID: ..8] Forms session ended.

12.6.5.3 /sessionperf

[2008-09-11T07:40:25.923-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93251]
[oracle.forms.servlet.sessionperf] [tid: 17] [ecid:
0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: <init>] [FORMS
SESSION_ID: ..9] [arg: <pc1>] [arg: 10.177.254.46] Runtime session started
for client <pc1> (IP address 10.177.254.46).
2008-09-11T07:40:26.223-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93548]
[oracle.forms.servlet.sessionperf] [tid: 17] [ecid:
0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0] [SRC_CLASS:
oracle.forms.servlet.RunformProcess] [APP: formsapp] [SRC_METHOD: connect] [FORMS
SESSION_ID: ..9] [arg: 8023] Runtime process ID is 8023.
2008-09-11T07:40:43.593-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93252]
[oracle.forms.servlet.sessionperf] [tid: 17] [ecid:
0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: stop] [FORMS
SESSION_ID: ..9] Forms session ended.
[2008-09-11T07:40:43.594-07:00] [WLS_FORMS] [TRACE] [FRM-93710]
[oracle.forms.servlet.sessionperf] [tid: 17] [ecid:
0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: stop] [FORMS
SESSION_ID: ..9] [arg: 1.557] [arg: 6] [arg: 0] [arg: 1.000] [arg: 0.259] [arg:
5106] [arg: 352] Total duration of network exchanges is 1.557.[[
Total number of network exchanges is 6 (0 long ones over 1.000 sec).
Average time for one network exchange (excluding long ones) is 0.259.
Total number of bytes sent is 5106.
Total number of bytes received is 352.
]]

12.6.5.4 /perf

[2008-09-11T07:42:46.560-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93251]
[oracle.forms.servlet.perf] [tid: 14] [ecid: 0000HlHrJmWD4i8nvgy0V118mFuv00000^,0]
[SRC_CLASS: oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD:
<init>] [FORMS_SESSION_ID: ..10] [arg: <pc1>] [arg: 10.177.254.46] Runtime
session started for client <pc1> (IP address <ip address>).
[2008-09-11T07:42:46.854-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93548]
[oracle.forms.servlet.perf] [tid: 17] [ecid: 0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0]
[SRC_CLASS: oracle.forms.servlet.RunformProcess] [APP: formsapp] [SRC_METHOD:
connect] [FORMS_SESSION_ID: ..10] [arg: 8149] Runtime process ID is 8149.
[2008-09-11T07:42:46.865-07:00] [WLS_FORMS] [TRACE:16] [FRM-93700]
[oracle.forms.servlet.perf] [tid: 17] [ecid: 0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0]
[SRC_CLASS: oracle.forms.servlet.ListenerServlet] [APP: formsapp] [SRC_METHOD:
doPost] [FORMS_SESSION_ID: ..10] [arg: 0.011] [arg: 8] [arg: 8] [arg: null]
Request duration is 0.011 seconds.  Request size is 8 bytes; response size is 8
bytes.
[2008-09-11T07:42:47.921-07:00] [WLS_FORMS] [TRACE:16] [FRM-93700]
[oracle.forms.servlet.perf] [tid: 17] [ecid: 0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0]
[SRC_CLASS: oracle.forms.servlet.ListenerServlet] [APP: formsapp] [SRC_METHOD:
doPost] [FORMS_SESSION_ID: ..10] [arg: 0.438] [arg: 272] [arg: 5022] [arg: null]
Request duration is 0.438 seconds.  Request size is 272 bytes; response size is
5022 bytes.

12.6.5.5 /debug

[2009-02-11T14:39:03.016+00:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93250]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_lhDcD4i8nvgy0V119Xz350000HZ,0] [APP: formsapp#11.1.1] Forms session started.
[2009-02-11T14:39:03.017+00:00] [WLS_FORMS] [TRACE:32] [FRM-94200]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_lhDcD4i8nvgy0V119Xz350000HZ,0] [SRC_CLASS: oracle.forms.servlet.FormsServlet]
[APP: formsapp#11.1.1] [SRC_METHOD: doRequest] [FORMS_SESSION_ID: ..43] [arg:
GET] [arg:
cmd:                frmservlet
config:             null
requestCharset:     null
QueryString:        null
Content-Type:       null
Accept-Charset:     null
responseCharset:    null] FormsServlet receiving GET request.  Details:[[
cmd:                frmservlet
config:             null
requestCharset:     null
QueryString:        null
Content-Type:       null
Accept-Charset:     null
responseCharset:    null
]]
[2009-02-11T14:39:03.017+00:00] [WLS_FORMS] [TRACE:32] [FRM-94281]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_lhDcD4i8nvgy0V119Xz350000HZ,0] [SRC_CLASS: oracle.forms.servlet.ListenerServlet]
[APP: formsapp#11.1.1] [SRC_METHOD: printSessionDetails] [FORMS_SESSION_ID: ..43]
No current servlet session ID.
[2009-02-11T14:39:03.017+00:00] [WLS_FORMS] [TRACE:32] [FRM-94170]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_lhDcD4i8nvgy0V119Xz350000HZ,0] [SRC_CLASS: oracle.forms.servlet.FormsServlet]
[APP: formsapp#11.1.1] [SRC_METHOD: findFile] [FORMS_SESSION_ID: ..43] [arg:
basejpi.htm] [arg: <config folder>] File basejpi.htm is missing from the
current directory, looking in <config folder>
[2009-02-11T14:39:21.460+00:00] [WLS_FORMS] [TRACE:32] [FRM-94200]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llhoD4i8nvgy0V119Xz350000Hd,0] [SRC_CLASS: oracle.forms.servlet.FormsServlet]
[APP: formsapp#11.1.1] [SRC_METHOD: doRequest] [FORMS_SESSION_ID: ..43] [arg:
GET] [arg:
cmd:                startsession
config:             null
requestCharset:     null
QueryString:       ifsessid=..43&acceptLanguage=en-us&ifcmd=startsession&iflocale=en-US
Content-Type:       null
Accept-Charset:     null
responseCharset:    null]
FormsServlet receiving GET request.  Details:[[
cmd:                startsession
config:             null
requestCharset:     null
QueryString:        ifsessid=..43&acceptLanguage=en-us&ifcmd=startsession&iflocale=en-US
Content-Type:       null
Accept-Charset:     null
responseCharset:    null
]]

.
.
.
.

[2009-02-11T14:39:21.716+00:00] [WLS_FORMS] [TRACE:32] [FRM-94201]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.ListenerServlet]
[APP: formsapp#11.1.1] [SRC_METHOD: doGet] [FORMS_SESSION_ID: ..43] [arg: GET]
[arg:
cmd:                getinfo
QueryString:        ifcmd=getinfo&ifhost=supadhya-pc1&ifip=10.177.254.239]
ListenerServlet receiving GET request.  Details:[[
cmd:                getinfo
QueryString:        ifcmd=getinfo&ifhost=supadhya-pc1&ifip=10.177.254.239
]]

[2009-02-11T14:39:21.717+00:00] [WLS_FORMS] [TRACE:32] [FRM-94282]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.ListenerServlet]
[APP: formsapp#11.1.1] [SRC_METHOD: printSessionDetails] [FORMS_SESSION_ID: ..43]
[arg:
HyLhJSjZ85F5GWbZLDgwp1MY02FK5tC6yVDP1LylbCvgmv9y3CfK!126690176!1234363161461]
Existing servlet session, ID =
HyLhJSjZ85F5GWbZLDgwp1MY02FK5tC6yVDP1LylbCvgmv9y3CfK!126690176!1234363161461
[2009-02-11T14:39:21.717+00:00] [WLS_FORMS] [TRACE:32] [FRM-94286]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.ListenerServlet]
[APP: formsapp#11.1.1] [SRC_METHOD: printSessionDetails] [FORMS_SESSION_ID: ..43]
Session ID is not from cookie.
[2009-02-11T14:39:21.717+00:00] [WLS_FORMS] [TRACE:32] [FRM-94430]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.RunformSession]
[APP: formsapp#11.1.1] [SRC_METHOD: <init>] [FORMS_SESSION_ID: ..43] Trying to
get a prestarted process.
[2009-02-11T14:39:21.717+00:00] [WLS_FORMS] [TRACE:32] [FRM-94432]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.RunformSession]
[APP: formsapp#11.1.1] [SRC_METHOD: <init>] [FORMS_SESSION_ID: ..43] Prestarted
process is not available.
[2009-02-11T14:39:21.718+00:00] [WLS_FORMS] [TRACE:32] [FRM-94522]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.RunformSession]
[APP: formsapp#11.1.1] [SRC_METHOD: <init>] [FORMS_SESSION_ID: ..43] [arg: null]
Creating new runtime process using default executable.
[2009-02-11T14:39:21.718+00:00] [WLS_FORMS] [TRACE:32] [FRM-94532]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.RunformProcess]
[APP: formsapp#11.1.1] [SRC_METHOD: startProcess] [FORMS_SESSION_ID: ..43] [arg:
frmweb webfile=HTTP-0,default] RunformProcess.startProcess():  executing frmweb
webfile=HTTP-0,default

.
.
.
.

13 Oracle Forms Services 11gへのアップグレード

この章では、Forms 6iからのアップグレード・プロセスについて説明します。変更された機能または非推奨となった機能については、『Oracle Forms Oracle Forms 6iからOracle Forms 11gへのアップグレード』を参照してください。

この章には、次の項が含まれています。

- 第13.1項「Oracle Forms Servicesのアップグレード項目」

- 第13.2項「Oracle Forms Servicesのアップグレード・タスク」

- 第13.3項「Oracle Forms Servicesのアップグレードの確認」

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をインストールするときに追加、変更、削除または置換する必要のあるファイル、実行可能ファイルおよび設定が含まれています。

表13.1 Oracle Forms Servicesのアップグレード項目

アップグレード項目

6i Oracleホームでの場所

11g (11.1.1) Oracleホームでの場所

説明および注意

Oracle HTTP Server構成ファイル: 6iserver.conf(forms.confへのアップグレード)

6iserver/conf/

$ORACLE_INSTANCE/config/OHS/<OHS Instance>/moduleconf/forms.conf

仮想パス・マッピングが含まれています。

サーブレット環境ファイル: default.env

6iserver/forms60/server

$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/default.env

Formsサーブレット・ランタイム・プロセスの環境変数設定が含まれています。

Formsサーブレットの別名を含む構成ファイル: jserv.properties(web.xmlへのアップグレード)

/Apache/jserv/conf

$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INF

Formsサーブレットの別名が含まれています。

アプリケーション構成ファイル: formsweb.cfg

6iserver/forms60/server

$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfg

Forms Servicesアプリケーション構成情報が含まれています。

Formsサーブレット・テンプレートHTMLファイル: (*.htm、*.html)

6iserver/forms60/server

$ORACLE_INSTANCE/config/FormsComponent/forms/server/

デフォルトおよびユーザー定義のFormsサーブレット・テンプレートHTMLファイルです。

Formsアプリケーション・モジュール(fmb/fmxファイル)

Oracle 6i Forms ServicesにデプロイするFormsモジュール(fmbおよびfmxファイル)は、Oracle Forms Servicesにデプロイするためにアップグレードする必要があります。11gにアップグレードする場合、FORMS_PATH変数をfmxファイルの場所で更新する必要があることに注意してください。FORMS_PATHの詳細は、第4.3項「環境変数の管理」を参照してください。

13.2 Oracle Forms Servicesのアップグレード・タスク

この項では、Oracle Forms Servicesをアップグレードする方法について説明します。内容は次のとおりです。

- 第13.2.1項「アップグレードの推奨事項とトラブルシューティングのヒント」

- 第13.2.2項「Oracle Forms Servicesアプリケーション・モジュールのアップグレード」

- 第13.2.3項「Common Gateway Interface (CGI)からOracle Formsサーブレットへのアップグレード」

- 第13.2.4項「静的HTML開始ファイルから汎用アプリケーションHTML開始ファイルへのアップグレード」

- 第13.2.5項「Forms 6iリスナーからFormsリスナー・サーブレットへのアップグレード」

- 第13.2.6項「Formsリスナー・サーブレット・アーキテクチャからOracle Forms Servicesへのアップグレード」

- 第13.2.7項「ロード・バランシングのアップグレード」

- 第13.2.8項「使用方法」

13.2.1 アップグレードの推奨事項とトラブルシューティングのヒント

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>

13.2.2 Oracle Forms Servicesアプリケーション・モジュールのアップグレード

この項では、Oracle6i Forms Servicesに配布されたFormsアプリケーション・モジュール(fmbファイル)からアップグレードを行う手順を説明します。Oracle6i Forms Servicesに配布されたFormsアプリケーション・モジュール(fmbファイル)をOracle Forms Servicesインストールにアップグレードする手順は、次のとおりです。

1. Formsアプリケーション・ファイルを新しいディレクトリにコピーします。

2. 必要に応じ、Forms Migration Assistantを使用してFormsアプリケーション・モジュール(.fmbファイル)、Formsメニュー・モジュール(.mmbファイル)およびライブラリ・モジュール(.pllファイル)をアップグレードします。

3. Formsコンパイラ(Unixの場合はfrmcmp.sh、Windowsの場合はfrmcmp.exe)を使用して、Formsのアプリケーション実行可能ファイル(fmx、mmxおよびplxの各ファイル)を再生成します。

詳細は、次の場所にある『Oracle Forms Oracle Forms 6iからOracle Forms 11gへのアップグレード』を参照してください。

http://www.oracle.com/technology/documentation/

13.2.3 Common Gateway Interface (CGI)からOracle Formsサーブレットへのアップグレード

この項では、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のサーブレット環境にアップグレードする手順は、次のとおりです。

1. アプリケーション固有の構成を<source_OH>/Forms60/Server/formsweb.cfgからすべてコピーし、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgに追加します。

注意:

<source_OH>内のformsweb.cfgファイル全体を、<destination_Domain_Dir>にコピーして置き換えないでください。このファイルは、リリース6iとOracle Forms Servicesでは異なっています。アプリケーション構成のみを<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgにコピーします。

2. default.envファイルのForms_Pathが、アップグレードされたOracle Forms Servicesアプリケーション・モジュールを指すように構成します。

注意:

default.envをコピーし、このファイルを特定のアプリケーションで使用できるように変更して、envFile=<created environment file>をformsweb.cfgファイルのカスタム・アプリケーション・セクションに追加することにより、新しい環境ファイルを作成できます。

3. Oracle6i FormsのHTMLテンプレート・ファイルを変更した場合は、Oracle Forms ServicesのHTMLテンプレート・ファイルも同様に変更します。

注意:

これらの変更は、basejini.htmではなく、basejpi.htmで行う必要があります。これは、サーブレットがSun社のJava Plug-inをサポートしているためです。

13.2.4 静的HTML開始ファイルから汎用アプリケーション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=

アプリケーションをアップグレードする手順は、次のとおりです。

1. default.envファイルを編集して、Oracle Forms Servicesアプリケーション・モジュールの場所をForms_Pathに追加します。

2. formsweb.cfgファイルを編集して、置換する静的HTMLアプリケーションごとにカスタム・アプリケーション・セクションを追加します。

3. 各カスタム・アプリケーション・セクションに名前を付けます。名前は、空白を含めずに角カッコで囲んで指定します(例: [booking_app]、[MyHR_app])。

4. 次のURLを使用してアプリケーションを起動します。
http://<hostname>:<port>/forms/frmservlet?config=<name>

13.2.4.1 Oracle Forms Servicesでの静的HTMLファイルの使用

必要であれば、Oracle Forms Servicesでも引き続き静的HTMLファイルを使用できます。ただし、静的HTMLファイルを使用する場合は、Formsアプリケーションで一部の機能(シングル・サインオンなど)を使用できなくなります。

インストール後、Formsリスナー・サーブレットはデフォルトで/forms/lservletを示します。Oracle Forms Servicesで静的HTMLファイルを使用するには、serverURLパラメータの値を含むように各静的HTML開始ファイルを変更する必要があります。serverPortパラメータとserverHostパラメータは使用されなくなったため、未定義のままでかまいません。

Oracle Forms Servicesで静的HTMLファイルを使用する手順は、次のとおりです。

1. default.envファイルのForms_Pathが、アップグレードされたOracle Forms Servicesアプリケーション・モジュールを指すように構成します。

2. $ORACLE_INSTANCE/config/OHS/<OHS Instance>/moduleconf/forms.confファイルに、静的HTML開始ファイルの場所を示す仮想ディレクトリを作成します。

3. アプリケーションの開始HTMLファイルを次のように変更します。

1. serverURLの値/forms/lservletを追加します。

4. codebaseパラメータをforms/javaに変更します。

5. $DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INFに移動してweb.xmlファイルを編集します。

6. 環境ファイル(通常は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>

13.2.5 Forms 6iリスナーからFormsリスナー・サーブレットへのアップグレード

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リスナー・サーブレットにアップグレードする手順は、次のとおりです。

1. Formsアプリケーションのファイルを新しいディレクトリにコピーし、これらを第13.2.2項「Oracle Forms Servicesアプリケーション・モジュールのアップグレード」での説明に従ってOracle Forms Servicesモジュールにアップグレードします。

2. forms/server/default.envファイルを編集して、アップグレードしたFormsアプリケーション・モジュールの場所をForms_Path変数に追加します。

3. カスタム・アプリケーション設定を<source_OH>/Forms60/Server/formsweb.cfgからすべてコピーし、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgに追加します。

4. アプリケーションに独自の環境ファイルが必要な場合は、リスナー・サーブレットに個別のサーブレットの別名を定義するかわりに、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgのカスタム・アプリケーション定義セクションでenvFileパラメータが新しい環境ファイルを指すように設定します。例:

envFile=myEnvFile.env

myEnvFile.envは、forms/serverディレクトリにあります。

5. Oracle6i Forms ServicesのHTMLテンプレート・ファイルを変更した場合は、Oracle Forms ServicesのHTMLテンプレート・ファイルも同様に変更します。

注意:

基本のHTMLファイルを変更する必要がある場合は、編集する前に提供されているテンプレート・ファイルのコピーを作成します。編集済のHTMLファイルを別の名前で保存して、インストールで提供されたデフォルトのテンプレートには変更を加えないようにします。これにより、アプリケーションにパッチ・セットが適用された際にカスタマイズHTMLテンプレートが上書きされることを防ぎます。

アプリケーションで独自のテンプレート・ファイルを使用するには、システム・セクションまたはいずれかのカスタム・アプリケーション定義でbaseHTML=<your base template>.htmを指定します。

6. 次のURLでアプリケーションを起動します。
http://<hostname>:<port>/forms/frmservlet? config=<application>

13.2.6 Formsリスナー・サーブレット・アーキテクチャからOracle Forms Servicesへのアップグレード

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にアップグレードする手順は、次のとおりです。

1. Formsアプリケーション・ファイルを新しいディレクトリにコピーして、それらをOracle Forms Servicesモジュールにアップグレードします。

2. forms/server/default.envファイルを編集して、アップグレードしたFormsアプリケーション・モジュールの場所をForms_Path変数に追加します。

3. カスタム・アプリケーション設定を<source_OH>/Forms60/Server/formsweb.cfgからすべてコピーし、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgに追加します。

4. アプリケーションに独自の環境ファイルが必要な場合は、リスナー・サーブレットにサーブレットの別名を定義するかわりに、<destination_Domain_Dir>/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfgのカスタム・アプリケーション定義セクションでenvFileパラメータが新しい環境ファイルを指すように設定します。例:

envFile=myEnvFile.env

myEnvFile.envは、forms/serverディレクトリにあります。

5. Forms Servicesリリース6iのHTMLテンプレート・ファイルを変更した場合は、Oracle Forms ServicesのHTMLテンプレート・ファイルも同様に変更します。

注意:

基本のHTMLファイルを変更する必要がある場合は、編集する前に提供されているテンプレート・ファイルのコピーを作成します。編集済のHTMLファイルを別の名前で保存して、インストールで提供されたデフォルトのテンプレートには変更を加えないようにします。これにより、アプリケーションにパッチ・セットが適用された際にカスタマイズHTMLテンプレートが上書きされることを防ぎます。

アプリケーションで独自のテンプレート・ファイルを使用するには、システム・セクションまたはいずれかのカスタム・アプリケーション定義でbaseHTML=<your base template>.htmを指定します。

6. 次のURLでアプリケーションを起動します。
http://<hostname>:<port>/forms/frmservlet? config=<application>

13.2.7 ロード・バランシングのアップグレード

Forms Services 6iのロード・バランシングをアップグレードする方法は、使用した配布方法によって異なります。

- Forms 6iリスナーでは、Metrics Server(別のプロセス)によってロード・バランシングが実行されます。

- Forms 6iサーブレットでは、JServエンジン間のラウンド・ロビン・ロード・バランシングを使用して、JServサーブレット・エンジンでロード・バランシングが構成されます。

- Oracle Forms Servicesでは、Oracle WebLogic管理対象サーバーのプロセスによってロード・バランシングが管理されます。これは、FormsサーブレットとFormsリスナー・サーブレットを処理するサーブレット・コンテナにWebリクエストをバインドします。

13.2.8 使用方法

この項では、アップグレードで役立つヒントを紹介します。

13.2.8.1 Formsサーブレットによるアイコン・イメージの配置

Forms Servicesリリース6iでは静的HTML開始ファイルを使用することで、開始HTMLファイルを基準とした相対的な場所にイメージを格納できました。Oracle Forms ServicesのFormsサーブレットでは、これがサポートされていません。

かわりに、imagebaseパラメータにcodebaseの値を指定し、それをアプリケーションで使用されるアイコン・イメージの場所として使用します。codebaseの値は、FormsクライアントのすべてのJavaアーカイブ・ファイルを格納するforms/javaディレクトリを参照します。パフォーマンス上の理由から、ここにイメージを格納することはお薦めできません。

かわりに、アイコンを別のアーカイブ・ファイルにまとめて格納します。これによって、クライアント上でアーカイブが永続的にキャッシュされるため、パフォーマンスが向上します。このアーカイブ・ファイルを作成する手順は、次のとおりです。

1. jarコマンドが正常に実行されることを確認します。正常に実行されない場合は、システムにインストールされているJDKに、正しいPATH環境変数エントリが設定されていることを確認する必要があります(この変数はJDK_HOME/binディレクトリを指しています)。

2. アプリケーション・イメージが含まれているディレクトリに移動して、次のコマンドを発行します。
jar -cvf <application>_images.jar *.<extension>

説明:

- applicationは、アプリケーションの名前です。

- extensionは、イメージ・ファイルの拡張子(.gifなど)です。

jarファイル<application>_images.jarが現在のディレクトリに作成されます。

3. <application>_images.jarをforms/javaディレクトリにコピーします。

4. formsweb.cfgファイルを編集して、imageBase=codebaseパラメータをアプリケーションのカスタム・アプリケーション・セクションに追加します。

5. カスタム・アプリケーション・セクションに次の行を追加して、アプリケーションで使用されるアーカイブ・パスに<application>_images.jarファイルを追加します。

archive=frmall.jar,<application>_images.jar

Oracle Forms Servicesでのカスタム・アイコンの配置の詳細は、第4.7項「Forms Servicesで使用するフォント、アイコンおよびイメージの配置」を参照してください。

13.2.8.2 Oracle Reportsを使用するための統合コールからOracle Formsへのアップグレード

FormsでのOracle Reportsに対する統合コールは、クライアント側のバックグラウンド・エンジンで処理されなくなりました。Oracle Forms Servicesでは、アプリケーションがRUN_REPORT_OBJECTビルトインを使用してOracle Reportsをコールし、統合レポートを処理する必要があります。Oracle Reportsは、Business Intelligence and Formsインストールの一部として設定されます。

コールをアップグレードする手順は、次のとおりです。

1. すべてのRUN_PRODUCT (Reports,...)を、RUN_REPORT_OBJECT()を使用する同等のコールに変更します。

2. Oracle ReportsのReports_Pathが使用されるように、アプリケーションのReportsモジュールの場所を追加します。

3. Oracle Reportsを参照するようにRUN_REPORT_OBJECTを変更します。
詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

13.2.8.3 Formsリスナー・サーブレット別名の作成

パッチ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>

13.2.8.4 リスナー・サーブレット管理ページへのアクセス

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>

13.3 Oracle Forms Servicesのアップグレードの確認

アップグレード・タスクが完了したら、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>

14 パフォーマンス・チューニングに関する考慮事項

この章には、次の項が含まれています。

- 第14.1項「Forms Servicesの組込み最適化機能」

- 第14.2項「Oracle Forms Servicesアプリケーションのチューニング」

- 第14.3項「Web CacheとFormsの統合」

Oracle Forms ServicesとOracle Database Server間の接続のチューニングについては、この章では扱いません。

14.1 Forms Servicesの組込み最適化機能

Oracle Forms ServicesおよびJavaクライアントには、いくつかの最適化機能が含まれており、大きく次の項目に分類できます。

- 第14.1.1項「Forms Servicesの監視」

- 第14.1.2項「Forms ServicesのWebランタイム・プーリング」

- 第14.1.3項「クライアント・リソース要件の最小化」

- 第14.1.4項「Forms Servicesリソース要件の最小化」

- 第14.1.5項「ネットワーク使用量の最小化」

- 第14.1.6項「ネットワークを介して送信されるパケットの効率の拡大」

- 第14.1.7項「クライアントでのアプリケーション画面の効率的なレンダリング」

14.1.1 Forms Servicesの監視

Fusion Middleware Controlを使用してOracle Forms Servicesを監視し、次のメトリック情報を確認します。

- Forms Servicesインスタンス

- イベント

- ユーザー・セッション

- Forms Trace

14.1.1.1 Forms Servicesインスタンスの監視

「Forms」ホームページを使用して、Forms Servicesインスタンスのメトリックを監視します。

1. Enterprise Manager Fusion Middleware Controlを起動します。

2. Enterprise Manager Fusion Middleware Controlのメイン・ページで、監視するForms Servicesインスタンスへのリンクを選択します。
Forms Servicesインスタンスの「Forms」ホームページに次の情報が表示されます。

- Formsアプリケーション・インスタンスのステータス(稼働中、停止中、不明)

- 監視されているForms ServicesインスタンスのURL。

- Formsセッションの数

さらに、次の詳細ページにもナビゲートできます。

- パフォーマンス・サマリー

- サーブレット・ログ

- セッションの詳細

- Web構成

- 環境構成

- トレース構成

- ユーザー・セッション

- JVM構成

- JVMコントローラ
「パフォーマンス・サマリー」ページでは、「メトリック・パレットの表示」を使用して、他のFormsのメトリックのグラフを動的にページに追加できます。複数のメトリックをオーバーレイ表示して、互いに比較することもできます。たとえば、2つのJVMコントローラで使用しているプライベート・メモリーを1つのグラフにドラッグ・アンド・ドロップして、これらを比較します。詳細は、Oracle Fusion Middlewareのパフォーマンス・ガイドを参照してください。

14.1.1.2 Formsイベントの監視

Enterprise Manager Fusion Middleware Controlを使用して、すべてのイベントまたは特定のイベントに対するトレースを有効にします。表14-1に、このページで実行できるタスクのリストを示します。

表14-1 Formsイベントの監視

タスク

関連項目

ユーザー・セッションのメトリックの監視

「Formsユーザー・セッションを表示するには:」

メトリック情報のソート

「Formsユーザー・セッションのリストをソートするには:」

メトリック情報の検索

「Formsユーザー・セッションを検索するには:」

14.1.2 Forms ServicesのWebランタイム・プーリング

Formsランタイム・プーリング(Formsランタイム・プレスタート)を使用すると、構成可能な数のアプリケーション・ランタイム・エンジンを使用する前に起動できます。ランタイム・プーリングにより、サーバーのピーク時に迅速に接続できるようになり、サーバー側のアプリケーションの起動時間が短縮されます。ランタイム・プーリングは、サーバー構成の窓口が小さいにもかかわらず、そこで多くのユーザーがFormsアプリケーションに接続するような状況で役立ちます。事前に起動されたランタイム・エンジンはすべて、同じ環境で実行され、同じアプリケーションを提供します。

14.1.2.1 事前起動パラメータの構成

Enterprise Manager Fusion Middleware Controlで表14-2に示されているパラメータを使用して、Forms Servicesのランタイム・プーリングを構成します。

表14-2 Formsランタイム・プーリング・パラメータ

パラメータ名

データ型

説明

デフォルト値

prestartRuntimes

ブール

trueに設定した場合にのみ、ランタイムの事前起動またはプーリングが有効になります。

false

prestartInit

整数

最初に作成される必要のあるランタイム・プロセスの数。

1

prestartTimeout

整数

このプール(構成セクション)の事前起動プロセスがすべて停止するまでの時間(分単位)。クライアント接続が行われると、ランタイム・プロセスは事前起動プールから削除されるため、停止されません。

0 (0に設定した場合、タイマーは起動しません)

prestartMin

整数

プールに存在する必要のあるランタイム・プロセスの最小数。

0

prestartIncrement

整数

事前に起動されるランタイム・プロセスの数がminRuntimes未満の場合に作成されるランタイム・プロセスの数。

0

prestartMinは、特定のアプリケーションに対してランタイム・プーリングがアクティブな間は常に存在する必要のある、事前に起動されるランタイムの最小数を定義します。最小値は、prestartInitパラメータに定義した値と同等またはそれ未満に設定してください。prestartMinパラメータは、いつでも変更可能で、アプリケーション・サーバーの再起動を必要としません。クライアントが事前起動済のランタイム・プロセスへの接続をリクエストし、このランタイム・プロセスがタイムアウトしていない場合、この新しいエントリが取得されます。プロセスがタイムアウトすると、アプリケーションはデフォルトの動作になり、最小のしきい値は維持されません。

各構成セクションで、これらのパラメータの値を指定できます。prestartRuntimes = trueエントリがあっても、関連する事前起動パラメータがない場合は、デフォルト値が使用されます。

ロード・バランシングが実現されたシステムに複数のOracle WebLogic管理対象サーバーがある場合は、前述のパラメータに指定された様々な値は、アプリケーションの全体ではなく、JVMごとに対応します。

14.1.2.2 ランタイム・プーリングの起動

管理者は、Enterprise Manager Fusion Middleware Controlを使用して、特定のアプリケーションでランタイム・プーリングが有効になるように構成できます。アプリケーション・サーバー(Oracle WebLogic管理対象サーバー)を起動すると、アプリケーションごとに構成した数のFormsランタイム・プロセスが事前に起動されます。

Formsサーブレットの初期化フェーズで構成ファイル(formsweb.cfg)が読み取られ、prestartRuntimesパラメータが有効になっているアプリケーションがサーバーによって事前に起動されます。

14.1.3 クライアント・リソース要件の最小化

Javaクライアントは、主にアプリケーション画面のレンダリングを行います。これには、埋込みアプリケーションのロジックはありません。Javaクライアントをロードすると、複数のフォームを同時に表示できます。すべてのOracle Formsアプリケーションに汎用Javaクライアントを使用すると、アプリケーションごとにカスタマイズされたJavaクライアントよりも、クライアント上のリソースが少なくて済みます。

Javaクライアントは、多くのJavaクラスで構成されています。これらのクラスは、スプラッシュ画面の表示、ネットワーク通信およびルック・アンド・フィールの変更などの、機能サブコンポーネントにグループ化されます。機能サブコンポーネントを使用すると、Forms DeveloperおよびJava仮想マシン(JVM)は、すべての機能クラスを一度にダウンロードしなくても、必要に応じて機能をロードできます。

14.1.4 Forms Servicesリソース要件の最小化

フォーム定義がFMXファイルからロードされる時、実行プロセスのプロファイルは次のものに要約できます。

- 暗号化されたプログラム・ユニット

- ボイラープレート・オブジェクト/イメージ

- データ・セグメント

これらの中で、データ・セグメント・セクションのみがアプリケーションの指定したインスタンスに対して一意です。暗号化されたプログラム・ユニットとボイラープレート・オブジェクト/イメージは、どのアプリケーション・ユーザーにも共通しています。Forms Servicesでは、共有コンポーネントを物理メモリーにマップし、同じFMXファイルにアクセスするすべてのプロセス間でこれを共有します。

指定したFMXファイルをロードする最初のユーザーは、そのフォームに必要な全メモリー量を使用します。ただし、後続のユーザーの場合は必要なメモリー量が大幅に減らされているので、ローカル・データのエクステントにのみ依存します。共有コンポーネントをマップするこのメソッドを使用すると、指定したアプリケーションに必要な、ユーザーごとの平均メモリー量を減らすことができます。

14.1.5 ネットワーク使用量の最小化

帯域幅は重要なリソースであり、インターネット・コンピューティングの一般的な広がりとともに、インフラストラクチャにますます大きな負担を強いるようになっています。このため、アプリケーションはネットワークの容量を節約して使用することが重要です。

Oracle Forms Servicesは、メタデータ・メッセージを使用してJavaクライアントと通信します。メタデータ・メッセージは、実行対象のオブジェクトとその実行方法をクライアントに通知する名前と値のペアのコレクションです。パラメータのみをJavaクライアント上の汎用オブジェクトに送信することで、(同じ効果になるよう新規コードを送信した場合と比較して)通信量を約90%減らすことができます。

Oracle Forms Servicesでは、データ・ストリームを次の3つの方法で効率的に圧縮します。

- 同じようなメッセージの集合(名前と値のペアのコレクション)を送信すると、2番目以降のメッセージには、前のメッセージとの相違点のみが含まれます。この結果、ネットワーク・トラフィックを大幅に減らすことができます。このプロセスは、message diff-ingと呼ばれます。

- 同じ文字列がクライアント画面で繰り返されると(たとえば、同じ企業名が記載されている複数行のデータが表示される場合)、Oracle Forms Servicesはその文字列を一度のみ送信し、後続のメッセージではその文字列を参照します。参照によって文字列を渡すことで、帯域幅の効率は向上します。

- データ型はその値に必要な最小のバイト数で送信されます。

14.1.6 ネットワークを介して送信されるパケットの効率の拡大

Forms Developerモデル内のトリガーを多数使用すると大きな効果がありますが、各トリガーにネットワークの往復が必要なため、待機時間の影響が大きくなります。待機時間は、アプリケーションのレスポンス時間に影響を与える最も重要な要因です。待機時間は、ネットワーク速度と同じではありません。ネットワーク速度には、時間単位あたりの転送可能ビットの測定が関連しますが、待機時間は、1ビットがあるエンドポイントから別のエンドポイントまで移動するのにかかる時間を表します。待機時間の影響をなるべく受けないようにする最もよい方法の1つは、JavaクライアントとForms Services間で、対話中に送信されるネットワーク・パケットの数を最小限にすることです。

Oracle Forms Servicesは、イベント・バンドルを通じてトリガー・イベントをグループ化することで、イベント・バンドルを実装します。イベント・バンドルは、2つのオブジェクト間をナビゲートしている間にトリガーされたすべてのイベントを集めて、それらを単一のパケットとしてOracle Forms Servicesに配布して処理します。

たとえば、ユーザーが項目Aから項目Bにナビゲートする場合(あるエントリ・フィールドから別のフィールドにタブする場合など)、PreトリガーとPostトリガーの範囲が起動対象となり、それぞれForms Services上での処理が必要です。ナビゲートによって複数のオブジェクトを横切る場合(離れているオブジェクトに対してマウスのクリックを行った場合など)、イベント・バンドルは通過されたすべてのオブジェクトからすべてのイベントを集めて、そのグループを単一のネットワーク・メッセージとしてOracle Forms Servicesに配信します。

14.1.7 クライアントでのアプリケーション画面の効率的なレンダリング

指定したフォーム内のすべてのボイラープレート・オブジェクトは、仮想グラフィック・システム(VGS)ツリーの一部です。VGSは、すべてのForms Developer製品に共通の図形サブコンポーネントです。VGSツリー・オブジェクトは、座標、カラー、線幅およびフォントなどの属性を使用して記述します。オブジェクトのVGSツリーをJavaクライアントに送信する場合、送信する属性のみが指定したオブジェクト・タイプのデフォルトと異なる属性になります。

イメージは圧縮されたJPEGイメージとして送信および格納されます。これにより、ネットワーク・オーバーヘッドとクライアントで必要なメモリー量の両方を減らすことができます。

リソースの最小化には、クライアントおよびサーバー・プロセスのメモリー・オーバーヘッドの最小化も含まれます。ネットワークを最適な状態で使用するには、帯域幅を最小に維持し、ネットワークの待機時間の影響も含まれるため、クライアントおよびOracle Forms Services間の通信で使用するパケット数を最小化することが必要です。

14.2 Oracle Forms Servicesアプリケーションのチューニング

アプリケーションの開発者は、Forms Servicesの組込みアーキテクチャの最適化機能により最大の利益を得ることができます。この章の後半では、多くのアプリケーションに影響を与える主要なパフォーマンスの問題、および開発者がアプリケーションをチューニングしてパフォーマンスを改善し、Forms Services機能を活用するための方法について説明します。

14.2.1 データ・サーバーに対するOracle Forms Servicesの位置

Forms Javaクライアントは、GUIオブジェクトを表示する役割のみを担います。Oracle Formsのすべてのロジックは、中間層のOracle Forms Servicesで実行されます。これには、データベースへのデータの挿入や更新、データベースからのデータの問合せ、データベースでのストアド・プロシージャの実行などが含まれます。そのため、アプリケーション・サーバーとデータベース・サーバー間の高速接続(高帯域幅、短い待機時間)が重要になります。

このサーバー間の対話はすべて、Forms Javaクライアントと通信することなく行われます。画面に変更があった場合のみ、クライアントとForms Services間で通信が行われます。これにより、Oracle Formsアプリケーションは、モデムや衛星を介した低速ネットワーク(待機時間が長いネットワーク)で実行することが可能です。

図14-1の構成では、Forms Servicesとデータベース・サーバーがデータ・センター内で並存する仕組みを示しています。

図14-1 OracleAS Forms Servicesとデータベース・サーバーの並存

14.2.2 アプリケーションの起動時間の最小化

アプリケーションをロードするためにかかる時間は、第一印象として重要であり、またどのユーザーにとっても主要な基準となります。起動時間は、オーバーヘッドと見なされます。また、今後のパフォーマンスを期待させるものでもあります。業務でクライアント・テクノロジを使用する場合、クライアント・コードのロードに必要な追加のオーバーヘッドは、ユーザーにあまりよい影響を与えません。したがって、可能なかぎりロード時間を最小化することが重要です。

Oracle Formsアプリケーションを要求した後、アプリケーションを使用できる状態にするまでにはいくつかの手順を実行する必要があります。

1. Java仮想マシン(JVM)を起動します。

2. すべての初期Javaクライアント・クラスをロードし、クラスのセキュリティを認証します。

3. スプラッシュ画面を表示します。

4. フォームを次に示す方法で初期化します。

1. 必要に応じて、追加のJavaクラスをロードします。

2. クラスのセキュリティを認証します。

3. ボイラープレート・オブジェクトとイメージをレンダリングします。

4. 初期画面ですべての要素をレンダリングします。

5. スプラッシュ画面を削除します。

6. フォームを使用できます。

アプリケーション開発者は、JVMの起動にかかる時間についてほとんど何も行うことができません。ただし、Java配置モデルおよびOracle Forms Developer Javaクライアントの構造では、開発者はどのJavaクラスをどのようにロードするかを決定できます。これにより、Javaクラスに必要なロード時間を最小化します。

Javaクライアントには、基本機能のクラス(ウィンドウを開くなど)と特定の表示オブジェクトの追加クラス(LOV項目など)のコア集合が必要です。これらのクラスはサーバーに始めから常駐している必要がありますが、次の方法を使用すると、これらのクラスをクライアントのJVMにロードするために必要な時間を短縮できます。

- Javaファイルの使用

- キャッシュの使用

14.2.2.1 Javaファイルの使用

JavaはJavaアーカイブ(JAR)メカニズムを提供して、クライアントにネットワークを介して効率的な配布を行うために、クラスをまとめてグループ化し、圧縮(Zip形式)することができるファイルを作成します。このファイルがクライアントで使用されると、今後の使用のためにキャッシュされます。

JARファイルのサイズを2倍にすることもできます。frmall.jarを使用してこれを行うと、約700Kを節約できます。オラクル社のPlug-inでは、そのファイルには接尾辞jarjarが付きます。

次の項では、一般的なデプロイメントのシナリオをサポートするためにOracle Forms Servicesが提供する事前構成済Jarファイルについて説明します。

14.2.2.2 オラクル社のJava Plug-inの使用方法

frmall.jarには、Java Plug-inでの実行に必要なクラスがすべて含まれています。

1つ以上のJARファイルを指定するには、Forms構成ファイル(formsweb.cfg)で指定する構成セクションのarchive設定を使用します。次に例を示します。

[MyApp]
archive=frmall.jar

14.2.2.3 キャッシュの使用

オラクル社のJava Plug-inは、Oracle Forms ServicesでのJarファイルのキャッシュをサポートします。JVMがクラスを参照する場合、最初にローカルのクライアント・キャッシュにあるキャッシュ済JARファイル内にクラスが存在するかどうかを確認します。クラスがキャッシュ内に存在する場合、JVMはサーバーのJARファイルをチェックして、キャッシュ内のJARファイルより新しいバージョンが存在するかどうかを確認します。新しいバージョンが存在しない場合は、サーバーからではなくローカルのクライアント・キャッシュからクラスはロードされます。

キャッシュは、効率性を最大化するために適切なサイズにします。キャッシュ・サイズが小さすぎると、有効なJARファイルが上書きされてしまう場合があります。その結果、アプリケーションを再度起動すると、別のJARファイルのダウンロードが必要になります。デフォルトのキャッシュ・サイズは20MBです。このサイズは、アプリケーションを正常に実行した後のキャッシュ容量のサイズと比較する必要があります。

JARファイルはロード元のホストに関連してキャッシュされます。このため、ロード・バランシング・アーキテクチャを使用している場合、異なるサーバーからの同一のJARファイルがキャッシュされる可能性があります。JARファイルを中央に置き、ロード・バランシング構成の各サーバーでそれらを参照することで、開発者は各JARファイルの1つのコピーのみがクライアントのキャッシュでメンテナンスされていることを確認できます。この方法を使用すると、JARファイル内の特定のクラスに署名して、ロード元のサーバー以外のサーバーに接続を戻せるようにする必要があります。Oracleが提供するJARファイルでは、事前にクラスに署名してあります。

14.2.3 必須ネットワーク帯域幅の削減

開発者は、Formsが自動的に実行する差分メッセージングと呼ばれるデータ・ストリーム圧縮を最大限利用できるようにアプリケーションを設計できます。つまりFormsは、メッセージ間で異なる情報のみを送信する差分メッセージングを使用して、データ・ストリーム圧縮を送信します。次のステップを実行すると、メッセージ間の相違部分を削減できます。

- オブジェクト間の類似点を活用。似たようなオブジェクトを使用すると、(ユーザーに視覚的によりアピールする上に)message diff-ingの効率性が向上します。次の手順で、オブジェクト間の一貫性が図られます。

- プロパティのデフォルト値を受け入れ、オブジェクトに必要な属性のみを変更します。

- スマート・クラスを使用して、オブジェクトのグループを記述します。

- 視覚属性の違いが少なくなるようにルック・アンド・フィールを整えます。

- ボイラープレート・テキストの使用を削減。開発者として、可能なかぎり、ボイラープレート・テキストではなくプロンプト項目プロパティを使用してください。Forms Developer 6.0以降には、プロンプトの関連付け機能が含まれており、この機能を使用して、ボイラープレート・テキストを指定した項目のプロンプトとして再設計できます。

- ボイラープレート項目(円弧、円、多角形など)の使用を削減。指定したフォームのすべてのボイラープレート項目をフォームの初期化時にロードします。ボイラープレート項目をロードしてクライアント上でリソースを使用するには、表示の有無にかかわらず時間がかかります。共通のボイラープレート項目(矩形と線)は最適化されます。このため、アプリケーションをこれらの基本的なボイラープレート項目に制限すると、起動時間を短縮しながらネットワーク帯域幅とクライアント・リソースを削減できます。

- ナビゲーションを最小に維持。イベント・バンドルは、2つまたはそれ以上のオブジェクト間にナビゲーションが及ぶ場合でも、ナビゲーション・イベントが完了するたびに送信されます。デフォルト値が受け入れられる場合は、フィールド間をナビゲートする必要がないようにフォームを設計します。フォームは、ユーザーが入力を終了したらスムーズに終了できるようにし、すべての追加のナビゲーション・イベントが1つのイベント・バンドルとして実行されるようにします。

- 初期画面を表示する時間を短縮。Javaクライアントは必須クラスをロードすると、初期画面を表示する前に、表示するすべてのオブジェクトをロードして初期化する必要があります。項目数を最小限に抑えることで、初期画面はより迅速に表示されます。初期画面を表示する時間を短縮する方法は次のとおりです。

- アプリケーションのログイン画面を提供して、最初に表示されるオブジェクトを(タイトル、小さなロゴ、ユーザー名およびパスワードなどに)制限します。

- Formの初回の表示時は、隠された要素はすぐには必要とされません。次のキャンバス・プロパティを使用します。
エントリでレイズ=はい(キャンバスのみ)

VISIBLE = NO

タブ・キャンバスでは、1つのシートのみ表示されますが、いくつかのシートで構成されていることに注意してください。タブ間で応答を切り替える場合、キャンバス上のすべてのシートに対するすべての項目がロードされます。この中には初期タブの後ろに隠れている項目も含まれます。この結果、タブ・キャンバスをロードして初期化するためにかかる時間は、初めに可視できるオブジェクトのみではなく、キャンバス上のすべてのオブジェクトに関連します。

ヒント:

タブ・キャンバスを使用している場合、when-tab-page-changedトリガーでは積み重ねられたキャンバスを使用し、右のキャンバスを表示します。最初の画面に表示されないすべてのキャンバスでは、プロパティRAISE ON ENTRY = YESおよびVISIBLE = NOを設定してください。

- MENU_BUFFERINGを使用不可に設定。デフォルトでは、MENU_BUFFERINGはtrueに設定されます。これは、メニューに対する変更内容が、変更されたメニューの完全な再送信が必要となるような今後の同期化イベントのためにバッファされることを意味します(ほとんどのアプリケーションでは、メニューに対し複数の変更を同時に行うか、まったく行わないかのどちらかです。したがって、クライアント側のメニューを更新する最も効率のよい方法は、すべてのメニューを一度に送信することです)。ただし、メニューに最小限の変更しか加えないアプリケーションもあります。この場合、変更するたびに変更内容を送信した方が効率的です。これは、次の文を使用して実行できます。

Set_Application_Property (MENU_BUFFERING, 'false');

メニューのバッファリングは、LABEL、ICON、VISIBLEおよびCHECKEDのメニュー・プロパティにのみ適用されます。ENABLE/DISABLEイベントは常に送信されますが、メニュー全体の再送信は行われません。

14.2.4 パフォーマンスを改善するためのその他の方法

次に示す方法を使用すると、アプリケーションの実行に必要なリソースをさらに削減できます。

- タイマーの検証とJavaBeansでの置換。タイマーを起動すると、非同期イベントが生成されます。キュー内に他のイベントがない場合もあります。また、タイマーのサイズはほんの数バイトですが、毎秒実行されるので1分間で60パケットが生成され、通常の営業時間内ではおよそ30,000パケットがネットワークへ送出されます。タイマーの多くは時計やアニメーションを提供するために使用されます。これらのコンポーネントを、Forms Servicesやネットワークの介入がなくても同じ効果をもたらす、自己完結型のJavaBeansと置換します。

- クライアント上での入力項目の妥当性チェックについて考慮。When-Validate-Itemトリガーを使用して項目に対する入力を処理することはよく行われます。トリガー自体は、Forms Servicesで処理されます。プラガブルなJavaコンポーネントを使用して、標準のクライアント項目(テキスト・ボックスなど)のデフォルト機能を置換することを考慮する必要があります。次に、日付や最大/最小値などの項目の妥当性チェックを項目内に含めます。この方法を使用すると、より複雑な、入力の自動フォーマットなど((XXX) XXX-XXXXの書式を持つ電話番号など)のアプリケーション固有の妥当性チェックを行うことができます。

- アプリケーションを、大きな1つのフォームではなく多数の小さいフォームに縮小。アプリケーションを細かく分けることによって、Forms Servicesからロードおよび初期化されるオブジェクトをユーザーのナビゲーションで制御できます。大きなフォームの場合、オブジェクトの初期化中にアプリケーションが遅延して、アプリケーションの多くが参照できなくなるという危険性があります。フォームをまとめて連鎖する場合は、ビルトインのOPEN_FORMおよびNEW_FORMを使用することを検討します。

- OPEN_FORMを使用すると、コールしているフォームはクライアントとサーバーにオープンされたままの状態になるので、OPEN-FORMによる追加のフォームはクライアントとサーバー両方の多くのメモリーを消費します。ただし、フォームが別のユーザーによって使用中である場合、サーバーのメモリー使用量は、データ・セグメントにのみ制限されます。ユーザーが初期フォームに戻ると、フォームはすでにローカル・メモリー内に常駐し再表示の場合でもネットワーク・トラフィックは発生しません。

- NEW_FORMを使用すると、コールしているフォームはクライアントとサーバー上でクローズされて、すべてのオブジェクト・プロパティが破棄されます。このため、サーバーおよびクライアント上で使用するメモリー量は少なくなります。初期フォームに戻るには、クライアントに再度ダウンロードすることが必要ですが、この場合ネットワーク・リソースが必要で、起動時間が遅延します。初期フォーム(ログイン・フォームなど)を再度コールしないかぎり、OPEN_FORMを使用して、次のフォームをアプリケーションで表示します。

- 不要なグラフィックとイメージの削除。アプリケーションに表示されるイメージ項目と背景イメージの数を可能なかぎり減らします。アプリケーション・ユーザーに対してイメージが表示されるたびに、イメージはアプリケーション・サーバーからユーザーのWebブラウザにダウンロードする必要があります。Webアプリケーションで会社のロゴを表示する場合には、アプリケーションの起動時にダウンロードされるHTMLファイルに会社のロゴ・イメージを含めてください。会社のロゴを背景イメージとしてアプリケーションに挿入するかわりにこれを行ってください。会社ロゴを背景イメージとして指定すると、データベースまたはファイルシステムから検索して、ユーザーのコンピュータにダウンロードするトラフィックが繰返し発生します。

14.3 Web CacheとFormsの統合

Oracle Web Cacheは、Oracle Formsアプリケーションでのロード・バランサとして使用できます。セッションの間、Formsクライアントはサーバー・プロセスの同一インスタンスと通信できる必要があります。Formsアプリケーションはステートフルであるため、セッション・バインド機能を使用してWeb Cacheを構成し、ステートフルなロード・バランシングを実現する必要があります。

図14-2 Web Cacheのロード・バランシング

図14-2は、単一のWeb Cacheインスタンスによって2つのアプリケーション・サーバー層のロード・バランシングが実現されている設定を前提としています。この状態は次のように説明できます。

1. Oracle Web CacheインスタンスはホストAで実行されている。

2. ホストB上にあるOracle HTTP ServerインスタンスとOracle WebLogic管理対象サーバーは、Oracle FormsアプリケーションDを実行している。

3. ホストC上にあるOracle HTTP ServerインスタンスとOracle WebLogic管理対象サーバーは、Oracle FormsアプリケーションDを実行している。

注意:

Oracle HTTP ServerとOracle WebLogic管理対象サーバーは他にも存在する場合がありますが、ここでは説明を簡略化するために2つのインスタンス・ペアのみを取り上げます。Oracle FormsアプリケーションではOracle WebLogic Serverのアクティブなフェイルオーバーを利用できないため、Oracle HTTP ServerとOracle WebLogic管理対象サーバーはクラスタ化およびアクティブなフェイルオーバー用には構成されません。

前提条件

1. Forms J2EEアプリケーションのデプロイメント・ディスクリプタ(weblogic.xml)を変更して、デフォルトのセッション追跡エントリをオーバーライドし、セッション追跡のCookieを有効にします。詳細は、第5.2.4項「Forms J2EEアプリケーションのデプロイメント・ディスクリプタの変更」を参照してください。
デプロイメント・プランを変更します。次はデプロイメント・プランの例で、追加したエントリを太字で強調表示しています。

<?xml version='1.0' encoding='UTF-8'?>
<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" global-variables="false">
<application-name>formsapp</application-name>
<variable-definition>
<variable>
<name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
<value>/scratch/t_work/Oracle/Middleware/as_1/forms</value>
</variable>
<variable>
<name>vd-/scratch/t_work/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms</name>
<value>/scratch/t_work/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms</value>
</variable>
<variable>
<name>Frmapp_url-rewriting-enabled_variable</name>
<value>false</value>
</variable>
<variable>
<name>Frmapp_cookies-enabled_variable</name>
<value>true</value>
</variable>
<variable>
<name>Frmapp_cookie-http-only_variable</name>
<value>false</value>
</variable>
</variable-definition>
<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/Middleware/as_1/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/Middleware/as_1/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/local-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="registry/*"]/local-path</xpath>
</variable-assignment>
<variable-assignment>
<name>Frmapp_url-rewriting-enabled_variable</name>
<xpath>/weblogic-web-app/session-descriptor/url-rewriting-enabled </xpath>
</variable-assignment>
<variable-assignment>
<name>Frmapp_cookies-enabled_variable</name>
<xpath>/weblogic-web-app/session-descriptor/cookies-enabled</xpath>
</variable-assignment>
<variable-assignment>
<name>Frmapp_cookie-http-only_variable</name>
<xpath>/weblogic-web-app/session-descriptor/cookie-http-only</xpath>
</variable-assignment>
</module-descriptor>
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
</module-descriptor>
</module-override>
</deployment-plan>

2. 次のように、仮想ホストのディレクティブをforms.confに追加します。

<VirtualHost *:8888>
ServerName hostA:8090
UseCanonicalName On
CookieTracking On
WLCookieName cookieName
#
# virtual mapping for the /forms/html mapping.
#
RewriteEngine on
RewriteRule ^/forms/html/(..*) /workaroundhtml/$1 [PT]
AliasMatch ^/workaroundhtml/(..*) ". . . . . . /config/FormsComponent/forms/html/$1"

<Location /forms>
SetHandler weblogic-handler
WebLogicCluster    HostB:9001
DynamicServerList OFF
</Location>
</VirtualHost>

注意:

ServerNameエントリには、Web Cacheのホスト名とポート番号が含まれている必要があります。WLCookieNameエントリの値は、ホスト間で一意である必要があります。たとえばcookieHostA、cookieHostBなどです。VirtualHostディレクティブのポート番号8888は、OHS HTTPポートに対応しています。実際のOHS HTTPポートの値を取得するには、$ORACLE_INSTANCE/bin/opmnctl status -lを使用します。

3. アプリケーション・サーバー・ホスト(ホストBとホストC)のFMWパッチ・セットのバージョンが同一である必要があります。

4. Formsの構成ファイルがアプリケーション・サーバー・ホスト間で同期されることを確認します。これは、すべてのアプリケーション・サーバー・ホスト間で一致するエントリをFormsの構成ファイル(formsweb.cfg、default.env、Registry.datなど)内に作成する必要があることを意味します。

Web Cacheでセッション・バインドを構成するには:

1. 『Oracle Fusion Middleware Oracle Web Cache管理者ガイド』のソフトウェア・ロード・バランサとしてのOracle Web Cacheの構成に関する項に従って、ホストAで実行するWeb Cacheを設定します。

2. 『Oracle Fusion Middleware Oracle Web Cache管理者ガイド』のオリジン・サーバー設定の指定に関する項に従って、アプリケーション・サーバー、ホストBおよびホストCをオリジン・サーバーとして追加します。
Ping URLフィールドにはURL/forms/lservletを指定します。

3. 『Oracle Fusion Middleware Oracle Web Cache管理者ガイド』のオリジン・サーバーへのサイト定義のマッピングに関する項に従って、順序付けされたサイトのマッピングをオリジン・サーバー、ホストBおよびホストCに作成します。

4. 『Oracle Fusion Middleware Oracle Web Cache管理者ガイド』のセッション・バインディングの構成に関する項に従って、Web Cacheのセッション・バインディングを構成します。
「Set-Cookieを使用したCookieに基づくセッション・バインディング」オプションを選択します。

設定をテストするには:

1. ブラウザを使用して、Web Cacheホストを指定し、Oracle FormsアプリケーションDにアクセスします。アプリケーションが適切に動作することを確認します。ブラウザ・ウィンドウは開いたままにします。

2. OHSアクセス・ログを使用して、リクエストを処理したOracle HTTP ServerとOracle WebLogic管理対象サーバーを識別します。たとえば、これがホストBであるとすると、そのホスト上のOracle HTTP ServerとOracle WebLogic管理対象サーバーをシャットダウンします。これで、ホストCで実行されるOracle HTTP ServerとOracle WebLogic管理対象サーバーにのみアクセスできるようになります。

3. Oracle Formsクライアントを実行している同じブラウザを使用して、Oracle FormsアプリケーションDに再度アクセスします。リクエストは失敗し、Formsクライアントはセッションを失います。Oracle Formsセッションの状態は、Oracle WebLogic管理対象サーバー間でレプリケートされません。

4. 次に、ブラウザのCookieを消去し、ブラウザ・ウィンドウを開きます。Web Cacheホストを指定し、Oracle FormsアプリケーションDにアクセスします。Web CacheはホストCで実行される残りのOracle HTTP ServerとOracle WebLogic管理対象サーバーにリクエストをダイレクトします。アプリケーションが適切に動作することを確認します。

5. ホストBでOracle HTTP Server/WebLogic管理対象サーバーを再起動します。ブラウザを使用して、Web Cache Managerにログインします。

6. Oracle Enterprise Managerのナビゲータ・パネルで、「Webキャッシュ」を選択し、「ホーム」ページに移動します。

7. 「Webキャッシュ」ホーム・ページで、「オリジン・サーバー」の下にあるホストBのチェック・ボックスが選択されていることを確認します。

注意:

ロード・バランシングのシナリオと、クラスタ化されたWeb Cacheの設定の詳細は、『Oracle Fusion Middleware高可用性ガイド』を参照してください。Web Cacheの詳細は、『Oracle Fusion Middleware Oracle Web Cache管理者ガイド』を参照してください。

A Oracle Forms Servicesのトラブルシューティング

この章には、次の項が含まれています。

- 第A.1項「インストールの確認」

- 第A.2項「FRM-XXXXXエラーの診断」

- 第A.3項「スタック・トレースを使用したサーバーのクラッシュの診断」

- 第A.4項「クライアント・クラッシュの診断」

- 第A.5項「Forms TraceとServlet Logging Tools」

- 第A.6項「メモリーの問題の解決」

- 第A.7項「トラブルシューティングのヒント」

- 第A.8項「さらに調査が必要な場合」

この章では、Oracle Formsを使用してWeb上でアプリケーションを実行する際に発生する可能性のある問題の解決に役立つ情報を提供します。この中では、エラーの一般的な原因について概説し、インストール内容を確認する方法と、問題を診断するためのツールとテクニックを紹介します。

この章は、http://www.oracle.com/technology/products/forms/にあるホワイトペーパー『Oracle Forms診断テクニック』のサブセットでもあります。

A.1 インストールの確認

インストールになんらかの問題があると、構成が不正になり、Oracle Formsが正しく動作しなくなります。Fusion Middleware Controlを正常にインストールしたという通知がOracle Universal Installerから得られた後で、Oracle Forms Servicesが正しく構成されているかどうかを確認できます。このために次のツールが用意されています。

第A.1.1項「Web Form Testerの使用」

第A.1.2項「ポート情報の確認」

A.1.1 Web Form Testerの使用

Web Form Testerは、Oracle Fusion Middlewareをインストールすると使用できるようになります。OracleのインストールおよびForms Servicesの構成が正しいかどうかを確認するには、中間層でWeb Form Testerを実行します。Windowsコンピュータでは、この操作を次のように実行します。

1. WebLogic Serverドメインの管理サーバーが起動していない場合は、「スタート」、「プログラム・ファイル」、「Oracle WebLogic Server」、「User Projects」、「Domain」、「Start Admin Server for WLS Domain」の順に選択して起動します。

2. 管理対象サーバーが起動していない場合は、次の手順を実行します。

1. ノード・マネージャが起動していない場合は、「スタート」、「プログラム・ファイル」、「Oracle WebLogic」、「WebLogic Server 11gR1」、「Tools」、「Node Manager」の順に選択して起動します。

2. WebLogic管理コンソールからForms Servicesを起動します。

3. URLに<ORACLE_HOME>/tools/web/html/runform.htmと入力して[Enter]キーを押し、ブラウザのインスタンスを開きます。ORACLE_HOMEは、実際のOracle Fusion MiddlewareのOracleホームに置換します。

4. また、Oracle Fusion MiddlewareのWindows「スタート」メニューから「スタート」、「プログラム・ファイル」、<Oracle_Home>、「Forms Services」、「Run a Form on the Web」の順に選択して、Web Form Testerを起動することもできます。

5. Webポートを入力して、「フォームの実行」ボタンを押します。Webポートの確認方法は、第A.1.2項「ポート情報の確認」を参照してください。

6. Oracle Fusion Middlewareのインストールに問題がなければ、Webブラウザに成功メッセージが表示されます。Oracle Fusion MiddlewareでのFormsの基本設定がインストーラによって中間層で正しくインストールされているかどうかを、クライアント・コンピュータからテストすることもできます。クライアント・コンピュータからテスト・フォームを実行するには、ブラウザでURLhttp://example.com:NNNN/forms/frmservlet?form=test.fmxを指定してそのテスト・フォームを実行します。

A.1.2 ポート情報の確認

インストール後に問題が疑われる場合や、Formsの実行に使用するポート番号がわからない場合は、<ORACLE_HOME>/install/portlist.iniファイルでポート情報を確認できます。インストールには適切なポート番号を使用してください。

A.2 FRM-XXXXXエラーの診断

FRM-XXXXXエラーの診断と解決には、次のツールを使用します。

- 第A.2.1項「Oracle Formsアプレット」

A.2.1 Oracle Formsアプレット

問題の基本的な原因の特定に、簡潔なFRMエラーのメッセージが役立ちます。多くの場合、Formsアプレットからレポートされるエラーには、FRMエラーの原因の特定が可能なすべての情報が含まれています。FRMエラーが発生すると、エラー・ダイアログに「詳細」ボタンが表示されます。「詳細」ボタンを押すと、現在のJavaスタックが表示されます。このスタックには、根本的な原因とOracle Formsのバージョンが関連付けられています。これは、リリースが異なると、アプレット・クラス・ファイルに使用されるパッケージ構造も異なるためです。

A.3 スタック・トレースを使用したサーバーのクラッシュの診断

この項は、次の小項目に分かれています。

- 第A.3.1項「スタック・トレースについて」

- 第A.3.2項「スタック・トレースの構成と使用」

Forms Webランタイムが予期せず終了した場合は、$ORACLE_INSTANCE/FormsComponent/forms/traceディレクトリにスタック・トレースが書き込まれます。ファイル名の形式は<forms_runtime_process>_dump_<process id>です。ダンプ・ファイルには、実行中のプロセスのスタック・トレースが記録され、Formsで最後に成功した操作が示されます。ダンプが発生したマシン上で実行しているGNU Debuggerやdbxなどのデバッグ・ツールでこのコア・ファイルを使用して、シンボル名でスタック・トレースをアセンブルできます。

A.3.1 スタック・トレースについて

スタック・トレースは、次の2つの理由で役立ちます。

- スタック内の情報から既知の問題であると同定できます。100%信頼できるわけではありませんが、スタック・トレースが同一の場合、問題が同一であると考えることができます。同一ではなくても、既存のバグに対する迂回策やパッチがあれば、それを試すことができます。

- 問題が既知のバグでない場合、スタックから、正確な原因と開発を支援する有益な情報を得ることができる場合があります。

A.3.2 スタック・トレースの構成と使用

この項は、次の小項目に分かれています。

- 第A.3.2.1項「環境の確認」

- 第A.3.2.2項「UNIXのスタック・トレースについて」

- 第A.3.2.3項「Windowsのスタック・トレースについて」

A.3.2.1 環境の確認

UNIXまたはWindowsでスタック・トレースをテストするには、環境変数FORMS_DELIBERATECRASHを設定します。名前が示すように、この変数を設定するとFormsランタイム・プロセスがクラッシュします。Oracle Formsでは現在1と2の設定が認識されます。FORMS_DELIBERATECRASHを1に設定すると、実行時にBELLビルトインが実行されたときにFormsがクラッシュします。2に設定すると、実行時にwhen-button-pressedトリガーが起動されたときにFormsがクラッシュします。この環境変数は、環境ファイル(default.envなど)で設定できます。

A.3.2.2 UNIXのスタック・トレースについて

UNIXのスタック・トレースでは、上位2つの関数siehjmpterm()およびsigacthandler()が、シグナル処理コードとしてスタック・トレースに頻繁に出現します。エラーが発生したときにプログラムが実行していた関数を確認するには、さらに下方のスタックを参照する必要があります。

FORMS_CATCHTERM=0を設定すると、この2つの関数はダンプ・ファイルに記述されなくなります。スタック・トレースにはクラッシュ処理シンボルが示されません。

A.3.2.3 Windowsのスタック・トレースについて

UNIXとWindowsではスタック・トレースの動作が異なります。UNIXでは、シンボル情報が実行可能ファイルおよび共有ライブラリに格納されます。Windowsでは、バイナリ形式の.symファイルとしてこの情報がリンク時に取り出されています。すべてのOracle Forms実行可能ファイルまたはDLLに、.symファイルが1つずつ存在します。.symファイルはデフォルトでインストールされます。Windowsでは、このファイルはORACLE_HOME\binディレクトリにあります。Windowsプラットフォームのメカニズムとして、クラッシュが発生すると、メモリーにロードされているForms実行可能ファイルに対応するすべての.symファイルが、Formsランタイム・プロセスによって読み取られます。その後に、.symファイル内の情報を使用してシンボル名が参照されます。

A.4 クライアント・クラッシュの診断

この項は、次の小項目に分かれています。

- 第A.4.1項「クライアント・クラッシュの診断について」

- 第A.4.2項「ハングしているアプリケーションの診断」

A.4.1 クライアント・クラッシュの診断について

Formsアプレットが予期せず表示されなくなり致命的エラーを通知するダイアログが表示される場合は、Formsアプレットはクラッシュしています。Windowsでは、クラッシュが発生すると無効な操作を通知するダイアログが表示されるか、タスク・マネージャで「応答なし」のフラグが設定されます。クラッシュを検証するには、クライアントのスタック・トレース・ファイルをチェックします。クライアントがクラッシュした場合は、実行可能ファイルと同じディレクトリに.rpt拡張子の付いたファイルが作成されます。ファイル名のルートは、実行可能ファイルの名前です。

アプレットがクラッシュしたように見えても、対応する.rptファイルが見つからないことがあります。この場合は、Oracle Formsとクライアントの接続が予期せず突然切断された可能性があります。アプレットはそのまま稼働されますが、すべてのFormsウィンドウがシャットダウンされたために、クライアントがクラッシュしたように見えます。

A.4.2 ハングしているアプリケーションの診断

クライアントがハングしたように見える場合は、サーバー・プロセスがまだ稼働しているかを確認することが重要です。サーバー・プロセスがクラッシュしていないのにクライアントがユーザーの操作に応じなくなったように見える場合は、アプリケーションがハングしていると考えられます。

このような場合は、スレッド・ダンプにデッドロックが示されている可能性があります。Javaコンソールでtを押すとスレッド・ダンプが得られます。ここには、クライアントのJVMで動作しているすべてのスレッドのリストが表示されます。

ダンプ・ファイル内の情報は、オラクル社の開発に非常に役立ちます。問題を報告する場合は、提出するバグにこの情報を含めるようにしてください。

A.4.2.1 アプリケーションがハングする原因

原因の1つに、Javaクラス・ファイルとOracle Formsのバージョンの不一致があげられます。アプレットとFormsランタイム・プロセス間の通信は、メッセージIDに基づいて行われます。これらのメッセージIDが同期していないと、アプレットとサーバーは互いの指示を理解できません。JARファイルを使用している場合は、<ARCHIVE>タグを削除してみてください。問題が解消されない場合は、インストールまたはパッチのCDから手動で正しいクラス・ファイルを取得してください。

もう1つの原因として、Formsランタイム・プロセスの終了が考えられます。サーバー上でFormsランタイム・プロセスが稼働しているかどうか確認します。FORMS_TIMEOUTパラメータが設定されていることを確認します。これは、Oracle Formsクライアントに送信したpingに対する応答をサーバーが待機する時間を定義するもので、ここで指定した時間が経過してもFormsクライアントから何の反応もない場合、ランタイム・プロセスはクリーンアップされます。デフォルトでは、クライアントから2分ごとにHEARTBEATが送信されています。FORMS_TIMEOUTを2分以上に設定すると、サーバーはクライアントからHEARTBEATが得られるまで待機します。HEARTBEATの間隔を短く設定すると、FORMS_TIMEOUTで指定した時間が経過した時点でサーバーはシャットダウンします。この間隔を設定するには、formsweb.cfgでHEARTBEATアプレット・パラメータを設定します。詳細は、第8.6.3項「非同期型通信の構成」を参照してください。この機能の主な目的は、サーバー・プロセスの孤立を防止することですが、サーバー・プロセスが早い段階で不必要にクリーンアップされないようにする効果もあります。

A.5 Forms TraceとServlet Logging Tool

Forms TraceおよびServlet Loggingの2つのツールは、Oracle Formsの環境をトラブルシューティングする際に使用します。Forms Traceの構成および使用の詳細は、第12章「Forms Traceについて」および第12章「Oracle Diagnostics Loggingのツールの利用」を参照してください。

A.6 メモリーの問題の解決

この項は、次の小項目に分かれています。

- 第A.6.1項「Javaのメモリーの使用方法」

- 第A.6.2項「初期Javaヒープの設定」

- 第A.6.3項「メモリー・リークについて」

- 第A.6.4項「キャッシングによるパフォーマンスの向上」

A.6.1 Javaのメモリーの使用方法

すべてのソフトウェア・プログラムと同様に、Javaアプレットもメモリーを使用します。Javaの言語仕様ではガベージ・コレクタを必要とします。これはJava仮想マシン(JVM)の内部メモリーを管理するものです。メモリーが必要になるとJavaプログラムはJVMにこのメモリーを要求します。メモリーが残っていない場合は、JVMがガベージ・コレクタを使用してある程度のメモリーを解放しようとします。ガベージ・コレクタは、プログラムで不要となったメモリーを解放してJVMに戻そうとします。それでも必要なタスクの実行にメモリーが足りない場合は、JVMがオペレーティング・システムからさらにメモリーを取得しようとします。このメモリーの割当てが失敗すると、Javaプログラムは処理を続行できません。

A.6.2 初期Javaヒープの設定

Fusion Middleware Controlで、アプリケーションの初期Javaヒープ(JVMが使用するメモリー)を指定できます。クライアントに対しては、オラクル社のJava Plug-inをインストールした後にJavaコントロール・パネルで設定を変更できます。

注意:

JVMは、使用を許可されているメモリーのみを使用します。オペレーティング・システムに使用可能なメモリーがあっても、使用しないように指定することでJVMではそれを使用しなくなります。

A.6.3 メモリー・リークについて

メモリー・リークは、プログラムの動的な格納割当てロジックにおけるエラーであり、破棄されたメモリーを再利用できなくなるため、メモリーが枯渇して最終的な崩壊に至ります。

たとえば、プログラムの実行において特定のタスクの実行にメモリーの割当てが必要な場合があります。プログラムがメモリーを使用して作業を終了し、不要になったメモリーをコンピュータ上の他のプログラムに解放できなかった場合は、メモリーはリークしたと判断されます。

メモリー・リークを発見するための一般的な方法は、一連のステップを繰り返し実行してアプリケーションによるメモリーの使用状況を監視します。実行を繰り返すたびにメモリー使用量が増えていく場合は、プログラムでメモリー・リークが発生していると考えられます。

ただし、後から再利用できるように、前に割り当てられたメモリーを保持する複雑なアプリケーションもあります。メモリーの割当ては大きな負荷がかかるため、後でさらにメモリーが必要であると予測されるとき、使用されていないメモリーを再利用できるように保持しておく方が効率的な場合があります。

A.6.3.1 Javaでのメモリー・リーク

Java言語仕様では、JVMにガベージ・コレクタを実装することを必要としています。Javaでは、プログラマが新しいオブジェクトを作成することでメモリーを割り当てます。そのメモリーの割当てを解除する方法はありません。ガベージ・コレクタは、プログラムに割り当てられたメモリーを定期的にすべて検索し、安全に破棄できるオブジェクトを特定してメモリーを解放します。安全に破棄できるオブジェクトを特定するために、ガベージ・コレクタはmark and sweepアルゴリズムを使用します。ガベージ・コレクタは、オブジェクトに動的に割り当てられたメモリーをスキャンし、アクティブな参照を持つオブジェクトをマークします。

オブジェクトへのパスがすべて調査された後に、不要と認定されたマークのないオブジェクトがガベージとして収集されます。一般に、Javaプログラミングでは、ガベージ・コレクタがあればメモリー・リークが発生しないと言われています。ガベージ・コレクタは、単純に、アクティブな参照を持つオブジェクトをマークし、そうでないものは破棄します。不要になったオブジェクトへのアクティブな参照を持つ可能性があります。これがJavaにおけるメモリー・リークです。リークを解決するには、不要となったオブジェクトへの参照を破棄して、ガベージ・コレクタがそのオブジェクトを安全に破棄できる対象と判断できるようにします。Javaプログラムにメモリー・リークが存在する場合は、ガベージ・コレクタを頻繁にコールしても意味がありません。

問題をさらに複雑にしているのが、JVMが使用されていないメモリーをオペレーティング・システムにあえて戻さない場合がある点です。しかしほとんどのプログラムは追加のメモリーが必要なときにJVM内の空きメモリーを再使用するため、実際にはこれはほとんど問題となりません。ただし、JVMに割り当てられたすべてのメモリーが、JVMで稼働中のプログラムによって使用されるわけではないことに注意してください。

A.6.3.2 メモリー・リークの特定

通常、ある一連の操作を実行するたびにメモリー使用量が増えていく場合は、メモリー・リークが発生しています。適切な判別方法は次のとおりです。

1. フォームを初期の基本状態にして、メモリー使用量を記録します。

2. 一連の手順を実行して問題を再現します。

3. 初期の基本状態に戻り、メモリー使用量を記録します。

ステップ2と3を繰り返すことで、継続的にメモリー・リークが発生しているかどうかを判断できます。何度繰り返しても使用量があまり伸びない場合は、リークではなく、JVMが使用されていないメモリーを保持しているか、あるいはガベージ・コレクタが予定の頻度で動作していない可能性があります。

A.6.4 キャッシングによるパフォーマンスの向上

Javaプログラムの実行時に、Java仮想マシンはクラス・ファイルをロードする必要があります。インターネット上で実行する場合は、プログラムが実行されるたびにクラス・ファイルをダウンロードすると時間がかかってパフォーマンスに支障をきたすことがあります。このダウンロードの問題を解決するために、JDKではJavaアーカイブ(JAR)ファイルがサポートされています。JARファイルは簡単に言えば、一連のクラス・ファイルを1つの圧縮ファイルにまとめたものです。一般に、JARファイルのサイズは、その中に含まれているクラス・ファイルのサイズの合計よりもはるかに小さくなります。

JVMは、最初にクラスを参照する際に、ローカル・コンピュータにキャッシュされているJARファイルにそのクラスが存在するかどうかを確認します。事前にキャッシュされたJARファイルのいずれかにそのクラスが存在する場合、JVMはキャッシュ内のJARファイルより新しいバージョンがアプリケーション・サーバーに存在するかどうかを確認します。新しいJARファイルが存在する場合は、JARファイルの新しいコピーがクライアント・キャッシュにダウンロードされます。キャッシュされているJARファイルが最新のものである場合は、ネットワークからではなくキャッシュされているJARファイルからクラス・ファイルがロードされます。

キャッシングは重要な機能です。アプリケーションの1回目の実行で必要なすべてのJARファイルがクライアントにキャッシュされます。アプリケーションのJARファイルに変更がなければ、それ以降のアプリケーションの起動では、常にローカルにキャッシュされたコピーからクラスがロードされるようになります。これによって、アプリケーションの起動時間のパフォーマンスが大幅に向上します。アプリケーションの特定の部分の実行に新しいクラスが必要な場合は、必要に応じてそれらがダウンロードされます。

A.7 トラブルシューティングのヒント

以降のトラブルシューティング一覧は、複雑な問題の対処に役立つ場合がありますが、問題を解決するための決定的なガイドではなく、またOracle Forms環境に対する解決策として保証されているわけでもありません。

順序立てて対処する

原因と思われる箇所に直感や推測ですぐに着手するのではなく、まず他の可能性を排除します。人は証拠から判断可能なことに集中せずに、自らの仮説を裏付ける証拠を探すために長い時間を費やしてしまいがちです。ささいな事項や明白な事項を見落とさないでください。

問題を分割する

- 問題を管理しやすいように分割することで、全体を調査する必要がなくなります。ある部分を調査して問題がないことがわかれば、次の部分に進むことができます。問題を重要な部分別に分けるアプローチは、問題の診断において有用です。オラクル社カスタマ・サポート・センターと問題を協議して解決策を得る必要がある場合は、このアプローチは重要です。

- 具体的な現象、および発生のタイミングと頻度を明確にします。これと同様に、発生しなかった現象や発生しなかったタイミングなどを把握することも重要です。たとえば、同じ建物内のユーザー・グループ全体に問題が発生し、その発生が常に午前9時から午前10時の間である場合は、別の建物でその問題が再現しないか、あるいは午後10時以降は再現しないかを把握することも重要です。ユーザーが特定のフォームを午前9時から午前10時の間にのみ使用しているか、あるいはこの時間帯にシステムの負荷が最も高くなっていることが考えられます。

エラー・メッセージを確認する

当たり前のようですが、解決策がエラー・テキストに記述されていることが少なくありません。このドキュメントは、エラー・メッセージを理解して対策を特定する際に役立ちます。

可能であれば問題を再現する

問題を自ら再現できれば、エンド・ユーザーが発見できなかった動作に気付くことができます。その問題が常に発生していたために、エンド・ユーザーがそれを意図された動作であると考えている可能性があります。問題を再現できれば、その解決に一歩踏み出したことになります。

使用するツールを確実に理解する

診断ツールを使用する場合は、その使用方法、およびそのデータの分析方法を把握しておいてください。問題が発生する前にツールの使用方法を理解しておくことは時間の無駄ではありません。ツールを習得するための時間も確保してください。

A.8 さらに調査が必要な場合

http://support.oracle.comにあるMy Oracle Support(以前のOracleMetaLink)でより多くの解決策を参照できます。問題の解決策が見つからない場合は、サービス・リクエストを作成してください。

関連項目:

- Oracle Technology Networkで入手可能なOracle Fusion Middlewareのリリース・ノート: http://www.oracle.com/technology/products/forms/index.html

B Java Plug-inの構成

この項では、オラクル社のJava Plug-inをWebブラウザ・プラグインとして使用する方法について説明します。Oracle Java Plug-inを使用すると、ユーザーがMozilla FirefoxまたはInternet Explorerを使用してOracle Formsアプリケーションを実行できるようになります。これにより、クライアントで特定のJava仮想マシン(JVM)を使用するように指定する機能が得られます。詳細は、http://www.oracle.com/technology/products/forms/index.htmlにあるSun社のJava Plug-inの使用というホワイト・ペーパーを参照してください。

B.1 サポートされる構成

Oracleでは、Java Plug-inをサポートしています。詳細は、Java Plug-inのドキュメント(http://java.sun.com/products/plugin/reference/docs/index.html)を参照してください。

B.2 レガシー・ライフサイクルの動作と構成の要件

JDK 1.4.1以降、Java Plug-inはLEGACY_LIFECYCLEアプレット・パラメータをサポートしています。このパラメータをtrueに設定すると、ユーザーが別のページに移動しても実行アプレットが破棄されなくなります。また、次の場合を除き、ユーザーが元のページに戻ると、実行していたアプレットが再開されます。

- ブラウザがアプレット定義に対するリクエストを再発行する必要があるとき。

- そのリクエストへのレスポンスによって、元のリクエストから返されたアプレット定義とは異なるアプレット定義が生成されるとき。

B.2.1 構成の要件

特定の構成でLEGACY_LIFECYCLE機能を使用するには、該当する構成セクション(formsweb.cfgなど)にLEGACY_LIFECYCLE=trueパラメータを追加します。

または、Formsアプリケーションの起動に使用されるURLでlegacy_lifecycle=trueを指定することもできます。この手法は、主にアプリケーション開発の際に役立ちます。

さらに、(legacy_lifecycle=trueを指定する)Formsアプリケーションを起動するブラウザで、JavaScriptが有効になっている必要があります。

HTMLファイルも特定のガイドラインに準拠している必要があります。製品に含まれているベースHTMLファイルは、必要なガイドラインに準拠しています。ただし、独自のベースHTMLファイルを作成するユーザーは、次のガイドラインに準拠してファイルを作成する必要があります。

1. ベースHTMLファイルのCOMMENTノード(ID: forms_plugin_info.)で、serverURL属性をserverURL変数の値(serverURL="%serverURL%")に定義する必要があります。

2. ベースHTMLファイルでserverURLアプレット・パラメータを定義し、その値をappletServerURL変数の値に指定する必要があります(Forms 11gより前のリリースでは、この値はserverURL変数の値に設定されていました)。このためには、次のように指定します。
<PARAM NAME="serverURL" VALUE="%appletServerURL%">

および

serverURL="%appletServerURL%"

この指定は、ユーザーが作成したベースHTMLファイルのOBJECT定義とEMBEDコメントで行います。appletServerURL変数を構成ファイルでは設定しないでください(設定しても、その値は無視されます)。この値はFormsで自動的に計算されます。構成ファイルまたは初期URLでlegacy_lifecycle=trueを設定しておけば、appletServerURL変数は"?"となり、これによってFormsはCOMMENTノードのserverURL属性を参照します(前述の説明を参照)。それ以外の場合、appletServerURLはserverURL変数の値となります。

3. ベースHTMLファイルでlegacy_lifecycleアプレット・パラメータを定義する必要がありますが、その値をハードコードしないようにします。この値は、legacy_lifecycle変数の値と一致している必要があります。これは、Forms 11gでは、この変数はappletServerURL変数の値にも影響を与えるためです(前述の説明を参照)。このためには、次のように指定します。
<PARAM NAME="legacy_lifecycle" VALUE="%legacy_lifecycle%">

および

legacy_lifecycle="%legacy_lifecycle%"

この指定は、ユーザーが作成したベースHTMLファイルのOBJECT定義とEMBEDコメントで行います。

C 構成ファイルの場所とサンプル

この項では、構成ファイルとそのデフォルトの場所のリストを示します。また、システムにインストールされているデフォルトの構成ファイルのサンプルも紹介します。デフォルト値の中には、場所やパスのように変更できるものもあります。

- 第C.1項「Forms構成ファイルの場所」

- 第C.2項「デフォルトのformsweb.cfg」

- 第C.3項「プラットフォーム固有のdefault.envファイル」

- 第C.4項「base.htmファイルとbasejpi.htmファイル」

- 第C.5項「web.xml」

- 第C.6項「weblogic.xml」

- 第C.7項「forms.conf」

- 第C.8項「Registry.dat」

- 第C.9項「デフォルトのjvmcontroller.cfg」

- 第C.10項「デフォルトのwebutil.cfg」

- 第C.11項「デフォルトのwebutilbase.htm」

- 第C.12項「デフォルトのwebutiljpi.htm」

C.1 Forms構成ファイルの場所

表C-1は、UNIXでのForms構成ファイルのデフォルトの場所を示しています。Windowsでも、これらのファイルの場所はほぼ同じです。

表C-1 リリース11.1.1.1.0およびリリース11.1.1.2.0でのファイルとその場所のリスト

ファイル名

リリース11.1.1.1.0での場所

リリース11.1.1.2.0以降での場所

formsweb.cfg

$DOMAIN_HOME/servers/WLS_FORMS/stage/formsapp/11.1.1/formsapp/config

$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config

default.env

$DOMAIN_HOME/servers/WLS_FORMS/stage/formsapp/11.1.1/formsapp/config

$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config

base.htm

$DOMAIN_HOME/servers/WLS_FORMS/stage/formsapp/11.1.1/formsapp/config

$ORACLE_INSTANCE/config/FormsComponent/forms/server

basejpi.htm

$DOMAIN_HOME/servers/WLS_FORMS/stage/formsapp/11.1.1/formsapp/config

$ORACLE_INSTANCE/config/FormsComponent/forms/server

webutilbase.htm

$DOMAIN_HOME/servers/WLS_FORMS/stage/formsapp/11.1.1/formsapp/config

$ORACLE_INSTANCE/config/FormsComponent/forms/server

webutiljpi.htm

$DOMAIN_HOME/servers/WLS_FORMS/stage/formsapp/11.1.1/formsapp/config

$ORACLE_INSTANCE/config/FormsComponent/forms/server

ftrace.cfg

$ORACLE_INSTANCE/config/FormsComponent/forms/server

$ORACLE_INSTANCE/config/FormsComponent/forms/server

web.xml

$DOMAIN_HOME/servers/WLS_FORMS/stage/formsapp/11.1.1/formsapp/formsweb.war/WEB-INF/

$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INF

weblogic.xml

$DOMAIN_HOME/servers/WLS_FORMS/stage/formsapp/11.1.1/formsapp/formsweb.war/WEB-INF/

$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INF

forms.conf

$ORACLE_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconf

$ORACLE_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconf

jvmcontroller.cfg

$ORACLE_INSTANCE/config/FRComponent/frcommon/tools/jvm/

$ORACLE_INSTANCE/config/FRComponent/frcommon/tools/jvm/

webutil.cfg

$ORACLE_INSTANCE/config/FormsComponent/forms/server/

$ORACLE_INSTANCE/config/FormsComponent/forms/server/

Registry.dat

$ORACLE_INSTANCE/config/FormsComponent/forms/registry/oracle/forms/registry/

$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms/registry/oracle/forms/registry

C.2 デフォルトのformsweb.cfg

デフォルトのformsweb.cfgファイルのサンプルには次の内容が含まれます。

#formsweb.cfg defines parameter values used by the FormsServlet
# formsweb.cfg defines parameter values used by the FormsServlet (frmservlet)
# This section defines the Default settings.  Any of them may be overridden in the
# following Named Configuration sections.  If they are not overridden, then the
# values here will be used.
# The default settings comprise two types of parameters: System parameters,
# which cannot be overridden in the URL, and User Parameters, which can.
# Parameters which are not marked as System parameters are User parameters.
# SYSTEM PARAMETERS
# -----------------
# These have fixed names and give information required by the Forms
# Servlet in order to function.  They cannot be specified in the URL query
# string.  But they can be overridden in a named configuration (see below).
# Some parameters specify file names: if the full path is not given,
# they are assumed to be in the same directory as this file.  If a path
# is given, then it should be a physical path, not a URL.
# USER PARAMETERS
# ---------------
# These match variables (e.g. %form%) in the baseHTML file. Their values
# may be overridden by specifying them in the URL query string
# (e.g. "http://myhost.example.com/forms/frmservlet?form=myform&width=700")
# or by overriding them in a specific, named configuration (see below)
[default]
# System parameter: default base HTML file
baseHTML=base.htm
# System parameter: base HTML file for use with Sun's Java Plug-In
baseHTMLjpi=basejpi.htm
# System parameter: delimiter for parameters in the base HTML files
HTMLdelimiter=%
# System parameter: file setting environment variables for the Forms runtime processes
envFile=default.env

# Forms runtime argument: whether to escape certain special characters
# in values extracted from the URL for other runtime arguments
escapeparams=true
# Forms runtime argument: which form module to run
form=test.fmx
# Forms runtime argument: database connection details
userid=
# Forms runtime argument: whether to run in debug mode
debug=no
# Forms runtime argument: host for debugging
host=
# Forms runtime argument: port for debugging
port=
# Forms runtime argument: BIDI digitSubstitution
digitSubstitution=context
# Other Forms runtime arguments: grouped together as one parameter.
# These settings support running and debugging a form from the Builder:
otherparams=obr=%obr% record=%record% tracegroup=%tracegroup% log=%log% term=%term% ssoProxyConnect=%ssoProxyConnect%
# Sub argument for otherparams
obr=no
# Sub argument for otherparams
record=
# Sub argument for otherparams
tracegroup=
# Sub argument for otherparams
log=
# Sub argument for otherparams
term=

# HTML page title
pageTitle=Oracle Fusion Middleware Forms Services

# HTML attributes for the BODY tag
HTMLbodyAttrs=
# HTML to add before the form
HTMLbeforeForm=
# HTML to add after the form
HTMLafterForm=

# Forms applet parameter: URL path to Forms ListenerServlet
serverURL=/forms/lservlet
# Forms applet parameter
codebase=/forms/java
# Forms applet parameter
imageBase=codebase
# Forms applet parameter
width=750
# Forms applet parameter
height=600
# Forms applet parameter
separateFrame=false
# Forms applet parameter
splashScreen=
# Forms applet parameter
allowAlertClipboard=true
# Forms applet parameter
disableValidateClipboard=false
# Forms applet parameter
highContrast=false
# Forms applet parameter
background=
# Forms applet parameter
lookAndFeel=Oracle
# Forms applet parameter
colorScheme=teal
# Forms applet parameter
logo=
# Forms applet parameter
restrictedURLparams=pageTitle,HTMLbodyAttrs,HTMLbeforeForm,HTMLafterForm,log
# Forms applet parameter
formsMessageListener=
# Forms applet parameter
recordFileName=
# Forms applet parameter
serverApp=default
# Forms applet archive setting for other clients (Sun Java Plugin, Appletviewer,
etc)
archive=frmall.jar
# Number of times client should retry if a network failure occurs.  You should
# only change this after reading the documentation.
networkRetries=0
# Page displayed to users to allow them to download Sun's Java Plugin.
# Sun's Java Plugin is typically used for non-Windows clients.
# (NOTE: you should check this page and possibly change the settings)
jpi_download_page=http://java.sun.com/products/archive/j2se/6u12/index.html
# Parameter related to the version of the Java Plugin
jpi_classid=clsid:CAFEEFAC-0016-0000-0012-ABCDEFFEDCBA
# Parameter related to the version of the Java Plugin
jpi_codebase=http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=1,6,0,12
# Parameter related to the version of the Java Plugin
jpi_mimetype=application/x-java-applet;jpi-version=1.6.0_12
# Applet parameter for Sun's Java Plugin
legacy_lifecycle=false
# Single Sign-On OID configuration parameter: indicates whether we allow
# dynamic resource creation if the resource is not yet created in the OID.
ssoDynamicResourceCreate=true
# Single Sign-On parameter: URL to redirect to if ssoDynamicResourceCreate=false
ssoErrorUrl=
# Single Sign-On parameter: Cancel URL for the dynamic resource creation DAS page.
ssoCancelUrl=
# Single Sign-On parameter: indicates whether the url is protected in which
# case mod_osso will be given control for authentication or continue in
# the FormsServlet if not. It is false by default. Set it to true in an
# application-specific section to enable Single Sign-On for that application.
ssoMode=false
# Single Sign-On parameter: indicates whether session should operate in proxy
# user support or not. Specify ssoProxyConnect=yes to enable for particular
application.
ssoProxyConnect=no
# The parameter allow_debug determines whether debugging is permitted.
# Administrators should set allow_debug to "true" if servlet
# debugging is required, or to provide access to the Forms Trace Xlate utility.
# Otherwise these activities will not be allowed (for security reasons).
allow_debug=false
# Parameter which determines whether new Forms sessions are allowed.
# This is also read by the Forms EM Overview page to show the
# current Forms status.
allowNewConnections=true
# EndUserMonitoring
# EndUserMonitoringEnabled parameter
# Indicates whether EUM/Chronos integration is enabled
EndUserMonitoringEnabled=false
# EndUserMonitoringURL
# indicates where to record EUM/Chronos data
EndUserMonitoringURL=
# Config for javascript integration
applet_name=
enableJavascriptEvent=true
# Config variable that will indicate if heartbeat will
# be blocked when a javascript call is a blocking call.
# The default value if false, i.e heart beat will not be
# blocked for any javascript calls.
JavaScriptBlocksHeartBeat=false
# Example Named Configuration Section
# Example 1: configuration to run forms in a separate browser window with
# "generic" look and feel (include "config=sepwin" in the URL)
# You may define your own specific, named configurations (sets of parameters)
# by adding special sections as illustrated in the following examples.
# Note that you need only specify the parameters you want to change.  The
# default values (defined above) will be used for all other parameters.
# Use of a specific configuration can be requested by including the text
# "config=<your_config_name>" in the query string of the URL used to run
# a form.  For example, to use the sepwin configuration, your could issue
# a URL like "http://myhost.example.com/forms/frmservlet?config=sepwin".
[sepwin]
separateFrame=True
lookandfeel=Generic
# Example Named Configuration Section
# Example 2: configuration running the Forms ListenerServlet in debug mode
# (debug messages will be written to the servlet engine's log file).
[debug]
serverURL=/forms/lservlet/debug
# Sample configuration for deployingWebUtil. Note that WebUtil is
# only installed with the Forms Builder and is also available for download
# from OTN.
[webutil]
WebUtilArchive=frmwebutil.jar,jacob.jar
WebUtilLogging=off
WebUtilLoggingDetail=normal
WebUtilErrorMode=Alert
WebUtilDispatchMonitorInterval=5
WebUtilTrustInternal=true
WebUtilMaxTransferSize=16384
baseHTML=webutilbase.htm
baseHTMLjpi=webutiljpi.htm
archive=frmall.jar
lookAndFeel=oracle

C.3 プラットフォーム固有のdefault.envファイル

default.envには、プラットフォーム固有の2つのバージョンがあります。

- デフォルトのWindows用default.envファイル

- デフォルトのUNIXおよびLinux用default.envファイル

C.3.1 デフォルトのWindows用default.envファイル

# default.env - default Forms environment file, Windows version
#
# This file is used to set the Forms runtime environment parameters.
# If a parameter is not defined here, the value used will be that defined
# in the environment in which the WLS Managed Server was started.
#
# NOTES
# Configuration assistant will replace all the macro's with
#    the actual values.
#
ORACLE_HOME=D:\Oracle2\Middleware\as_2
ORACLE_INSTANCE=D:\Oracle2\Middleware\asinst_2

#
# TNS Entry to locate the database
#
TNS_ADMIN=D:\Oracle2\Middleware\asinst_2\config

#
# Search path for Forms applications (.fmx files, PL/SQL libraries)
# If you need to include more than one directory, they should be semi-colon
# separated (e.g. c:\test\dir1;c:\test\dir2)
#
FORMS_PATH=D:\Oracle2\Middleware\as_2\forms;D:\Oracle2\Middleware\asinst
_2\FormsComponent\forms

# webutil config file path
WEBUTIL_CONFIG=D:\Oracle2\Middleware\asinst
_2\config\FormsComponent\forms\server\webutil.cfg

# Disable/remove this variable if end-users need access to the query-where
# functionality which potentially allows them to enter arbitrary SQL
# statements when in enter-query mode.
FORMS_RESTRICT_ENTER_QUERY=TRUE

#
# The PATH setting is required in order to pick up the JVM (jvm.dll and
# java.exe). Since PATH is being set, it needs to also include
# D:\Oracle2\Middleware\as_2\bin so relevant files are correctly found.
#
PATH=D:\Oracle2\Middleware\as_2\bin;D:\Oracle2\Middleware\as
2\jdk\jre\bin\client;D:\Oracle2\Middleware\as_2\jdk\bin

#
# Settings for Forms tracing and logging
# -----------------------------------------------
# Note: By default tracing and logging directory is
# %ORACLE_INSTANCE%\FormsComponent\forms\trace
# To change the trace directory this entry has to be uncommented and set to
# desired directory for tracing and logging

#FORMS_TRACE_DIR=%ORACLE_INSTANCE%\FormsComponent\forms\trace

#
# Settings for Javascript events
# -----------------------------------------------
# Note: If this variable is set to false then the triggers and
# built-ins associated with javascript events are disabled

#FORMS_ALLOW_JAVASCRIPT_EVENTS=

#
# System settings
# ---------------
# You should not normally need to modify these settings
#
FORMS=D:\Oracle2\Middleware\as_2\forms

#
# Java class path
#   This is required for the Forms debugger
#   You can append your own Java code here)
# frmsrv.jar and ldapjclnt11.jar are required for
# the password expiry feature to work(#2213140).
#
CLASSPATH=D:\Oracle2\Middleware\as
_2\forms\j2ee\frmsrv.jar;D:\Oracle2\Middleware\as
_2\jlib\ldapjclnt11.jar;D:\Oracle2\Middleware\as
_2\jlib\debugger.jar;D:\Oracle2\Middleware\as
_2\jlib\ewt3.jar;D:\Oracle2\Middleware\as
_2\jlib\share.jar;D:\Oracle2\Middleware\as
_2\jlib\utj.jar;D:\Oracle2\Middleware\as
_2\jlib\zrclient.jar;D:\Oracle2\Middleware\as
_2\reports\jlib\rwrun.jar;D:\Oracle2\Middleware\as
_2\forms\java\frmwebutil.jar;D:\Oracle2\Middleware\as_2/jlib/start
_dejvm.jar;D:\Oracle2\Middleware\as_2\opmn\lib\optic.jar

C.3.2 デフォルトのUNIXおよびLinux用default.envファイル

# default.env - default Forms environment file, Linux version
#
# This file is used to set the Forms runtime environment parameters.
# If a parameter is not defined here, the value used will be that defined
# in the environment in which the WLS Managed Server was started.
#
# NOTES
#    Configuration assitant will replace all the macro's with
#    the actual values.
#
#
#
ORACLE_HOME=/as_1
ORACLE_INSTANCE=/asinst_1

#
# TNS Entry to locate the database
#
TNS_ADMIN=/asinst_1/config

#
# Search path for Forms applications (.fmx files, PL/SQL libraries)
#
FORMS_PATH=/as_1/forms:/asinst_1/FormsComponent/forms

#
# WebUtil config file path. WebUtil is available for download from OTN.
#
WEBUTIL_CONFIG=/asinst_1/config/FormsComponent/forms/server/webutil.cfg

# Disable/remove this variable if end-users need access to the query-where
# functionality which potentially allows them to enter arbitrary SQL
# statements when in enter-query mode.
FORMS_RESTRICT_ENTER_QUERY=TRUE

# Java class path
#   This is required for the Forms debugger
#   You can append your own Java code here)
# frmsrv.jar and ldapjclnt11.jar are required for
# the password expiry feature to work(#2213140).
#
CLASSPATH=/as
_1/forms/j2ee/frmsrv.jar:/as
_1/jlib/ldapjclnt11.jar:/as
_1/jlib/debugger.jar:/as
_1/jlib/ewt3.jar:/as_1/jlib/share.jar:/as
_1/jlib/utj.jar:/as
_1/jlib/zrclient.jar:/as
_1/reports/jlib/rwrun.jar:/as
_1/forms/java/frmwebutil.jar:/as_1/jlib/start
_dejvm.jar:/as_1/opmn/lib/optic.jar
#

# The PATH setting is not required for frmweb if the Forms executables are
# in <ORACLE_HOME>/bin. JDK/bin is also required for dejvm to be
# auto-started by frmweb.
#
PATH=/scratch/cls0223/bea/as_1/bin:/scratch/cls0223/bea/as_1/jdk/bin

#
# Settings for Reports
# -------------------------------
# NOTE: This setting is only needed if Reports applications
# are called from Forms applications
# However, because of bug 2336698 where a report is started from
# a forms debugger session with an already running JVM, then
# the report's class path should also be included in the forms
# class path.
# We no longer need to set REPORTS_CLASSPATH as forms will
# always start the JVM before calling reports.

#
# Settings for Forms tracing and logging
# -----------------------------------------------
# Note: By default tracing and logging directory is
# $ORACLE_INSTANCE/FormsComponent/forms/trace
# To change the trace directory this entry has to be uncommented and set to
# desired directory for tracing and logging

#FORMS_TRACE_DIR=/scratch/cls0223/asinst_1/FormsComponent/forms/trace

#
# Settings for Javascript events
# -----------------------------------------------
# Note: If this variable is set to false then the triggers and
# built-ins associated with javascript events are disabled

#FORMS_ALLOW_JAVASCRIPT_EVENTS=

#
# System settings
# ---------------
# You should not normally need to modify these settings
#
#
# Path for shared library objects
#   This is highly platform (if not machine) specific !  At install time
#   <percent>LD_LIBRARY_PATH<percent> should be replaced with the
#   actual value of the LD_LIBRARY_PATH environment variable (at install
#   time).  That should ensure we have the paths for such necessities as
#   the motif and X11 libraries.
# Explanations:
#   - Reports needs the path for libjava.so
#     (.../jre/lib/sparc)
#   - Forms needs two paths to the jre, for libjvm.so and libhpi.so
#   - In JDK 1.4.1 the location of libjvm.so is lib/sparc (there is no
#     classic directory) so we do not include the .../classic directory
#     below. There are other versions of libjvm.so (in directories server,
#     client and hotspot) but we will use the version in lib/sparc for now.
#
LD_LIBRARY_PATH=/bea/as_1/lib:/bea/as
_1/jdk/jre/lib/i386:/bea/as
_1/jdk/jre/lib/i386/server:/bea/as_1/jdk/jre/lib/i386/native
_threads
#
# Setting to take care of signal-chaining facility offered by JVM 1.5
# Without this Forms/Reports integration could have issues on Unix/Linux
#
LD_PRELOAD=/as_1/jdk/jre/lib/i386/libjsig.so

C.4 base.htmファイルとbasejpi.htmファイル

Formsのインストールおよび構成中に、Oracle Universal Installerによってシステムに2つのベースHTMLファイルが作成されます。ほとんどの場合、これらのファイルを変更する必要はありません。これらのファイルを変更する必要がある場合は、独自のバージョンを作成し、これをformsweb.cfgファイルから参照する必要があります。デフォルトのファイルは、パッチのインストールによってオーバーライドされます。

ユーザーが最初にOracle Formsアプリケーションを起動すると(アプリケーションのURLへのリンクをクリックすることで)、ベースHTMLファイルがFormsサーブレットによって読み取られます。

ベースHTMLファイル内の変数(%variablename%)は、第4.2項「Forms Servicesの構成」で説明されているようにformsweb.cfgファイルに指定された適切なパラメータ値によって置換され、URLリクエストがある場合はその問合せパラメータの値によって置換されます。問合せパラメータの値は、formsweb.cfgファイル内の値をオーバーライドします。

次に、ベースHTMLファイルがユーザーのWebブラウザにダウンロードされます。

次のベースHTML開始ファイルが$ORACLE_INSTANCE/config/FormsComponent/forms/server/ディレクトリに格納されます。

- basejpi.htm: Java Plug-In用のベースHTMLファイル。クライアントのブラウザがWindows上で動作している場合、Formsサーブレットではこのデフォルト・ファイルを使用します。

- base.htm: AppletViewerでFormsアプレットを実行するために必要なAPPLETタグを記述したベースHTMLファイル。または、Oracle Formsで動作確認済のネイティブJVMでオラクル社が動作確認済の任意のWebブラウザで、Formsアプレットを実行するために必要なAPPLETタグを記述したベースHTMLファイル。例は、「デフォルトのbase.htmファイル」を参照してください。

新しいベースHTMLファイルを作成するには:

1. $ORACLE_INSTANCE/config/FormsComponent/forms/server/ディレクトリにある開始ファイルbasejpi.htmまたはbase.htmをコピーします。

2. ファイル名を変更します(たとえば、order.htm)。

3. ユーザーに表示されるテキストを追加または変更します(たとえば、<TITLE>タグおよび<BODY>タグ内のテキスト)。

4. 必要に応じてパラメータを変更します。ベースHTMLファイルの変数を使用し、「formsweb.cfg」で説明されているように、formsweb.cfgファイルの実際の値を指定します。
ベースHTMLのタグも固有の名前の付いた構成セクションで設定でき、システムのデフォルト値を上書きできます。これは、個別のカスタム・ベースHTMLテンプレートを使用する必要がある場合にお薦めします。ただし、カスタム・テンプレートをすべてのアプリケーションに使用する場合は、formsweb.cfgファイルのデフォルトの構成セクションを変更することをお薦めします。

5. 新しいベースHTMLファイルを$ORACLE_INSTANCE/config/FormsComponent/forms/server/ディレクトリに置き、この新しいベースHTMLファイルを指すようにformsweb.cfgファイルのbaseHTMLパラメータとbaseHTMLjpiパラメータを更新します。

C.4.1 ベースHTMLファイル内のパラメータと変数

base.htmまたはbasejpi.htmファイルで提供されるパラメータ・タグを使用しない場合は、ファイルから削除してください。

残りのパラメータ値を変数(%variablename%)としてベースHTMLファイルで指定することをお薦めします。例:

<PARAM NAME="logo"  VALUE="%logo%">

次に、formsweb.cfgファイルに実際のパラメータ値を指定します。すべての変数が実行時に適切なパラメータ値で置き換えられます。

C.4.1.1 使用方法

- 変数の値は、ベースHTMLファイル内のどこでも使用できます。変数は特別のデリミタで囲まれた名前として指定されます(デフォルトのデリミタは%)。たとえば、HTMLファイルに次の行を置くことができます。

ARCHIVE="%Archive%"

次に値をformsweb.cfgファイルまたはURLの問合せ文字列内の%Archive%に割り当てる必要があります。

- すべての変数は実行時に値を受け取る必要があります。変数が値を受け取らないと、Forms ServicesがユーザーのWebブラウザに渡す適切なHTMLファイルを構築できないため、エラーが発生します。

- パフォーマンスを向上するには、JARファイルのダウンロード用のソースとして1つのWebサーバーのみを使用してください。同じファイルを異なるサーバーから複数回ダウンロードすることを防げます。

C.4.2 デフォルトのbase.htmファイル

<HTML>
<!-- FILE: base.htm (Oracle Forms) -->
<!--                               -->
<!-- This is the default base HTML file for running a form on
<!--the web using a generic APPLET tag to include   -->
<!-- Forms applet.-->
<!--                              -->
<!-- IMPORTANT NOTES:             -->
<!-- Default values for all the variables which appear
<!-- below (enclosed in percent characters) are defined-->
<!-- in the servlet configuration file (formsweb.cfg).    -->
<!--  It is preferable to make changes in that file where   -->
<!--  possible, rather than this one.     -->

<!-- This file will be REPLACED if you reinstall
<!--Oracle Forms, so you are advised to make your own  -->
<!--  version if you want to make want to make any  -->
<!--  modifications.  You should then set the       -->
<!-- baseHTML parameter in the Forms Servlet
<!--configuration file (formsweb.cfg) to point to     -->
<!--  your new file instead of this one.  -->
<HEAD><TITLE>%pageTitle%</TITLE></HEAD>
<BODY %HTMLbodyAttrs%>
%HTMLbeforeForm%
<COMMENT id="forms_plugin_info"
serverURL="%serverURL%"
appcodebase="%codebase%"
apparchive="%archive%"
appheight="%Height%"
appwidth="%Width%"
appname="%applet_name%">
</COMMENT>
<!-- Forms applet definition (start) -->
<NOSCRIPT>
<APPLET CODEBASE="%codebase%"
CODE="oracle.forms.engine.Main"
ARCHIVE="%archive%"
WIDTH="%Width%"
HEIGHT="%Height%"
NAME="%applet_name%" MAYSCRIPT>
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/forms/frmjscript/forms_base_ie.js">
</SCRIPT>
<PARAM NAME="serverURL" VALUE="%appletServerURL%">
<PARAM NAME="networkRetries" VALUE="%networkRetries%">
<PARAM NAME="serverArgs"
VALUE="%escapeParams% module=%form% userid=%userid% debug=%debug% host=%host% port=%port% %otherParams%">
<PARAM NAME="separateFrame" VALUE="%separateFrame%">
<PARAM NAME="splashScreen"  VALUE="%splashScreen%">
<PARAM NAME="background"  VALUE="%background%">
<PARAM NAME="lookAndFeel"  VALUE="%lookAndFeel%">
<PARAM NAME="colorScheme"  VALUE="%colorScheme%">
<PARAM NAME="serverApp" VALUE="%serverApp%">
<PARAM NAME="logo" VALUE="%logo%">
<PARAM NAME="imageBase" VALUE="%imageBase%">
<PARAM NAME="formsMessageListener" VALUE="%formsMessageListener%">
<PARAM NAME="recordFileName" VALUE="%recordFileName%">
<PARAM NAME="EndUserMonitoringEnabled" VALUE="%EndUserMonitoringEnabled%">
<PARAM NAME="EndUserMonitoringURL" VALUE="%EndUserMonitoringURL%">
<PARAM NAME="heartbeat" VALUE="%heartbeat%">
<PARAM NAME="MaxEventWait" VALUE="%MaxEventWait%">
<PARAM NAME="allowAlertClipboard" VALUE="%allowAlertClipboard%">
<PARAM NAME="disableValidateClipboard" VALUE="%disableValidateClipboard%">
<PARAM NAME="enableJavascriptEvent" VALUE="%enableJavascriptEvent%">
<PARAM NAME="digitSubstitution" VALUE="%digitSubstitution%">
<PARAM NAME="legacy_lifecycle" VALUE="%legacy_lifecycle%">
<PARAM NAME="JavaScriptBlocksHeartBeat" VALUE="%JavaScriptBlocksHeartBeat%">
<PARAM NAME="highContrast" VALUE="%highContrast%">
</Applet>
<!--Forms applet deinition (end) -->
&HTMLafterForm%
</BODY>
</HTML>

C.4.3 デフォルトのbasejpi.htmファイル

<HTML>
<!-- FILE: basejpi.htm (Oracle Forms)   -->
<!--                                    -->
<!-- This is the default base HTML file for running
<!--a form on the  web using the JDK Java Plugin.   -->
<!--  This is used for example when     -->
<!-- running with Netscape on Unix.     -->
<!-- IMPORTANT NOTES:                   -->
<!-- Default values for all the variables which -->
<!--appear below (enclosed in percent characters)-->
<!-- are defined in the servlet configuration file  -->
<!-- (formsweb.cfg). It is preferable to make      -->
<!-- changes in that file where possible, rather than
<!--this one.       -->
<!--                                 -->
<!-- This file will be REPLACED if you reinstall
<!--Oracle Forms, so     -->
<!-- you are advised to create your own version if
<!--you want to make   -->
<!-- any modifications.  You should then set the
<!--baseHTMLjpi          -->
<!-- parameter in the Forms Servlet configuration file
<!--(formsweb.cfg) -->
<!-- to point to your new file instead of this one. -->
<HEAD>
<TITLE>%pageTitle%</TITLE>
</HEAD>
<BODY %HTMLbodyAttrs%>
%HTMLbeforeForm%
<COMMENT id="forms_plugin_info"
serverURL="%serverURL%"
plug_ver="%jpi_classid%"
appheight="%Height%"
appwidth="%Width%"
appcodebase="%jpi_codebase%"
appname="%applet_name%">
</COMMENT>
<!-- Forms applet definition (start) -->
<NOSCRIPT>
<OBJECT classid="%jpi_classid%"
codebase="%jpi_codebase%"
WIDTH="%Width%"
HEIGHT="%Height%"
HSPACE="0"
VSPACE="0"
ID="%applet_name%">
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/forms/frmjscript/forms_ie.js">
</SCRIPT>
<PARAM NAME="TYPE"       VALUE="%jpi_mimetype%">
<PARAM NAME="CODEBASE"   VALUE="%codebase%">
<PARAM NAME="CODE"       VALUE="oracle.forms.engine.Main" >
<PARAM NAME="ARCHIVE"    VALUE="%archive%" >
<PARAM NAME="serverURL" VALUE="%appletServerURL%">
<PARAM NAME="networkRetries" VALUE="%networkRetries%">
<PARAM NAME="serverArgs"
VALUE="%escapeParams% module=%form% userid=%userid% debug=%debug% host=%host% port=%port% %otherParams%">
<PARAM NAME="separateFrame" VALUE="%separateFrame%">
<PARAM NAME="splashScreen"  VALUE="%splashScreen%">
<PARAM NAME="background"  VALUE="%background%">
<PARAM NAME="lookAndFeel"  VALUE="%lookAndFeel%">
<PARAM NAME="colorScheme"  VALUE="%colorScheme%">
<PARAM NAME="serverApp" VALUE="%serverApp%">
<PARAM NAME="logo" VALUE="%logo%">
<PARAM NAME="imageBase" VALUE="%imageBase%">
<PARAM NAME="formsMessageListener" VALUE="%formsMessageListener%">
<PARAM NAME="recordFileName" VALUE="%recordFileName%">
<PARAM NAME="EndUserMonitoringEnabled" VALUE="%EndUserMonitoringEnabled%">
<PARAM NAME="EndUserMonitoringURL" VALUE="%EndUserMonitoringURL%">
<PARAM NAME="heartBeat" VALUE="%heartBeat%">
<PARAM NAME="MaxEventWait" VALUE="%MaxEventWait%">
<PARAM NAME="allowAlertClipboard" VALUE="%allowAlertClipboard%">
<PARAM NAME="disableValidateClipboard" VALUE="%disableValidateClipboard%">
<PARAM NAME="enableJavascriptEvent" VALUE="%enableJavascriptEvent%">
<PARAM NAME="MAYSCRIPT" VALUE="%enableJavascriptEvent%">
<PARAM NAME="digitSubstitution" VALUE="%digitSubstitution%">
<PARAM NAME="legacy_lifecycle" VALUE="%legacy_lifecycle%">
<PARAM NAME="JavaScriptBlocksHeartBeat" VALUE="%JavaScriptBlocksHeartBeat%">
<PARAM NAME="highContrast" VALUE="%highContrast%">
<COMMENT>
<EMBED SRC="" PLUGINSPAGE="%jpi_download_page%"
TYPE="%jpi_mimetype%"
java_codebase="%codebase%"
java_code="oracle.forms.engine.Main"
java_archive="%archive%"
WIDTH="%Width%"
HEIGHT="%Height%"
HSPACE="0
VSPACE="0"
NAME="%applet_name%"
serverURL="%appletServerURL%"
networkRetries="%networkRetries%"
serverArgs="%escapeParams% module=%form% userid=%userid% debug=%debug% host=%host% port=%port% %otherparams%"
separateFrame="%separateFrame%"
splashScreen="%splashScreen%"
background="%background%"
lookAndFeel="%lookAndFeel%"
colorScheme="%colorScheme%"
serverApp="%serverApp%"
logo="%logo%"
imageBase="%imageBase%"
recordFileName="%recordFileName%"
EndUserMonitoringEnabled="%EndUserMonitoringEnabled%"
EndUserMonitoringURL="%EndUserMonitoringURL%"
heartBeat="%heartBeat%"
MaxEventWait="%MaxEventWait%"
disableValidateClipboard="%disableValidateClipboard%"
allowAlertClipboard="%allowAlertClipboard%"
enableJavascriptEvent="%enableJavascriptEvent%"
MAYSCRIPT="%enableJavascriptEvent%"
digitSubstitution="%digitSubstitution%"
legacy_lifecycle="%legacy_lifecycle%"
JavaScriptBlocksHeartBeat="%JavaScriptBlocksHeartBeat%"
highContrast="%highContrast%"
<NOEMBED>
</COMMENT>
</NOEMBED>
</EMBED>
</OBJECT>
<!-- Forms applet definition (end) -->
%HTMLafterForm%
</BODY>
</HTML>

C.5 web.xml

web.xmlファイルは、Forms Java EEアプリケーションのWebアプリケーション・デプロイメント・ディスクリプタ・ファイルです。このファイルは$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INF/にあります。上級ユーザーは、web.xmlファイルを編集して次のことを実行できます。

- 別のテスト・オプションを使用可能にする。
Oracle Fusion MiddlewareのインストールでOracle Formsを正しく実行できない場合、セキュリティ上の理由から通常は使用できないようになっているテスト・オプションを使用可能にすると役立つ場合があります。このオプションを使用するには、web.xmlファイルを編集してfrmservletのtestModeパラメータをtrueに設定します。次にWebサーバー(またはOracle WebLogic管理対象サーバー)を再起動します。追加のオプションがFormsサーブレットの管理ページ(http://<your_web_server_hostname>:<port>/forms/frmservlet/adminなどのURLでアクセス可能)に表示されます。

- (Formsサーブレットではなく)静的HTMLページを使用してOracle Formsを実行する。
Oracle FormsアプリケーションをFormsサーブレット以外の方法(静的HTMLページやJSPなど)で実行している場合、formsweb.cfgファイルのパラメータ設定は使用されません。そのため、Listener ServletにworkingDirectoryやenvFileなどのサーブレット・パラメータを定義する必要があります(Formsランタイム・プロセスの現在の作業ディレクトリや、使用する環境設定が含まれたファイルを指定します)。

サーブレットのマッピングはweb.xmlで定義します。表C-2にサーブレットのマッピングをいくつか示します。

表C-2 web.xmlのサーブレットのマッピング

URLパス

型

マッピング先

目的

/forms/frmservlet

サーブレット・マウント・ポイント

Formsサーブレット

フォームを実行するHTMLページを作成します。

/forms/lservlet

サーブレット・マウント・ポイント

Formsリスナー・サーブレット

Formsアプレットからのメッセージ通信量を処理します。

C.5.1 デフォルトのweb.xmlファイル

<?xml version='1.0' encoding='UTF-8'?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<servlet>
<servlet-name>frmservlet</servlet-name>
<servlet-class>oracle.forms.servlet.FormsServlet</servlet-class>
<init-param>
<!-- Turn on or off sensitive options on the frmservlet/admin page.
For security reasons this should be set to false for
production sites.
-->
<param-name>testMode</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>lservlet</servlet-name>
<servlet-class>oracle.forms.servlet.ListenerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>frmservlet</servlet-name>
<url-pattern>/frmservlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>lservlet</servlet-name>
<url-pattern>/lservlet/*</url-pattern>
</servlet-mapping>
<!-- add mime mapping for the java scripts -->
<mime-mapping>
<extension>js</extension>
<mime-type>application/x-javascript</mime-type>
</mime-mapping>
<welcome-file-list>
<welcome-file>lservlet</welcome-file>
<welcome-file>frmservlet</welcome-file>
</welcome-file-list>
<listener>
<listener-class>oracle.forms.config.mbeans.FormsappLifeCycleCallBack</listener-class>
</listener>
<!--  Define security constraints to limit access to the defined url to a
particular role. Logical roles are defined in web.xml and these roles are mapped
to actual roles(principal roles) in weblogic.xml
-->
<security-constraint>
<web-resource-collection>
<web-resource-name>TraceLog</web-resource-name>
<url-pattern>/frmservlet/trace/*</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<description>Admin users only</description>
<role-name>formsadmin</role-name>
</auth-constraint>
</security-constraint>

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>WebApp</realm-name>
</login-config>
<security-role>
<description>admin role</description>
<role-name>formsadmin</role-name>
</security-role>

</web-app>

C.6 weblogic.xml

weblogic.xmlは、Webアプリケーション・デプロイメント・ディスクリプタ・ファイルです。このファイルは$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INFにあります。

<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<session-descriptor>
<timeout-secs>7200</timeout-secs>
<invalidation-interval-secs>120</invalidation-interval-secs>
<debug-enabled>false</debug-enabled>
<id-length>52</id-length>
<tracking-enabled>true</tracking-enabled>
<cache-size>1024</cache-size>
<max-in-memory-sessions>-1</max-in-memory-sessions>
<cookies-enabled>false</cookies-enabled>
</session-descriptor>

<!--logical roles defined in web.xml are mapped to the real users below -->
<security-role-assignment>
<role-name>formsadmin</role-name>
<principal-name>Administrators</principal-name>
</security-role-assignment>
</weblogic-web-app>

C.7 forms.conf

11gよりも前のリリースでは、forms.confで仮想パスのマッピングを定義していました。11gでは、Forms Servicesアプリケーションの配布先である管理対象サーバーに対するWebLogicハンドラのマッピングをforms.confで定義しています。詳細は、第3.2.3項「Oracle HTTP Listenerの構成ファイル」を参照してください。このファイルは、$ORACLE_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconfにあります。

注意:

forms.confで接頭辞/forms/を使用してユーザー定義のaliasMatchを指定する場合は、ディレクティブWLExcludePathOrMimeTypeを追加します。Linuxでの例をあげると、forms.confで/forms/usericonsにaliasMatchを定義する場合は、次のようにディレクティブWLExcludePathOrMimeTypeを定義します。

AliasMatch /forms/usericons/(..*) "/home/userx/myicons/$1"
WLExcludePathOrMimeType /forms/usericons/

C.7.1 デフォルトのforms.conf

# Name
#    forms.conf  - Forms component Apache directives configuration file.

# Purpose
#    It should include the weblogic managed server (routing) directives for
#    the servers where Forms applications are deployed and other miscellaneous
#    Forms component OHS directives.
#
#
# Remarks
#    This file is included with the OHS configuration under
#    $OI/config/OHS/<OHS Node Name>/moduleconf sub-directory.
#
#
<IfModule !mod_osso.c>
LoadModule osso_module  ${ORACLE_HOME}/ohs/modules/mod_osso.so
</IfModule>
<IfModule mod_osso.c>
OssoHTTPOnly off
</IfModule>
<Location /forms>
SetHandler weblogic-handler
WebLogicCluster    dadvma0190.abc.oracle.com:9001
DynamicServerList OFF
</Location>
#
# virtual mapping for the /forms/html mapping.
#
RewriteEngine on
RewriteRule ^/forms/html/(..*) /workaroundhtml/$1 [PT]
AliasMatch ^/workaroundhtml/(..*)
"/scratch/fmw/ps1/rc3/asinst_2/config/FormsComponent/forms/html/$1"

C.8 Registry.dat

場所: $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms/registry/oracle/forms/registry

このファイルを使用すると、Forms Servicesで使用するデフォルトのフォント、フォント・マッピングおよびアイコンを変更できます。

C.8.1 Registry.dat

# This is the Registry file.
#
# This file contains the logical [Java] Class name and an associated
# [numerical] identifier that will be used to refer to objects of the
# class in order to reduce the amount of information that needs to be
# repeatedly transmitted to the client.
#
# This file is of the Form understood by java.util.Properties (for now)
#
# The System Level sound file is relative to the CODEBASE
#
# The oracle classes which used to be defined here have now been moved to
# within the code.
#
# #
# Defaults for the Font details, all names are Java Font names.  Each of
# these parameters represents the default property to use when none is
# specified.
# defaultFontname represents the default Java fontName.
# defaultSize     represents the default fontSize.  Note that the size is
#                 multiplied by 100 (e.g. a 10pt font has a size of 1000).
# defaultStyle    represents the default fontStyle, PLAIN or ITALIC.
# defaultWeight   represents the default fontWeight, PLAIN or BOLD.
#
default.fontMap.defaultFontname=Dialog
default.fontMap.defaultSize=900
default.fontMap.defaultStyle=PLAIN
default.fontMap.defaultWeight=PLAIN
#
#
# Default Font Face mapping.
#
# appFontname  represents a comma delimited list of Application Font Names.
# javaFontname represents a comma delimited list of Java Font Names.
#
# The number of entries in the appFontname list should match the number in
# the javaFontname list.  The elements of the list are comma separated and
# *all* characters are taken literally, leading and trailing spaces are
# stripped from Face names.
#
# Note that this file uses the Java 1.1 Font names in order to be able to
# handle the NLS Plane (BUG #431051)
#
default.fontMap.appFontnames=Courier New,Courier,courier,System,Terminal,Fixed,Fixedsys,Times,Times New Roman,MS Sans Serif,Arial
default.fontMap.javaFontnames=MonoSpaced,MonoSpaced,MonoSpaced,Dialog,MonoSpaced,Dialog,Dialog,Serif,Serif,Dialog,SansSerif
# The Application Level icon files are relative to the DOCUMENTBASE
#   example: icons/
# or an absolute URL.
#   example: http://www.example.net/~luser/d2k_project/
#
default.icons.iconpath=
default.icons.iconextension=gif

#
# Application level settings to control UI features
#
app.ui.lovButtons=false
app.ui.requiredFieldVA=false
#    The background color is specified as an RGB triple.
app.ui.requiredFieldVABGColor=255,0,0

C.9 デフォルトのjvmcontroller.cfg

jvmcontrollerパラメータを使用すると、特定のJVMコントローラを使用するようにFormsアプリケーションを構成できます。このパラメータはformsweb.cfgで指定します。JVMコントローラで使用するパラメータは、そのJVMコントローラの構成ファイルjvmcontrollers.cfgで指定します。このファイルは$ORACLE_INSTANCE/config/FRComponent/frcommon/tools/jvm/にあります。

# jvmcontrollers.cfg defines parameter values used by the JVM Controller(dejvm)

# Default JVM Controller
# This section defines the default settings. Any of them may be overridden
# in the following Named JVM Controller sections.  If they are not overridden,
# then the values here will be used.
[default]

# Example: Named JVM Controller
# This section shows example values for a jvm controller. These
# values overrides any values defined for the default controller.
[example]
jvmoptions=-Xms512m -Xmx1024m

# Classpath settings given here is an example only. This should be
# modified to include the required jar files and should be set in
# platform specific manner.
classpath=/myapps/common/jars/common.jar:/myapps/anapp/jars/anapp.jar
maxsessions=50
logdir=/myapps/anapp/log
logging=off

C.10 デフォルトのwebutil.cfg

webutil.cfgファイルは、実行時のWebUtilを構成するために使用するファイルの1つです。このファイルの詳細は、第3.2.6項「WebUtilの構成ファイル」を参照してください。設計時のWebUtilの使用については、Oracle Forms Developerのヘルプを参照してください。このファイルは$ORACLE_INSTANCE/config/FormsComponent/forms/server/にあります。

# ---------------------------------------------------------------------------
# webutil.cfg - WebUtil default configuration file
# ---------------------------------------------------------------------------
# This file provides all of the configuration settings for webutil. These are
# divided into the following sections:
# 1. Logging Options
# 2. Installation Options
# 3. File Upload and Download Options
# 1. Server Side Logging Options for logging errors and log messages
# You must set logging.enabled to true to allow mid-tier logging. Without this
# mid-tier logging will not take place no matter what PL/SQL or URL options
# are supplied to switch it on. Once logging is enabled the other settings come
# into play.
#
# Details
# -------
#  logging.file       : Defines the file name and location of the log file.
#                       Note that WebUtil does no log file management. You may
#                       need to manually clean this file up from time to time.
#  logging.enabled    : Can be TRUE or FALSE
#  logging.errorsonly : Can be TRUE or FALSE. Setting to true will ensure that
#                       only errors and not normal informational log messages
#                       are written to the log file. For product use this would
#                       normally be set to TRUE
#  logging.connections: Can be TRUE or FALSE. Setting to true will cause each
#                       connection from a client using WebUtil to write into
#                       the log as it sets up.
logging.file=
logging.enabled=FALSE
logging.errorsonly=FALSE
logging.connections=FALSE
# 2. Installation Options
# WebUtil needs to download some files to the client in order to perform
# certain integration operations such as OLE or Registry Access. These files
# are downloaded the first time that you access one of the functions that need
# them. You have to define the location of these files on the server and the
# location on the client.
#
# Details
# -------
#  install.syslib.location  : The virtual path to the directory holding the
#                             webutil library files on the server side. This
#                             must either be an absolute URL or a URL that is
#                             relative to the documentbase
#
#  install.syslib.location.client.<os>  :
#                             The path to the directory on the client machine
#                             where webutil library files will be downloaded.
#                             This must either be an absolute path or a path
#                             that is relative to client user profile or HOME.
#                             Directory will be created if necessary along with
#                             other required parent directories.
#                             If the path is not set, it will be treated as
#                             a special case where libraries will be downloaded
#                             to client JRE\bin (windows) or JRE/lib (unix).
#                             If this directory is changed, all the libraries
#                             will be redownloaded again.
#
#  install.syslib.<os>.<package>.<n> :
#                             The name(s) of the libraries required for
#                             particular webutil beans. The format of this is
#                             name|size|version|showDownloadDialog. Multiple
#                             libraries can be downloaded per package. But
#                            ensure that the <n> values are consecutive and
#                             start at 1
install.syslib.location=/webutil
# Uncomment and change the following if you want to specify a client location
# where the syslib libraries can be downloaded.
#install.syslib.location.client.0=webutil\syslib
#install.syslib.location.client.1=webutil/syslib
# Change size and version if necessary, like when upgrading the library.
# Normally this would not be required since most of these libraries come with
# install itself.
install.syslib.0.7.1=jacob.dll|106496|1.10|true
install.syslib.0.9.1=JNIsharedstubs.dll|65582|1.0|true
install.syslib.0.9.2=d2kwut60.dll|192512|1.0|true
# 3. Upload / Download Options
# You can also add your own libraries in here, e.g.
#install.syslib.0.user.1=testwebutil.dll|204872|1.0|true
# For the file upload and download options you can define the default locations
# on the server that webutil can use as a work area. Optionally you can switch
# upload and download off
# Details
# -------
#  transfer.database.enabled   : Can be TRUE or FALSE - allows you to enable or
#                                disable upload and download from the database
#                                server.
#  transfer.appsrv.enabled     : Can be TRUE or FALSE - allows you to enable or
#                                disable upload and download from the
#                                application server.
#  transfer.appsrv.workAreaRoot: The root of the location in which WebUtil can
#                                store temporary files uploaded from the client.
#                                If no location is specified, application server
#                                user_home/temp will be assumed.
#                                This location is always readable and writable
#                                no matter what the settings in
#                                transfer.appsrv.* are. This setting is
#                                required if you need the Client side
#                                READ/WRITE_IMAGE_FILE procedures.
#  transfer.appsrv.accessControl:Can be TRUE or FALSE - allows you to indicate
#                                that uploads and downloads can only occur from
#                                the directories named in the
#                                transfer.appsrv.read.n and
#                                transfer.appsrv.write.n entries and their
#                                subdirectories. If this setting is FALSE,
#                                transfers can happen anywhere.
#  transfer.appsrv.read.<n>:     List of directory names that downloads can read
#                                from.
#  transfer.appsrv.write.<n>:    List of directory names that uploads can write
#                                to.
#NOTE: By default the file transfer is disabled as a security measure
transfer.database.enabled=FALSE
transfer.appsrv.enabled=FALSE
transfer.appsrv.workAreaRoot=
transfer.appsrv.accessControl=TRUE
#List transfer.appsrv.read.<n> directories
transfer.appsrv.read.1=c:\temp
#List transfer.appsrv.write.<n> directories
transfer.appsrv.write.1=c:\temp
# 4. Others
# Details
# -------
# BlockAllowHeartBeat     : To continue the heart beat communication with the
#                           server when set to TRUE. By default the value is
#                           set to False. When False there would not be heart
#                           beat communication in blocking mode.
BlockAllowHeartBeat=False

C.11 デフォルトのwebutilbase.htm

このファイルは$ORACLE_INSTANCE/config/FormsComponent/forms/server/にあります。

このテンプレート.htmファイルは、WebUtilアプリケーション・セクションで使用します。

<HTML>
<!-- FILE: webutilbase.htm (Oracle Forms)                           -->
<!--                                                                -->
<!-- This is the default base HTML file for running a form on the   -->
<!-- web using a generic APPLET tag to include Forms applet.        -->
<!-- and a certificate regsitration applet for the WebUtil utility  -->
<!--                                                                -->
<!-- IMPORTANT NOTES:                                               -->
<!-- Default values for all the variables which appear below        -->
<!-- (enclosed in percent characters) are defined in the servlet    -->
<!-- configuration file (formsweb.cfg). It is preferable to make    -->
<!-- changes in that file where possible, rather than this one.     -->
<!--                                                                -->
<!-- This file uses several extra tags that are not present in the  -->
<!-- default template files.  You should ensure that these are      -->
<!-- present in the configuration that uses this template           -->
<!-- The extra substitution Tags are:                               -->
<!--  %webUtilArchive% = jar file containing the WebUtil code       -->
<!--                     (by default this should be frmwebutil.jar) -->
<!--  %WebUtilLogging% = Defines the current logging mode.          -->
<!--                     Valid values: off|on|console|server|all    -->
<!--                     (on == console)                            -->
<!--  %WebUtilLoggingDetail% = Specifies the level of error logging.-->
<!--                     Valid values: normal|detailed              -->
<!--  %WebUtilErrorMode% = Should errors be displayed in an alert   -->
<!--                     as well as the programmer defined          -->
<!--                     locations                                  -->
<!--                     Valid values: console|server|alert|all     -->
<!--  %WebUtilDispatchMonitorInterval% = Counts in second to        -->
<!--                     indicate how often the monitor thread      -->
<!--                     checks to see if the Forms session is still-->
<!--                     alive. Used with the WebUtil_Session       -->
<!--                     package.                                   -->
<!--  %WebUtilTrustInternal% = Should intranet without domain suffix-->
<!--                     be trusted.                                -->
<!--                     Valid values: true|yes|false|no            -->
<!--  %WebUtilMaxTransferSize% = Size in bytes of file transfer     -->
<!--                     segments. Default and maximum allowed is   -->
<!--                     16384, i.e. 16K.                           -->

<HEAD><TITLE>%pageTitle% - WebUtil</TITLE></HEAD>

<BODY %HTMLbodyAttrs%>
%HTMLbeforeForm%

<!-- Registration applet definition (start) -->
<APPLET CODEBASE="%codebase%"
CODE="oracle.forms.webutil.common.RegisterWebUtil"
ARCHIVE="%webUtilArchive%"
WIDTH="0"
HEIGHT="0"
HSPACE="0"
VSPACE="0">

</APPLET>
<!-- Registration applet definition (end) -->

<COMMENT id="forms_plugin_info"
serverURL="%serverURL%"
appcodebase="%codebase%"
apparchive="%archive%,%webUtilArchive%"
appheight="%Height%"
appwidth="%Width%"
appname="%applet_name%">
</COMMENT>

<!-- Forms applet definition (start) -->
<NOSCRIPT>
<APPLET CODEBASE="%codebase%"
CODE="oracle.forms.engine.Main"
ARCHIVE="%archive%,%webUtilArchive%"
WIDTH="%Width%"
HEIGHT="%Height%"
NAME="%applet_name%" MAYSCRIPT>
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/forms/frmjscript/forms_base_ie.js"></SCRIPT>
<PARAM NAME="serverURL" VALUE="%appletServerURL%">
<PARAM NAME="networkRetries" VALUE="%networkRetries%">
<PARAM NAME="serverArgs"
VALUE="%escapeParams% module=%form% userid=%userid% debug=%debug% host=%host% port=%port% %otherParams%">
<PARAM NAME="separateFrame" VALUE="%separateFrame%">
<PARAM NAME="splashScreen"  VALUE="%splashScreen%">
<PARAM NAME="background"  VALUE="%background%">
<PARAM NAME="lookAndFeel"  VALUE="%lookAndFeel%">
<PARAM NAME="colorScheme"  VALUE="%colorScheme%">
<PARAM NAME="serverApp" VALUE="%serverApp%">
<PARAM NAME="logo" VALUE="%logo%">
<PARAM NAME="imageBase" VALUE="%imageBase%">
<PARAM NAME="formsMessageListener" VALUE="%formsMessageListener%">
<PARAM NAME="recordFileName" VALUE="%recordFileName%">
<PARAM NAME="EndUserMonitoringEnabled" VALUE="%EndUserMonitoringEnabled%">
<PARAM NAME="EndUserMonitoringURL" VALUE="%EndUserMonitoringURL%">
<PARAM NAME="heartbeat" VALUE="%heartbeat%">
<PARAM NAME="heartBeat" VALUE="%heartBeat%">
<PARAM NAME="MaxEventWait" VALUE="%MaxEventWait%">
<PARAM NAME="allowAlertClipboard" VALUE="%allowAlertClipboard%">
<PARAM NAME="disableValidateClipboard" VALUE="%disableValidateClipboard%">
<PARAM NAME="enableJavascriptEvent" VALUE="%enableJavascriptEvent%">
<PARAM NAME="digitSubstitution" VALUE="%digitSubstitution%">
<PARAM NAME="legacy_lifecycle" VALUE="%legacy_lifecycle%">
<PARAM NAME="JavaScriptBlocksHeartBeat" VALUE="%JavaScriptBlocksHeartBeat%">
<PARAM NAME="highContrast" VALUE="%highContrast%">
<PARAM NAME="disableMDIScrollbars" VALUE="%disableMDIScrollbars%">
<PARAM NAME="clientDPI" VALUE="%clientDPI%">
<!-- Params specific to webutil -->
<PARAM NAME="WebUtilLogging" VALUE="%WebUtilLogging%">
<PARAM NAME="WebUtilLoggingDetail" VALUE="%WebUtilLoggingDetail%">
<PARAM NAME="WebUtilErrormode" VALUE="%WebUtilErrorMode%">
<PARAM NAME="WebUtilDispatchMonitorInterval"
VALUE="%WebUtilDispatchMonitorInterval%">
<PARAM NAME="WebUtilTrustInternal" VALUE="%WebUtilTrustInternal%">
<PARAM NAME="WebUtilMaxTransferSize" VALUE="%WebUtilMaxTransferSize%">
</APPLET>
<!-- Forms applet definition (end) -->
%HTMLafterForm%
</BODY>
</HTML>

C.12 デフォルトのwebutiljpi.htm

このファイルは$ORACLE_INSTANCE/config/FormsComponent/forms/server/にあります。

このテンプレート.htmファイルは、WebUtilアプリケーション・セクションで使用します。

<HTML>
<!-- FILE: webutiljpi.htm (Oracle Forms)                            -->
<!--                                                                -->
<!-- This is the default base HTML file for running a form on the   -->
<!-- web using the JDK Java Plugin. This is used for example when   -->
<!-- running with Netscape on Unix.                                 -->
<!-- and a certificate regsitration applet for the WebUtil utility  -->
<!--                                                                -->
<!-- IMPORTANT NOTES:                                               -->
<!-- Default values for all the variables which appear below        -->
<!-- (enclosed in percent characters) are defined in the servlet    -->
<!-- configuration file (formsweb.cfg). It is preferable to make    -->
<!-- changes in that file where possible, rather than this one.     -->
<!--                                                                -->
<!-- This file uses several extra tags that are not present in the  -->
<!-- default template files.  You should ensure that these are      -->
<!-- present in the configuration that uses this template           -->
<!-- The extra substitution Tags are:                               -->
<!--  %webUtilArchive% = jar file containing the WebUtil code       -->
<!--                     (by default this should be frmwebutil.jar) -->
<!--  %WebUtilLogging% = Defines the current logging mode.          -->
<!--                     Valid values: off|on|console|server|all    -->
<!--                     (on == console)                            -->
<!--  %WebUtilLoggingDetail% = Specifies the level of error logging.-->
<!--                     Valid values: normal|detailed              -->
<!--  %WebUtilErrorMode% = Should errors be displayed in an alert   -->
<!--                     as well as the programmer defined          -->
<!--                     locations                                  -->
<!--                     Valid values: console|server|alert|all     -->
<!--  %WebUtilDispatchMonitorInterval% = Counts in second to        -->
<!--                     indicate how often the monitor thread      -->
<!--                     checks to see if the Forms session is still-->
<!--                     alive. Used with the WebUtil_Session       -->
<!--                     package.                                   -->
<!--  %WebUtilTrustInternal% = Should intranet without domain suffix-->
<!--                     be trusted.                                -->
<!--                     Valid values: true|yes|false|no            -->
<!--  %WebUtilMaxTransferSize% = Size in bytes of file transfer     -->
<!--                     segments. Default and maximum allowed is   -->
<!--                     16384, i.e. 16K.                           -->

<HEAD><TITLE>%pageTitle% - WebUtil</TITLE></HEAD>

<BODY %HTMLbodyAttrs%>
%HTMLbeforeForm%

<!-- Registration applet definition (start) -->
<OBJECT classid="%jpi_classid%"
codebase="%jpi_codebase%"
WIDTH="0"
HEIGHT="0"
HSPACE="0"
VSPACE="0">
<PARAM NAME="TYPE"       VALUE="%jpi_mimetype%">
<PARAM NAME="CODEBASE"   VALUE="%codebase%">
<PARAM NAME="CODE"       VALUE="oracle.forms.webutil.common.RegisterWebUtil" >
<PARAM NAME="ARCHIVE"    VALUE="%webUtilArchive%" >
<COMMENT>
<EMBED SRC="" PLUGINSPAGE="%jpi_download_page%"
TYPE="%jpi_mimetype%"
java_codebase="%codebase%"
java_code="oracle.forms.webutil.common.RegisterWebUtil"
java_archive="%webUtilArchive%"
WIDTH="1"
HEIGHT="1"
HSPACE="0"
VSPACE="0"
>
<NOEMBED>
</COMMENT>
</NOEMBED></EMBED>
</OBJECT>
<!-- Registration applet definition (end) -->

<COMMENT id="forms_plugin_info"
serverURL="%serverURL%"
plug_ver="%jpi_classid%"
appheight="%Height%"
appwidth="%Width%"
appcodebase="%jpi_codebase%"
appname="%applet_name%">
</COMMENT>

<!-- Forms applet definition (start) -->
<NOSCRIPT>
<OBJECT classid="%jpi_classid%"
codebase="%jpi_codebase%"
WIDTH="%Width%"
HEIGHT="%Height%"
HSPACE="0"
VSPACE="0"
ID="%applet_name%">
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/forms/frmjscript/forms_ie.js"></SCRIPT>
<PARAM NAME="TYPE"       VALUE="%jpi_mimetype%">
<PARAM NAME="CODEBASE"   VALUE="%codebase%">
<PARAM NAME="CODE"       VALUE="oracle.forms.engine.Main" >
<PARAM NAME="ARCHIVE"    VALUE="%archive%,%webUtilArchive%" >

<PARAM NAME="serverURL" VALUE="%appletServerURL%">
<PARAM NAME="networkRetries" VALUE="%networkRetries%">
<PARAM NAME="serverArgs"
VALUE="%escapeParams% module=%form% userid=%userid% debug=%debug%
host=%host% port=%port% %otherParams%">
<PARAM NAME="separateFrame" VALUE="%separateFrame%">
<PARAM NAME="splashScreen"  VALUE="%splashScreen%">
<PARAM NAME="background"  VALUE="%background%">
<PARAM NAME="lookAndFeel"  VALUE="%lookAndFeel%">
<PARAM NAME="colorScheme"  VALUE="%colorScheme%">
<PARAM NAME="serverApp" VALUE="%serverApp%">
<PARAM NAME="logo" VALUE="%logo%">
<PARAM NAME="imageBase" VALUE="%imageBase%">
<PARAM NAME="formsMessageListener" VALUE="%formsMessageListener%">
<PARAM NAME="recordFileName" VALUE="%recordFileName%">
<PARAM NAME="EndUserMonitoringEnabled" VALUE="%EndUserMonitoringEnabled%">
<PARAM NAME="EndUserMonitoringURL" VALUE="%EndUserMonitoringURL%">
<PARAM NAME="heartBeat" VALUE="%heartBeat%">
<PARAM NAME="MaxEventWait" VALUE="%MaxEventWait%">
<PARAM NAME="allowAlertClipboard" VALUE="%allowAlertClipboard%">
<PARAM NAME="disableValidateClipboard" VALUE="%disableValidateClipboard%">
<PARAM NAME="enableJavascriptEvent" VALUE="%enableJavascriptEvent%">
<PARAM NAME="MAYSCRIPT" VALUE="%enableJavascriptEvent%">
<PARAM NAME="digitSubstitution" VALUE="%digitSubstitution%">
<PARAM NAME="legacy_lifecycle" VALUE="%legacy_lifecycle%">
<PARAM NAME="JavaScriptBlocksHeartBeat" VALUE="%JavaScriptBlocksHeartBeat%">
<PARAM NAME="highContrast" VALUE="%highContrast%">
<PARAM NAME="disableMDIScrollbars" VALUE="%disableMDIScrollbars%">
<PARAM NAME="clientDPI" VALUE="%clientDPI%">
<!-- Params specific to webutil -->
<PARAM NAME="WebUtilLogging" VALUE="%WebUtilLogging%">
<PARAM NAME="WebUtilLoggingDetail" VALUE="%WebUtilLoggingDetail%">
<PARAM NAME="WebUtilErrorMode" VALUE="%WebUtilErrorMode%">
<PARAM NAME="WebUtilDispatchMonitorInterval"
VALUE="%WebUtilDispatchMonitorInterval%">
<PARAM NAME="WebUtilTrustInternal" VALUE="%WebUtilTrustInternal%">
<PARAM NAME="WebUtilMaxTransferSize" VALUE="%WebUtilMaxTransferSize%">
<COMMENT>
<EMBED SRC="" PLUGINSPAGE="%jpi_download_page%"
TYPE="%jpi_mimetype%"
java_codebase="%codebase%"
java_code="oracle.forms.engine.Main"
java_archive="%archive%,%webUtilArchive%"
WIDTH="%Width%"
HEIGHT="%Height%"
HSPACE="0"
VSPACE="0"
NAME="%applet_name%"
serverURL="%appletServerURL%"
networkRetries="%networkRetries%"
serverArgs="%escapeParams% module=%form% userid=%userid% debug=%debug%
host=%host% port=%port% %otherparams%"
separateFrame="%separateFrame%"
splashScreen="%splashScreen%"
background="%background%"
lookAndFeel="%lookAndFeel%"
colorScheme="%colorScheme%"
serverApp="%serverApp%"
logo="%logo%"
imageBase="%imageBase%"
recordFileName="%recordFileName%"
EndUserMonitoringEnabled="%EndUserMonitoringEnabled%"
EndUserMonitoringURL="%EndUserMonitoringURL%"
heartBeat="%heartBeat%"
MaxEventWait="%MaxEventWait%"
allowAlertClipboard" VALUE="%allowAlertClipboard%"
disableValidateClipboard="%disableValidateClipboard%"
enableJavascriptEvent="%enableJavascriptEvent%"
MAYSCRIPT="%enableJavascriptEvent%"
digitSubstitution="%digitSubstitution%"
legacy_lifecycle="%legacy_lifecycle%"
JavaScriptBlocksHeartBeat="%JavaScriptBlocksHeartBeat%"
highContrast="%highContrast%"
disableMDIScrollbars="%disableMDIScrollbars%"
clientDPI="%clientDPI%"
WebUtilLogging="%WebUtilLogging%"
WebUtilLoggingDetail="%WebUtilLoggingDetail%"
WebUtilErrormode="%WebUtilErrorMode%"
WebUtilDispatchMonitorInterval="%WebUtilDispatchMonitorInterval%"
WebUtilTrustInternal="%WebUtilTrustInternal%"
WebUtilMaxTransferSize="%WebUtilMaxTransferSize%"
>
<NOEMBED>
</COMMENT>
</NOEMBED></EMBED>
</OBJECT>
<!-- Forms applet definition (end) -->
%HTMLafterForm%
</BODY>
</HTML>

索引
A  B  C  D  E  F  H  I  J  K  L  M  N  O  P  R  S  T  U  V  W  Z

A

別名, Formsサーブレット, 13.2.8.3

別名, Formsサーブレット, web.xmlファイル, 13.1

アプレット

パラメータ, 4.2.5.6

アプリケーション

環境ファイル, Oracle Forms Services, 13.2.3

サーバー, 2.6

アプリケーションの配布

概要, 3.3

手順, 3.3.1

認証およびアクセス強制, 11.1.3

B

バックグラウンド, 4.7.4

backgroundパラメータ, 4.2.5.6

ベースHTMLファイル

作成, C.4

base.htm, C.4

説明, C.4

例, C.4.2

ベースHTMLファイル

作成, C.4

リスト, 3.2.5

パラメータと変数, C.4.1

選択, 3.4.1

basejpi.htm

説明, C.4

basejpi.htmファイル

サンプル・デフォルト, C.4.3

basejpi.htmファイル, Oracle Forms, 13.2.3 ボイラープレート・オブジェクト/イメージ, 14.1.4 ビルトイン・イベント, 12.5

C

CGI, Formsのアップグレード, 13.2.3

クライアント・ブラウザのサポート

概要, 3.4

クライアント・リソース要件, 14.1.3 クライアント層, 2.6 コードベース, 4.7.6.2 codebaseパラメータ, 4.2.5.4 codebaseパラメータ, Oracle Forms, 13.2.8.1 colorSchemeパラメータ, 4.2.5.6 構成ファイル, 3.2, 3.2.1

6iserver.conf, 13.1

構成パラメータ

ベースHTMLファイルとクライアント・ブラウザ, 3.4.1

カスタマイズHTMLテンプレート・ファイル, Oracle Forms, 13.2.5 カスタマイズHTMLテンプレート・ファイル, Oracle Forms Services, 13.2.6

D

データ・セグメント, 14.1.4

データ・ストリーム圧縮, 14.2.3

データベース層

説明, 2.6

デフォルト動作, 3.3.4 デフォルトの構成パラメータ

allowAlertClipboard, 4.2.5.7

allowNewConnections, 4.2.5.7

applet_name, 4.2.5.7

archive, 4.2.5.4

array, 4.2.5.7

baseHTML, 4.2.5.5

baseHTMLjpi, 4.2.5.5

buffer_records, 4.2.5.7

clientDPI, 4.2.5.7

connectionDisallowedURL, 4.2.5.7

debug, 4.2.5.3

debug_messages, 4.2.5.7

defaultcharset, 4.2.5.7

digitSubstitution, 4.2.5.7

disableMDIScrollbars, 4.2.5.7

disableValidateClipboard, 4.2.5.7

enableJavascriptEvent, 4.2.5.7

EndUserMonitoringEnabled, 4.2.5.3

EndUserMonitoringURL, 4.2.5.3

envFile, 4.2.5.1

escapeparams, 4.2.5.7

form, 4.2.5.1

formsMessageListener, 4.2.5.7

heartBeat, 4.2.5.7

highContrast, 4.2.5.7

host, 4.2.5.3

HTMLafterForm, 4.2.5.5

HTMLbeforeForm, 4.2.5.5

HTMLbodyAttrs, 4.2.5.5

HTMLdelimiter, 4.2.5.7

JavaScriptBlocksHeartBeat, 4.2.5.7

jpi_mimetype, 4.2.5.4

legacy_lifecycle, 4.2.5.7

log, 4.2.5.3

maxRuntimeProcesses, 4.2.5.7

networkRetries, 4.2.5.7

obr, 4.2.5.7

otherparams, 4.2.5.7

pageTitle, 4.2.5.5

port, 4.2.5.3

prestartIncrement, 4.2.5.7

prestartInit, 4.2.5.7

prestartMin, 4.2.5.7

prestartRuntimes, 4.2.5.7

prestartTimeout, 4.2.5.7

query_only, 4.2.5.7

quiet, 4.2.5.7

record, 4.2.5.3

recordFileName, 4.2.5.7

restrictedURLchars, 4.2.5.7

restrictedURLparams, 4.2.5.7

serverApp, 4.2.5.7

ssoCancelUrl, 4.2.5.2

ssoDynamicResourceCreate, 4.2.5.2

ssoErrorUrl, 4.2.5.2

ssoMode, 4.2.5.2

ssoProxyConnect, 4.2.5.2

term, 4.2.5.7

tracegroup, 4.2.5.3

USERID, 4.2.5.1

デフォルトの環境変数

CLASSPATH, 4.3.3

FORM_PATH, 4.3.3

FORMS_MESSAGE_ENCRYPTION, 4.3.3

FORMS_RESTRICT_ENTER_QUERY, 4.3.3

LD_LIBRARY_PATH, 4.3.3

LD_PRELOAD, 4.3.3

ORACLE_HOME, 4.3.3

ORACLE_INSTANCE, 4.3.3

PATH, 4.3.3

TNS_ADMIN, 4.3.3

WEBUTIL_CONFIG, 4.3.3

デフォルトのformsweb.cfgファイル

サンプル, C.2

デフォルトのjvmcontroller.cfg

サンプル・ファイル, C.9

デフォルトのwebutilbase.htm

サンプル・ファイル, C.11

デフォルトのwebutilbase.htm

説明, 3.2.6.2

デフォルトのwebutil.cfg

サンプル・ファイル, C.10

デフォルトのwebutil.cfg

説明, 3.2.6.1

デフォルトのwebutiljpi.htm

サンプル・ファイル, C.12

デフォルトのwebutiljpi.htm

説明, 3.2.6.3

default.env

Solarisのサンプル, C.3.2

Windowsのサンプル・デフォルト, C.3.1

default.envファイル, Oracle Forms Services, 13.1, 13.2.3 Forms Servicesで使用するアイコンとイメージの配置, 4.7 配布

フォームとWeb, 3

MENU_BUFFERINGを使用不可に設定, 14.2.3 期間イベント, 12.5

E

暗号化されたプログラム・ユニット, 14.1.4

Enterprise Manager

Fusion Middleware Control, 4.1

「環境構成」ページ

アクセス, 4.3.1

デフォルトの環境変数, 4.3.3

環境構成ファイルの削除, 4.3.1

環境構成ファイルの複製, 4.3.1

環境変数の管理, 4.3.2

環境構成ファイルの表示, 4.3.1

環境ファイル, Oracle Forms Servicesアプリケーション, 13.2.3 イベント・バンドル, 14.1.6 イベントの詳細, トレース, 12.5.1 イベント, トレース, 12.5

F

Web上のFormsアプリケーションの機能制限, 4.8

ファイル

basejpi.htm, 13.2.3

default.env, 13.2.3

default.env, Oracle Forms Services, 13.1

forms.conf, 13.1

formsweb.cfg, 13.2.3

ifcgi60.exe, Oracle9iAS Forms, 13.2.3

jserv.properties

Oracle Forms Services, 13.1

Forms CGI

説明, 13.2.3

アップグレード, 13.2.3

「Forms」ホームページ

アクセス, 4.1.1

「Forms」メニュー・オプション, 4.1.1

Formsの統合

Web Cache, 14.3

Forms Java EEアプリケーションのデプロイメント・ディスクリプタ, 3.2.2 Formsリスナー, 2.6.1, 2.6.1.1 Formsリスナー・サーブレット, 2.6.1.1, 2.6.1.1

HTTPS, 5.5

サーバー要件, 5.5

Forms Runtime Diagnostics, 12.1 Formsランタイム・エンジン, 2.6.1, 2.6.1.2 Forms Services

イベントの監視, 14.1.1.2

インスタンスの監視, 14.1.1.1

Webランタイム・プーリング, 14.1.2

Forms Servicesリソース要件, 14.1.4 Formsサーブレット, 5.1 Formsサーブレットの別名, web.xmlファイル, 13.1 Forms Trace, 3.2.1.3 forms.conf, C.7

デフォルト・サンプル, C.7.1

forms.confファイル, 13.1 FormsServlet.initArgs, 4.2.2 formsweb.cfg, 3.2.1.2

例, C.2

formsweb.cfgファイル

Forms CGI, 13.2.3

FRD, 12.1 frmservlet, Oracle Forms, 13.2.6 ftrace.cfg, 3.2.1.3

H

heightパラメータ, 4.2.5.1

HTMLベースのEnterprise Manager, 4.1

HTTPリスナー, 5.1

構成ファイル, 3.2.3

HTTPD, 5.3.1 HTTPS

Formsリスナー・サーブレット, 5.5

I

アイコン

配置, 4.7.3

アイコン

JARファイルの作成, 4.7.5

検索パス, 4.7.6

ifcgi60.exeファイル, 13.2.3 imageBase, 4.2.5.4 イメージ, 4.7

バックグラウンド, 4.7.4

スプラッシュ画面, 4.7.4

イメージ

JARファイルの作成, 4.7.5

検索パス, 4.7.6

イメージ, 配置, Oracle Forms, 13.2.8.1 インラインIMEサポート, 4.8.2 インプロセスJVM, 定義, 10.4 統合コール, Oracle FormsからReports, 13.2.8.2 統合

FormsとReportsの情報, 9.5

J

JARファイル, キャッシュ, 14.2.2.3

Javaクライアント・リソース要件, 14.1.3

Java Plug-in, 14.2.2.2, B

Java plug-in, Oracle Forms, 13.2.3

JavaScript統合, Oracle Forms, 6.1

アプレット・パラメータ, 6.4, 6.4

JavaScriptコール, 6.1, 6.1

jpi_classid, 4.2.5.4 jpi_codebase, 4.2.5.4 jpi_download_page, 4.2.5.4 jserv.propertiesファイル

Oracle Forms, 13.1

Oracle Formsリスナー・サーブレット, 13.2.6

JVMコントローラ

複数, 10.3

ログ・ファイルへのアクセス, 10.9.3

デフォルトのロギング・プロパティ, 10.9.1

JVMコントローラのログ・ファイルの削除, 10.9.4

JVMプーリングのエラー・メッセージ, 10.11

ロギング管理, 10.9

ログ・ファイルのディレクトリの指定, 10.9.2

JVMプーリング

構成ファイル設定, 10.8.6

設計時の考慮事項, 10.5

例, 10.4

JVMコントローラの管理, 10.8

EMによるJVMコントローラの管理

JVMコントローラの起動と停止, 10.8.5

コマンドラインからのJVMコントローラの管理, 10.7 概要, 10.1 Javaコードの再インポート, 10.5.1 静的変数の共有, 10.5.2 スレッド処理, 10.1

K

キー・マッピング

有効化, 4.9

fmrweb.res, 4.9

L

言語検出, 4.8

言語検出

マルチレベルの継承, 4.8.3.1

概要, 4.8.3

起動, 4.1 使用, 11.1.4 リスナー・サーブレット, web.xml内のOracle Formsエントリ, 13.2.4.1 リスナー, Forms6i, 説明, 13.2.5 ロード・バランシング

Oracle Forms, 13.2.7

WebLogic Serverのロード・バランシング, 5 トレースのログ・パラメータ, 12.2.2 ロギング機能, 12.6.1 ロゴ, 4.2.5.6 lookAndFeelパラメータ, 4.2.5.6 lservlet, Oracle Forms, 13.2.6

M

メトリックのロギング

有効化, 12.6.1

中間層, 2.6

N

ネットワーク

帯域幅の削減, 14.2.3

ネットワークの待機時間, 14.1.6 ネットワーク・パケット, 14.1.6 ネットワーク使用量, 14.1.5

O

ODL, 12.6

Forms Servicesの最適化, 14.1

Oracle Forms Services, コンポーネント, 2.6.1

Oracle Forms Services, イメージ, 2.6

Oracle Forms Services, アーキテクチャ, 2.6

Oracle Fusion Middleware, 2.4

Oracle HTTP Listenerの構成ファイル, 3.2.3

Oracle Identity Management Infrastructure, 11.1.4

Oracle Internet Directory, 9.1, 11.1.1

動的リソースの作成, 11.1.2.2

構成のオプション, 11.2.1

Oracle Portal, Forms, ReportsおよびDiscoverer 11g, 2.5 Oracle Real Application Clusters, 2.2 Oracle Single Sign On

Formsからのアクセス, 9.4.6

Oracle Single Sign-On

認証フロー, 9.1.1

データベース・パスワード期限切れ, 9.2.3, 11.1.2.3

動的ディレクティブ, 9.2.2

アプリケーションでの有効化, 9.2.3

Oracle Single Sign-On Server, 9.1 oracle.forms.servlet.ListenerServlet, Oracle9iAS Forms, 13.2.6

P

パラメータ・オプション

URLでの指定, 12.2.2

パラメータ, 3.3.2, 3.3.2 Performance Event Collection Services (PECS), 12.1 パフォーマンス・ツール, 12.1 パフォーマンス/スケーラビリティのチューニング, 5 ポイント・イベント, 12.5 権限

ユーザーのクラス, 11.1.1

保護, 11.1.2

R

RADエントリ, 11.1.1

Registry.dat

パラメータの値の追加, 4.7.1

パラメータの値の変更, 4.7.1

パラメータの値の削除, 4.7.1

registry.dat, C.8

サンプル・デフォルト, C.8.1

Registry.dat, 管理, 4.7.1 リソース, 11.1.2

動的ディレクティブ, 11.1.2.1

リソース, 最小化

ボイラープレート・オブジェクト, 14.1.4

データ・セグメント, 14.1.4

暗号化されたプログラム・ユニット, 14.1.4

ネットワーク使用量, 14.1.5

画面のレンダリング, 14.1.7

パケットの送信, 14.1.6

RUN_REPORT_OBJECTビルトイン, Oracle Forms Services, 13.2.8.2 ランフォーム・パラメータ, 3.3.4, 3.3.4.1

デフォルト動作, 3.3.4.1

デフォルト動作, 前リリース, 3.3.4.2

定義, 3.3.4

特殊文字の値, 3.3.4

ランタイム・プーリング

事前起動パラメータの構成, 14.1.2.1

S

サンプル・ファイル

base.htm, C.4.2

サンプル値, 3.3.2 ScriptAliasディレクティブ, Oracle9iAS Forms, 13.2.3 separateFrameパラメータ, 4.2.5.6 serverHostパラメータ, Oracle Forms Services, 13.2.4.1 serverPortパラメータ, Oracle Forms Services, 13.2.4.1 serverURL, 4.2.5.7 serverURLパラメータ

Oracle Forms Servicesでのアプリケーションの配布, 13.2.5

Oracle Forms Servicesの静的HTMLファイル, 13.2.4.1

サーブレットの別名, Forms, web.xmlファイル, 13.1 サーブレットのログ・ファイル

場所, 12.6.1.3

サンプル出力, 12.6.5

サーブレット・ログ・ファイルの場所, 12.6.4 シングル・サインオン, 9.1 特殊なキー・マッピング, 4.9.1.2 指定, 3.3.2 スプラッシュ画面, 4.7.4 splashScreenパラメータ, 4.2.5.6 SSL

Forms Servicesの構成, 5.7

ロード・バランシング・ルーターによる構成, 5.8

ssoCancelUrl, 9.4.5 ssoDynamicResourceCreate

概要, 9.4.3

ssoErrorURL, 9.4.4 ssoMode

概要, 9.4.1, 9.4.2

ssoModeパラメータ

特定のアプリケーションでの有効化の例, 9.4.1, 9.4.2

起動時間, 14.2.2 Sun社Java Plug-In

サポートされる構成, B.1

Sun社のJava Plug-in, 14.2.2.2

T

テンプレートHTML

考慮事項, 静的, 3.3.4.5

テンプレートHTMLファイル

考慮事項, 3.3.4.4

作成, 4.6

テスト・フォーム

保護, 4.5.1

スレッド処理

Formsランタイム・プロセスとJVM, 10.1

タイマー, チューニング, 14.2.4 トレース・データ

XMLに変換, 12.4.1

トレース・イベントの詳細, 12.5.1 トレース可能イベント, 12.5 トレースのtracegroupパラメータ, 12.2.2 トレース用translateユーティリティ, 12.4.1 チューニング

アプリケーションのサイズ, 14.2.4

ボイラープレート項目, 14.2.3

MENU_BUFFERINGを使用不可に設定, 14.2.3

MENU_BUFFERING, 14.2.3

類似点の活用, 14.2.3

ボイラープレート・オブジェクトの削減, 14.2.3

ナビゲーションの削減, 14.2.3

ネットワーク帯域幅の削減, 14.2.3

画面の表示, 14.2.3

タイマー, 14.2.4

JARファイルの使用, 14.2.2.1

U

アップグレード

アプリケーション・モジュール, 13.2.2

CGIからFormsサーブレット, 13.2.3

Forms 6iリスナーからFormsリスナー・サーブレット, 13.2.5

項目, 13.1

ロード・バランシング, 13.2.7

推奨事項, 13.2.1

静的HTML開始ファイル, 13.2.4

タスク, 13.2

Forms Servicesの確認, 13.3

Upload/Translateユーティリティ

起動, 12.4.1

URLエスケープ・シーケンス, 3.3.4.1 トレースのURLパラメータ・オプション, 12.2.2 「ユーザー・セッション」ページ

アクセス, 4.4

表示のカスタマイズ, 4.4

新しいFormsユーザー・セッションの無効化, 4.4

トレースの無効化, 4.4

新しいFormsユーザー・セッションの有効化, 4.4

トレースの有効化, 4.4

フィールドの説明, 4.4

ユーザー・セッションの検索, 4.4

セッションのリストのソーティング, 4.4

Formsユーザー・セッションの終了, 4.4

データベース・セッションの表示, 4.4

トレース・ログの表示, 4.4

V

仮想グラフィック・システム(VGS)ツリー, 14.1.7, 14.1.7

W

Web Cache

セッション・バインディングの構成, 14.3

Formsの統合, 14.3

設定のテスト, 14.3

「Web構成」ページ

アクセス, 4.2

一般的なタスク, 4.2.1

構成セクションの作成, 4.2.3.1

構成セクションの削除, 4.2.3.4

名前を付けた構成の複製, 4.2.3.3

構成の説明の編集, 4.2.3.2

パラメータの管理, 4.2.4

パラメータの説明, 4.2.5

WebLogic管理対象サーバーのプロセス, 5 WebUtil構成ファイル, 3.2.6 web.xml, C.5

Oracle Forms Services, 13.1, 13.1

web.xmlファイル

デフォルト・サンプル, C.5.1

widthパラメータ, 4.2.5.1

Z

zone.properties

ファイル, Oracle Formsリスナー・サーブレット, 13.2.6

オラクル社の法律上の注意点について

コピーライトについて

Copyright © 1994-2013, Oracle and/or its affiliates.All rights reserved.

商標と登録商標について

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

制限付権利

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

ドラフトのアルファ版およびベータ版ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。オラクル社およびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。