Oracle® Fusion Middleware

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

12c (12.2.1.2)

E82766-02(原本部品番号:E76632-02)

2017年2月

このドキュメントでは、Oracle FormsアプリケーションをOracle Forms Servicesにデプロイおよび構成する方法について説明します。

Oracle Fusion Middleware Forms Servicesデプロイメント・ガイド, 12c (12.2.1.2)

E82766-02

Copyright © 2016, 2017, Oracle and/or its affiliates  All rights reserved.

原本著者: Arup Roy

原本協力者: Michael Ferrante、Ananth Satyanarayana、Vinay Agarwal、Suvarna Balachandra、Hemant Bansal、Laiju Mathew、Opendro Singh、James Amalraj、Phil Kuhn、Rubik Sadeghi、Naseer Syed、Emerson deLaubenfels、Grant Ronald

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

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

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

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)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

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の登録商標です。

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

目次

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

はじめに

- 対象読者

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

- 関連ドキュメント

- 表記規則

1 Oracle Forms Servicesの概要

- Oracle Forms

- Oracle Forms Developer

- Oracle Forms Services

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

- Oracle Database

- Oracle WebLogicサーバー

- Oracle Fusion Middleware

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

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

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

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

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

2 Oracle Forms Servicesの新機能

- Oracle BI-Publisher統合

- JVMコントローラの改善

- カスタマイズ可能な色スキーム

- アプレット・パラメータ

- 環境変数

- SSO統合の改善

- クライアント・デプロイメント・オプション

- Form Builder専用のインストール・オプション

3 Forms Servicesの構成と管理

- Fusion Middleware ControlとOracle Forms

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

- Forms Servicesの構成

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

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

- 構成セクションの管理

- 構成セクションの作成

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

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

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

- パラメータの管理

- Forms構成パラメータ

- 基本構成パラメータ

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

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

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

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

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

- 詳細構成パラメータ

- guiModeの構成パラメータ

- URLで制限されるパラメータ

- 環境変数の管理

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

- 環境変数の構成

- デフォルトの環境変数

- Java対応フォームに対するプロキシ・サポート

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

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

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

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

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

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

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

- カスタム・ランタイム色スキームの作成

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

- アプリケーションのアイコン、イメージまたは音声ファイルのデプロイ

- 格納 - アイコン、イメージまたは音声ファイルをJavaアーカイブ・ファイルへ

- アイコンのマッピングの追加、変更および削除

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

- アイコン、イメージおよび音声ファイルが含まれるカスタムJARファイル

- アイコン、イメージおよび音声ファイルのJARファイルの作成

- JARファイル内でのファイルの使用

- 言語検出の有効化

- 言語検出の指定

- インラインIMEサポート

- 言語検出機能の仕組み

- マルチレベルの継承

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

- fmrweb.resのカスタマイズ

- 変更の例: 入力マッピングと実行マッピングのスワッピング

- 例外または特殊なキー・マッピング

- [F2]のマッピング

- KEY-ENTER-TRIGGERを起動する[Enter]のマッピング

- 数字キーのマッピング

- Webフォームを終了する[Esc]キーのマッピング

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

- Oracle Forms Servicesのアクション

- 構成ファイル

- Oracle Forms構成ファイル

- default.env

- formsweb.cfg

- ftrace.cfg

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

- Oracle HTTP Listenerの構成ファイル

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

- ベースHTML (テンプレート)ファイル

- WebUtilの構成ファイルおよびテンプレートHTMLファイル

- デフォルトのwebutil.cfg

- デフォルトのwebutilbase.htm

- デフォルトのwebutiljpi.htm

- デフォルトのwebutil.jnlp

- デフォルトのwebutilsaa.txt

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

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

- パラメータの指定

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

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

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

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

- 前リリースの動作

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

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

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

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

- クライアントの構成に関する注意事項

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

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

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

- Oracle WebLogic管理対象サーバーおよびHTTP Serverについて

- Oracle Forms Servicesを使用したOracle HTTP Serverの有効化

- forms.confの編集について

- OHSの構成

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

- Oracle Forms ServicesとSSL

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

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

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

- カスタム・アプリケーションの作成およびデプロイ

- パッチ適用後のタスク

- カスタム・デプロイメントのテスト

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

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

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

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

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

6 Oracle FormsとJavaScriptの統合

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

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

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

- イベント・コールをOracle Forms内で行う理由

- JavaScriptとOracle Formsの統合

- formsweb.cfgの構成

- 環境変数の構成

7 Javaサポートの拡張

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

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

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

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

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

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

8 サーバーおよびシステム・イベントでの作業

- Oracle Formsとサーバー・イベント

- イベントの作成について

- イベントのサブスクライブについて

- イベントの伝播

- When-Event-Raisedトリガー

- トリガー定義レベルと有効範囲

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

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

- 同期型通信

- 非同期通信

- 非同期型通信の構成

- システム・イベント

- システム・クライアント-アイドル

- システムDB-アイドル

- システム・シングル・サインオフ

- システム通知

- システム・メディア完了

9 Oracle Access ManagerでのForms Servicesの使用

- Oracle Access Managerおよびシングル・サインオン

- Oracle Formsで使用されるシングル・サインオン・コンポーネント

- 認証フロー

- 設定プロセス

- Forms Service 12c Weblogicドメインの構成後のFormsアプリケーションに対するシングル・サインオンの有効化

- 認証サーバー保護付きのForms Services機能

- 動的リソースの作成

- 動的ディレクティブのサポート

- データベース・パスワードの期限切れのサポート

- シングル・サインオンでのFormsアプリケーションの保護

- ssoMode

- ssoProxyConnect

- ssoDynamicResourceCreate

- ssoErrorURL

- ssoCancelUrl

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

- Oracle FormsとOracle Reportsの統合

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

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

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

- (Oracle Internet Directory) OIDを使用してSSOを有効化する場合のプロキシ・ユーザー接続の有効化

- プロキシ・ユーザーに対するSSOの有効化

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

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

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

- インストール後の構成

- Oracle Internet Directoryに対するForms J2EEアプリケーションの構成

- Formsアイデンティティ・ストアとしてのOracle Internet DirectoryまたはOracle Platform Securityの選択

- OAMパートナ・アプリケーションとしてのWeb層インスタンスの登録およびOAMポリシーの構成

- frmconfighelperスクリプトを使用したWeb層パートナ・アプリケーションの登録およびポリシーの登録

- Oracle Access Manager (OAM)コンソールを使用したWeb層パートナ・アプリケーションの登録およびポリシーの登録

- Oracle Formsのリモート・アクセス記述子の管理

- リソース管理へのアクセス

- リソース移行アシスタント

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

- Java仮想マシン・プーリング

- 子JVMプロセス

- 子JVMの例

- 子JVMの管理

- JVMの負荷分散

- 複数のJVMコントローラ

- JVMプーリングの使用例

- 設計時の考慮事項

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

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

- Fusion Middleware Controlを使用したJVMの構成

- JVMコントローラを使用したネットワーク・プロキシおよびJavaコール

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

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

- コマンドの制限

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

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

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

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

- 「JVM構成」ページへのアクセス

- 新しい構成セクションの作成

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

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

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

- パラメータの管理

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

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

- Forms構成ファイル設定

- 起動の例

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

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

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

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

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

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

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

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

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

- ユーザー・アカウントのデフォルトのシングル・サインオン動作

- データベース・プロキシ機能を使用するユーザー

- 保護されるリソース

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

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

- RADの保護

12 トレースと診断

- Forms Trace

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

- Forms Traceの有効化と構成

- Forms Traceの構成

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

- Forms Traceの開始と停止

- Forms Trace出力の表示

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

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

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

- Oracle Diagnosticsおよびロギング・ツールの利用

- Oracle Diagnostics Loggingの有効化

- ロギングの指定

- Fusion Middleware Controlを使用したロギング・レベルの指定

- Formsサーブレットを起動するURLでの完全診断の指定

- 診断ログの表示

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

- ログ・ファイルの場所

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

- (なし)

- /session

- /sessionperf

- /perf

- /debug

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

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

- Forms Servicesの監視

- Forms Servicesインスタンスの監視

- Formsイベントの監視

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

- 事前起動パラメータの構成

- ランタイム・プーリングの起動

- ランタイム・プーリングのスケジューリング

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

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

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

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

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

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

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

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

- Javaファイルの使用

- オラクル社のJava Plug-inの使用方法

- キャッシュの使用

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

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

- Oracle Traffic DirectorとFormsの統合

- Oracle Traffic Director構成の設定

- Oracle Traffic Directorのパートナ・アプリケーションとしての登録

- 設定のテスト

14 Forms診断エージェント

- Oracle Forms 12cのインストールと構成

- データベース・スキーマの設定

- WebLogicでのデータ・ソースの設定

- Forms診断エージェントのデプロイ

- データ収集の管理

- エージェント・アプリケーションの使用

- エージェント・アプリケーションの制限

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

- インストールの確認

- Web Form Testerの使用

- FRM-XXXXXエラーの診断

- Oracle Formsアプレット

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

- スタック・トレース

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

- 環境の確認

- UNIXのスタック・トレースの理解

- Windowsのスタック・トレースの理解

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

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

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

- アプリケーションがハングする原因

- Forms TraceとServlet Logging Tool

- メモリーの問題の解決

- Javaのメモリーの使用方法

- 初期Javaヒープの設定

- メモリー・リーク

- Javaでのメモリー・リーク

- メモリー・リークの特定

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

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

- 問題が解決しなかった場合

B Java Plug-inの構成

- サポートされる構成

- LEGACY_LIFECYCLEの動作と構成の要件

- 構成要件

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

- Forms構成ファイルの場所

- Forms Web構成ファイル

- Forms環境変数構成ファイル

- web.xml

- weblogic.xml

- forms.conf

- Registry.dat

- jvmcontroller.cfg

- webutil.cfg

- ftrace.cfg

D Formsのエラー・メッセージ

E Oracle Formsのユーティリティおよびスクリプト

- Oracle Formsの構成ヘルパー・スクリプト

- 引数の説明

- 各関数の例

はじめに

対象読者

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

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

Oracleのアクセシビリティへの取り組みについては、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)にアクセスしてください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info、聴覚に障害があるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

関連ドキュメント

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

- Oracle Fusion Middlewareリリース・ノート(Microsoft Windows用)

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

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

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

また、http://www.oracle.com/technetwork/developer-tools/formsにホワイト・ペーパーなどのリソースもあります。

表記規則

このマニュアルでは次の表記規則を使用します。

表記規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック

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

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 Oracle Forms Servicesの概要

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

この章の構成は、次のとおりです。

- Oracle Forms

- Oracle Database

- Oracle WebLogicサーバー

- Oracle Fusion Middleware

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

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

Oracle Forms

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

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

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

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

Oracle Forms Developer

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

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

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

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

Oracle Forms Services

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

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

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

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

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

要件に応じて、Oracle Fusion Middleware Controlで構成ファイルを簡単に変更できます。また、Fusion Middleware Controlが含まれないOracle Formsインストール内の構成ファイルを手動で更新することもできます。「Oracle Forms Servicesのアーキテクチャ」では、一般的なFormsアプリケーションの配布および実行に関連するプロセスについて説明します。

Oracleデータベース

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

Oracle Databaseの詳細は、https://docs.oracle.com/en/database/database.htmlを参照してください。

Oracle WebLogicサーバー

Oracle WebLogic Server 12cは、稼働コストの低減、パフォーマンスの向上およびOracleアプリケーション群のサポートのための新しい機能の支援によってエンタープライズJava EEアプリケーションを構築およびデプロイするためのアプリケーション・サーバーです。

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

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

Oracle Fusion Middleware

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

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

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

- Oracle Fusion Middlewareの理解のOracle Fusion Middlewareの概念の概要

- 『Oracle Fusion Middlewareの管理』のOracle Fusion Middlewareの管理のスタート・ガイドに関する項を参照してください

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

インストーラでは、これらの製品をすべて構成できるほか、そのうちのいくつかを選択して構成することもできます。Oracle Formsのインストールの詳細は、次を参照してください。

- Oracle Fusion Middleware Oracle Fusion Middlewareのインストールのプランニング・ガイドのOracle Fusion Middlewareのインストールの準備の章。

アップグレード情報は、次を参照してください。

- Oracle Fusion Middlewareのアップグレードのプランニング・ガイドのOracle Fusion Middleware 12cへのアップグレードのプランニング。

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

Oracle Forms Servicesのアーキテクチャ

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

- イメージの上位にあるクライアント層には、次の2つの構成の1つが含まれる場合があります。

1. アプリケーションが表示されるかアプリケーションの起動元であるWebブラウザ、Java Development Kit (JDK)およびJava Plug-In (JPI)。

2. Formsスタンドアロン・ランチャ(FSAL)およびJava Runtime EnvironmentまたはJava Development Kit (JDK)。

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

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

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

Oracle Forms Servicesのコンポーネント

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

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

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

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

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

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

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

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

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

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

注意:

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

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

Formsランタイム・プロセス

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

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

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

2 Oracle Forms Servicesの新機能

この章では、Oracle Fusion Middleware Forms Services 12cの機能と改良点について説明します。

この章の構成は、次のとおりです。

- Oracle BI-Publisher統合

- JVMコントローラの改善

- カスタマイズ可能な色スキーム

- アプレット・パラメータ

- 環境変数

- SSO統合の改善

- クライアント・デプロイメント・オプション

- Form Builder専用のインストール・オプション

Oracle Forms Services 11gリリース2の新機能のリストは、「Oracle Forms Servicesの新機能」(http://docs.oracle.com/cd/E48391_01/doc.11120/e24477/whats_new.htm)を参照してください

Oracle BI-Publisher統合

Oracle Formsの以前のバージョンでは、Oracle Reportsとの統合が可能でした。Oracle Formsのこのリリースでは、Oracle BI-Publisherとの統合も可能になりました。これにより、開発者には、レポート・ツールの1つを使用する選択肢と両方を使用する選択肢が用意されました。詳細は、Form Builderのヘルプを参照してください。

JVMコントローラの改善

このリリースには、トラブルシューティングをより簡単にできるよう改善された診断機能が含まれます。JVMの負荷分散および改善されたメモリー処理により、パフォーマンスが向上します。詳細は、「Java仮想マシンの構成と管理」を参照してください。

カスタマイズ可能な色スキーム

Oracle Formsの以前のリリースでは、アプレット・パラメータcolorSchemeに関連付けられた9つの色スキームが公開されていました。このリリースでは、カスタム色スキームを作成してから実行時に適用できるようになりました。アプリケーションのコーディングの変更は不要です。

詳細は、「カスタム・ランタイム色スキームの作成」を参照してください。

アプレット・パラメータ

管理者は、新しいアプレット・パラメータを使用することにより、アプリケーション・コードを変更しなくてもアプリケーションのルック・アンド・フィールを高めることができます。従来、このような機能を使用するには、Forms Java BeansまたはプラガブルJavaコンポーネントの開発、または他のアプリケーション・コーディングの変更が必要でした。

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

環境変数

管理者は、新しい環境変数を使用することにより、アプリケーション・コードを変更しなくてもアプリケーションの動作を改善できます。詳細は、「環境変数の管理」を参照してください。

SSO統合の改善

Oracle Formsの以前のバージョンでは、アプリケーションがアクセスを行うために可能なのはシングル・サインオンのみでした。シングル・サインオフは不可能でした。Oracle Formsのこのリリースでは、オンデマンド・オプションを使用するか、従来のアプリケーション終了プロセス中に、シングル・サインオフする機能が用意されています。

詳細は、「Oracle Access ManagerでのForms Servicesの使用」を参照してください。

クライアント・デプロイメント・オプション

このリリースには、4つのクライアント・デプロイメント・タイプが用意されています。管理者およびアプリケーション開発者がクライアント・デプロイメント・タイプを選択できるようにすることにより、必要な機能やアプリケーション・タイプに最も適した方法でアプリケーションをエンドユーザーに提供することが可能になります。

詳細は、「クライアントの構成に関する注意事項」を参照してください。

Form Builder専用のインストール・オプション

この新しいインストール・オプションには、Form Builderおよびその関連ユーティリティのみをインストールする機能が用意されています。ランタイムまたは関連コンポーネントはインストールされません。ランタイム環境が必要ない場合は、より軽量のインストール・オプションが役に立ちます。

詳細は、Oracle Forms and Reportsのインストールおよび構成の章を参照してください。

3 Forms Servicesの構成と管理

Formsアプリケーションのデプロイメントを構成したり、Formsインスタンスの大部分の管理タスクを実行したりするには、Fusion Middleware Controlを使用します。Forms Serviceの構成および管理には、環境変数の管理および構成(Formsサービスによって使用されるアプリケーション、フォント、アイコン、イメージのURLセキュリティ、言語の検出、キー・マッピングなど)も含まれます。

この章の構成は、次のとおりです。

- Fusion Middleware ControlとOracle Forms

- Forms Servicesの構成

- 環境変数の管理

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

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

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

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

- 言語検出の有効化

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

Fusion Middleware ControlとOracle Forms

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

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

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

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

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

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

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

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

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

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

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

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

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

2. ナビゲーション側のパネルを開き、Formsノードを開きます。アクセスするFormsインスタンスのリンクをクリックします。

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

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

表3-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」メニューが表示されます。表3-2に、「Forms」メニューで使用可能なメニュー選択を示します。

表3-2 「Forms」メニューのオプション

選択

表示するページ

ホーム

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

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

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

詳細は、Oracle Fusion Middlewareの管理のOracle Fusion Middlewareの監視を参照してください。

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

「ログ・メッセージ」ページ。Oracle Fusion Middlewareのコンポーネントは、すべてのタイプのイベントを記録するメッセージを含むログ・ファイルを作成します。

JVMコントローラ

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

スケジュール事前開始

事前開始スケジューリング・ページ。このページで、Forms事前開始スケジューリングを管理します。

ユーザー・セッション

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

Web構成

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

トレース構成

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

JVM構成

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

環境構成

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

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

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

セキュリティ

次に関する情報を表示します。

- FormsのOPSSリソース管理: このページで、Oracle Platform Security Services (OPSS)リソースを管理します。

- FormsのLDAPアソシエーション: このページで、Forms LDAPリソースを管理します。

- Forms RuntimeのLDAPアソシエーション: このページにより、FormsデプロイメントとOracle Internet Directoryホストとの関連付けを設定および解除して、シングル・サインオン機能を有効にできます。

- リソース移行: このページにより、リソースをLDAPからOPSSに移行します。

一般情報

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

注意:

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

Forms Servicesの構成

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

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

1. Fusion Middleware Controlにアクセスします。

2. Fusion Middleware Controlのメイン・ページから、「ターゲット・ナビゲーション」リンクをクリックし、ナビゲーション側のパネルを開きます。

3. ツリー内で、「Forms」ノードを開き、構成するインスタンスをクリックします。

4. Formsページ内の「Formsデプロイメント」表で、「Web構成」をクリックします。

「Web構成」ページ(図3-2)が表示されます。

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

この図は、Fusion Middleware Controlの「Web構成」ページのスクリーンショットです。

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

注意:

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

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

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

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

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

タスク

説明

備考

類似作成

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

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

編集

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

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

削除

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

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

作成

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

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

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

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

タスク

説明

備考

表示

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

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

- 基本

- シングル・サインオン

- トレース

- Plug-in

- HTML

- アプレット

- 詳細

- すべて

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

元に戻す

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

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

適用

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

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

継承の非表示

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

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

追加

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

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

削除

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

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

オーバーライド

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

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

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

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

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

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

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

パラメータ

値

パスが指定されていない場合のデフォルトの場所

baseHTML

base.htm

FORMS_INSTANCE/server

baseHTMLjpi

basejpi.htm

FORMS_INSTANCE/server

basejnlp

NULL

FORMS_INSTANCE/server

envFile

default.env

DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config

baseSAAfile

NULL

FORMS_INSTANCE/server

これらのすべてのパラメータでファイル名が指定されています。デフォルトのパスは前述の表に指定されています。

構成セクションの管理

構成セクションを管理するには、名前を付けた構成セクションを作成、編集、複製および削除します。

この部では、次の項目について説明します。

- 構成セクションの作成

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

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

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

構成セクションの作成

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

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

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

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

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

4. 「チェンジ・センター」メニューで、「ロックして編集」を選択して、構成の編集を開始します。

注意:

ロックと編集により、他の変更を上書きしないようにします。トランザクション単位ごとに変更を行うことができるのは1人のユーザーのみです。

変更を保存しない場合は、「チェンジ・センター」メニューで「すべての変更を取消し」をクリックします。

5. 「Web構成」リージョン上部の「作成」をクリックします。

「セクションの作成」ダイアログ・ボックスが表示されます。

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

注意:

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

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

7. 変更内容をアクティブ化するには、「変更のアクティブ化」をクリックします。

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

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

パラメータ

値

form

<module>

separateFrame

True

lookandfeel

Oracle

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

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

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

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

注意:

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

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

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

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

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

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

5. 「保存」をクリックします。

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

名前を付けた構成の複製

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

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

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

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

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

4. 「作成」をクリックします。

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

名前付き構成の削除

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

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

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

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

「確認」ダイアログが表示されます。

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

構成セクションが削除されます。

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

注意:

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

パラメータの管理

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

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

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

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

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

注意:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

注意:

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

注意:

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

注意:

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

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

この図は、Fusion Middleware Controlの様々なパラメータの状態の各種のアイコンが表示されたスクリーンショットを示しています。

Forms構成パラメータ

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

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

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

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

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

この部の内容は次のとおりです。

- 基本構成パラメータ

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

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

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

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

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

- 詳細構成パラメータ

- URLで制限されるパラメータ

基本構成パラメータ

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

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

パラメータ

必須/オプション

パラメータ値と説明

envFile

必須

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

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

form

必須

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

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

height

必須

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

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

高さをパーセント値で指定することもできます。この値は、ブラウザのコンテンツ領域のサイズに比例します。この値は、100%を超えたり1%を下回らないようにする必要があります。パーセント値を使用するには、次の例に示すように、数値の後にパーセント(%)記号を付加する必要があります。

HEIGHT= 75%

この例は、アプレットの高さがブラウザのコンテンツ領域の75%であることを意味しています。

userid

オプション

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

width

必須

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

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

幅をパーセント値で指定することもできます。この値は、ブラウザのコンテンツ領域のサイズに比例します。この値は、100%を超えたり1%を下回らないようにする必要があります。パーセント値を使用するには、次の例に示すように、数値の後にパーセント(%)記号を付加する必要があります。

WIDTH= 75%

この例は、アプレットの幅がブラウザのコンテンツ領域の75%であることを意味しています。

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

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

パラメータ

必須/オプション

パラメータ値と説明

logoutTargetURLParamname

オプション

ランディングURLを保持するOAMログアウトURL上の問合せパラメータの名前を保持するためのパラメータを指定します。デフォルトはblankです。

ssoCancelUrl

オプション

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

ssoDynamicResourceCreate

オプション

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

デフォルト値はtrueです。

ssoErrorUrl

オプション

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

ssoLogout

オプション

終了中にセッションをログアウトするかどうかを指定します。デフォルトはFalseです。

ssoLogoutRedirect

オプション

ログアウト後にブラウザをリダイレクトするURLを指定します。デフォルトはBlankです。

ssoMode

オプション

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

デフォルト値はfalseです。

ssoProxyConnect

オプション

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

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

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

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

パラメータ

必須/オプション

パラメータ値と説明

debug

オプション

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

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

EndUserMonitoringEnabled

オプション

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

EndUserMonitoringURL

オプション

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

host

オプション

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

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

log

オプション

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

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

port

オプション

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

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

record

オプション

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

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

formsweb.cfgの有効な値は、次のとおりです。

- forms、tracegroupとともに使用した標準のトレースに使用されます。

- names、外部のテスト・ツールにより使用されます。

tracegroup

オプション

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

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

Plug-inの構成パラメータ

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

表3-10 Oracle Java Plug-in構成パラメータ

パラメータ

必須/オプション

パラメータ値と説明

archive

必須

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

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

codebase

必須

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

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

imageBase

オプション

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

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

- documentBaseは、アイコンの検索パスがFormsのwebappのディレクトリを基準とした相対パスであることを示します。Formsのwebappのディレクトリは、$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.1/<random string>/war.にあります。

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

java_version

必須

エンドユーザー環境で使用するJavaバージョンを示します。

デフォルト値は1.7+です

jpi_classid

必須

Oracle Java Plug-inのクラスID。formsweb.cfgにより、適切な値が指定されます。デフォルト値は8AD9C840-044E-11D1-B3E9-00805F499D93です。

jpi_codebase

必須

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

jpi_download_page

オプション

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

デフォルト値はhttp://www.oracle.com/technetwork/java/javase/downloadsです

jpi_mimetype

必須

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

デフォルト値はapplication/x-java-appletです

webstart

オプション

Web Startを有効にする必要があるかどうかを示します。

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

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

パラメータ

必須/オプション

パラメータ値と説明

baseHTML

必須

クライアント・ブラウザがMS Windows上に存在しないか、または<OBJECT>タグをサポートしない場合(あるいはその両方に該当する場合)に、ベースHTMLファイルとして使用されます。

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

basejnlp

オプション

Web Startまたは埋込みJNLPクライアント・デプロイメントを使用する場合、値はbase.jnlpである必要があります

baseHTMLjpi

必須

Java Plug-inのタグを含むHTMLファイルへの物理パス。クライアント・ブラウザがMS Windows上に存在し、かつ<OBJECT>タグをサポートする場合に、ベースHTMLファイルとして使用されます。

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

baseSAAfile

オプション

Formsスタンドアロン・ランチャを使用する場合、値はbasesaa.txtである必要があります

HTMLafterForm

オプション

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

HTMLbeforeForm

オプション

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

HTMLbodyAttrs

オプション

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

pageTitle

オプション

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

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

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

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

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

パラメータ

必須/オプション

パラメータ値と説明

background

オプション

背景に表示するイメージ・ファイルを指定します。背景なしの場合はNOに設定します。デフォルトの背景を使用する場合は空白のままにします。サポートされているイメージ形式: gif、pngおよびjpg

colorScheme

オプション

アプリケーションの配色を指定します。有効な値: Teal、Titanium、Red、Khaki、Blue、BLAF、SWAN、OliveまたはPurple。formsweb.cfgからのデフォルト値は、tealです。サポートされているイメージ形式: gif、pngおよびjpg

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

logo

オプション

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

lookAndFeel

オプション

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

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

separateFrame

オプション

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

splashScreen

オプション

アプレットが表示される前に表示するイメージ・ファイルを指定します。スプラッシュなしの場合はNOに設定します。デフォルトのスプラッシュ・イメージを使用する場合は空白のままにします。サポートされているイメージ形式: gif、pngおよびjpg

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

guiMode

オプション

このパラメータで、デフォルトのwindowsメニュー・バーおよびWindowsタイトル・バーの可視性が決定されます。

使用可能な値: 0、1、2、3。

デフォルト値は0です。デフォルト値では、デフォルトのWindowsメニュー・バーおよびWindowsタイトル・バーが表示されます。

注意: このパラメータは、Forms Builderでフォームにメニューを何も指定しない場合にのみメニューバーに適用され、フォームに関連付けられたメニューがある場合は、このパラメータは適用されません。ウィンドウ・バーの場合は、Forms Builderでフォームに指定されたメニューがあっても、このパラメータが適用されます。

guiModeの詳細は、「guiMode構成パラメータ」を参照してください。

CenterOnStartup

オプション

Formsの別のフレームは画面の中央で起動します。separateFrame=trueとともに使用する場合、Formsの別のフレームは画面の中央で起動します。separateFrame=falseである場合、このパラメータを設定してもフレームには影響しません。

これは、Web Startではサポートされません。

デフォルト値はfalseです。

AlwaysOnTop

オプション

Formsの別のフレームが他のすべてのオープン・ウィンドウの上にそのまま存在するかどうかを決定します。separateFrame=trueとともに使用する場合、Formsの別のフレームが他のすべてのオープン・ウィンドウの上にそのまま存在します。separateFrame=falseである場合、このパラメータを設定してもフレームには影響しません。

これは、Web Startではサポートされません。

デフォルト値はfalseです。

IsResizable

オプション

Formsの別のフレームのサイズ変更機能を有効または無効にできるかどうかを決定します。separateFrame=trueとともに使用する場合、Formsの別のフレームのサイズ変更機能を有効または無効にできます。separateFrame=falseである場合、このパラメータを設定してもフレームには影響しません。デフォルト値はtrueです。

詳細構成パラメータ

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

パラメータ

必須/オプション

パラメータ値と説明

allowAlertClipboard

オプション

システム・クリップボードにアクセスできない場合にアラート・ダイアログを表示するかどうかを決定します。falseに設定すると、クリップボードへのアクセスが失敗したときにJavaコンソールにサイレントでレポートされます。

デフォルト値は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ミリ秒)ごとに完了します。ゼロを指定すると点滅が無効になり、カーソルは常に点灯した状態になります。

customColorScheme

オプション

Registry.datで作成されたカスタム色スキームの名前を示すには、このパラメータを設定します。これを設定すると、colorschemeパラメータがオーバーライドされます。

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にFORMS_TIMEOUTの値を超える値を設定するとユーザーの既存のセッションが終了するため、行わないことをお薦めします。heartBeatの値がパラメータsession-timeoutより大きいと、session-timeoutの値がheartBeatより優先されます。heartBeatの値を増やすには、session-timeoutの値をheartBeatより大きくする必要があります。このパラメータの詳細は、Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発のsession-timeoutを参照してください。

hideActivityBar

オプション

Formsアクティビティ・バー(進捗バーとも呼ばれます)を非表示にするかどうかを指定します。デフォルト値はfalseです。

hideClientExceptions

オプション

Javaコンソールとエラー・メッセージ・ダイアログの両方でエンドユーザーにJava例外を表示しないかどうかを決定します。デフォルト値はfalseです。

highContrast

オプション

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

HTMLdelimiter

オプション

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

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

idleTimeout

オプション

SYSTEM_CLIENT_IDLEイベントが起動するまでに経過が許容されるアイドル時間を示します。

JavaScriptBlocksHeartBeat

オプション

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

デフォルト値はfalseです。

legacy_lifecycle

オプション

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

デフォルト値はfalseです。

logoutTargetURLParamname

maxeventwait

オプション

このパラメータを使用して、クライアントがまだ実行中であることを示し、新規イベントが発生しているかどうか確認するために、サーバーにパケットを送信する頻度を指定します。このパラメータはHEARTBEATと似ていますが、このパラメータはミリ秒単位で表され、HEARTBEATは秒単位で表されます。この値の設定値を小さくしすぎると、ネットワーク・トラフィックが大幅に増加するため、慎重に使用する必要があります。

maxRuntimeProcesses

オプション

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

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

networkRetries

オプション

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

デフォルト値は0です。

networkStats

オプション

ステータス・バーに集計統計を表示するには、このパラメータをtrueに設定します。これにより、javaコンソールでのラウンドトリップ統計も表示されます。

このネットワーク統計機能は、このパラメータがbaseHTMLファイルに定義されている場合にのみ有効化されます。

デフォルト値はfalseです。

obr

オプション

内部使用のみに対応しています。

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

otherparams

オプション

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

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

pingStats

オプション

Formsがレンダリングされるときに、javaアプレットによる管理対象サーバーへのpingを有効化するには、この値をtrueに設定します。pingの結果は、javaコンソールに表示されます。

この機能は、このパラメータがbaseHTMLファイルに定義されている場合にのみ有効化されます。

デフォルト値はfalseです。

pingWait

オプション

このパラメータは、サーバーからの応答を受信するためにpingStatsパラメータが待機する必要がある最長時間(ミリ秒単位)を示します。

この機能は、このパラメータがbaseHTMLファイルに定義されている場合にのみ有効化されます。

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

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の問合せ文字列では使用が制限される文字をカンマで区切って指定します。

sendHeartBeatBean

オプション

モード・ダイアログ/ウィンドウを表示するJava BeansまたはPJCによってFormsハートビートがブロックされないようにするには、このFormsアプレット・パラメータをTRUEに設定します。

デフォルト値はFALSEです。

separate_jvm

オプション

音声のサポートに必要です。

デフォルト値はFALSEです。

serverApp

オプション

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

デフォルト値はdefaultです。

serverURL

必須

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

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

tabstop

オプション

複数行のテキスト・フィールドのタブの停止サイズを設定するには、このFormsアプレット・パラメータを0より大きい整数値に設定します。これは、タブの使用が想定される任意のフィールドの合計文字幅より大きい値に設定しないでください。このパラメータを設定すると、アプリケーション内の複数行のテキスト・フィールドすべてに適用されます。

デフォルト値は4です。

term

オプション

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

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

guiModeの構成パラメータ

guiModeパラメータは、FormsアプリケーションのランタイムGUIを制御します。このパラメータをURL内に指定することも、値をformsweb.cfgファイル(Forms構成ファイル)で提供することもできます。guiModeパラメータは、次のGUIコンポーネントの可視性に影響します。

- クライアントで提供されるデフォルトのWindowsメニューバーの可視性。Forms Builderのフォームにメニューバーが指定されていない場合、実行時にクライアントからデフォルトのメニューバーが提供されます。guiMode値は、クライアントで提供されるこのデフォルトのメニューバーのみに影響します。

注意:

guiMode値は、Formsメニュー・モジュール・パラメータがnullに設定されている場合にのみ有効です。フォームに、サーバー指定のメニューバー(Formsのデフォルト・メニューを含む)またはそれに関連付けられたツールバーがある場合は、このパラメータは適用されません。ウィンドウ・バーの場合は、Forms Builderでフォームに指定されたメニューがあっても、このパラメータが適用されます。

- フォーム内のすべてのウィンドウのタイトル・バーの可視性。このパラメータは、アラート・ウィンドウ、ポップアップ・ウィンドウなどのウィンドウのタイトル・バーには影響しません。

表3-14に、デフォルトのWindowsメニューバーおよびWindowsタイトル・バーに対するguiMode値の影響を示します。デフォルトのguiMode値は0です。表に示した4つの値以外の値は無視されます。この場合、guiModeはデフォルト値に戻ります。

表3-14 guiMode値の影響

guiMode

デフォルトのメニューバーが表示されるか

ウィンドウのタイトル・バーが表示されるか

0

はい

はい

1

いいえ

はい

2

はい

いいえ

3

いいえ

いいえ

注意:

guiModeが2または3で、ウィンドウのタイトル・バーが見えない場合、ウィンドウを最大化または最小化することはできません。ビルトインを使用してウィンドウを最大化または最小化することは可能ですが、ウィンドウは最小化しないでください。ウィンドウを最小化すると、元に戻すことができなくなるためです。

URLで制限されるパラメータ

この項では、サーブレット構成ファイル(formsweb.cfg)でのみ指定できるパラメータを示します。これらのパラメータをURLで指定した場合、その値は無視されます。さらに、restrictedURLparamsパラメータの値にリストされているすべてのパラメータは、URLで指定した場合は却下されます。

- allowNewConnections

- baseHTML

- baseHTMLjpi

- connectionDisallowedURL

- defaultCharset

- envFile

- escapeparams

- heartbeat

- HTMLdelimiter

- idleTimeout

- logoutTargetURLParamname

- maxeventwait

- maxRuntimeProcesses

- prestartIncrement

- prestartInit

- prestartMin

- prestartRuntimes

- prestartTimeout

- restrictedURLparams

- restrictedURLchars

- serverURL

- ssoCancelURL

- ssoDynamicResourceCreate

- ssoErrorURL

- ssoLogout

- ssoMode

- ssoLogoutRedirect

- workingDirectory

環境変数の管理

環境変数を管理するには、Fusion Middleware Controlの「環境構成」ページを使用します。このページでは、必要に応じて環境変数の追加、編集または削除を行うことができます。

Formsランタイム実行可能ファイル(Windowsの場合はfrmweb.exe、UNIXの場合はfrmweb)の環境変数(PATH、ORACLE_HOME、FORMS_PATHなど)は、default.envに定義されています。Formsリスナー・サーブレットは、実行可能ファイルをコールし、デフォルトで$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/configディレクトリにある環境ファイルに指定された変数値で初期化します。

default.envで定義されていない環境変数は、Oracle WebLogic管理対象サーバーから継承されます。「Web構成」ページの「デフォルト」セクションのenvFileパラメータで環境ファイル名を指定する必要があります。

環境変数をカスタマイズする際には、次の事項を考慮してください。

- 環境変数は、Windowsのレジストリでも指定できます。環境ファイルの値はレジストリの設定をオーバーライドします。変数が環境ファイルで設定されていない場合は、レジストリ値が使用されます。

- レジストリ値を変更するには、管理者権限が必要です。

- サーバーを再起動しなくても、構成の変更は反映されます。

- Formsプロセスを開始した後で環境変数を定義しても、開始済のFormsプロセスはその影響を受けません。

- 環境ファイルまたはWindowsのレジストリで設定されていない環境変数は、Oracle WebLogic管理対象サーバーである親プロセスの環境から継承されます。

表3-15は、default.envに指定される重要な環境変数を示しています。

この部の内容は次のとおりです。

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

- 環境変数の構成

- デフォルトの環境変数

- Java対応フォームに対するプロキシ・サポート

環境構成ファイルの管理

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

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

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

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

図3-4 環境構成ページ

この図は、Fusion Middleware Controlの「環境構成」ページのスクリーンショットです。

環境構成ファイルを複製するには:

1. 「環境構成」ページで、「重複ファイル」をクリックします。
「重複ファイル」ダイアログが表示されます。

2. 複製するファイルを選択して、ファイルの一意な名前を入力します。

3. 「重複」をクリックしてファイルを作成します。

環境構成ファイルを削除するには:

1. 「環境構成」ページで「表示」メニュー・リストから、削除する環境構成ファイルを選択します。

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

3. 「はい」をクリックして削除を確認します。

注意:

default.envは削除できません。削除できる環境構成ファイルはユーザーが定義したもののみです。

環境構成ファイルを表示するには:

1. 「環境構成」ページで「表示」メニュー・リストから、表示する環境構成ファイルを選択します。

2. パラメータとその値が表示されます。

環境変数の構成

環境変数を編集するには:

1. 「環境構成」ページで、編集する環境変数を含むパラメータの行を選択します。

2. 「値」と「コメント」に入力します。

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

環境変数を追加するには:

1. 「表示」メニュー・リストから、変数を追加する環境構成ファイルを選択します。

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

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

4. 「作成」をクリックします。

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

環境変数を削除するには:

1. 「表示」メニュー・リストから、環境変数を削除する環境構成ファイルを選択します。

2. 削除するパラメータの行を選択します。複数のパラメータを同時に削除できます。

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

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

デフォルトの環境変数

表3-15に、いくつかの環境変数について有効な値と変数の説明を示します。

表3-15 デフォルトの環境変数

パラメータ

有効な値

説明

ORACLE_HOME

ORACLE_HOME (デフォルト)

Oracle製品の基本インストレーション・ディレクトリを示します。

FORMS_INSTANCE

FORMS_INSTANCE (デフォルト)

すべての構成ファイル、リポジトリ、ログ・ファイル、配布されたアプリケーションおよび一時ファイルを含みます。

PATH

ORACLE_HOME/bin(デフォルト)

Oracle製品の実行可能ファイルを含みます。

FORMS_PATH

ORACLE_HOME/forms:FORMS_INSTANCE/FormsComponent/forms (デフォルト)

実行するフォーム、メニューまたはライブラリを探すときにOracle Forms Servicesで検索するパスを指定します。

Windowsの場合、複数のパスはセミコロン(;)で区切ります。

UNIXの場合、複数のパスはコロン(:)で区切ります。

FORMS_RESTRICT_ENTER_QUERY

TRUE (デフォルト)

問合せ入力モードのときに任意のSQL文が入力される可能性がある検索条件入力機能をエンドユーザーが使用する場合は、この変数を無効にするか削除します。

TNS_ADMIN

DOMAIN_HOME/config/fmwconfig

TNSNAMES.ORA、SQLNET.ORAなどのTNSファイルへのパス名を指定します。

CLASSPATH

ORACLE_HOME/jdk/bin/java

インポートした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

DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/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でコンパイルできます。

FORMS_MODULE_PATH

パスのリスト(UNIXではコロン区切り、Windowsではセミコロン区切り)。

この環境変数を空でない値に設定すると、Formsアプリケーションの起動元のディレクトリが制限されます。これによる重要な影響は次のとおりです。

- 初期フォームで、FORMS_PATH、ORACLE_PATH、FORMS_MODULE_PATHの値に現れるパス、またはFORMS_MODULE_PATHの値にあるパスのサブディレクトリ(親ディレクトリへの参照を持たないもの)のパスが指定されている必要があります。
このような一致が見つからない場合、エラー・メッセージ「FRM-40010: フォームを読み取れません。」が表示されます。

- フォーム、メニューまたはライブラリ(.fmx、.mmx、.plxまたは.pllファイル)がパスなしで(初期フォームとして、またはCALL_FORM、NEW_FORMまたはOPEN_FORM文内で)指定されている場合、現在の作業ディレクトリは検索されません。検索されるディレクトリは、FORMS_PATHおよびORACLE_PATH環境変数で指定されたディレクトリのみです。

注意:

Windowsの場合、Oracle環境設定が環境変数として設定されていないと、Oracle Forms ServicesはWindowsレジストリからOracle環境設定を読み取ります。

Java対応フォームに対するプロキシ・サポート

企業環境によっては、各種サーバーとプロキシ・サーバーが分離されている場合があります。これにより、セキュリティは向上しますが、サーバー全体にわたる統合がより困難になります。Oracle Reports、Oracle BI-Publisherと統合されるか、インポートしたJavaを使用するとともに、プロキシ・サーバーを介して、Formsが実行されているサーバー以外のサーバーをコールするOracle Formsアプリケーションの場合、次の環境変数の1つ以上を構成する必要があります。

表3-16 Formsネットワーク・プロキシの環境変数

パラメータ

有効な値

使用上の注意

FORMS_HTTP_PROXY_HOST

HTTP対応プロキシ・ホスト。

例: http_proxy.com

JVMコントローラを使用する場合、「JVMコントローラを使用したネットワーク・プロキシおよびJavaコール」およびJava同等のhttp.proxyHostを参照してください

FORMS_HTTP_PROXY_PORT

HTTP対応プロキシ・ホスト・ポート。

JVMコントローラを使用する場合、「JVMコントローラを使用したネットワーク・プロキシおよびJavaコール」およびJava同等のhttp.proxyPortを参照してください

FORMS_HTTPS_PROXY_HOST

HTTPS対応プロキシ・ホスト。

例: https_proxy.com

JVMコントローラを使用する場合、「JVMコントローラを使用したネットワーク・プロキシおよびJavaコール」およびJava同等のhttps.proxyHostを参照してください

FORMS_HTTPS_PROXY_PORT

HTTPS対応プロキシ・ホスト・ポート。

JVMコントローラを使用する場合、「JVMコントローラを使用したネットワーク・プロキシおよびJavaコール」およびJava同等のhttps.proxyPortを参照してください

FORMS_PROXY_BYPASS

プロキシを使用してアクセスしてはならないホストのリスト。リスト内のホストは|文字によって区切られ、個々のホストにはワイルドカード文字*を使用できます。詳細は、Javaドキュメント(https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties.html)を参照してください。

JVMコントローラを使用する場合、「JVMコントローラを使用したネットワーク・プロキシおよびJavaコール」およびJava同等のhttp.nonProxyHostsを参照してください

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

管理者は、Fusion Middleware Controlを使用して、ユーザー・セッションとそれに関連する監視、デバッグ、トレースなどの機能を管理できます。

ユーザー・セッションはfrmwebプロセスの開始によって始まります。Formsインスタンス内でFormsセッションを監視およびトレースするには、「Formsユーザー・セッション」ページを使用します。「Formsユーザー・セッション」ページにアクセスするには、「Forms」メニュー・リストから「ユーザー・セッション」を選択します。

Formsユーザー・セッションを表示するには:

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

2. 「Forms」メニュー・リストから「ユーザー・セッション」を選択します。
「ユーザー・セッション」ページ(図3-5)が表示されます。

図3-5 「ユーザー・セッション」ページ

この図は、Fusion Middleware Controlの「ユーザー・セッション」ページのスクリーンショットです。

3. 表3-17に、「ユーザー・セッション」ページに表示されるフィールドを示します。

表3-17 「ユーザー・セッション」ページ

フィールド

説明

プロセス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. 「データベース」列でデータベース名をクリックします。
ログインして「データベース・セッション」ページ(図3-6)を表示します。「データベース・セッション」ページにログインするにはデータベース管理者権限が必要です。

図3-6 「データベース・セッション」ページ

この図は、Fusion Middleware Controlの「データベース・セッション」ページのスクリーンショットです。

3. 表3-18、表3-19および表3-20に、データベース・セッションページに表示される情報を示します。

表3-18 「データベース・セッション」ページ

フィールド

説明

ユーザー名

データベースへの接続に使用されるデータベース・ユーザー名。

セッションID

データベース・セッション識別子。

ログオン時間

ユーザーがセッションにログオンした日時。

シリアル番号

セッション・シリアル番号。セッションのオブジェクトを一意に識別するために使用されます。この番号により、あるセッションの終了と別のセッションの開始が同じセッションIDで行われる場合に、セッション・レベルのコマンドが正しいセッション・オブジェクトに適用されるようになります。

ステータス

セッションがアクティブかどうかを示します。

SQL HASH

実行されたSQL文を識別するために使用されます。

CPU使用率(%)

特定セッションによるデータベース・システムのCPU使用率(%)。

論理読取り

特定セッションでの論理読取りの数。

物理読取り

特定セッションでの物理読取りの数。

PGA (プログラム・グローバル領域)メモリー

間隔が終了した時点でのPGA(プログラム・グローバル領域)メモリーのサイズ。

表3-19 選択したデータベース・セッションの詳細

フィールド

説明

選択したデータベース・セッションのSQL文

最新のSQL文を表示します。

表3-20 選択したデータベース・セッションの実行計画

フィールド

説明

操作

実行ステップで実行された内部操作の名前(TABLE ACCESSなど)。

オブジェクト

表または索引の名前です。

オブジェクト・タイプ

オブジェクトのタイプ。

ID

実行計画の各ステップに割り当てられた番号です。

親ID

現在のステップの出力に基づいて実行される次の実行ステップのID。

深さ

ツリー内の操作の深さ(レベル)。レベル情報を取得するために、必ずしもCONNECT BY文(通常、PLAN_TABLE表からの行をインデントするために使用)を発行する必要はありません。ルート操作(文)は、レベル0です。

位置

同じPARENT_IDを持つすべての操作の処理順序。

行数

操作によって生成された行数のコストベース・オプティマイザによる見積り。

サイズ(KB)

操作によって生成されたバイト数のコストベース・オプティマイザによる見積り。

コスト

オプティマイザのコストベース・アプローチによって見積られた操作のコスト。ルールベースのアプローチを使用する文の場合、この列はNULLです。

時間(秒)

オプティマイザのコストベース・アプローチによって見積られた操作の経過時間(秒)。ルールベースのアプローチを使用する文の場合、この列はNULLです。

CPUコスト

オプティマイザのコストベース・アプローチによって見積られた操作のCPUコスト。ルールベースのアプローチを使用する文の場合、この列はNULLです。

I/Oコスト

オプティマイザのコストベース・アプローチによって見積られた操作のI/Oコスト。ルールベースのアプローチを使用する文の場合、この列はNULLです。

通知メッセージをFormsユーザー・セッションに送信する手順:

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

2. 「Forms」メニューから「ユーザー・セッション」を選択します。

3. 通知を受信するのに必要なユーザー・セッションを選択します。

[Ctrl]キーを使用しながら追加のユーザー・セッションを選択すると、複数のセッションを選択できます。

4. 表の上にある「通知」ボタンをクリックします。

5. ダイアログ・ボックスで、ユーザーに送信する「通知値」を選択します。

6. 「OK」をクリックすると、通知が送信されます。

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

Oracle Formsアプリケーションは、ユーザーがブラウザでアクセスするWeb配布のソリューションです。Oracle Forms Servicesアーキテクチャでは、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パラメータを追加した別のユーザーとして接続できます。これを防止するには、図3-7にあるように、restrictedURLparamsでuseridパラメータを定義します。

図3-7 restrictedURLparamsパラメータの定義

この図は、URLでuseridパラメータの使用を制御するために使用されるrestrictedURLparamsパラメータの例のスクリーンショットです。

同様に、管理者はrestrictedURLparamsパラメータを使用して、制限されたパラメータのうち、使用されたもののリストを表示するページにユーザーをリダイレクトできます。12cでは、restrictedURLparamsをallに設定できます。これにより、(構成セクション以外の)パラメータをURLで指定できなくなります。

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ページを作成して、これらの変数をかわりにポイントします。たとえば、$DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/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ページが表示されます。

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

ここでは、(Oracleが提供するテンプレートを変更して)ユーザー独自のHTMLファイル・テンプレートを作成することを検討します。ユーザー独自のテンプレートを作成すると、標準のFormsパラメータおよびパラメータ値をテンプレートに直接指定できます。作成したテンプレートには、標準テキスト、ブラウザ・ウィンドウ・タイトル、またはイメージ(会社のロゴなど)を挿入でき、これらはWebで使用できるフォームを実行するときに参照できる、最初のWebページに表示されます。標準パラメータ、値、および追加のテキストまたはイメージを追加すると、特定のアプリケーションのテンプレートをカスタマイズするために必要な作業量を減らすことができます。テキスト、イメージまたはウィンドウ・タイトルを追加するには、テンプレートHTMLファイルに適切なタグを挿入する必要があります。

serverArgsアプレット・パラメータのコーディングの詳細は、「ランフォーム・パラメータにおける特殊文字の指定」を参照してください。

ユーザーが追加してカスタマイズした構成ファイル(ユーザー・クライアント・レジストリ・ファイル、ユーザー・キー・バインディング・ファイル、複数の環境ファイルなど)は、対応するデフォルトの構成ファイルと同じディレクトリにコピーしておく必要があります。

たとえば、ユーザーが作成したフランス語環境の構成ファイルdefault_fr.envは、$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/configディレクトリに置く必要があります。

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

引用符またはアポストロフィで区切られた文字列(アプレット・パラメータの値など)内で変数参照が発生すると、変数参照が変数の値で置換されるときに、HTMLエスケープ・シーケンスがHTMLのメタ文字('&'、'<'、'>'、引用符およびアポストロフィ)を置換します。

このシーケンスは、区切られた文字列外の変数参照に対して実行されません。このため、セキュリティ上の理由から、このような変数はシステムのデフォルトの構成パラメータrestrictedURLparamsで指定する必要があります。

注意:

カーソルの点滅速度を変更するか、点滅を無効にするには、クライアント・パラメータcursorBlinkRateを<PARAM NAME="cursorBlinkRate" VALUE="1000"> のように設定します。

デフォルト値は600ミリ秒で、この状態では1回の点灯と1回の消灯が1.2秒(1,200ミリ秒)ごとに完了します。ゼロを指定すると点滅が無効になり、カーソルは常に点灯した状態になります。

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

この項では、Registry.datのフォント、アイコンおよびイメージのデフォルトのディレクトリおよび検索パスの指定方法を説明します。

この部の内容は次のとおりです。

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

- カスタム・ランタイム色スキームの作成

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

- アプリケーションのアイコン、イメージまたは音声ファイルのデプロイ

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

- アイコン、イメージおよび音声ファイルが含まれるカスタムJARファイル

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

Registry.dat.のパラメータを変更、追加または削除するには、Fusion Middleware Controlを使用します。

「フォントとアイコンのマッピング」ページにアクセスするには:

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

2. 「Forms」メニュー・リストから「フォントとアイコンのマッピング」を選択します。
「フォントとアイコンのマッピング」ページ(図3-8)が表示されます。

図3-8 「フォントとアイコンのマッピング」ページ

この図は、Fusion Middleware Controlの「フォントとアイコンのマッピング」ページのスクリーンショットです。

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. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

カスタム・ランタイム色スキームの作成

Oracle Formsには、アプレット・パラメータcolorschemeを使用して設定される事前定義済の色スキームが9つ用意されています。Oracle Forms 12c以降、用意されている色スキームを使用するかわりに、カスタマイズした色スキームを作成できます。カスタム色スキームを有効にするには、formsweb.cfgでcustomcolorscheme=<COLOR SCHEME NAME>を設定します。カスタマイズはRegistry.datで構成します。Registry.datには、sampleという名前の例が含まれています。このexampleを使用するには、formsweb.cfgでcustomcolorscheme=sampleを設定します。

注意:

カスタム色スキーム内の仮想色はすべて、目的の色を表す有効な値を持つ必要があります。NULL値は無効であるとみなされます。いずれの値も無効である場合は、すべての色に対してcolorschemeパラメータに設定されている色スキームが使用されます。

色値には、16進数字(0xFFFFFFなど)またはRGBセット(255,255,255など)を使用できます。次に例を示します。

# Sample custom color scheme, where scheme name is "sample".
colorScheme.sample.description=Sample custom color scheme
colorScheme.sample.lightest=0xFFFF33
colorScheme.sample.lighter=0xFFCC33
colorScheme.sample.light=0xCC3333
colorScheme.sample.dark=0x993333
colorScheme.sample.darker=0x660033
colorScheme.sample.darkest=0x003333
colorScheme.sample.selection=0x4169E1
colorScheme.sample.pinstripe1=0xEE82EE
colorScheme.sample.pinstripe2=0xF5DEB3

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

Fusion Middleware Controlでは、デフォルトのフォントおよびRegistry.datファイルによるフォント設定を変更することもできます。フォント名は、いずれもJavaフォントの名前です。各パラメータは、指定がない場合のデフォルトのプロパティを示します。

配布されたアプリケーションのフォント設定を変更するには:

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

2. 「Forms」メニュー・リストから「フォントとアイコンのマッピング」を選択します。

3. 表3-21に基づいて、目的のフォント設定となるように設定を変更します。

表3-21 デフォルトのフォント値

フォント名

デフォルト値

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のフォントに対応しています。

アプリケーションのアイコン、イメージまたは音声ファイルのデプロイ

Oracle Forms Servicesアプリケーションをデプロイする場合、使用するアイコンおよびイメージ・ファイルはJPGやGIF (GIFがデフォルトの形式)などのWeb対応形式にする必要があります。これは音声ファイルについても同様です。サポートされている音声ファイル形式については、Java JFXドキュメント(https://docs.oracle.com/javafx/2/api/javafx/scene/media/package-summary.html#SupportedMediaTypes)を参照してください

デフォルトでは、アイコンはDocumentBaseディレクトリを基準とした相対パスにあります。つまり、DocumentBaseはアプリケーションの開始HTMLファイルのベース・ディレクトリを基準にした相対ディレクトリからイメージを検索します。開始HTMLファイルはFormsサーブレットにより動的にレンダリングされるので、FormsのwebappディレクトリがDocumentBaseになります。Formsのwebappのディレクトリは、$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.1/<random string>/warにあります。

たとえば、アプリケーションでボタンのアイコンのディレクトリをmyapp/<iconname>に定義している場合、そのアイコンはディレクトリforms/myapp内で検索されます。

デフォルトのディレクトリを変更するには、Fusion Middleware Controlの「Web構成」ページでimageBaseパラメータをcodebaseに設定します。または、$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config/oracle/forms/registryディレクトリにあるRegistry.datファイルのdefault.icons.iconpath値を変更することもできます。

imageBaseパラメータをcodebaseに設定すると、Oracle Forms Servicesはforms/javaディレクトリでアイコン・ファイルを検索します。この設定を使用するのは、ユーザーのイメージがJavaアーカイブ・ファイルに格納されている場合です。アプリケーションやOracle Forms Servicesのインストールに依存しない中央のディレクトリにイメージを格納するように、Registry.dat構成ファイルでイメージのディレクトリを変更しておくと便利です。

音声ファイルについても考え方は前述と同様ですが、mediaBaseをRegistry.dat内のエントリでオーバーライドできません。Jarファイルに格納されている音声ファイルの場合は、formsweb.cfgでmediaBase=codeBaseを設定します。

格納 - アイコン、イメージまたは音声ファイルをJavaアーカイブ・ファイルへ

アプリケーションでカスタム・アイコン、イメージまたは音声ファイルを使用する場合、これらをJavaアーカイブ・ファイルに格納し、imageBase値をcodebase (および音声ファイルが含まれる場合はmediaBase=codeBase)に設定しておくようお薦めします。これらのファイルは、任意のJava Development Kit (Java JDK)のJARコマンドを使用してJavaアーカイブにパッケージ化できます。ただし、これは、そのバージョンが、エンドユーザーのマシンでの使用が想定されるバージョン以下であることが前提です

このアーカイブに格納したアイコン・ファイルにOracle Forms Servicesからアクセスできるようにするには、そのアーカイブをforms/javaディレクトリに格納する必要があります。また、アーカイブ・ファイルの名前は、formsweb.cfgファイルのカスタム・アプリケーション・セクションで使用しているアーカイブ・タグの一部にする必要があります。これで、初期アプリケーションを起動すると、JARファイルがクライアントにダウンロードされ、アーカイブ・ファイルを変更しないかぎりキャッシュに格納されたままになります。

JARファイルの使用の詳細は、「アイコン、イメージおよび音声ファイルが含まれるカスタムJarファイル」を参照してください。

注意:

Oracle Forms Servicesのデフォルトのアイコン(デフォルトのスマート・アイコン・バーに表示されるアイコンなど)は、frmall.jarファイルの一部であるため、配置する必要はありません。

アイコンのマッピングの追加、変更および削除

アプリケーションで使用する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=http://example.com/appfile/myapp

(絶対パスの場合)

または

[my_app]

ServerApp=appfile/myapp

(CodeBaseディレクトリを基準とする相対パスの場合)

表3-22は、アプリケーション・アイコンを配置する正しい場所を示したものです。

表3-22 アイコンのディレクトリ・ガイド

アイコンの位置

発生状況

方法

DocumentBase

デフォルトです。カスタム・アイコンが少ないかまったくないアプリケーション。

アイコンをFormsのwebappのディレクトリまたはその相対ディレクトリに格納します。Formsのwebappのディレクトリは、$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.1/<random string>/warにあります。

Javaアーカイブ

多くのカスタム・アイコンを使用するアプリケーション。

ImageBaseをcodebaseに設定し、アイコンのJavaアーカイブ・ファイルを作成したら、アーカイブ・ファイルをformsweb.cfgのアーカイブ・パラメータに追加します。

Registry.dat

Oracle Forms Servicesのインストールとは異なる場所(別のサーバー)に保存されているカスタム・アイコンがあるアプリケーション。

Registry.datファイルでフォント・マッピングなどの他の変更を行う必要がある場合に有効です。

Registry.datをコピーし、formsweb.cfgのServerAppパラメータを変更します。

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

アプリケーションを配布する場合、(接続中に表示される)スプラッシュ画面イメージおよびバックグラウンド・イメージ・ファイルを指定することができます。

これらのイメージはHTMLファイルで定義するか、Fusion Middleware Controlの「Web構成」ページを使用できます。

<PARAM NAME="splashScreen" VALUE="splash.gif">

<PARAM NAME="background" VALUE="back.gif">

スプラッシュ画面およびバックグラウンド・イメージ・ファイルのデフォルト・ディレクトリは、ベースHTMLファイルが含まれているDocumentBaseディレクトリ内にあります。

注意:

スプラッシュ画面とアイコンのイメージ形式は、java.awt.Imageでサポートされている標準形式です。java.awt.Imageの詳細は、http://www.oracle.com/technetwork/java/index.htmlでJava Advanced Imaging (JAI) APIを参照してください。

アイコン、イメージおよび音声ファイルが含まれるカスタムJARファイル

(スプラッシュ画面またはバックグラウンドの)アイコンまたはイメージを使用するたびに、HTTPリクエストがWebサーバーに送信されます。クライアントとサーバー間のHTTPラウンドトリップ数を減らすには、Javaアーカイブ(JAR)ファイルにこれらのファイルを格納するための機能を使用します。この方法を使用すると、JARファイルをダウンロードするのに、1回のHTTPラウンドトリップのみで済みます。

アイコン、イメージおよび音声ファイルのJARファイルの作成

Java JDKには、JARと呼ばれる実行可能ファイルが含まれています。このユーティリティを使用すると、Javaアーカイブ内にファイルを格納できます。詳細は、http://www.oracle.com/technetwork/java/index.htmlを参照してください。

次に例を示します。

jar -cvf myico.jar Splash.gif Back.gif icon1.gif

このコマンドにより、myico.jarと呼ばれる単一のJARファイルに3つのファイル(Splash.gif、Back.gif、icon1.gif)が格納されます。

Java JARファイルは、実行時に追加のセキュリティ警告を表示せずにアクセスできるように、信頼できる証明書を使用して署名する必要があります。詳細は、Javaドキュメント(https://docs.oracle.com/javase/tutorial/deployment/jar/signindex.html)を参照してください

JARファイル内でのファイルの使用

アイコンおよびイメージのデフォルトの検索パスは、documentBaseを基準とした相対パスです。ただし、それらのファイルを格納するためにJARファイルを使用する場合、検索パスは、Javaアプレットを含むディレクトリであるcodebaseディレクトリを基準とする相対パスにする必要があります。

Jarファイルを使用して、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

音声ファイルの場合は、mediaBase=codeBaseを設定します

言語検出の有効化

Oracle Forms Servicesアーキテクチャは、複数言語の配置をサポートしています。この機能の目的は、ユーザーが使用する言語に一致する適切な構成を自動的に選択することです。この機能を使用すれば、だれでも同じURLを使用してOracle Forms Servicesアプリケーションを実行でき、しかもユーザーが使用する言語でアプリケーションを実行できます。Oracle Forms Servicesには統合翻訳ツールは提供されていないため、翻訳済のアプリケーション・ソース・ファイルを用意する必要があります。

この部の内容は次のとおりです。

- 言語検出の指定

- インラインIMEサポート

- 言語検出機能の仕組み

言語検出の指定

「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

インライン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>

言語検出機能の仕組み

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つのレベルでの継承をサポートしています。

1. config=myconfigのようなURLの問合せパラメータを使用した特定の構成が必要な場合、各パラメータの値は、ユーザーのブラウザの言語設定で最も優先順位の高い言語固有の構成セクション(たとえば、セクション[myconfig.fr])で検索されます。

2. 検出されなかった場合、その値は基本構成セクション([myconfig])で検索されます。

3. そこでも検出されなかった場合は、言語固有のデフォルト・セクション([.fr]など)で検索されます。

4. 最終的には、デフォルト・セクションで検索されます。

一般に、言語間で最も変更されやすいパラメータはworkingDirectoryとenvFileです。各言語で異なるenvFile設定を使用すると、NLS_LANG(異なる文字セット、日付、数値書式が可能)とFORMS_PATH(言語固有のfmxファイルの取得)に異なる値を設定できます。異なるworkingDirectory設定を使用することにより、言語固有の.fmxファイルを別の方法で取得できます。

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

キー・バインディングは、アプリケーション機能にキーを接続します。キーを機能にバインドすると、プログラムはそのキーストロークが入力されるとバインドした機能を実行します。UNIXでは、$DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<FORMS Instance Name>/admin/resource/<langディレクトリ(たとえば$DOMAIN_HOME/config/fmwconfig/components/FORMS/forms1/admin/resource/US)にあるfmrweb.resファイルでキー・バインディングを定義します。Windowsの場合、このディレクトリは$DOMAIN_HOME/config/fmwconfig/components/FORMS/<FORMS Instance Name>です。

キー・バインディングを定義することで、様々なキーボードを統合して、アプリケーションの使い勝手に類似性を持たせることができます。ただし、プラットフォームによっては、再マップできないキーもあります。たとえば、Microsoft Windowsでは、キーはWindowsのキーボード・デバイス・ドライバで定義されるので、キーの一部を再マップできません。[Alt]+[F4](ウィンドウを閉じる)や[F1](ヘルプ)など、Windowsに必須のキーの組合せは、再マップできません。一般に、拡張キーボードの一部であるキーも再マップできません。これらのキーには、テンキー、矢印および編集キー、[Print Screen]、[Scroll Lock]および[Pause]などがあります。

注意:

異なるNLS_LANG設定(たとえば、NLS_LANG=GERMAN_GERMANY=WE8ISO8859P15)で実行すると、異なるリソース・ファイル(fmrweb.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

fmrweb.resのカスタマイズ

fmrweb.resは、UNIXのviあるいはWindowsのメモ帳やワードパッドなどのテキスト・エディタを使用して編集できるテキスト・ファイルです。Oracle 6i Formsとは異なり、Oracle Terminalエディタは不要です。テキスト・ファイルは自己ドキュメント化されます。

注意:

カスタマイズは、特にキャラクタ・モード・フォームと比較すると限定的です。Oracle Fusion Middleware Controlを使用してfmrweb.resを編集することはできません。

変更の例: 入力マッピングと実行マッピングのスワッピング

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パラメータを使用します。

例外または特殊なキー・マッピング

[F2]、[Enter]、番号キーおよび[Esc]キーなどの特殊なキーをマップするには、それぞれの特殊なキーの項に示されている手順および例に従います。

この部の内容は次のとおりです。

- [F2]のマッピング

- KEY-ENTER-TRIGGERを起動する[Enter]のマッピング

- 数字キーのマッピング

- Webフォームを終了する[Esc]キーのマッピング

[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]キーはマップされません。

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を起動します。

数字キーのマッピング

目的は、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進の等価に変換する必要があります。(注意: 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"

Webフォームを終了する[Esc]キーのマッピング

[Esc]キーをWeb Formの終了にマップするには、次の手順に従います。

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は終了します。

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

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

この章の構成は、次のとおりです。

- Oracle Forms Servicesのアクション

- 構成ファイル

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

- クライアントの構成に関する注意事項

Oracle Forms Servicesのアクション

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

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

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

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

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

注意:

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

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

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

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

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

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

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

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

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

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

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

7. Oracle Forms Servicesアプレットが実行されると、URL http://example.com:9001/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ブラウザを終了した場合。この場合、保存されていない更新は失われます。

構成ファイル

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

この部は、次の項で構成されています。

- Oracle Forms構成ファイル

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

- Oracle HTTP Listenerの構成ファイル

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

- ベースHTML (テンプレート)ファイル

- WebUtilの構成ファイルおよびテンプレートHTMLファイル

注意:

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

Oracle Forms構成ファイル

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

- default.env

- formsweb.cfg

- ftrace.cfg

注意:

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

default.env

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

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

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

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

formsweb.cfg

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

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

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

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

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

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

サンプルのformsweb.cfgファイルについては、Forms Web構成ファイルを参照してください。

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

ftrace.cfg

場所: $DOMAIN_HOME//config/fmwconfig/components/FORMS/instances/<FORMS Instance Name>/server/ftrace.cfg

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

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

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_12.2.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_12.2.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_12.2.1のサブディレクトリは、Oracle WebLogic Serverのnostageデプロイメント・プロセスで作成されます。これらのディレクトリにはランダムな文字列の名前が割り当てられます。たとえば、e18uoiやwb1h9eなどのディレクトリ名になります。

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

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

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

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

Oracle HTTP Listenerの構成ファイル

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

場所: $DOMAIN_HOME/config/fmwconfig/components/OHS/instances/<OHS INSTANCE NAME>/moduleconf

forms.confは、Oracle Forms Services用のOracle HTTPリスナーの構成ファイルです。これには、Forms Services関連のディレクティブ(Forms WebLogic管理対象サーバーのハンドラ・マッピングなど)が含まれます。

Oracle Formsを使用してOracle HTTP Serverを構成する手順は、次を参照してください。

- Oracle Forms Servicesを使用したOracle HTTP Serverの有効化

- forms.confの編集について

- OHSの構成

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

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

場所: $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config/oracle/forms/registry/Registry.dat

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

ベースHTML (テンプレート)ファイル

場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server

Oracle Forms Servicesアプリケーションを起動するために使用されるHTMLページを生成する場合、次のいずれかがFormsサーブレットによってテンプレートとして使用されます。

1. base.htm

2. basejpi.htm

3. basesaa.txt

4. base.jnlp

5. basejpi_jnlp.htm

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

WebUtilの構成ファイルおよびテンプレートHTMLファイル

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

- デフォルトのwebutil.cfg

- デフォルトのwebutilbase.htm

- デフォルトのwebutiljpi.htm

- デフォルトのwebutil.jnlp

- デフォルトのwebutilsaa.txt

デフォルトのwebutil.cfg

場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server

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

- ロギング・オプション

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

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

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

デフォルトのwebutilbase.htm

場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server

これは、汎用APPLETタグを使用してWebUtil対応フォームを実行するためのデフォルトのベースHTMLファイルです。

デフォルトのwebutiljpi.htm

場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server

これは、Javaプラグインを使用してWebUtil対応フォームを実行するためのデフォルトのベースHTMLファイルです。このファイルは、たとえば、UNIX上でFirefoxを使用してWebUtil対応フォームを実行する場合に使用できます。

デフォルトのwebutil.jnlp

これは、Java Web Startまたは埋込みJNLPを使用してWebUtil対応フォームを実行するためのデフォルトのbasejnlpファイルです。

場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server

デフォルトのwebutilsaa.txt

これは、Formsスタンドアロン・ランチャ(FSAL)を使用してWebUtil対応フォームを実行するためのデフォルトのbasesaaファイルです。

場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server

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

Forms Developerでアプリケーションを作成したら、そのアプリケーションをWeb上に配布できます。Oracle Forms Servicesは、指定されたURLによってOracle Fusion Middlewareのアプリケーションにアクセスします。次に、そのURLでHTTP Listenerにアクセスし、そこでListener Servletと通信します。リスナー・サーブレットは、Forms ServicesのセッションごとにFormsランタイム・プロセス(Windowsではfrmweb.exe、UNIXとLinuxではfrmweb)を起動します。

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

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

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

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

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

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

2. Forms Compiler (Forms Developerのコンポーネント)を使用して、ソース・ファイルから実行可能ファイルを生成します。コンパイラおよびその場所は、次を参照してください。

- UNIXプラットフォームの場合: FORMS_INSTANCE/bin/frmcmp.sh

- Microsoft Windowsの場合: ORALCE_HOME\bin\frmcmp.exe

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

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

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

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

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

構成セクション名

Formsモジュール名の値

my_application

hrapp.fmx

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

注意:

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

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

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

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

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

環境変数の名前

環境変数の値

NLS_LANG

NLS_LANG=GERMAN_GERMANY.WE8ISO8859P15

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

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

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

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

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

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

パラメータの指定

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

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

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

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

パラメータ名

パラメータ値

baseHTML

mybase.htm

baseHTMLjpi

mybasejpi.htm

form

hrapp.fmx

userid

scott/tiger@orcl

注意:

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

注意:

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

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

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

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

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

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

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

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

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

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

注意:

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

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

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

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

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

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

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

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

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

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

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

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

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

前リリースの動作

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

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

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

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

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

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

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

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

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

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

静的HTMLページの考慮事項

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

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

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

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

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

次のURLにアクセスすると、リスナー・サーブレットのテスト・ページを表示できます。

http://<hostname>:<port>/forms/frmservlet/admin

表示される情報は、初期化パラメータTestModeの値に依存します。このパラメータは$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.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>

クライアントの構成に関する注意事項

次のクライアントの構成が使用可能です。これらの構成を要件に応じて使用できます。

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

- デフォルトの構成

- SSO、SSOログアウトおよびJavaスクリプト統合に対する完全なサポート

- Javaプラグインおよびブラウザが必要

- HTMLに埋め込まれたJNLP

- SSO、SSOログアウトおよびJavaスクリプト統合に対する完全なサポート

- Javaプラグインおよびブラウザが必要

- Base64によってクライアント側のhtmlソースでJNLPコードをエンコード

- Java Web Start

- SSOをサポート(ブラウザを使用して使用する場合)

- SSOログアウトまたはJavaスクリプト統合に対するサポートなし

- JDKまたはJavaプラグイン(JRE)のインストールが必要

- ネイティブの外観でアプリケーションを表示

- スタンドアロン(Formsスタンドアロン・ランチャ)

- SSO、SSOログアウトまたはJavaスクリプト統合に対するサポートなし

- JDKまたはJavaプラグイン(JRE)のインストールが必要

- ブラウザは不要

- ネイティブの外観でアプリケーションを表示

- ページ例の参照可能な場所: http://server:9001/forms/html/fsal.htm

注意:

これらの各構成の使用方法の例は、Forms Web構成formsweb.cfgを参照してください。

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

クライアント・ブラウザ、Javaバージョン、およびサポートされている最新のプラットフォームの詳細は、次を参照してください。

ユーザーがOracle Java Plug-inを使用してOracle Forms Servicesアプリケーションを表示できる内容について。

- Oracleサポート:
https://support.oracle.com

- 製品動作保証ガイド:
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html

- 他のシステム要件情報を確認可能なOTN:
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-requirements-100147.html

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

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

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

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

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

検出されたブラウザ

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

Internet Explorer

basejpi.htm

Mozilla FireFox

basejpi.htm

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

base.htm

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

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

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

Oracle WebLogic Serverは、エンタープライズ対応のスケーラブルなJava EEアプリケーション・サーバーです。Java EEテクノロジの全機能を実装しており、高度な管理サービス、クラスタリング・サービス、Webサービスなどの数多くの追加の機能を備えています。Oracle Fusion Middlewareプラットフォームの中核をなし、スケーラブルでセキュアな高可用性アプリケーションを構築するための安定したフレームワークを提供します。

Oracle HTTP Serverは、Oracle Fusion MiddlewareのWebサーバー・コンポーネントです。Oracle WebLogic Server用のリスナーと、静的および動的なページおよびアプリケーションをホストするフレームワークがWeb経由で提供されます。

この章の構成は、次のとおりです。

- Oracle WebLogic管理対象サーバーおよびHTTP Serverについて

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

- Oracle Forms ServicesとSSL

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

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

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

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

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

Oracle WebLogic管理対象サーバーおよびHTTP Serverについて

管理対象サーバーは、ビジネス・アプリケーション、アプリケーション・コンポーネント、Webサービスおよび関連リソースをホストします。パフォーマンスを最適化するために、管理対象サーバーは、ドメインの構成ドキュメントの読取り専用コピーを保持します。管理対象サーバーが起動すると、ドメインの管理サーバーに接続して、その構成ドキュメントと管理サーバーに保持されているドキュメントが同期化されます。Oracle Fusion Middlewareシステム・コンポーネント(SOA、WebCenter、Identity Managementコンポーネントなど)とカスタマによって配布されたアプリケーションは、ドメイン内の管理対象サーバーに配布されます。構成中に、Oracle Fusion Middlewareアプリケーション(FormsおよびReports JavaEEアプリケーションなど)のホスト用にいくつかの管理対象サーバーが作成されます。

図5-1に、Oracle WebLogic管理対象サーバーの簡単な使用例を示します。この図の左側で、Formsサーブレットは開始HTMLファイルをレンダリングし、Formsリスナー・サーブレットに関する情報をクライアントに提供します。次に、HTTPリクエストがOracle HTTP Serverリスナーで受信され、リスナーはこれをOracle WebLogic管理対象サーバー内で動作しているFormsリスナー・サーブレット(図の右側)に渡します。Formsリスナー・サーブレットはランタイム・プロセスを確立し、クライアント・ブラウザとランタイム・プロセス間で継続的な通信を維持します。多くのユーザーがOracle Forms Servicesセッションをリクエストした場合、そのリクエストはOracle HTTP Serverリスナーで受信されます。HTTPリスナーは再びそのリクエストをFormsリスナー・サーブレットに渡し、サーブレットはさらにランタイム・プロセスを確立します。Formsリスナー・サーブレットは、多数のFormsランタイム・セッションを同時に処理できます。同時ユーザー数を制限する必要はありますが、このアーキテクチャでは高いパフォーマンスを得るためのチューニングや構成を行うことができます(次の項を参照)。

図5-1 Oracle WebLogic管理対象サーバーとForms Services

この図は、WebLogic管理対象サーバーからFormsランタイム・プロセスへのHTTPリクエストのフローを示してします。図の左側にはFormsクライアントがあります。Formsサーブレットは開始HTMLファイルをレンダリングし、Formsリスナー・サーブレットに関する情報をクライアントに提供します。クライアントは、このHTTPリクエストを中間のOracle HTTP Serverリスナーに渡します。Oracle HTTP Serverリスナーは、WebLogic管理対象サーバー内で実行されているFormsリスナー・サーブレットにそのHTTPリクエストを渡します。WebLogic管理対象サーバー・プロセスには、Webコンテナ、JBコンテナおよびその他のサービス(JNDI (Java Naming and Directory Interface)、JMS、JavaMailなど)が含まれます。Forms Listener ServletがForms Serverランタイム・プロセスを起動し、クライアント・ブラウザとランタイム・プロセス間の進行中の通信を担当します。

Oracle Forms Servicesを使用したOracle HTTP Serverの有効化

Oracle Fusion Middleware 12cでは、Oracle HTTP ServerでリクエストをForms管理対象サーバーにルーティングできるようにうするには、インストール後の手順を実行する必要があります。この構成を有効にするために2つのオプションがユーザーに用意されています。

1. 「Oracle Formsのユーティリティおよびスクリプト」で提供されているForms構成ヘルパー・スクリプトを使用し、これにenable_ohsオプションを渡します。

2. 次の「forms.confの編集について」で説明されているように、forms.confを手動で編集します。

forms.confの編集について

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

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

OHSの構成

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

1. Forms OHSディレクティブ・ファイルforms.confをForms構成ファイル・テンプレート・ディレクトリからOHSインスタンスmoduleconfディレクトリにコピーします

コピー元の場所(Forms層):

$FMW_HOME/forms/templates/config/forms.conf

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

$DOMAIN_HOME/config/fmwconfig/components/OHS/instances/<OHS INSTANCE NAME>/moduleconf/forms.conf

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

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

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

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

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

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

4. 管理サーバーを再起動します。

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

注意:

forms.confを一度設定した後にさらに変更を行うには、Oracle Fusion Middleware Controlを使用します。これにアクセスするには、OHSインスタンスのページ・メニューを使用して「Oracle HTTP Server」→「管理」→「拡張構成」を選択します。「サーバーの詳細構成」ページで、ファイルの選択プルダウン・メニュー内のforms.confを選択します。

forms.confで接頭辞/forms/を使用してユーザー定義のaliasMatchを指定する場合は、ディレクティブWLExcludePathOrMimeTypeを追加します。Linuxでの例をあげると、forms.confで/forms/usericonsにaliasMatchを定義する場合は、次のようにディレクティブWLExcludePathOrMimeTypeを定義します。

AliasMatch /forms/usericons/(..*) "/home/userx/myicons/$1"WLExcludePathOrMimeType /forms/usericons/

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

Oracle Forms ServicesにHTTPSを使用するのは、他のWebベースのアプリケーションでHTTPSを使用するのと変わりません。HTTPSでは、デジタル証明書(VeriSignなど)を使用する必要があります。Forms ServicesサーブレットはユーザーのWebサーバーからアクセスできるため、Oracle Forms Servicesのクライアントとサーバー間の通信に特別な証明書を購入する必要はありません。正式な認証局からユーザーのWebサーバー用の証明書を購入するだけで済みます。

エンドユーザーと中間層の間で最高レベルのセキュリティを確保するためにSecure Socket Layer (SSL)を構成することをお薦めします。使用環境でSSLを有効にする方法の詳細は、Oracle HTTP Server管理ガイドおよびWebLogic Server管理ガイドを参照してください。

Oracle Forms ServicesとSSL

Oracle Forms ServicesアプリケーションをSSLモードで実行するには:

- 証明書を管理するウォレットを作成します。

- Oracle HTTP ServerでHTTPSポートを有効にします。デフォルトのOracle HTTP Serverでは、SSLポートが1つ有効になっています。

- 必要に応じて、Forms管理対象サーバー(WLS_FORMSなど)のWebLogic ServerでHTTPSを有効にすることを検討してください。

前述のトピックの詳細は、Oracle Fusion Middlewareの管理のOracle Fusion MiddlewareでのSSL構成の項を参照してください。

ロード・バランシング・ルーターによる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プラグインに証明書をインポートするには:

1. クライアント・マシンでコントロール・パネルを開きます。

2. Javaを開きます。

3. 「セキュリティ」タブにナビゲートします。

4. 「証明書」をクリックします。

5. 前述の項でエクスポートした証明書をインポートします。

6. 「適用」をクリックします。

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

デフォルト(特別な設定をしていないインストール)では、Forms ServicesのJava EEアプリケーション(formsapp.ear)はForms管理対象サーバー(WLS_FORMS)に配布されます。Oracle WebLogic管理コンソールまたはOracle Fusion Middleware Controlを使用して、WLS_FORMSおよびformsapp.earを管理できます。詳細は次のトピックを参照してください。

- Forms管理対象サーバーの起動と停止: 詳細は、Oracle Fusion Middlewareの管理のプロシージャの起動と停止の概要を参照してください。

- Forms管理対象サーバーへのFormsアプリケーションのデプロイ: 詳細は、「構成ウィザードを使用したFormsの構成方法」を参照してください

- Forms Java EEアプリケーションのカスタム・デプロイメント: 詳細は、「Forms Java EEアプリケーションのカスタム・デプロイメント」を参照してください。

- Forms管理対象サーバー・クラスタの拡張: 詳細は、「Forms管理対象サーバー・クラスタの拡張」を参照してください。

- 配布後のweblogic.xml、web.xml、application.xmlおよびweblogic-application.xmlの変更: 詳細は、「Forms J2EEアプリケーションのデプロイメント・ディスクリプタの変更」を参照してください。

- WindowsサービスとしてのForms管理対象サーバーの起動: 詳細は、Oracle WebLogic Serverサーバーの起動と停止の管理のWindowsサービスとしてのWebLogic Serverインスタンスの起動の章を参照してください。

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

ユーザーは、デフォルトのForms JavaEEアプリケーションのコンテキスト・ルート(/forms)およびデフォルトのFormsサーブレットの別名(frmservlet)をオーバーライドし、カスタマイズできます。デフォルトのFormsアプリケーションのアクセスURL: http://host:port/forms/frmservletはhttp://host:port/<user-context>/<user-servlet-alias>に変更できます

カスタム管理対象サーバーを作成し、そこにFormsアプリケーションをデプロイするには、次の手順を実行します。

- カスタム・アプリケーションの作成およびデプロイ

- パッチ適用後のタスク

- カスタム・デプロイメントのテスト

カスタム・アプリケーションの作成およびデプロイ

カスタム・アプリケーションを作成してデプロイする手順は、次のとおりです。

1. 構成ウィザードを使用して別の管理対象サーバーを作成します。この管理対象サーバーは、デフォルトのFormsクラスタ(cluster_forms)の一部であってはならず、選択したJRF_MAN_SRVサーバー・グループを使用する必要があります。

図5-2 Fusion Middleware構成ウィザード

2. deploy_appオプションを使用してfrmconfighelperスクリプトを実行します。frmconfighelperスクリプトの詳細は、「Oracle Formsのユーティリティおよびスクリプト」を参照してください。

パッチ適用後のタスク

Oracle Fusion Middleware 12cパッチ・セットを適用した後で、カスタム・デプロイメントに次の手順を実行します。

1. ドメイン内のサーバーが停止していることを確認します。

2. パッチの適用した後、update_appオプションを使用してfrmconfighelperスクリプトを実行します。frmconfighelperスクリプトの詳細は、「Oracle Formsのユーティリティおよびスクリプト」を参照してください。

3. update_appオプションを実行後に有効にするには、管理対象サーバーを再起動する必要があります。

カスタム・デプロイメントのテスト

http://<Host>:<Port Number>/<context root>/<servlet name>のURLを使用して、デプロイメントをテストします。

この項の例では、URLはhttp://<Host>:<Port Number>/customapp/customservletになります。SSOを使用してフォームを実行している場合(ssoMode=trueまたはwebgate)は、DOMAIN_HOME/config/fmwconfig/system-jazn-data.xmlファイルで権限を使用して追加設定を行う必要があります。

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

ハイエンド・マシン(マルチプロセッサと大容量メモリーを搭載したマシン)でFormsデプロイメントのスケーラビリティとパフォーマンスの向上を図るには、Forms管理対象サーバー・クラスタ(cluster_forms)を拡張します。次の手動の手順を実行してForms管理対象サーバー・クラスタを拡張します。

1. 次の手順を実行して、新しい管理対象サーバーをデフォルトのFormsアプリケーション・クラスタ(cluster_forms)に追加します。

a. 構成ウィザードを使用して別の管理対象サーバーを追加します。必ずFORMS-MAN-SRVグループを選択してください。

図5-3 Fusion Middleware構成ウィザード

新規管理対象サーバーの追加。

b. 管理対象サーバーの作成後にcluster_formsに追加されていることを確認します。

図5-4 Fusion Middleware構成ウィザード

新規管理対象サーバーの追加。

c. 新しく作成した管理対象サーバーを起動します。

2. forms.confのWebLogicClusterエントリに、新しい管理対象サーバーのホストとポートの情報を追加します。

<Location /forms>

SetHandler weblogic-handler

WebLogicCluster <HostName>:9001, <HostName>:9010

DynamicServerList OFF

</Location>

3. OHSを再起動します。

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

配布後は、Forms J2EEアプリケーションのデプロイメント・ディスクリプタ(weblogic.xml、web.xml、application.xmlおよびweblogic-application.xml)をOracle WebLogic Serverで変更することはできなくなります。

次の手順を実行してForms J2EEアプリケーションのデプロイメント・ディスクリプタをカスタマイズし、そのアプリケーションを再配布することでこの問題を解決できます。

1. デフォルトのformsappデプロイメント・プラン$DOMAIN_HOME/config/fmwconfig/deployment-plans/formsapp/12.2.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 $FMW_HOME/forms/j2ee/backup
cd $FMW_HOME/forms/j2ee
cp $DOMAIN_HOME/config/fmwconfig/deployment-plans/formsapp/12.2.1/plan.xml
vi $DOMAIN_HOME/config/fmwconfig/deployment-plans/formsapp/12.2.1/plan.xml

2. デプロイメント・プランを変更します。次はデプロイメント・プランの例で、追加したエントリを太字で強調表示しています。

<deployment-plan xmlns="http://xmlns.oracle.com/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/deployment-plan http://xmlns.oracle.com/weblogic/deployment-plan/1.0/deployment-plan.xsd">
<variable-definition>
<variable>
<name>vd-/scratch/t_work/Oracle/MiddlewareR12/Oracle_Home/forms</name>
<value>/scratch/t_work/Oracle/MiddlewareR12/Oracle_Home/forms</value>
</variable>
<variable>
<name>FormsServlet_InitParam_testMode</name>
<value>true</value>
</variable>
</variable-definition>
<application-name>formsapp</application-name>
<module-override>
<module-name>formsapp.ear</module-name>
<module-type>ear</module-type>
<module-descriptor external="false">
<root-element>weblogic-application</root-element>
<uri>META-INF/weblogic-application.xml</uri>
</module-descriptor>
<module-descriptor external="false">
<root-element>application</root-element>
<uri>META-INF/application.xml</uri>
</module-descriptor>
<module-descriptor external="true">
<root-element>wldf-resource</root-element>
<uri>META-INF/weblogic-diagnostics.xml</uri>
</module-descriptor>
</module-override>
<module-override>
<module-name>formsweb.war</module-name>
<module-type>war</module-type>
<module-descriptor external="false">
<root-element>weblogic-web-app</root-element>
<uri>WEB-INF/weblogic.xml</uri>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/MiddlewareR12/Oracle_Home/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="java/*"]/local-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/MiddlewareR12/Oracle_Home/forms</name> <xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/local-path</xpath>
</variable-assignment>
</module-descriptor>
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
<variable-assignment>
<name>FormsServlet_InitParam_testMode</name>
<xpath>/web-app/servlet/[servlet-name="frmservlet"]/init-param/[param-name="testMode"]/param-value</xpath>
</variable-assignment>
</module-descriptor>
</module-override>
</deployment-plan>

3. WebLogic管理コンソールを使用してForms J2EEアプリケーションを再起動します。

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

Formsリスナー・サーブレットをチューニングする手順は、スループットの高いサーブレット・アプリケーションをチューニングする手順と同様です。特定のForms Servicesの構成に最適なチューニングを行うには、リソース管理とユーザーのニーズを考慮する必要があります。詳細は、パフォーマンスのチューニング・ガイドのモニタリングの章を参照してください。

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

Formsリスナー・サーブレットのアーキテクチャでは、標準のHTTPロード・バランシング技術を使用して、システムのロード・バランスを実現します。

Oracle HTTP Serverリスナーで提供するロード・バランシング・メカニズムでは、複数のWebLogicインスタンスをHTTPプロセスと同じホストで実行することも、複数の異なるホストやその組合せで実行することもできます。次に、HTTPリスナーはHTTPリクエストをOracle WebLogic管理対象サーバー・インスタンスにルーティングします。

次のシナリオは、考えられる組合せのほんの一例で、可能性の一部を示すことを目的としたものです。ユーザーのサイトにどのような選択が最も適しているかは、様々な要因により異なります。

この機能の詳細な説明は、パフォーマンスのチューニング・ガイドのモニタリングの章を参照してください。

次の図では、配置例を4つ示します。

- 図5-5は、Oracle HTTP Serverによって、Oracle HTTP Listenerと同じホスト上にある複数のOracle WebLogic管理対象サーバー間で受信リクエストが分散される場合を示しています。

- 図5-6は、Oracle HTTP Serverによって、Oracle HTTP Listenerとは異なるホスト上にある複数のOracle WebLogic管理対象サーバー間で受信リクエストが分散される場合を示しています。

- 図5-7は、Oracle HTTP Serverによって、複数の異なるホスト上にある複数のOracle WebLogic管理対象サーバーと、それぞれOracle HTTP Listenerを実行する複数の異なるホスト間で、受信リクエストが分散される場合を示しています。

- 図5-8は、Oracle HTTP Serverによって、1つのホスト上にある複数のOracle WebLogic管理対象サーバーと、それぞれOracle HTTP Listenerを実行する複数の異なるホスト間で、受信リクエストが分散される場合を示しています。

図5-5 Oracle HTTP Listenerと同じホスト上にある複数のOracle WebLogic Server

図5-6 Oracle HTTP Listenerとは異なるホスト上にある複数のOracle WebLogic Server

図5-7 それぞれが異なるホスト上にある複数のOracle WebLogic Serverと複数のOracle HTTP Listener

図5-8 異なるホスト上にある複数のOracle HTTP Listenerと同じホスト上にある複数のOracle WebLogic Server

HTTPリスナーおよびOracle WebLogic Serverを使用したForms Servicesのチューニングと最適化の詳細は、パフォーマンスのチューニング・ガイドのOracle HTTP Serverのチューニングの章を参照してください。

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

Oracle Fusion Middlewareのインストール・プロセスで設定されたデフォルトの構成では、認証プロキシがサポートされます。認証プロキシでは、アプリケーションを実行する接続先サーバーにアクセスするためのユーザー名とパスワードをユーザーが指定する必要があります。認証プロキシは通常、ユーザーがログインしているか(または認証されているか)どうかを検出するためにCookieを設定します。Cookieはその後のすべてのネットワーク要求時に送信され、不要なログイン・プロンプトを回避します。

Oracle WebLogic Serverのインストール・プロセスで設定されるコードベースおよびサーバーURLの値には、$FMW_HOME/forms/javaおよび/forms/lservletが含まれます。これらはページのドキュメント・ベース($FMW_HOME/forms)の下にあるので、認証プロキシが機能します。

6 Oracle FormsとJavaScriptの統合

JavaScriptをOracle Formsアプリケーションに統合する方法を学びます。例として、Oracle Formsによる外部イベントのコールおよびOracle FormsをコールするJavaScriptイベントを示します。formsweb.cfgおよび環境変数を構成することによって、JavaScriptの統合を有効化または無効化することもできます。

この章の構成は、次のとおりです。

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

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

- JavaScriptとOracle Formsの統合

- formsweb.cfgの構成

- 環境変数の構成

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

以前のリリースのOracle Formsでは、Forms外部の限られた数のイベント型と対話するためにOLEおよびDDEを実装する必要がありました。その後のバージョンのFormsで、外部アプリケーション・ソースとのインタフェースを実現するためにweb.show_documentおよびJavaの統合が提供されました。ただし、Formsが表示されるWebページへのコールに関しては、簡単なソリューションがありませんでした。また、HTMLフォームから取得した値を更新する場合などに、WebページからFormsをコールすることもできませんでした。

Oracle Forms 12cでは、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
');

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

Oracle Forms 12cでは、JavaScript機能によって、FormsとHTMLベースのアプリケーション・テクノロジをWebブラウザで統合できます。たとえば、HTMLフロントエンドに基づく新しい機能を備えたページ上でFormsベースのアプリケーションを統合する必要がある場合に、JavaScript統合を使用できます。

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つのイベントを認識します。それ以外の名前は無視されます。

イベント・コールをOracle Forms内で行う理由

HTMLベースのアプリケーションは、Javaベースであるかどうかにかかわらず、同じホスト元Webページ内のFormsベース・アプリケーションと同期できます。たとえば、HTMLベースのアプリケーションを使用してデータの問合せを行い、ユーザーが適切なアクセス権限を持っている場合にのみ、Formsを使用してそのデータを更新します。

JavaScriptとOracle Formsの統合

この項では、Oracle FormsアプリケーションでJavaScriptを統合する例について説明します。Oracle FormsアプリケーションでJavaScriptを統合するには、次の手順を実行します。

1. 「Oracle Formsによる外部イベントのコールについて」と「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_12.2.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を指定して、アプリケーションを実行します。

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が異常終了します。

環境変数の構成

default.env内のFORMS_ALLOW_JAVASCRIPT_EVENTSという名前の環境変数を使用して、JavaScript統合を有効または無効にすることもできます。デフォルトでは、この変数の値はtrueです。この変数をfalseに設定すると、formsweb.cfgでenableJavascriptEventに設定されている値に関係なく、default.envのインスタンスを使用するすべてのFormsアプリケーションでJavaScript統合が無効になります。

7 Javaサポートの拡張

Oracle Formsには、標準のユーザー・インタフェース・コンポーネント(ボタン、テキスト領域、ラジオ・ボタンのグループ、リスト項目など)の外観と動作を定義するJavaクラスが用意されています。FormsのプラガブルなJavaコンポーネント(PJC)は、デフォルトのFormsクライアント・コンポーネントの拡張機能とみなすことができます。PJCを作成するときは、用意されているデフォルト・クラスの機能を拡張するように、独自のJavaコードを記述します。

この章の構成は、次のとおりです。

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

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

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

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

標準のFormsユーザー・インタフェース・コンポーネントの機能を拡張できるだけでなく、Java Swingユーザー・インタフェース・コンポーネントがフォームに含まれるPJCを作成することもできます。プラガブルなJavaコンポーネントにより、Formsで用意されているクラス(oracle.forms.ui.VBean)を拡張し、Formsキャンバスで表示されるようにBean領域で活用します。Bean領域には独自のユーザー・インタフェースはありませんが、コンテナになります。実装クラスを関連付けてユーザー・インタフェース・コンポーネントをいくつか追加するまでは、レイアウト・エディタやキャンバスで、空の矩形のみ表示されます。

以前のリリースのOracle Formsでは、Formsユーザー・インタフェース・コンポーネントには、IViewインタフェースが実装されていました。しかし、プラガブルなJavaコンポーネントやビューからCustomListenerの追加や削除を行う特別な方法はありませんでした。Oracle Forms 12cでは、IViewインタフェースでCustomListenerの追加や削除ができます。

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

Oracle Forms 12cでは、パラメータとペイロード付きのCustomEventが簡単にディスパッチされます。パブリック・メソッドdispatchCustomEventを公開することでJavaBeanクラスでこれが行われるので、PJCで同じメソッドを追加する必要があります。dispatchCustomEventメソッドをPJCからコールして、CustomEventをディスパッチします。

CustomEventは一般的にパラメータと関連付けられているので、Formsでは追加する方法が用意されています。JavaBeanでは、getHandler().setProperty()メソッドを使用して、パラメータを設定できます。ユーザーは、PJCで同じことができる必要があります。詳細は、「実行時のカスタム項目イベント・トリガーについて」を参照してください。

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

Oracle Forms 12cでは、設計時にWHEN-CUSTOM-ITEM-EVENTトリガーを項目に追加でき、実行時にトリガーを起動させるようにプラガブルなJavaコンポーネントをコーディングできます。フォームのJavaBeanカスタム・コンポーネントによってイベントが発生すると、このトリガーが起動します。WHEN-CUSTOM-ITEM-EVENTトリガーを使用して、カスタム・コンポーネントの値の選択や変更に応答できます。システム変数SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERSには、カスタム・コントロールによって起動するイベントの補足的引数を収めたパラメータの名前が格納されます。コントロールのイベント名では大文字と小文字が区別されます。

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

トリガーを項目に追加する最も一般的な方法は、「トリガー」ノードにフォーカスがあるときに、Oracle Forms Developerにあるオブジェクト・ナビゲータ用ツールバーで「作成」ボタンをクリックするか、対応するショートカット・キーを押すことです。Forms Developerでは、使用可能なトリガーの一覧が、そのレベルかその項目に対して表示されます。

一般的に使用されるトリガーをいくつか追加する別の方法は、オブジェクト・ナビゲータで項目のトリガー・ノードを右クリックすることです。そして、「スマート・トリガー」メニューの一覧で、トリガーのいずれかを選択します。

トリガーでの作業方法の詳細は、Oracle Forms Developerのオンライン・ヘルプを参照してください。

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

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文字列です。

例: プッシュ・ボタンの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アプレットにデプロイする前に信頼できる証明書を使用して署名する必要があります。Java JARファイルの署名方法の詳細は、Javaドキュメント(https://docs.oracle.com/javase/tutorial/deployment/jar/signindex.html)を参照してください

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 サーバーおよびシステム・イベントでの作業

この章では、Oracle formsとサーバー・イベントの概要、イベントを作成、管理、サブスクライブする方法、およびイベントの伝播について説明します。Formsとシステム・イベント間のアプリケーションの統合に関する情報も提供します。

この章の内容は次のとおりです。

- Oracle Formsとサーバー・イベント

- イベントの作成について

- イベントのサブスクライブについて

- イベントの伝播

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

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

- システム・イベント

Oracle Formsとサーバー・イベント

タイマーを除いて、Oracle Formsのイベントのほとんどは、ユーザーの操作介入により発生します。11gより以前のバージョンのOracle Formsでは、フォームのグラフィカル・ユーザー・インタフェースにバインドできない場合に、外部イベントを簡単に受信できませんでした。開始していなかった外部イベントを処理するには、Formsクライアントでポーリングなどの手法を使用して、これらのイベントに応答するためのコードを記述する必要がありました。

Oracle Forms 11gおよびOracle Databaseでは、データベース・キューを使用して、非同期イベントなど、外部イベントを処理できます。Oracle Forms 12cでデータベース・キューを使用するには、Oracle Database 11gリリース2以上を使用している必要があります。非同期のキューイング機能であるOracle Streamsアドバンスト・キューイング(AQ)は、メッセージを異なるプログラム間で交換できるようにします。AQ機能は、PL/SQLパッケージであるDBMS_AQ、DBMS_AQADM、DBMS_AQELMなどのインタフェースを使用して実装されます。アドバンスト・キューイングの詳細は、http://docs.oracle.com/database/121/STRMS/にある『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください

通常、イベントとデータベース・キューの統合に必要な手順は次のとおりです。

データベース

- キュー表の作成: アドバンスト・キューイングを設定するユーザーの管理権限とアクセス権限(AQ_ADMINISTRATOR_ROLE、AQ_USER_ROLE)を定義します。ペイロードのオブジェクト・タイプと、そのオブジェクト・タイプを使用するメッセージのペイロードを定義します。ペイロードを使用して、キュー表を定義します。

- キューの作成: キュー表のキューを定義します。キュー表には、同じペイロード・タイプを持つ複数のキューを保持できます。

- キューの開始: キューに対するエンキュー/デキューを有効化します。

- メッセージのエンキュー: DBMS_AQ.ENQUEUEプロシージャを使用して、キューにメッセージを記述します。

Form Builder

- イベント・オブジェクトの作成: Form Builderのオブジェクト・ナビゲータで、「イベント」ノードに新しいイベントを作成します。

- キューへのイベント・オブジェクトのサブスクライブ: キューの名前は、「サブスクリプション名」プロパティに指定します。

- 必要な通知のコード化: Formsによって実行されるためにキューに入れられ、クライアントからのリクエストをサーバーが受信したときに実行されるイベント処理ファンクションを記述します。「イベント」ノードに接続されるイベント発生処理トリガーのトリガー・コードを記述します。

Forms Services

- フォームを実行して、サブスクリプションを登録します。

- イベント通知を受信したら、イベント発生処理トリガーを起動します。

以前のリリースのFormsでは、外部イベントを処理するには、カスタムのプログラムを作成する方法でのみ可能でした。これは一般的に、FormsのJava Beanサポート機能を使用してJavaで実現していました。Oracle Forms 11g以降、アドバンスト・キューイング(AQ)と対話的に処理できる手法(Java Messaging (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の外部イベント処理

イベントの作成について

Oracle Forms Developerでは、イベント・オブジェクトを作成して管理する宣言的環境が用意されています。既知の外部イベントの場合、Forms Developerでは、使用可能なサブスクライブ・イベントの一覧が用意されています。イベント・オブジェクトのプロパティは、実行時または設計時に設定できます。特定の外部イベントに対してサブスクリプションを終了することも、イベント・オブジェクトのプロパティを動的に設定する機能でできます。

また、新しいイベント機能のほとんどは、標準のOracleインタフェースを介して使用できます。クライアント側とサーバー側のPL/SQLの両方で、データベース・イベントの作成、サブスクライブおよび公開を行う必要な機能がすべて用意されています。Oracle Formsでは、データベース・イベントを登録するために宣言的で使いやすい方法が用意されています。Oracle Formsでは、ほとんどの複雑な処理をエンド・ユーザーから隠すことで、イベントを処理する標準的方法が用意されています。

イベントのサブスクライブについて

関心があることを登録しているイベントがイベント・キューに追加されると、Forms Servicesは通知を受け取ります。登録は、そのイベントの種類に応じて、ランタイムの起動時またはデータベースとの接続時に行われます。データベース・イベントの場合、イベント・キューのタイプ(永続タイプか非永続タイプ)も、イベントを作成する処理の一部として保存されます。

イベントの伝播

図8-2は、Formsクライアントがアイドル状態にある状況を示しています。Oracle FormsはHTTPプロトコルによって駆動されますが、これはリクエストとレスポンスのプロトコルのみであり、クライアントがアイドル状態の場合にクライアントで変更できません。アプレット・パラメータMaxEventWaitは、イベントが発生しているかどうかをチェックするまでアプリケーションが待機する時間を制御するもので、ミリ秒で指定します。つまり、クライアントからサーバーにリクエストを送信する頻度を指定できます。このリクエストによって、イベントへのレスポンスとして指定したPL/SQLが実行されます。

ただし、サーバー側では、Forms Servicesはポーリングせずにすべてのイベントを受け取ります。一方、サーバーは、Formsクライアントからの通知を受け取らないかぎり、WHEN_EVENT_RAISEDトリガーの実行を開始しません(これは、FormsクライアントのHTTPリクエストとHTTPリプライの組合せのパラダイムによってMaxEventWaitプロパティが必要になることに起因しています)。

図8-2 アイドル状態またはアクティブ状態のクライアントにおける通知フロー

When-Event-Raisedトリガー

Oracle Formsでは、トリガーに対して応答したり、様々なイベントに対してトリガーを起動します。Forms Developerと内部イベントの両方に対して、Formsではトリガーのためにエントリ・ポイントが用意されています。これによって、アプリケーション開発者は、イベントを処理するコードを関連付けて実行することができます。

たとえば、定義されているトリガーは、フォームの特定オブジェクトに接続されます。トリガーが接続されるオブジェクトは、トリガーの有効範囲を定義します。たとえば、WHEN-BUTTON-PRESSEDトリガーは、ボタンが押されたときに発生するイベントに応答しますが、このイベントは、オペレータがボタンを選択したときに発生します。トリガーの名前により、イベントとトリガー・コードとの間における対応付けが確立されます。ユーザーがボタンをクリックすると、WHEN-BUTTON-PRESSEDトリガーでコードが実行されることでFormsで応答処理が行われます。

この新しいイベント・オブジェクトには、イベント・オブジェクトのレベルで定義された対応トリガーがあります。サブスクリプションが設定されたデータベース・イベントが発生すると、それに応答してそのWHEN-EVENT-RAISEDトリガーが起動します。新しいトリガーの起動は、トリガーの内部処理に似ています。ただし、この場合のイベントの発生源は、データベース・イベントのように動作が原因で起動する外部イベントであり、フォームとユーザーとの対話の結果や内部フォーム処理が原因ではありません。

トリガー定義レベルと有効範囲

Oracle Formsのトリガーは一般的に、特定のオブジェクト(項目、ブロック、フォームなど)に接続されます。トリガーが接続されるオブジェクトによって、オブジェクト階層内におけるトリガーの定義レベルが決まります。トリガーの定義レベルによって、トリガーの有効範囲が決まります。トリガーの有効範囲は、Formsオブジェクト階層内部のドメインであり、これによって、イベントに応答するトリガーに対応するイベントが発生する場所が決まります。WHEN-EVENT-RAISEDトリガーがイベント・オブジェクトに接続されていても、サーバー中心型イベントの特性により、アプリケーション・レベルの有効範囲があります。登録済データベース・イベント用の非同期コールバック・メカニズムが原因でイベント通知が起動されると、アプリケーション内部で実行していてそのイベントのサブスクリプションのあるフォームで通知を受信します。これによって、イベントを処理するためにアプリケーション開発者が複雑なロジックのコードを記述する必要性が軽減します。

また、フォーム・レベルの有効範囲もあります。これによって、イベントが定義されている場所からアプリケーションで特定のフォームが実行している場合にのみ、イベントが処理されます。

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

標準の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リファレンスを参照してください。

Forms間におけるアプリケーションの統合

多くのエンタープライズ・アプリケーションは、大量のフォームで構成されています。それらのフォームは、購買、経理および販売部隊の管理などの特定の作業を実行するために定義されているものです。また、これらのアプリケーションは、フォーム・ベースでない他のアプリケーションと作業実行の一環として対話的に処理される場合があります。企業のアプリケーション(データを渡すアプリケーションも含まれる)を、パートナ、仕入先および卸売業者のアプリケーションと簡単に統合できる統合モデルを用意する必要性は、非常に重要です。

以前のリリースのOracle Formsでは、user_exitコールを使用したものから、タイマー経由でポーリングするもの、さらにプラガブルなJavaコンポーネントを使用したものまで様々なメカニズムを利用して、疎結合されたアプリケーションの統合が試みられていました。これらの方法はすべて、限定された状況において便利ですが、エンタープライズ・アプリケーションの統合では、一様なインフラストラクチャは実現されません。

配布の問題やパフォーマンスの問題を別にすると、これらの方法で完全にアプリケーションが統合されない主な理由としては、ほとんどすべてのイベントがFormsビジュアル・コンポーネントにバインドされているときにForms Developerを介してのみ統合が実現されることにあります。また、Forms Servicesとの通信は、リクエストとリプライの組合せのモデルを介して必ずFormsクライアントが開始します。

アプリケーション統合のサポートを改善するために、Oracle Forms 12gでは、同期型と非同期型のサーバー中心型イベントがサポートされています。

同期型通信

同期型通信は、リクエストとリプライの組合せのパラダイムに従っています。このパラダイムでは、あるプログラムで別のプログラムにリクエストを送信し、そのリプライを受信待ちします。HTTPはこのパラダイムに従っています。この通信モデル(別名としてオンラインまたは接続済と呼ばれる)は、処理を続行する前にリプライの受信が必要なプログラムに最適です。従来のクライアント/サーバー型アーキテクチャは、このモデルに基づいています。以前のリリースのOracle Formsクライアント/サーバー・アーキテクチャも、このモデルの一例です。同期型通信モデルの短所の1つは、アプリケーションが処理を行うためにすべてのプログラムが実行している必要がある点です。ネットワークやマシンに障害が発生すると、プログラムの機能は停止します。たとえば、Forms Servicesが停止すると、Formsクライアントも機能が停止します。PL/SQLやデータベースなどの他のシステムとForms Servicesが対話的に処理する際にも、同期型通信モデルを使用します。Formsシステムでは、処理が続行する前に、現在の処理は停止してブロックされ、受信待ち状態になります。また、コールするプログラムはレスポンスを待つ必要があり、予期しないイベントはそれをポーリングするまで処理できないことも同期型通信の短所です。

非同期通信

ユーザーやフォームがリクエストをキューに置き、そのリプライを待たずに作業を続行する場合や、最初のリクエストなしで非同期イベントを受け取る場合は非同期型通信です。コンシューマのロールのプログラムでは、リクエストをキューから取得してから処理を行います。リクエストをキューに登録した後で処理を続行できるアプリケーションは、リプライの受信待ちで処理がブロックされないので、このモデルが最適です。取得するメッセージがあるまで処理を続行できるアプリケーションにも最適です。

Oracle Forms 12cでは、データベース・イベントを活用して非同期型通信をサポートしています。軽いキューイング・メカニズムにより、非同期型イベント用のメカニズムが実現されます。現在の処理対象操作がないと、キューにメッセージがあるかどうかがチェックされます。

たとえば、ある特定の条件が満足した後に、アプリケーションでデータの入力が必要な場合や、後で実行する操作が存在する場合があります。受信プログラムでは、リクエストをキューから取得してから処理を行います。

非同期型通信の構成

Oracle Formsでは、アプリケーション・レベルでポーリング手法を使用します。クライアントでは、指定された時間間隔でサーバーの更新がポーリングされます。ポーリングの頻度は、MaxEventWaitパラメータおよびHEARTBEATパラメータを使用して変更できます。ポーリングの頻度が高いと、クライアントでサーバーの更新がより頻繁にポーリングされますが、これは非常に多くのリソースを消費します。

ポーリング頻度の値は、formsweb.cfgで設定します。この定数に関連付けた値は、ミリ秒単位の正の整数です。

構成ファイルが設定されていないと、現在のOracle FormsのHEARTBEAT設定が使用されます。ただし、MaxEventWaitを設定して使用するには、注意が必要です。MaxEventWaitが設定されていないデフォルト設定では、HEARTBEATメカニズムがポーリングに使用されます。HEARTBEATメカニズムが使用される場合のデフォルトの遅延は2分です。MaxEventWait(ミリ秒単位)をHEARTBEATよりも小さい値に設定すると、レスポンス時間を短縮できます。

Enterprise Managerを使用してこれらのパラメータを構成する方法の詳細は、「パラメータの管理」を参照してください。

システム・イベント

多くの場合、アプリケーションをホストしているシステム上で発生するイベントをアプリケーションに認識させ、これらのアクションに反応する機能をアプリケーションに設定することが必要です。ほとんどの場合、Formsアプリケーションの実行がこのようなイベントの直接の原因であることはありませんが、これらの発生に関する認識はアプリケーションにとって貴重な情報となる可能性があります。この頻度が最も高いのは、Oracle Formsアプリケーションのクライアント層です。このようなシステム・イベントの例としては、エンドユーザーが長時間にわたってアイドル状態であることの通知などがあります。このような状況を把握することにより、アプリケーション開発者は状況に対応し、適切なアクションを行うことができます。システム・イベントを使用すると、目的の情報を得ることができます。

Oracle Forms 12cでは、5つのシステム・イベントが用意されています。これらすべてイベントの使用にあたって、必要な構成はほとんどないか、一切ありません。これらのイベントを使用するには、アプリケーション開発者は、適切なイベント・オブジェクトを作成し、目的のアクションを実行するためにWHEN-EVENT-RAISEDトリガーをコーディングする必要があります。ただし、ここでは、それぞれについて簡単に説明します。詳細な情報は、Form Builderのヘルプを参照してください。

注意:

システム・イベントは、Oracle Formsの外部でのアクションに依存したり、アプリケーション内でアクションが正常に完了することを前提としているため、アプリケーションのセキュリティを実装するための唯一の手段として使用しないでください。なんらかの理由によってシステム・イベントに関連付けられたアクションが正常に完了しなかったり、アプリケーションによって検出されない場合、関連するアプリケーションのトリガーが起動しない可能性があります。このような状況はめったにありませんが、システム・イベントを使用して開発を行う場合、このことは考慮する必要があります。

システム・クライアント-アイドル

システム・クライアント-アイドル・イベントは、実行中Oracle Formsアプリケーション内のクライアント層でエンドユーザーのアクティビティを監視します。このイベントは、2つの方法で有効にできます。このイベントを有効に1つの方法は、管理者がアプレット・パラメータidleTimeoutを整数に設定する方法です。これにより、このイベントを起動するまで待機する時間が秒単位で表されます。このアプレット・パラメータを使用するには、最初に適切なFormsテンプレートbase.htmファイルおよびformsweb.cfgに追加する必要があります。

また、このイベントは、SET_APPLICATION_PROPERTY、CLIENT_IDLE_TIMEに追加された新しい引数を使用してプログラム的に有効/無効にすることもできます。アプレット・パラメータの場合と同様、CLIENT_IDLE_TIMEの値も整数の秒数で表されます。これをPL/SQLで使用する方法の詳細は、Form Builderのヘルプを参照してください。

次のような制限があります。

- クライアント-アイドルは、クライアント・アプレットがサーバーからのレスポンスを待機している間、またはモード・ダイアログが開いている場合(「アラート」、「ファイルを開く」ダイアログなど)は無視されます。ただし、アイドル時間が経過する前にサーバーが即座に応答した場合、イベントが起動する可能性があります。このような状況はめったにありませんが、開発者はアプリケーションの開発時にこのことを考慮する必要があります。サーバーがタスクを完了するのにかかる時間が長くなることが想定されるときにこの状況を回避するには、アイドル時間をプログラム的に調整することが必要な場合があります。

- アイドル時間の長さは秒単位で設定しますが、サーバーとの次回の対話までアプリケーションが反応しない可能性があります。この原因はHeartbeatまたはMaxEventWaitです。

システムDB-アイドル

システムDB-アイドル・イベントは、Oracle Forms RuntimeとOracle Forms Runtimeが接続されているデータベース間のアクティビティを監視します。このイベントは、関連するアプリケーションによって実行されるデータベースとの対話を監視します。このイベントは、2つの方法で有効にできます。最初の方法は、環境変数FORMS_DB_IDLE_TIMEを整数に設定する方法です。この値は、このイベントを起動するまでに待機する秒数を表します。

また、このイベントは、SET_APPLICATION_PROPERTY、DB_IDLE_TIMEに追加された新しい引数を使用してプログラム的に有効/無効にすることもできます。DB_IDLE_TIMEの値は整数(秒単位)です。これをPL/SQLで使用する方法の詳細は、Form Builderのヘルプを参照してください。

次のような制限があります。

- DB-アイドル・イベントの内部タイマーは、データベース・アクションの完了後即座に開始されます。これには、アプリケーションの起動時に発生するFormsのデフォルトのログオン・アクションは含まれません。

- デフォルトでは、このイベントは1回のみ起動します。たとえば、COMMITが実行された後に、データベースに対するアクティビティがこれ以上行われず、事前設定時間に達すると、このイベントが起動します。イベントの起動後にアイドル状況のままであっても、イベントが再度起動することはありません。このイベントに監視を続行させるには、アプリケーション・プロパティDB_IDLE_REPEATをTRUEに設定することにより、プログラム的に設定する必要があります。

システム・シングル・サインオフ

Oracle Formsは真正のシングル・サインオン・パートナ・アプリケーションではありません。したがって、SSOを使用して認証されるOracle Formsアプリケーションはこれまで、サインオフ・リクエストが発生したかどうかを確認できませんでした。システム・シングル・サインオフ・イベントが追加された結果、このようなことはなくなりました。サインオフ・アクションは、ユーザーがSSOから明示的にログアウトしたり、SSOセッションが期限切れになったために発生します。Oracle Formsアプリケーションがこのようなサインオフ状況を把握し、これに対応できるようにすることが望ましい場合があります。これにより、アプリケーション開発者は、このようなイベントが発生したとしても、それに対応する方法を決定できるようになります。

次のような制限があります。

- ログアウトが発生したときに(データベース問合せの実行時間が長いことなどが原因で)制御がサーバー上にあるために、イベントが即座に起動されないように思われる場合があります。

- 次回スケジュールされている対話(ハートビートなど)やユーザー・インタラクションまではイベントがサーバーに送信されない場合があります。

システム通知

システム通知を使用すると、管理者は、Fusion Middleware Controlから様々なイベント・レベルを起動できます。また、これにより、開発者も、Fusion Middleware Controlから受信したメッセージまたは通知レベルに基づいて特定のタスクを作成できるようになります。たとえば、通知レベル3を受信したときにユーザーに対してメッセージを表示するようアプリケーションを設計できます。このメッセージは、システムがメンテナンスのためにシャットダウンされるのでアプリケーションを終了する必要があることをユーザーに伝えるよう事前に定義しておくこともできます。現在、5つの通知レベル(1-5)が用意されています。

ユーザー・セッション通知の送信方法の詳細は、第4章の「ユーザー・セッションの管理」を参照してください

システム・メディア完了

Oracle Formsは、音声ファイルの再生をサポートしています。システム・メディア完了イベントは、音声ファイルの再生がトラックの終わりに達すると起動します。

9 Oracle Access ManagerでのForms Servicesの使用

Oracle Access Manager 11gは、Oracle Fusion Middleware 11gのコンポーネントの1つで、認証と認可のためのシングル・サインオン・ソリューションです。Formsアプリケーションのシングル・サインオンの保護、認証サーバーの保護を使用したFormsサービス機能、シングル・サインオンを使用したFormsアプリケーションの保護、およびOracle FormsとReportsの統合をそれぞれ有効にするための情報を提供します。

この章の内容は次のとおりです。

- Oracle Access Managerおよびシングル・サインオン

- 設定プロセス

- 認証サーバー保護付きのForms Services機能

- シングル・サインオンでのFormsアプリケーションの保護

- Oracle FormsとOracle Reportsの統合

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

- インストール後の構成

Oracle Access Managerおよびシングル・サインオン

Oracle FMW 12cのOracle Forms Servicesアプリケーションは、Oracle Access Managed (OAM) 11gR2パッチ・セット3を使用して保護できます。

Oracle Access Manager 11gはJavaプラットフォームのEnterprise Edition (Java EE)に基づいた、エンタープライズ・レベルのセキュリティ・アプリケーションで、機密情報へのアクセスを制限したり、認証や認可のサービスを一元化します。Oracle Access Manager 11gは、Oracle Fusion Middleware 11gのコンポーネントの1つで、認証と認可のためのシングル・サインオン・ソリューションです。

認証サーバーを使用すると、アプリケーションで共有認証トークンまたは認証局を使用してユーザーを認証できるようになります。あるアプリケーションで認証されたユーザーは、同一の認証ドメイン内にある他のすべてのアプリケーションでも自動的に認証されます。

Formsアプリケーションでは、Oracle Internet DirectoryまたはOracle Platforms Security Services (OPSS)からデータベース接続情報を取得するためにのみ、シングル・サインオン・ソリューションが使用されます。データベース情報を取得した後は、認証サーバーとの連携は発生しません。Oracle Forms 12cに導入されているSSOログアウト機能の1つを使用してFormsアプリケーションがコーディングされていないかぎり、アプリケーションを終了してもシングル・サインオン・ログアウトは実行されません。逆に、Oracle Forms 12cに導入されているSSOログアウト機能の1つを使用してアプリケーションがコーディングされていないかぎり、シングル・サインオン・セッションからログアウトしてもアクティブなFormsセッションは終了しません。データベース・セッションは、サーバーのFormsランタイム(frmweb.exeなど)が(通常は明示的にフォームを終了することによって)終了するまで存続します。

認証サーバーをユーザーが使用し、Oracle製品ではないアプリケーション(カスタムJava EEアプリケーションなど)も認証できます。

Oracle Forms Servicesでは、サーバー・インスタンスで実行されるすべてのFormsアプリケーションに対するシングル・サインオンが、最初からサポートされています。Formsアプリケーションでさらにコーディングを行う必要はありません。

注意:

Oracle Forms Servicesアプリケーションは、OID (またはOPSS)と認証サーバーの組合せを使用して、シングル・サインオン環境で実行されます。サポートされているバージョンは、製品動作保証ガイドを参照してください。

動作保証の詳細は、http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.htmlを参照してください

Oracle Access Managerの詳細は、http://docs.oracle.com/cd/E40329_01/admin.1112/e27239/toc.htmを参照してください

Oracle Internet Directoryの詳細は、http://docs.oracle.com/cd/E40329_01/admin.1112/e27149/toc.htmを参照してください

Oracle Platform Security Servicesの詳細は、次を参照してください

http://docs.oracle.com/middleware/1213/idm/app-security/underjps.htm

Oracle Formsで使用されるシングル・サインオン・コンポーネント

認証サーバーを使用したシングル・サインオン・モードでFormsアプリケーションを実行するときに関連する、Oracle Fusion Middlewareの様々なシングル・サインオン・コンポーネントがあります。図9-1および図9-2に、Forms Servicesのシングル・サインオン・デプロイメント設定に関連する、様々なコンポーネントの上位レベルの概要を示します。

図9-1 OPSSをFormsアイデンティティ・ストアとしたForms Servicesのシングル・サインオン・デプロイメント設定に関連するコンポーネント

この図は、OPSSをFormsアイデンティティ・ストアとして持つSSOを示しています。

図9-2 (Oracle Internet Directory) OIDアイデンティティをFormsアイデンティティ・ストアとしたForms Servicesのシングル・サインオン・デプロイメント設定に関連するコンポーネント

この図は、OIDをFormsアイデンティティ・ストアとして持つSSOを示しています。

前述の図で示されたコンポーネントの説明を次に示します。

- 認証サーバー

- Oracle Access Manager (OAMサーバー) - Webシングル・サインオン、認証、認可などを含む全セキュリティ機能を提供するOracle FMW 11g認証サーバー。Forms Servicesを実行するときに、アイデンティティ・ストアとしてOracle Internet Directoryを使用します。Oracle Access Managerは、Oracle HTTP Serverに対して構成されるアクセス・クライアントとしてwebgateを使用できます。

- アクセス・クライアント

- webgate - WebGateはシングル・サインオン・サポートを提供します。これは受信HTTPリクエストをインターセプトし、認証のためにそれらをアクセス・サーバーに転送します。Oracle Forms ServicesおよびOracle Reports Servicesは、OAMサーバーに対するアクセス・クライアントとしてwebgateを使用できます。

- Formsアイデンティティ・ストア

- これは、Formsサーバー・データベース接続情報が含まれるFormsリソース・アクセス記述子の記憶域です。Oracle Platform Security Services (OPSS)またはOracle Internet Directory (OID)をFormsアイデンティティ・ストアとして使用できます。Oracle Platform Security Services (OPSS)がデフォルトのFormsアイデンティティ・ストアとして設定されますが、Forms管理者はOracle Enterprise Managerを使用して、Formsアイデンティティ・ストアをOracle Internet Directory (OID)に変更したり、Oracle Platform Security Servicesに戻すことができます。

- OAMサーバー・アイデンティティ・ストア - Oracle Internet Directory (OID)は、Oracle Access Manager (OAM)認証サーバーおよびFormsアプリケーションによってアイデンティティ・ストアとして使用されるLDAPサーバーです

注意:

Oracle Internet Directory (OID)がFormsアイデンティティ・ストアとして使用される場合、同じOracle Internet Directory (OID)インスタンスをOracle Access Managerのプライマリ・アイデンティティ・ストアとして設定する必要があります。

- Forms Servlet - このOracle Forms Servicesコンポーネントは、Formsアプリケーションを起動する最初のユーザー・リクエストを受け取ります。Formsサーブレットは、アプリケーションに認証が必要かどうかを検出してリクエストを認証サーバーに転送し、Oracle Internet Directoryにアクセスしてデータベース接続情報を取得します。

認証フロー

図9-3および図9-4に、認証サーバーで保護されたアプリケーションURLをユーザーが最初にリクエストしたときの、Oracle Forms Servicesでの認証サーバー・サポートの認証フローを示します。

図9-3 最初のクライアント・リクエストの認証フロー

この図は、最初のクライアント・リクエストの認証フローを示しています。

図9-4 最初のクライアント・リクエストの認証フロー

この図は、最初のクライアント・リクエストの認証フローを示しています。

1. ユーザーは、http(s)://<hostname>:<port>/forms/frmservlet?config= <application>&...のようなForms URLをリクエストします。

注意:

シングル・サインオンを使用するFormsアプリケーションでは、HTTPのポート番号をForms URLで指定します。Forms URLはhttp://<host name>:<http port>/forms/frmservlet?config=ssoappのように記述します。soapは、Forms構成ファイルの中で(ssoModeを指定して)シングル・サインオンを有効にしたセクションの名前です。

2. Formsサーブレットは、認証サーバー・ログイン・ページにユーザーをリダイレクトします。

3. ユーザーが、ログイン・フォームでユーザー名とパスワードを指定します。

4. Oracle Internet Directory (LDAPサーバー)で、パスワードが検証されます。

5. ユーザーは、sso_userid情報とともにそのURLにリダイレクトされます。

6. FormsサーブレットがFormsアイデンティティ・ストアからデータベース資格証明を取得します。

7. Formsサーブレットは、フォーム実行セッションにsso_useridパラメータを設定し、アプレットのFormsリスナー・サーブレットへの接続を許可します。

8. FormsサーブレットがFormsサーバーを起動します。

図9-5に、別のパートナ・アプリケーションで認証されたユーザーが、認証サーバーで保護されたアプリケーションをリクエストした場合におけるOracle Forms Servicesのシングル・サインオン・サポートの認証フローを示します。

図9-5 後続のクライアント・リクエストの認証フロー

この図は、後続のクライアント・リクエストの認証フローを示しています。

1. ユーザーは、Forms URLをリクエストします。

2. Formsサーブレットは、認証サーバーおよびそのログイン・ページにユーザーをリダイレクトします。

3. ユーザーのリクエストが、sso_userid情報とともにURLにリダイレクトされます。

4. FormsサーブレットがFormsアイデンティティ・ストアからデータベース資格証明を取得します。

5. Formsサーブレットは、ランフォーム・セッションにsso_useridパラメータを設定し、アプレットがFormsリスナー・サーブレットに接続します。

6. FormsサーブレットがFormsサーバーを起動します。

設定プロセス

Formsアプリケーションでは、シングル・サインオンは初期状態で有効ではありません。

Formsアプリケーションに対してシングル・サインオンを有効にするには、次の手順が必要です。

- Forms Service 12c Weblogicドメインの構成後のFormsアプリケーションに対するシングル・サインオンの有効化

Forms Service 12c Weblogicドメインの構成後のFormsアプリケーションに対するシングル・サインオンの有効化

12c Forms Services Weblogicドメインの設定後およびドメインでのWeb層の構成後にFormsアプリケーションに対してシングル・サインオンを有効にできます。

フローチャートに、インストール後にFormsアプリケーションに対してSSOを有効化する手順を示します。

このフローチャートに示した手順の詳細を表9-1に示します。

表9-1 インストール後にFormsアプリケーションのシングル・サインオンを有効化するためのタスク

タスク

オプション

説明

備考

前提条件

なし

WeblogicドメインでWeb層(OHS)インスタンスを作成し、Forms管理対象サーバーのルーティングに対してWeb層(OHS)を有効にします。

タスク1: Formsアプリケーションのシングル・サインオン保護を有効にするかどうかの決定。

なし

ユーザーは、シングル・サインオン保護なしでFormsアプリケーションを実行することを選択しました。

はい

ユーザーは、認証サーバーとしてOracle Access Manager (OAMサーバー)を使用してシングル・サインオン・サーバーとともにFormsを実行することを選択しました。

OAMのインストール手順の詳細は、『Oracle Fusion Middleware Oracle Forms and Reportsインストレーション・ガイド』を参照してください。

タスク2: パートナ・アプリケーションの登録アプローチの選択。

frmconfighelperスクリプトの使用

ユーザーは、frmconfighelperスクリプトを使用してWeb層インスタンスをパートナ・アプリケーションとしてOracle Access Manager (OAMサーバー)に登録することを選択しました。

手順の詳細は、「OAMパートナ・アプリケーションとしてのWeb層インスタンスの登録およびOAMポリシーの構成」を参照してください

OAM管理コンソールの使用

ユーザーは、OAMコンソールを使用してWeb層インスタンスをパートナ・アプリケーションとしてOracle Access Manager (OAMサーバー)に登録することを選択しました。

手順の詳細は、「OAMパートナ・アプリケーションとしてのWeb層インスタンスの登録およびOAMポリシーの構成」を参照してください

タスク3: Web層インスタンスおよび管理サーバー・インスタンスの再起動

Webゲート構成をWeb層ランタイム・インスタンスにレプリケートするには、Web層インスタンスおよびWLS管理サーバー・インスタンスを再起動する必要があります。

タスク4: リソース・アクセス記述子を格納するためのFormsアイデンティティ・ストア・タイプの選択。

OPSS (Oracle Platform Security Services)

Oracle Platform Security Services (OPSS)がデフォルトのFormsアイデンティティ・ストアとして構成されるため、作業は必要はありません。

詳細な手順は、このドキュメントの「Formsアイデンティティ・ストアとしてのOracle Internet DirectoryまたはOracle Platform Securityの選択」を参照してください

Oracle Internet Directory (OID)

ユーザーは、アイデンティティ・ストアとしてOracle Internet Directory (OID)を使用することを選択しました。

Forms (Oracle Internet Directory) OIDの関連付けおよびFormsアイデンティティ・ストアとしての(Oracle Internet Directory) OIDの有効化の詳細な手順は、「Oracle Internet Directoryに対するForms J2EEアプリケーションの構成」を参照してください。

タスク5: formsweb.cfgでのFormsアプリケーションに対するSSOの有効化

このタスクは必須です。

認証サーバーにアクセス・クライアントを登録した後で、ユーザーは、Formsアプリケーションに対してSSOを有効化する必要があります。

formsweb.cfgでFormsアプリケーションに対してSSOを有効化する手順の詳細は、「シングル・サインオンでのFormsアプリケーションの保護」を参照してください。

認証サーバー保護付きのForms Services機能

このリリースのOracle Forms Servicesでは、次の機能および拡張機能が利用可能です。

- 動的リソースの作成

- 動的ディレクティブのサポート

- データベース・パスワードの期限切れのサポート

動的リソースの作成

シングル・サインオン・モードでは、ユーザーがFormsアプリケーションに接続しようとしたときに、認証サーバーおよびFormsアイデンティティ・ストアと組み合せてwebgateでユーザーが認証されます。認証されたユーザーは、Formsサーブレットに送られます。Formsサーブレットは、シングル・サインオンのユーザー名が含まれたユーザーのリクエスト情報を取得します。このユーザー名とアプリケーション名によって、Formsアイデンティティ・ストアでこのアプリケーションに対するユーザーのリソース情報を識別する一意のペアが作成されます。

認可されたFormsユーザーが、リクエストしている特定のアプリケーションのリソース、またはFormsアイデンティティ・ストアのデフォルトのリソースのいずれも持たない場合、ユーザーはリソース・アクセス記述子の作成のために、Forms RAD Servletにリダイレクトされます。このリソースの作成後、ユーザーは元のFormsのリクエストURLにリダイレクトされます。

不足したリソース情報をForms Servicesで処理する方法は、アプリケーションまたはForms Services管理者によってカスタマイズできます。次のオプションを使用できます。

- リソースの動的な作成の許可(デフォルト)

- ssoErrorUrlパラメータに指定されている事前定義されたURLへのユーザーのリダイレクト

- Formsのエラー・メッセージの表示

システム管理者は、Forms構成ファイルにリダイレクションURL(絶対URLまたは相対URL)を指定します。

動的ディレクティブのサポート

Formsでのシングル・サインオンの適用はformsweb.cfgファイルで行われます。シングル・サインオン・パラメータssoModeにFALSE以外の有効な値が設定されている場合は、アプリケーションが認証サーバーによる認証を必要としていることを示します。

このパラメータによって、Forms Servicesインスタンスで、データベース・パスワードを取得するためにシングル・サインオンに依存するアプリケーション・タイプと依存しないアプリケーション・タイプの両方を処理できます。シングル・サインオンはformsweb.cfgファイルで構成するので、Fusion Middleware Controlをユーザーが使用し、認証のこの側面を管理できます。

データベース・パスワードの期限切れのサポート

Oracle Forms Services 12cでは、データベース・パスワードが期限切れになり、かつシングル・サインオン・モードで実行されるForms Servicesアプリケーションによりパスワードが更新された場合、ユーザーが入力した新しいパスワードが、Formsアイデンティティ・ストアでこのアプリケーションのリソース・アクセス記述子(RAD)を更新します。この機能により、Formsユーザーのデータベース・パスワードが変更されても、Formsでの認証サーバーによるそのユーザーの認証が引き続き機能します。ただし、Oracle FormsではなくSQL*Plusでパスワードが変更された場合、データベース接続文字列はFormsアイデンティティ・ストアで更新されません。

シングル・サインオンでのFormsアプリケーションの保護

Oracle Formsアプリケーションは、集中構成ファイル($DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/configにあるformsweb.cfgファイル)を使用して構成されます。formsweb.cfgファイルの管理には、Fusion Middleware Controlを使用することをお薦めします。

ユーザーが個別のFormsアプリケーションまたは複数のFormsアプリケーションのシングル・サインオンを有効化するには、Oracle Forms Services構成ファイルformsweb.cfgに定義されている次のパラメータが必要です。このファイルは、Fusion Middleware Controlを使用して管理することをお薦めします。

表9-2 シングル・サインオンの有効化に使用するパラメータ

パラメータ名

有効な値

デフォルト値

ssoMode

true

webgate

false

false

ssoProxyConnect

yes

no

yes

ssoDynamicResourceCreate

true

false

true

ssoErrorUrl

URLの文字列

ssoCancelUrl

URLの文字列

注意:

これらのパラメータの詳細および可能な値を次に説明します。

formsweb.cfgファイル内のこれらのOracle Forms Servicesパラメータは、User Parameterセクションで設定します。これらのパラメータは、サーバーで実行されるすべてのFormsアプリケーションの動作を定義します。これらのパラメータは、Named Configurationで設定することもできます。これらは特定のアプリケーションのみに対して定義されます。Named Configurationセクションで設定したシングル・サインオン・パラメータは、User Parameterセクションで設定した同一のパラメータをオーバーライドします。

アプリケーションのシングル・サインオンを有効にするには:

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

2. 「Forms」メニューから「Web構成」を選択します。

3. アプリケーションの構成セクションをリストする行を選択します。

4. 「セクション」リージョンの「表示」ドロップ・ダウン・リストからssoを選択します。

5. 「セクション」リージョンで、ssoModeを含む行を選択します。

6. 「値」フィールドにwebgateまたはTRUEと入力します。

7. 「適用」をクリックしてformsweb.cfgファイルを更新します。
選択したアプリケーションでシングル・サインオンが有効になります。

アプリケーションのシングル・サインオンを無効にするには:

1. 「Forms」メニューから「Web構成」を選択します。

2. アプリケーションの構成セクションをリストする行を選択します。

3. 「セクション」リージョンの「表示」ドロップ・ダウン・リストからssoを選択します。

4. 「セクション」リージョンで、ssoModeを含む行を選択します。

5. 「値」列に、FALSEと入力します。

6. 「適用」をクリックします。

選択したアプリケーションでシングル・サインオンが無効になります。

ssoMode

ssoModeパラメータを使用して、Forms Servicesアプリケーションを認証サーバーに接続できます。シングル・サインオン・パラメータssoModeに設定できる値を次に示します。

- ssoModeをTRUEまたはwebgateに設定すると、アプリケーションがWebゲートをアクセス・クライアントとして使用してOAMサーバーによる認証を要求することを示します。Webゲートは、手動でインストールして構成する必要があります。

- ssoModeをFALSEに設定すると、アプリケーションが認証サーバーによる認証を要求しないことを示します。

デフォルトでは、Oracle Forms Servicesアプリケーションは、シングル・サインオン・モードで実行するようには構成されません。ssoModeパラメータは、formsweb.cfgファイル内の次の2つの場所で設定できます。

- formsweb.cfgのデフォルト・セクションでssoModeに値trueまたはwebgateを設定します。これにより、このForms Servicesインスタンスによってすべてのアプリケーションがシングル・サインオン・モードで実行されます

- Oracle Forms Servicesアプリケーションの名前を付けた構成でssoModeパラメータを設定します。これにより、この特定のアプリケーションでのみ、シングル・サインオンが有効または無効になります。次に例を示します。
[myApp]

form=myFmx

ssoMode=true

ssoProxyConnect

ssoProxyConnectパラメータを使用することにより、ユーザーは、Oracle Formsでデータベースへのプロキシ接続を使用するかどうかを制御できます。ssoProxyConnectパラメータは、次の2つの方法で設定できます。

- formsweb.cfgのデフォルト・セクションでssoProxyConnectに値yesを設定します。これにより、このForms Servicesインスタンスによってすべてのアプリケーションがシングル・サインオン・モードで実行されます。

- ssoProxyConnectパラメータを実行時のURLで渡します(例: http://<host>:<port>/?config=myapp&……&ssoProxyConnect=yes)。

ssoDynamicResourceCreate

ssoDynamicResourceCreateパラメータはデフォルトでtrueに設定されます。これにより、ユーザーは(構成した方法に応じて) OPSSでリソース・アクセス記述子(RAD)エントリを作成し、アプリケーションを実行できます(このリソース・エントリが存在しない場合)。

リソースが動的に作成されることによって、管理者がユーザーのRAD情報を事前に作成する必要がなくなるため、管理が簡素化されます。ssoDynamicResourceCreateパラメータは、システム・パラメータとしてformsweb.cfgファイルに設定するか、名前を付けた構成のパラメータとして設定できます。デフォルトでtrueに設定されているため、このパラメータを特定のアプリケーションの名前を付けた構成で使用し、デフォルトとは異なる方法で不足したRADエントリを処理できます。

ssoDynamicResourceCreateパラメータをfalseに設定してアプリケーションでシングル・サインオンを有効にし、ssoErrorURLに値を指定しないでおくと、認証されたユーザーとこのアプリケーションにRADリソースがない場合にOracle Forms Servicesにエラー・メッセージが表示されます。

管理者にとって、ユーザーが自分自身のリソースを作成することは望ましくないこともあるため、管理者はこれらのパラメータを使用して、Formsアイデンティティ・ストアのリソース作成を制御できます。デフォルトの動作では、リソースを作成できるHTMLフォームにユーザーをダイレクトしますが、管理者はその設定を変更し、ユーザーをカスタムURLにリダイレクトできます。

Formsアプリケーションの構成セクションで、次のパラメータを設定する必要があります。

[myApp]

form=myFmx

ssoMode=true

ssoDynamicResourceCreate=false

Enterprise Manager Fusion Middleware Controlを使用してこれらのパラメータを設定する方法の詳細は、「パラメータの管理」を参照してください。

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
…

ssoCancelUrl

ssoCancelURLパラメータは動的RAD作成機能(ssoDynamicResourceCreate= true)とともに使用します。このパラメータでは、ユーザーがHTMLフォーム(要求されたアプリケーションのRADエントリを動的に作成するためのフォーム)で取消しボタンを押した場合にリダイレクトされるURLが定義されます。

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

Formsアプリケーションで情報を認証するための認証サーバーを扱う場合は、必要に応じて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).

Formsアプリケーション開発者は、アクセス・クライアントとしてwebgateを使用している場合、OracleAS Single Sign-OnサーバーまたはOracle Access Managerを使用してSSOモードでシングル・サインオンのユーザーID、サブスクライバ識別名(サブスクライバdn)、ユーザー識別名(dn)などのSSO情報を取得できます。

Oracle Platform Security Services (OPSS)をFormsアプリケーションRADを格納するためのアイデンティティ・ストアとして使用する場合、SSO_USERDNおよびSSO_SUBDNプロパティはGET_APPLICATION_PROPERTY()ビルトイン経由では使用できません。

注意:

configは非シングル・サインオン・モードでも取得できます。

Oracle FormsとOracle Reportsの統合

Oracle Reportsは、認証サーバーが有効化された状態でインストールされます。

Oracle Formsアプリケーションで統合Oracle Reportsをコールする最適な方法は、Oracle FormsビルトインのRUN_REPORT_OBJECTを使用することです。

SSOを有効にしたOracle Forms Servicesアプリケーションからレポートを要求する場合、RUN_REPORT_OBJECTビルトインへの各コールを使用して、認証されたユーザーのSSOアイデンティティが暗黙的にReports Serverに渡されます。必要に応じてさらに認可チェックを行う場合は、このSSOアイデンティティはReports Serverへのユーザーを認証します。

非SSOモードで実行されているFormsアプリケーションは、SSOで保護されたReports Serverのレポートを実行できますが、Reports Serverで認可が要求されるとレポートは実行できなくなります。また、Web上でReports出力を取得する場合、ユーザーは自身のSSO資格情報を指定する必要があります。

Formsでのシングル・サインオンの有効化の詳細は、「シングル・サインオンでのFormsアプリケーションの保護」を参照してください。

ReportsでのSingle Sign-Onの構成の詳細は、Oracle Single Sign-Onの構成と管理を参照してください。

Oracle FormsとOracle Reportsの統合の詳細は、http://www.oracle.com/technetwork/developer-tools/formsでホワイト・ペーパーOracle FormsとOracle Reportsの統合を参照してください。

注意:

Oracle FormsおよびReports 12c以降、FormsからReportsに統合するには、Forms環境構成(default.env)で環境変数COMPONENT_CONFIG_PATHを設定する必要があります。値は、次のパスに設定する必要があります

DOMAIN_HOME/config/fmwconfig/components/ReportsToolsComponent/<reports_tools_component_name>

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

11g以降、FormsとReportsをそれぞれ別々のインスタンスで構成できます。別々のOracleインスタンスにインストールしたFormsとReportsを統合する必要が後で発生した場合は、Reports Serverとの通信の確立に必要なファイルを手動で構成する必要があります。詳細は、異なるインスタンス上にインストールされているReportsとFormsの間の通信を参照してください。

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

Oracle Databaseでは、プロキシ・ユーザー認証をサポートしています。これによって、クライアント・ユーザーは、アプリケーション・サーバーを介してデータベースにプロキシ・ユーザーとして接続できます。

この項は、次のトピックで構成されています。

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

- (Oracle Internet Directory) OIDを使用してSSOを有効化する場合のプロキシ・ユーザー接続の有効化

- プロキシ・ユーザーに対するSSOの有効化

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

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

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

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

Oracle E-Business Suiteなどの大規模なアプリケーションの多くでは、すべての接続で単一のユーザー名が使用されます。これにより、多くの場合、大企業に適した方法でユーザーを管理できますが、監査に関する問題が発生します。レコードの挿入、更新および削除のすべてでは、シングル・ユーザーにより実行されるようにデータベースでは見えます。監査をリストアするには、アプリケーション開発者は、カスタマイズされた監査コードをデータベースにおいて記述して実装する必要があります。コードでは、ユーザー名をアプリケーションからデータベースに渡す必要があります。この手順は、開発時間が必要になるだけでなく、Oracle Databaseで実装済の機能と重複することにもなります。2番目の問題はセキュリティです。シングル・ユーザーのアクセスは脆弱であり、脆弱なユーザーがアプリケーション・スキーマ全体にアクセスできてしまいます。これらの問題に対処するために、Oracle Databaseではプロキシ・ユーザー認証がサポートされています。これによって、クライアント・ユーザーはデータベースにアプリケーション・サーバー経由でプロキシ・ユーザーとして接続できます。

図9-6は、Formsプロキシ・ユーザーの認証を示します。

図9-6 プロキシ・ユーザーの認証

- 図の中央に示されているOracle Internet Directory (LDAP)を使用して、Oracle Formsでユーザーが認証されます。

- Formsではプロキシ・ユーザーとして接続(パスワードを使用する場合と使用しない場合のどちらか)し、実際のユーザー名をOracle Internet Directoryリポジトリから渡します。

- 通常、プロキシ・ユーザーは最低限の権限で構成されています。次の手順では、プロキシ・ユーザーには接続権限とセッション作成権限が割り当てられています。

- データベースでは、プロキシ・ユーザー用にcreateセッション・アクションを受け付け、実際のユーザー名を監査とアクセス制御で使用します。

- Oracle Internet Directoryのユーザーは、プロキシ・ユーザー・アカウントの構成がないとデータベースに単独では接続できません。

- プロキシ・ユーザー・アカウントは、SQL *Plusにクライアントが直接接続できないようにします。

(Oracle Internet Directory) OIDを使用してSSOを有効化する場合のプロキシ・ユーザー接続の有効化

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管理者ガイド』を参照してください。

アプリケーション・ユーザーのパスワードは、データベースに渡されません。アプリケーション・ユーザーの名前、プロキシ・ユーザーの名前とパスワードのみ渡されます。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/technetwork/indexes/documentation/index.htmlでOracle Databaseのドキュメントを参照してください。

プロキシ・ユーザーに対するSSOの有効化

formweb.cfgにシングル・サインオン用の構成セクション(たとえばssoapp)を作成し、SSOProxyConnectをyes、ssoModeをtrueまたはwebgateにそれぞれ設定します。

プロキシ接続で使用されるユーザー名とパスワードは、ログオン・ユーザー用のRADエントリに定義されています。ssoProxyConnect=yesに設定されている場合、Formsによって発行された接続文字列は有効になります。

SQL> connect RADUsername[appuserName]/RADPassword@databaseTnsName

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

プロキシ・ユーザーの接続とシングル・サインオンを有効にした後、次の手順を実行してFormsアプリケーションにアクセスします。

1. http://<host name>:<http port>/forms/frmservlet?config=ssoappというURLを使用して、Formsアプリケーションを実行します。ssoappはシングル・サインオン(ssoMode)を有効にした構成セクションの名前です。

2. シングル・サインオンのユーザー名とパスワードを使用してログインします(「(Oracle Internet Directory) OIDを使用してSSOを有効化する場合のプロキシ・ユーザー接続の有効化」で取り上げたこの例では、シングル・サインオンのユーザー名はappuser、パスワードはappuserPWです)。

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

ビルトインのget_application_propertyには、IS_PROXY_CONNECTION(ブール型)の新しいパラメータがあります。このパラメータが渡されたときに、フォームがプロキシ・ユーザー・モードで実行中の場合、コールによりtrueが返されます。それ以外の場合は、falseが返されます。

注意:

Oracle Platform Security Services (OPSS)をFormsアイデンティティ・ストアとして使用し、SSO_USERDNまたはSSO_SUBDNパラメータがget_application_propertyビルトインに渡される場合、空の文字列が返されます。これらのパラメータが有効なのは、Oracle Internet DirectoryがFormsアイデンティティ・ストアとして実行されている場合のみです。

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 Reports Servicesの構成を参照してください。

インストール後の構成

この項では、インストール後のいくつかの手順について説明します。「設定プロセス」で行った選択内容によっては、これらの手順の実行が必要になります。

この項には次のトピックが含まれます:

- Oracle Internet Directoryに対するForms J2EEアプリケーションの構成

- Formsアイデンティティ・ストアとしてのOracle Internet DirectoryまたはOracle Platform Securityの選択

- OAMパートナ・アプリケーションとしてのWeb層インスタンスの登録およびOAMポリシーの構成

Oracle Internet Directoryに対するForms J2EEアプリケーションの構成

Formsアプリケーションを介してプロキシ・ユーザーとして接続するユーザーは、認証サーバーとOracle Internet Directoryにも定義する必要があります。Oracle Formsでは、認証サーバーを介してこのユーザーを認証します(プロキシ・ユーザーを使用する際、Formsでは認証サーバーを使用する必要があります)。次に、Oracle Formsはデータベースにプロキシ・ユーザーとして接続しますが、その接続で使用するプロキシ・ユーザーの名前とパスワードは、アプリケーション・ユーザー用のOracle Internet DirectoryエントリのRADに格納されています。

関連付け/関連付けの解除ページにアクセスする手順:

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

2. Formsのホーム・ページにナビゲートします。

3. 「Forms」メニューから「Forms RuntimeのLDAPアソシエーション」を選択します。
「Forms RuntimeのLDAPアソシエーション」ページが表示されます。

図9-7 Forms RuntimeのLDAPアソシエーション

この図は、Fusion Middleware Controlの「関連付け/関連付けの解除」ページのスクリーンショットです。

OIDホストをFormsアプリケーションに関連付けるには::

1. Oracle Internet DirectoryホストをFormsアプリケーションに初めて関連付けるには、「OIDの関連付け/関連付けの解除」ページでそのFormsアプリケーションを選択します。「関連付け」をクリックします。
「関連付け」ダイアログが表示されます。

2. 表9-3の記載に従って、Oracle Internet Directoryホストの詳細を入力します。

3. 「関連付け」をクリックします。
「OIDの関連付け/関連付けの解除」ページが再び表示されます。

表9-3 Oracle Internet Directoryホストの詳細

パラメータ

説明

OIDホスト

リストからOracle Internet Directoryホストを選択するか、「新規OIDホスト」を選択して新しいホストの詳細を追加します。

新規OIDホスト

Oracle Internet Directoryサーバーのホスト名。このフィールドは、新規のOracle Internet Directory (OID)ホストを選択して追加した場合に有効になります。

新規OIDポート

Oracle Internet Directoryでリスニングが行われているポート番号。このフィールドは、新規のOracle Internet Directoryホストを追加する場合に有効になります。

ユーザー名

Oracle Internet Directory管理者のユーザー名

パスワード

Oracle Internet Directory管理者パスワード

SSLポートの使用

Oracle Internet Directoryホストへの接続でSSLを使用する場合はこのボックスを選択します(この場合、指定するポート番号は、SSLポートとなります)。

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-3の記載に従って、Oracle Internet Directoryホストの詳細を入力します。

3. Formsアイデンティティ・ストアとしてのOracle Internet DirectoryまたはOracle Platform Securityの選択で説明されているように、アクセス・クライアント・ファイルを生成および適用します。

Formsアイデンティティ・ストアとしてのOracle Internet DirectoryまたはOracle Platform Securityの選択

Oracle Platform Security Services (OPSS)は、デフォルトのFormsアイデンティティ・ストアです。管理者がForms OIDの関連付けを実行すると、Oracle Internet DirectoryがFormsアイデンティティ・ストアとして設定されます。ユーザーは、「Forms RuntimeのLDAPアソシエーション」ページで各デプロイメントの「プライマリ・アイデンティティ・ストア」列のチェック・ボックスの選択を解除することにより、Formsアイデンティティ・ストアとしてOracle Platform Security Services (OPSS)に戻すことができます。

OAMパートナ・アプリケーションとしてのWeb層インスタンスの登録およびOAMポリシーの構成

ユーザーには、Oracle Access Manager (OAM)パートナ・アプリケーションとしてWeb層インスタンスを登録し、生成されたOAMポリシーを構成する手段として2つの選択肢が用意されています。

- frmconfighelperスクリプト

- OAMコンソール

注意:

Web層およびこれを管理するWeblogic Admin Serverは、いずれかの構成オプションの後に再起動する必要があります。

frmconfighelperスクリプトを使用したWeb層パートナ・アプリケーションの登録およびポリシーの登録

frmconfighelperスクリプトは、Oracle Access ManagerのRREGツールを使用して、パートナ・アプリケーションの登録を実行した後、OAM上でポリシーを構成します。ポリシー構成の詳細はすべて、Forms OAMポリシー構成ファイル$FMW_HOME/forms/provision/FormsOAMRegRequest.xmlに含まれています。ユーザーは、次の操作を行う必要があります。

1. Oracle Access Managerサーバー上にあるRREG.tarをダウンロードし、Oracle FMW 12c $FMW_HOMEディレクトリで展開します。

2. frmconfighelperスクリプトを実行し、enable_ssoオプションを渡します。

Oracle Access Manager (OAM)コンソールを使用したWeb層パートナ・アプリケーションの登録およびポリシーの登録

ユーザーは、次の手順を実行する必要があります。

1. Web層インスタンスでWebゲートを構成にします。
Webgate 12cはFMW 12c Oracle HTTP Serverとともにインストールされますが、OHSインスタンスでは構成されないので、構成する必要があります。ユーザーは、FMW 12cのドキュメント内のOracle HTTP Server 12c Webゲートに関する指示に従うことも、frmconfighelperスクリプトを実行してenable_webgateオプションを渡すこともできます。frmconfighelperスクリプトの詳細は、このドキュメントの「Oracle Formsのユーティリティおよびスクリプト」を参照してください。

2. OAMコンソールでWebゲートを作成し、生成されたポリシーを構成します。
OAMコンソールを使用してWebGate 11gエージェントを作成し、OHSホストおよびポート情報を渡し、保護されているリソース・リストに次を追加します。

/forms/frmservlet?*oamMode=true*

OAMコンソールを使用して生成されたポリシー内のリソースを編集し、除外リストに次を追加します。

/* and /.../*

注意:

同じポリシー内でFormsおよびReportsを構成する場合、保護されているリソース・リストに/reports/rwservlet/*も追加します。

3. ObAccessClient.xmlおよびcwallet.ssoをOAMサーバーから、ディレクトリDOMAIN_HOME/config/fmwconfig/components/OHS/<ohs instance>/webgate/configの下にある関連するOHSにコピーします。
frmconfighelpスクリプトの使用の詳細は、「Oracle Formsのユーティリティおよびスクリプト」を参照してください

注意:

webgateアクセス・クライアントがOracle Access Manager 11gと連携するようにインストールして構成した後に、ユーザーがアクセス・クライアントとしてwebgateを使用して初めてFormsアプリケーションにアクセスする際、java例外エラーが表示されます。この問題を回避するには、HTTPOnlyパラメータを無効にする必要があります。これを実行する手順を次に示します。

1. OAM管理コンソールにログインします。

2. 「認証スキーム」を選択し、「LDAPScheme」にナビゲートします。

3. ssoCookieパラメータ値にdisablehttponlyを設定します。

4. 「適用」クリックします。

Oracle Formsのリモート・アクセス記述子の管理

リモート・アクセス記述子またはRADは、アプリケーションがSSO対応である場合に、Oracle FormsのランタイムがOracle Databaseに接続するために使用されます。

RADは、デフォルトではOPSSに格納されています。RADは、Fusion Middleware Control内のリソース管理ページで管理できます。

リソース管理へのアクセス

リソース管理ページにアクセスするには、次の手順を実行します。

1. Fusion Middleware Controlにログインします。

2. 左上隅の近くにあるドメイン名の横のアイコンをクリックしてサイドバーを展開します

3. 「Forms」ノードを展開し、目的のFormsインスタンス(forms1など)をクリックします。

4. 左上の近くにある「Forms」を展開します。

5. 「セキュリティ」を選択し、RAD情報を格納するためにOPSSとOracle Internet Directory (LDAP)のどちらを使用しているかに応じて、OPSSリソース管理またはLDAPリソース管理を選択します。

図9-8 「Forms」ドロップダウン

6. リソース管理ページでは、リソースを追加、編集または削除できます。

図9-9 リソース・ページ

リソース移行アシスタント

「リソース移行アシスタント」ページでは、Oracle Internet Directory (OID)に格納されているOracle Forms RADをOracle Platform Security Services (OPSS)に移行できます。このユーティリティは、OIDからOPPSへの移行のみを目的としています。

「リソース移行アシスタント」ページにアクセスするには、次の手順を実行します。

1. Fusion Middleware Controlにログインします。

2. 左上隅の近くにあるドメイン名の横のアイコンをクリックしてサイドバーを展開します

3. 「Forms」ノードを展開し、目的のFormsインスタンス(forms1など)をクリックします。

4. 左上の近くにある「Forms」を展開します。

5. 「セキュリティ」、「リソース移行」の順に選択します。

6. 「リソース移行」ページが表示されます。移行プロセスのためにOracle Internet Directory (OID)サーバーにアクセスするには、このサーバーに関する情報を入力する必要があります。この選択内容は、ページにアクセスした後で「OIDの接続」ボタンをクリックすることにより、変更できます。

図9-10 リソース移行アシスタント

この図は、リソース移行アシスタントでのログオンを示しています。

7. 「リソース移行」ページでは、選択したOIDで見つかったリソースがすべて表示されます。OPSSに移行するエントリを表内で選択し、「移行」をクリックします。転送のステータスがポップアップ・ダイアログに表示されます。

図9-11 「リソース移行アシスタント」ページ

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

Oracle Formsアプリケーションからサーバー上のJavaをコールすると、初めてJavaをコールするときにJava Virtual Machine (JVM)が生成されてランタイム・プロセスに接続されます。この章では、Java仮想マシン・プーリング、JVMプロセス、複数のJVMコントローラ、JVM構成およびコントローラに関する情報を提供します。

この章の構成は、次のとおりです。

- Java仮想マシン・プーリング

- 子JVMプロセス

- 複数のJVMコントローラ

- JVMプーリングの使用例

- 設計時の考慮事項

- Fusion Middleware Controlを使用したJVMの構成

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

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

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

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

Java仮想マシン・プーリング

Oracle Formsアプリケーションがサーバーで最初にJavaをコールしてからランタイム・プロセスが有効である間は、プロセスが再びJavaをコールしなくても、JVMはランタイム・プロセスに接続された状態で維持されます。各Formsランタイム・セッションによって独自のJVMインスタンスが作成されるとすると、サーバー上で消費されるリソースの量が膨大になる可能性があります。

JVMプーリング環境では、複数のFormsランタイム・プロセスによってJVMが共有されます。単一のJVMが、異なるランタイム・プロセスから複数のFormsセッションを処理できます。プーリング環境では、ランタイム・プロセス当たり1つのJVMを接続しなくてすむため、ホストされたマシン上のメモリーのフットプリントを大幅に削減できます。この環境は、構成可能です。Forms管理者は、様々なパラメータを設定したり、ニーズや要件に基づいて環境をチューニングできます。また、単一のJVMプロセスによって管理されるランタイム・セッションの数に対する制限を設定することもできます。

JVMプーリングを使用する場合、JVMコントローラが作成されます。これは、特定の職責を持つJVMです。ランタイム・プロセスから接続を受け入れる以外に、必要に応じて新しいJVMを作成する職責もあります。新しいJVMプロセス(子JVMとも呼ばれます)が作成されるのは、コントローラが(コントローラ自体を含む)プール内の既存のJVMがランタイム・プロセスからの追加セッションに対応できないと判断した場合のみです。

Oracle Forms JVMプーリングは、Forms Java Importerと連携して機能します。また、Oracle ReportsおよびOracle BI-PublisherをコールするFormsの機能とも連携します。Java Importerを使用すると、開発者は設計時にPL/SQLからJavaクラスを参照できます。実行時に、Javaクラスは必要に応じてJVMによってロードおよび実行されます。

Java Importerの詳細は、Oracle Form Builderのオンライン・ヘルプを参照してください。

子JVMプロセス

各Formsランタイム・プロセスがJVM内に個別にスレッドを持つため、同時実行性が実現します。JVMが同時リクエストの指定数に達すると、負荷を分散させるために子JVMを生成します。さらに、複数のJVMコントローラを持ち、それぞれに子JVMを持つことも可能です。

たとえば、複数のFormsアプリケーションで、オプションやクラスパスが異なるJVMを使用する必要があります。どのJVMコントローラとFormsアプリケーションが必要かは、Forms構成ファイル(formsweb.cfg)の名前付きセクションで指定できます。また、Formsアプリケーションの呼び出しに使用するURLのパラメータとしてこの情報を渡すこともできます。jvmcontrollerパラメータを使用すると、特定のJVMコントローラを使用するようにフォームを構成できます。jvmcontrollerパラメータは、どのJVMコントローラを使用するかをFormsランタイム・プロセスに指示します。jvmcontrollerを起動するときに必要な各種のパラメータは、JVMコントローラの構成ファイルjvmcontrollers.cfgで指定する必要があります。

詳細は、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に影響を与えることはなく、これらから影響を受けることもありません。

子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に対してのみ接続が行われます。

子JVMの管理

12より前のOracle Formsバージョンでは、子JVMプロセスは親コントローラの存続期間中は存続していました。これは、ピーク時に多くの子プロセスが作成されたとしても、負荷が減少したときにこれらの子プロセスをリリースできないことを意味します。Forms 12以降では、コントローラが使用状況を監視し、必要に応じて不要なプロセスをクリーンアップまたは実行できるようになりました。これにより、貴重なサーバー・リリースの浪費を阻止し、パフォーマンスをさらに向上させることが可能になります。デフォルトでは、このクリーンアップ機能は無効です。有効にするには、JVMコントローラ構成でパラメータautoremovalを設定します。有効な値を次の表10-1に示します。

表10-1 子JVMの管理

値

説明

OFF (デフォルト)

自動削除機能はdisabledです。

JVMは、JVMコントローラによって自動的には削除されません。プール・サイズは増加し続け、縮小しません。子JVMは、手動で終了されるかコントローラの終了時に終了されるまで存続し続けます。

AGGRESSIVE

自動削除機能はenabledです。

子JVMを削除する頻度は最高です。

JVMがこの構成内で最大M個のセッションに対応できると仮定すると、コントローラは将来のセッション・リクエストに対応するためにM/2個のバッファ(スペア)を保持します。

この設定のメリットの1つは、現在の負荷を処理するために最小限推定される数の子JVMと、将来のリクエストに対応するために最大1つのスペアがプール内に常に存在することです。この設定のデメリットは、(セッションが頻繁に開始および停止する)アクティブな環境内でJVMの終了/作成の頻度が高くなることです。コントローラは子を管理するために過度にビジー状態になる可能性があります。

すべてのセッションがクローズされると、プール・サイズは1 (つまり、JVMコントローラ)まで縮小します。

MODERATE

自動削除機能はenabledです。

子JVMを削除する頻度はAGGRESSIVEより低くなります。

JVMがこの構成内で最大M個のセッションに対応できると仮定すると、コントローラは将来のセッション・リクエストに対応するためにM個のバッファ(スペア)を保持します。

すべてのセッションがクローズされると、プール・サイズは1 (つまり、JVMコントローラ)まで縮小します。

CONSERVATIVE

自動削除はenabledです。

子JVMを削除する頻度は前述の2つのオプションより低くなります。

JVMがこの構成内で最大M個のセッションに対応できると仮定すると、コントローラは将来のセッション・リクエストに対応するために3*M/2個のバッファを保持します。

すべてのセッションがクローズされると、プール・サイズは2 (つまり、コントローラと1つの子)まで縮小します。

JVMの負荷分散

接続をよく編成され統一されたものにするには、ラウンド・ロビンまたは最小負荷優先(またはその両方)などの負荷分散技術をJVMコントローラに組み込むことができます。この負荷分散機能はオプションであり、JVMコントローラの構成ファイル内で構成できます。この機能を使用するには、構成ファイルでパラメータloadbalanceを設定します。これは、次のいずれかのオプションを使用して設定できます。

- 最小負荷優先

- ラウンド・ロビン

- ランダム

有効な値は、次の表10-2で説明されています。

表10-2 JVMの負荷分散

値

説明

RANDOM (デフォルト)

ランダム・モードでは、JVMコントローラは以前のバージョンのように動作します。コントローラによって作成されたすべての子が新しい接続を自由に受け入れることができます。JVMが新しい接続を受け入れることができると想定されると、JVMは新しい接続を受け入れます。

LEASTLOADEDFIRST

最小負荷優先モードでは、JVMコントローラが子JVMの接続受入れ動作を監視および制御します。一度に新しい接続リクエストをリッスンできるのは1つの子JVMのみです。JVMコントローラは、子JVMをスケジュールするために、プール内のすべての子JVMを反復し、処理対象のセッション数が最も少ない子JVMを選択します。選択した子JVMには、次の接続リクエストをリッスンするよう指示します。スケジュールされた子JVMは、セッション・リクエストを受け入れたら、確認応答をJVMコントローラに送信します。JVMコントローラは負荷分散シーケンスを開始し、プール内で次に負荷の小さい子JVMを探します。

ROUNDROBIN

ラウンド・ロビン・モードでは、JVMコントローラが子JVMの接続受入れ動作を監視および制御します。コントローラは、負荷を分散するために、JVMのリストを反復し、新しい接続リクエストを受け入れる公平な機会を各JVMに与えます。最初に、リスト内の先頭のJVMから始め、接続リクエストの受入れを開始するよう指示します。JVMコントローラは、現在スケジュールされている子JVMからの確認応答を受信し、次に使用可能な子に移動し、負荷分散シーケンスを開始します。コントローラは、使用可能なJVMをすべて繰り返します。

複数のJVMコントローラ

JVMプーリングのアーキテクチャでは、複数のJVMコントローラを持ち、それぞれが子JVMを持つことができます。複数のJVMコントローラを使用するのは、次のような場合です。

- アプリケーションごとにJVMコントローラを持ち、他のコントローラとは個別に起動および停止できるようにする場合。

- アプリケーションごとに異なる設定が必要な場合。たとえば、複数のコントローラでクラスパスやJVMの設定を分ける場合です。

- Fusion Middleware ControlからJVMコントローラのリソース使用率を監視する場合。複数のアプリケーションまたはユーザー・グループで異なるJVMコントローラが使用されている場合は、Java Importerコードによってどのようにリソースが消費されているかを確認できます。

- 同一コンピュータ上に複数の開発環境、テスト環境または本番環境がある場合。

- 複数の異なるアプリケーションで静的データを共有しない場合。

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ランタイム

この図は、JVMプーリングが有効にされていない場合のFormsのインプロセスJVMを示しています。各クライアントは、独自のJVMプロセスを含む独自のFormsランタイム・プロセスをコールします。

図10-3は、JVMプーリングが有効になっている場合に、複数のFormsランタイム・プロセスで単一のJVMプロセスが共有される様子を示しています。

図10-3 JVMプーリングが有効な場合のFormsランタイム

この図は、JVMプーリングが有効にされているときに、単一のJVMプロセスを共有しているForms Runtimeプロセスを示しています。各クライアントは、単一のJVMプロセスを含む独自のFormsランタイム・プロセスをコールします。

この例では、同じアプリケーションでそれぞれ独自のランタイム・プロセスを使用して機能している5つのクライアントが、独自のJVMインスタンスを生成するそれぞれのFormsランタイム・プロセスを使用するかわりに、1つのプールされたJVMプロセスを使用しています。このため、メモリー使用率とシステム・リソースを大幅に節約できます。

設計時の考慮事項

この項は、次のトピックで構成されています。

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

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

Javaコードの再インポート

JVMプーリングが利用可能になる時点より前にOracle FormsのJava Importer機能を使用していた場合は、JVMプーリングを使用する前にJavaクラスを再インポートする必要があります。Javaクラスを初めてインポートしたときには、そのJavaクラスのPL/SQLラッパーが生成されています。これは、フォームで作成されたプログラム・ユニット内で確認することができます。ただし、JVMプーリングを使用するJava Importerで生成されているPL/SQLラッパーはこれとは異なります。

Oracle Forms Services 10以降では、Java Importerは新しいPL/SQLラッパーを生成します。Java Importerを使用し、JVMプーリングを利用しない場合は、インプロセスJVMは新しい PL/SQLラッパーで正常に機能します。また、旧スタイルのPL/SQLラッパーでもこれまでどおりに機能します。

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

JVMプーリングのメリットの1つに、同一クラスの複数のインスタンス間で静的変数を使用してデータを共有する機能があります。ただし、静的変数は1つのJVM内の同一クラスのインスタンス間で共有され、複数のJVM間では共有されません。この条件に従って計画を立案する必要があります。

たとえば、ローン・クラスのすべてのインスタンスで同じ金利を使用して計算を実行するという理由で、interestRateという静的変数が用意されているとします。JVMを1つのみ使用する場合は、ローン・クラスの1つのインスタンスでinterestRateが変更されると、その他のすべてのインスタンスが影響を受けます(これは意図した動作です)。

ただし、JVMコントローラに1つ以上の子JVMが存在する場合は、2つ以上のJVMが存在する場合があります。1つのJVMでinterestRateが変更されても、他のJVMにあるローン・インスタンスでは新しい値が認識されません。子JVMの管理の詳細は、「子JVMプロセス」を参照してください。JVMプーリングを使用しておらず、interestRateを変更した場合は、各Oracle Formsのランタイム・プロセスが個別にインプロセスJVMを持つため、その変更により他のインスタンスは影響を受けません。

静的変数を使用してクラスの複数のインスタンス間で情報を共有する場合は、maxsessionsを65535に設定して、子JVMが生成されないようにしてください。

Fusion Middleware Controlを使用したJVMの構成

Fusion Middleware Controlを使用してJVMを構成するには、次の手順を実行します。

1. Fusion Middleware Controlを使用して、formsweb.cfgに新しい構成セクションを追加するか、そこにある既存の構成セクションを変更し、アプリケーションでのJVMコントローラの使用を有効または無効にします。詳細は、「Forms構成ファイル設定」を参照してください。

2. default.envまたはjvmcontrollers.cfgでCLASSPATHが更新されていることを確認します。

3. Fusion Middleware Controlを使用してJVMパラメータを構成します。詳細は、パラメータの管理を参照してください。

4. JVMコントローラを起動します。詳細は、「Fusion Middleware ControlによるJVMコントローラの起動と停止」を参照してください。

JVMコントローラを使用したネットワーク・プロキシおよびJavaコール

JVMプーリングが有効で、JVMコントローラでJavaが実行される場合、jvmcontrollers.cfgファイルでjvmoptionsパラメータを設定することが必要な場合があります。このパラメータをユーザーが使用し、ネットワーク・プロキシに関連するJavaプロパティを設定できます。Oracle Reports、Oracle BI-Publisherをコールするか、インポートしたJavaを使用するとともに、これらのコールでネットワーク・プロキシを介してアクセスする必要があるアプリケーションの場合、適切なパラメータを使用して、使用中のプロキシに適した環境を構成します

- http.proxyHost

- http.proxyPort

- https.proxyHost

- https.proxyPort

- http.nonProxyHosts

これらのプロパティの詳細は、Javaドキュメントで見つかります。詳細は、次を参照してください。

https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties.html

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

コマンドラインからJVMコントローラを管理するには、JVMコントローラの起動および停止のオプションを理解し、環境を指定する必要があります。JVMコントローラを実行しているコンピュータと同じコンピュータ上にあるJVMコントローラにのみアクセスできます。

注意:

この章で説明するJVMコントローラの制御メカニズムは、主にコマンドラインに関連しています。使いやすい画面とオンライン・ヘルプのあるFusion Middleware Controlを使用する方法のほうが簡単です。ただし、各種のフィールドやオプションの意味およびJVMコントローラの動作の仕組みを理解するために、Fusion Middleware Controlのユーザーも次の情報を参照することをお薦めします。

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

この項では、JVMコントローラのコマンドの例について説明します。これらの例の詳しい説明は、「起動の例」を参照してください。

注意:

コマンドラインの使用を試みる前に、環境変数FORMS_INSTANCEを設定する必要があります。

- 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コントローラを停止します。これは、このコマンドを正常に発行するために、起動済である必要があります。

コマンドの制限

次のコマンド制限に注意してください。

- コマンドでは、大文字と小文字が区別されます。

- 1度に1つのコマンドのみをJVMコントローラに発行できます。

- 1度に1つのJVMコントローラに対してのみ、コマンドを発行できます。

JVMコントローラ(dejvmプロセス)で使用可能なコマンドを表10-3に示します。Enterprise Managerを使用している場合は、これらのコマンドを発行するためのインタフェースを含む画面があります。コマンドラインを使用している場合は、Enterprise Managerを使用したJVMコントローラの管理はできないことがあります。

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

表10-3に、コマンドラインからJVMを起動するために使用するJVMパラメータを示します。

表10-3 JVMパラメータ

パラメータ

説明

jvmcontroller

JVMの名前を入力します。この名前は、文字で始まり、英数字、'_'、'$'、または'#'で構成される有効なOracle識別子にする必要があります。Oracle識別子の最大長は30バイトです。

ヒント: 名前は、それにアクセスするアプリケーションの名前に基づいたものを入力することをお薦めします。このJVMコントローラの名前は後から変更できません。

maxsessions

新規JVMが生成される前に該当のJVMが処理する最大同時Oracle Formsセッション数を指定します。この値は、デフォルトJVMコントローラ用のセットをオーバーライドします。

classpath

クラスパスを指定すると、環境で指定されたクラスパスまたはシステムのクラスパス、またはデフォルトJVMコントローラ用のクラスパス・セットをオーバーライドします。

jvmoptions

JVMに渡すために有効なオプションを入力します。この値は、デフォルトJVMコントローラ用のセットをオーバーライドします。有効なJVM起動オプションの詳細は、Oracle Javaドキュメントを参照してください。

logdir

デフォルトJVMコントローラのログ・ディレクトリを使用する場合は、「ログ・ディレクトリ」を空白のままにしておきます。他のディレクトリが設定されている場合は、Enterprise Managerからログ・ファイルにアクセスできないことがあります。

logging

- off - ロギングは使用されません

- info - JVMコントローラのアクティビティに関する一般情報をレポートします。(デフォルト)

- warn - 追加調査が必要な可能性がある潜在的に危険な状況をレポートします。

- error - 発生したエラーをレポートします。アプリケーションは動作し続けることができますが、機能は削減される可能性があります。

- crit - JVMコントローラが異常終了する原因となった重大な障害をレポートします。

- debug - 冗長なデバッグ情報をレポートします

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プーリング・タスクを管理します。

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

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

- パラメータの管理

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

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

- Forms構成ファイル設定

- 起動の例

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

この項では、JVM構成ファイルとそのパラメータのセクションで構成を編集するために実行できる、一般的なタスクについて説明します。

表10-4に、JVM構成ファイル内の名前を付けた構成セクションで実行できるタスクを示します。

表10-4 構成セクションで行うタスク

タスク

説明

備考

類似作成

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

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

編集

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

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

削除

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

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

作成

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

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

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

表10-5 名前を付けた構成セクションでのパラメータ処理のタスク

タスク

説明

備考

元に戻す

以前のバージョンの構成セクションに戻すことができます。

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

適用

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

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

追加

「パラメータの追加」ダイアログを開きます。

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

削除

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

変更を保存するには「適用」、破棄するには「元に戻す」をそれぞれ使用します。一度適用すると、個々のパラメータへの変更を元に戻すことはできません。

JVM構成セクションの管理

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

「JVM構成」ページへのアクセス

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

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

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

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

図10-4 「JVM構成」ページ

この図は、Fusion Middleware Controlの「JVM構成」ページのスクリーンショットを示しています。

新しい構成セクションの作成

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

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

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

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

3. 「作成」をクリックします。

「作成」ダイアログが表示されます。

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

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

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

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

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

1. 「JVM構成」リージョンで、説明を編集する名前を付けた構成を含む行を選択します。

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

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

4. 「コメント」フィールドに説明を入力します。

5. 「保存」をクリックします。

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

名前を付けた構成の複製

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

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

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

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

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

4. 「作成」をクリックします。

複製元のセクションとまったく同じパラメータ、パラメータ値およびコメントを備えた新しいセクションが作成されます。

名前付き構成の削除

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

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

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

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

「確認」ダイアログが表示されます。

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

構成セクションが削除されます。

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

注意:

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

パラメータの管理

名前を付けた構成内のパラメータを管理するには、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. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

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

表10-6に、JVM構成パラメータとそのデフォルト値を示します。

表10-6 JVM構成パラメータ

名前

説明

デフォルト値

maxsessions

新規JVMが生成される前にデフォルトのJVMが処理する、最大同時Oracle Formsセッション数を指定します。

65535

classpath

classpathを指定すると、システムのクラスパスまたは環境で指定されたクラスパスをオーバーライドします。

$ORACLE_HOME/oracle_common/jdk/bin

jvmoptions

JVMに渡すために有効なオプションを入力します。有効なJVM起動パラメータの詳細は、Oracle Javaドキュメントを参照してください。

Null

logdir

デフォルトJVMコントローラのログ・ディレクトリを使用する場合は、「ログ・ディレクトリ」を空白のままにしておきます。他のディレクトリが設定されている場合は、ログ・ファイルはEnterprise Managerで表示できません。

$DOMAIN_HOME/system_components/FORMS/forms1/tools/jvm/log

logging

loggingが有効かどうかを指定します。有効な値は、Off、Debug、Warn、Error、Crit、Infoです。

Info

autoremoval

autoremovalが有効な場合、JVMコントローラは子JVMを監視および管理し、これらが必要かどうかを決定できます。子JVMプロセスが不要になると、autoremoval機能によってこれらのJVMは完全に終了されます。

Off

loadbalance

loadbalanceが有効な場合、JVMコントローラは、各子JVMプロセスのステータスを監視できます。選択されたloadbalanceの設定に基づいて、JVMコントローラは、処理のためのリクエストの送信先を決定します。

ランダム

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コントローラ」ページ

この図は、Fusion Middleware Controlの「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)が表示されます。

Forms構成ファイル設定

この項では、アプリケーションでのJVMコントローラの使用を有効または無効にするためにForms構成ファイル(formsweb.cfg)で使用するJVMプーリング・パラメータについて説明します。パラメータ名には大/小文字の区別はありません。Fusion Middleware Controlを使用して、Forms構成ファイルを管理できます。

表10-7に、formsweb.cfgファイルで指定する起動オプションを示します。

formsweb.cfgでのパラメータの変更の詳細は、「パラメータの管理」を参照してください。

表10-7 Oracle FormsのJVMコントローラ起動パラメータ

パラメータ

説明

jvmcontroller

有効値: jvmcontrollerの名前。空白のままにしてJVMを指定しないこともできます。

デフォルト値:なし

注意: formsweb.cfgでこのパラメータを指定するには、jvmcontroller=%jvmcontroller%の形式でotherparamsにこのパラメータを指定する必要があります。otherparamsの詳細は、表3-13を参照してください。

このパラメータはデフォルト・セクションでグローバルに設定することも、アプリケーション・セクションを選択してオーバーライドすることもできます。これによって、Formsランタイム・プロセスで使用するJVMコントローラが決まります。dejvm実行可能ファイルのjvmcontrollerパラメータに対応します。

jvmcontrollerに値を指定していない場合(jvmcontroller=)、Formsランタイム・プロセスは自身のインプロセスJVMを起動します。これは、Java Importerの動作は10gより前のリリースのものとなることを意味します。

allowJVMControllerAutoStart

有効値: true、false。

デフォルト値: true

JVMコントローラを使用するようにFormsが構成されていて、そのJVMコントローラが実行されていない場合、このパラメータにより、Oracle FormsでJVMコントローラを実行することができます。

起動の例

この例では、複数のアプリケーションで複数のJVMを使用する環境を示します。

表10-8に示すように、formsweb.cfgは4つの構成セクションで構成されます。

図10-8 複数のアプリケーションで使用する複数のJVM

名前を付けた構成セクション

JVM構成

default

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

この図は、複数のアプリケーションで複数のJVMを使用する環境を示しています。この例で、各ordersAppクライアントには独自のFormsランタイム・プロセスがあります。ランタイム・プロセスは、commonJVMと呼ばれるJVMを共有しています。同様に、hrAppクライアントはhrJVMという名前のJVMコントローラを使用します。それに対して、salesAppアプリケーションの場合、Java ImporterがJVMなしで機能するのと同様に、Formsランタイム・プロセスはインプロセスJVMを起動します。

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

ロギングを有効にすると、JVMコントローラは次のような情報をログ・ファイルに記録します。

- JVMパラメータ(maxsessions、classpathなど)の値。

- JVMコントローラが起動および終了した日時。

- 子JVMが生成された日時。

- Formsランタイム・プロセスが新規の接続を開始した日時とそのプロセスID。
この情報は、診断または管理の目的でどのFormsランタイム・プロセスがどのJVMコントローラに接続されているかを調べるうえで役立ちます。

- Formsランタイム・プロセスのセッションが終了しJVMとの接続が解除された日時。

この項は、次のトピックで構成されています。

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

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

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

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

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

Fusion Middleware Controlを使用して、JVMコントローラのロギング・プロパティを管理します。

1. 「JVM構成」ページで、JVM構成セクションを選択します。

2. loggingパラメータには、表10-3で説明されている有効なロギング値を入力します。

3. 「適用」をクリックします。

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

ログ・ファイルのディレクトリはJVMコントローラで指定できます。また、他のJVMコントローラが使用するデフォルトJVMコントローラのログ・ファイル・ディレクトリも指定できます。

ログ・ファイルのディレクトリの場所を指定するには:

1. JVMコントローラを作成します。詳細は、「新しい構成セクションの作成」または「名前を付けた構成の複製」を参照してください。

2. 「ログ・ディレクトリ」パラメータを追加します。詳細は、「パラメータの管理」を参照してください。

「ログ・ディレクトリ」パラメータが定義されている名前の付いた構成セクションを複製した場合は、「パラメータの管理」にあるように、既存のそのパラメータを編集できます。

3. 「適用」をクリックして変更を保存します。

「JVM構成」ページが再表示されます。

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

ログ・ファイルが存在する場合は、「ログ・ファイル」列にアイコンが表示されます。

ログ・ファイルにアクセスするには:

- 該当のJVMコントローラで使用可能な「ログ・ファイル」列の「ログ・ファイル」リンクをクリックします。
「ログ・ファイル」ページが開き、そのログの情報が表示されます。

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

Fusion Middleware Controlを使用して、ログ・ファイルを削除します。

JVMコントローラのログ・ファイルを削除するには:

1. 「JVMコントローラ」ページで、ターゲットJVMを選択します。

2. 「ログ・ファイルを削除」をクリックします。

「削除の確認」ダイアログが表示されます。

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

ログ・ファイルが削除され、「JVMコントローラ」ページが再び表示されます。

注意:

実行中のJVMのログ・ファイルを削除した場合、JVMを再起動すると、そのログ・ファイルが再び使用可能になります。ロギングを可能にするには、JVMを再起動する必要があります。

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

PDE-JM001: JVMコントローラ: <jvm_name>と通信できません。

原因: JVMコントローラの起動または既存のJVMコントローラへの接続に失敗しました。

処置: 管理者に連絡してください。

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

Webコンテンツへのユーザー・アクセスを制御したり、システムへの侵入者からサイトを保護したりできることがきわめて重要です。この章では、Oracle Forms Servicesにおけるセキュリティのアーキテクチャと構成について説明します。

この章の内容は次のとおりです。

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

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

関連項目

セキュリティの詳細は、次のドキュメントを参照してください。

- 『Oracle Fusion Middlewareセキュリティ概要』には、Oracle Fusion Middlewareセキュリティと、そのコア機能の概要が記載されています。

- Oracle Fusion Middleware Oracle Identity Managementスタート・ガイドには、Oracleセキュリティ・インフラストラクチャの管理者用の手引きが記載されています。

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

Oracle Forms Servicesでのシングル・サインオンは、Oracle HTTP Server用のOracleモジュールであるwebgateを介して使用できます。webgateアクセス・クライアントは、Oracle Access Manager (OAM)に対してユーザーを認証します。

Formsアプリケーションでは、データベース接続文字列がアプリケーションのリクエストとともに渡されます。渡されない場合は、ログイン・ダイアログが表示されます。シングル・サインオン環境でデータベース接続情報を取得するには、ユーザーのシングル・サインオン・サーバー名、認証されたユーザー名およびユーザーが起動をリクエストしているアプリケーション名を結合して作成される一意キーの値を、Formsサーブレットを使用してOracle Internet Directoryに問い合せます。

リソース・アクセス記述子(RAD)は、各ユーザーおよびアプリケーションに対して定義される、必要なデータベース接続情報を含むOracle Internet Directoryのエントリです。Forms ServletはRADからデータベース接続情報を読み取って、Forms Webアプリケーションを起動するコマンドラインとともに渡します。Forms認証はまだデータベース中心ですが、webgateおよびFormsサーブレットはWebベースの認証サーバー環境に統合されています。

ユーザーおよびその権限のクラス

従来、Formsアプリケーションでは、アプリケーション・ユーザーの認証にデータベースが使用されています。シングル・サインオン(SSO)でOracle Forms Servicesを使用するには、ユーザー・アカウントとその接続情報がOracle Internet Directoryで利用可能である必要があります。Oracle Internet Directoryでは、PL/SQL、JavaまたはOracle Delegated Administration Servicesを使用した複数の方法でユーザー・データがプロビジョニングされます。Oracle Delegated Administration Servicesは、Oracle Single Sign-Onユーザーおよび委任管理者用のWebベースのユーザー・インタフェースであり、権限を持つOracle Internet Directoryのセルフサービス・データの管理に使用します。

Oracle Internet Directoryでユーザー・アカウントを作成した後は、ユーザーによるFormsアプリケーションの初回リクエスト時に、(このアプリケーションに必要なデータベース接続情報をユーザーが知っていることを前提として)リソース・アクセス記述子(RAD)のエントリを動的に作成できます。

もうひとつの選択肢は、Oracle Delegated Administration Servicesで作成可能なRADのエントリを使用することです。デフォルトのRADエントリには、Oracle Single Sign-Onで認証されるすべてのユーザーがアクセスできます。特定のFormsアプリケーションをWebで実行しているときに、すべてのユーザーが同じデータベース接続情報を共有している場合はデフォルトのRADを使用します。このように、ユーザーはそのOracle Single Sign-On接続情報によって個別に認証されますが、デフォルトのRADエントリで定義されたアプリケーションでは、すべてのユーザーが共通のデータベース接続(情報)を共有します。

ユーザー・アカウントのデフォルトのシングル・サインオン動作

デフォルトでは、認証サーバーが有効となり、プロキシ・ユーザーは使用されません。Oracle Formsユーザーは、認証サーバーで認証を行い、アイデンティティ・ストア(通常はOracle Internet Directory)からリソース・アクセス記述子を取得し、これらの資格証明を使用してデータベースに接続する必要があります。

データベース・プロキシ機能を使用するユーザー

シングル・サインオン・パラメータssoProxyConnectが新しく追加されました。これをtrueに設定すると、ユーザーはプロキシ・ユーザーとして接続できるようになります。ユーザーは認証サーバーでの認証を求められ、プロキシ・ユーザーのユーザー名とパスワードを保持するリソース・アクセス記述子が構成されます。データベース管理者は、プロキシ接続を許可するために、データベース構成を追加で実装する必要があります。

保護されるリソース

Formsアプリケーションに対してシングル・サインオンを有効化する場合、次の機能でFormsアプリケーションを保護できます。

- Oracle Internet Directoryでの動的リソースの作成: 以前のOracle Forms Servicesの一部のリリースでは、特定のアプリケーションおよびユーザーでRAD定義が見つからない場合に、エラー・メッセージが表示され、認証済にもかかわらずユーザーはそのFormsアプリケーションを実行できませんでした。Oracle Forms Servicesのこのリリースでは、RAD定義が存在しない場合は、ユーザーがOracle Forms Servicesを構成してリアルタイムにこのアプリケーションのRADを作成できます。DASページにリダイレクトする機能は、シングル・サインオン・パラメータssoDynamicResourceCreateで実現しています。

- シングル・サインオンを使用した場合のデータベース・パスワードの期限切れ: 以前のOracle Forms Servicesの一部のリリースでは、データベース・パスワードが期限切れの場合、Oracle Internet DirectoryのRAD情報は更新されませんでした。そのため、ユーザーは、Formsアプリケーションへの接続時にデータベース・パスワードを更新していました。Oracle Forms Servicesのこのリリースでは、Formsによるデータベース・パスワードの更新に伴ってOracle Internet DirectoryのRAD情報も自動的に更新されます。Oracle Forms Servicesのこの機能を使用するために、追加構成を行う必要はありません。

認証およびアクセス強制

ユーザーによるOracle Forms Services URLの初回リクエスト時など(パートナ・アプリケーションからのリクエスト時も含む)、Oracle Forms Servicesにおけるシングル・サインオン・サポートの認証フローの詳細は、「認証フロー」を参照してください。

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

Oracle Forms Servicesのセキュリティの構成は、Oracle Fusion Middleware Controlで行われます。画面ごとにオンライン・ヘルプを利用できます。詳細は、「Forms Servicesの構成と管理」および「Oracle Access ManagerでのForms Servicesの使用」を参照してください。

- Oracle FormsのOracle Identity Managementオプションの構成:
Oracle Platform Security ServicesまたはOracle Internet Directoryでリソースを動的に作成できるようにOracle Forms Servicesを構成できます。

詳細は、「Oracle Access ManagerでのForms Servicesの使用」を参照してください。

- Oracle Fusion Middleware Security FrameworkのOracle Formsオプションの構成:
Oracle Forms Servicesの構成と保護の詳細は、次の各章を参照してください。

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

- Forms Servicesの構成と管理

- Oracle Access ManagerでのForms Servicesの使用

- トレースと診断

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 トレースと診断

Oracle Forms Traceにより、Forms機能の定義部およびユーザー処理のクラスについての情報を正確に記録できます。この章では、Forms Traceの有効化、構成、管理の詳細、およびForms Traceの出力の表示に関する情報を提供します。

この章の内容は次のとおりです。

- Forms Trace

- Forms Traceの有効化と構成

- Forms Traceの開始と停止

- Forms Trace出力の表示

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

- Oracle Diagnosticsおよびロギング・ツールの利用

Forms Trace

Forms Traceにより、Forms機能の定義部およびユーザー処理のクラスについての情報を正確に記録できます。これを行うには、トレース情報を収集する必要があるイベントを定義します。たとえば、トリガーの実行やマウスクリック、あるいはその両方に関する情報を記録できます。Enterprise Manager Fusion Middleware Controlから、トレース出力を使用してOracle Forms Servicesアプリケーションのパフォーマンスやその他の問題を診断できます。

Forms Traceは、Oracle Forms Servicesの以前のリリースで利用できたForms Runtime Diagnostics (FRD)とPerformance Event Collection Services (PECS)の機能に代わるものです。Forms Traceを使用すると、フォームの使用中にユーザーが実行した手順など、フォームでの実行パスをトレースできます。

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

Formsデバッグは、ユーザーがボタンを押したときの動作を確認する場合に使用します。リモートの開発者は、デバッグを使用することで、既存のFormsユーザー・セッションに接続し、アプリケーション実行時のユーザー・アクションのトレースやローカル・マシン上でのデバッグができます。Forms Traceは、特定のイベントのタイミングに関する情報を提供します。Oracleサポートでは、トレースを使用して問題を分離および分析します。たとえば、実行に最も時間がかかる問合せや、Oracle Formsでパフォーマンスの問題を引き起こしているトリガーを、Forms Traceを使用して特定できます。

Forms Traceの有効化と構成

イベントとは、ユーザー・アクションの直接的または間接的な結果としてOracle Forms Services内で発生するものです。例として、問合せを実行するボタンをユーザーが押す場合などがあります。イベント・セットは、トレースを開始するときに各イベント番号を個別に指定するのではなく、イベント・セット名を指定することによってユーザーがトレースできるイベントのグループを指定します。

「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行のコメントを追加する変更は、単一のエントリを削除する変更よりも保存に時間がかかります。

イベントとそれに対応するイベント番号は、「トレース可能イベントのリスト」を参照してください。

Forms Traceの構成

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

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

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

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

図12-1 「トレース構成」ページ

この図は、Fusion Middleware Controlの「トレース構成」ページのスクリーンショットを示しています。

新しいトレース・グループを作成するには:

1. Fusion Middleware Controlのメイン・ページで、構成するOracle 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. 変更を保存する場合は「適用」をクリックし、破棄する場合は「元に戻す」をクリックします。

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

Forms Traceを構成するには、次のコマンドライン・パラメータを使用します。

Record =
Tracegroup =
Log = <filename>

表12-1に、パラメータの値を示します。

表12-1 Forms Traceのコマンドライン・パラメータ

パラメータ

値

説明

レコード

forms

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

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」をクリックします。

「トレースの有効化」ダイアログが閉じられます。ページをリフレッシュします。

Forms Trace出力の表示

トレース・ログ・ファイルを見ることができるのは、管理者または管理者のグループに属するユーザーのみです。ユーザーは一度ログインすると、異なるセッションのトレース・ログ・ファイルを表示するために同じブラウザ・セッションに再度ログインする必要がなくなります。

トレース・データは、*.trc拡張子の付いたバイナリ形式ファイルで保存されます。トレース・ログのデフォルトの場所は$ORACLE_INSTANCE/FormsComponent/forms/trace/forms_pid.trcです。pidはユーザー・セッションのプロセスIDです。Enterprise Manager Fusion Middleware Controlを使用しない場合は、Translateユーティリティを使用する必要があります。Translateユーティリティの実行の詳細は、次の「Translateユーティリティの実行」を参照してください。

トレース・データを表示するには:

1. Fusion Middleware Controlの「Forms」メニューから「ユーザー・セッション」を選択します。

2. ユーザー・セッション行を選択し、「トレース・ログ」をクリックしてトレース・ログの内容を表示します。

3. ログインしてトレース・ファイルを表示します。

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-2は、トレースに定義できるイベントを示しています。Formsの今後のリリースでは、さらに多数のイベントがこのリストに追加される可能性があります。

イベント型には、次のものがあります。

- ポイント・イベント: 識別可能な継続時間がないユーザー・アクションや内部信号の結果としてOracle Forms Servicesに発生したイベント(ステータス行のエラー・メッセージの表示など)。このイベント型のインスタンスのたびに、ログ・ファイルに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-3

- 表12-4

- 表12-5

- 表12-6

- 表12-7

注意:

イベント名では大文字と小文字が区別されます。

表12-3 ユーザー・アクション・イベントの詳細

処置

詳細

番号

メニュー選択

メニュー名、選択内容

33

キー

キー・プレス、フォーム、ブロック、項目

34

クリック

マウス/キー、フォーム、ブロック、項目

35

ダブルクリック

フォーム、ブロック、項目

36

値

フォーム、ブロック、項目

37

スクロール

フォーム、上、下、ページ、行

38

LOV選択

LOV名、選択項目

39

アラート

アラート名、選択内容

40

タブ

フォーム

45

DBイベント

キュー名

47

ウィンドウのアクティブ化、非アクティブ化、クローズ、サイズ変更

ウィンドウ名、フォーム名、サイズ

41,42,43,44

表12-4 Forms Servicesのイベントの詳細

イベント名

詳細

番号

フォーム

フォームID、名前、パス、連結ライブラリ、連結メニュー

64

プログラム・ユニット

プログラム・ユニット名、フォームID

65

トリガー

トリガー名、フォーム名、ブロック名、項目名、フォームID

66

LOV

LOV名、フォームID

67

エディタ

フォームID、エディタ名

68

キャンバス

フォームID、キャンバス名

69

表12-5 イベントの詳細

イベント名

詳細

番号

ビルトイン

ビルトイン名、フォームID

96

ユーザー・イグジット

ユーザー・イグジット名、フォームID

97

メニューの作成

メニュー名、フォームID

99

PL/SQL

PLSQLSTmt、フォームID

100

問合せの実行

ブロック名

101

表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-7 その他のイベントの詳細

イベント名

詳細

番号

環境ダンプ

選択した環境情報

192

状態変化

最後のアクション/イベントにより生じた内部状態の変化

193

ビルトイン引数

ビルトインに対する引数の値

194

ユーザー・イグジット引数

ユーザー・イグジットに渡される引数

195

プロシージャ引数

プロシージャに渡される引数(イン/アウト)

196

Oracle Diagnostics Loggingのツールの利用

Oracle Diagnostics Logging(ODL)はOracle Fusion Middlewareの機能の1つです。管理者はこの機能を使用して、Oracle Forms Servicesのセッションをすべて記録し、Oracle Forms Services関連のネットワークの通信量を監視し、サイトの構成問題をデバッグできます。Forms Servicesで使用できるOracle Diagnostics Loggingの機能には、次のものがあります。

- セッションの開始時間と終了時間、ユーザーのIPアドレス、ホスト名を含むのすべてのOracle Forms Servicesセッションの記録(セッション・レベルのロギング)

- Oracle Forms Services関連のネットワークの通信量とパフォーマンスの監視(セッション・パフォーマンスとリクエスト・パフォーマンス・レベルのロギング)

- サイトの構成に関するデバッグ情報の生成(デバッグ・レベルのロギング)

- Fusion Middleware Controlで処理されるロギング

- これらのログ・ファイル内のイベントとデータベースのイベントとの関連付け

- ログ・ファイルのローテーションの自動処理

- 以前のようなOSレベルのスクリプトによる方法ではなく、メカニズムによるログ・サイズ制限の処理

Servlet Logging Toolsに関する情報は、次の各項を参照してください。

- Oracle Diagnostics Loggingの有効化

- ログ・ファイルの場所

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

Oracle Diagnostics Loggingの有効化

ロギングを起動すると、Listener Servletがログ・メッセージをサーブレットのログ・ファイルに書き込みます。各ロギング・レベルにおける出力例は、「各レベルのサーブレット・ロギングの出力例」に記載されています。

表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

すべてのデバッグ・メッセージ。前述のメッセージを含むその他のデバッグ・メッセージが書き込まれます。このロギング・レベルは情報量が多く、主にデバッグやサポート用に使用します。

ロギングの指定

すべてのユーザーに対してロギングを指定するには、「Web構成」ページのデフォルト・セクションでserverURLエントリを次のように変更します。

serverURL=/forms/lservlet/<string>

<string>には、表12-8で定義されているロギング機能を指定します。stringを指定しないとデフォルトのロギングになります。たとえば、セッションレベルのロギングを開始するには、serverURLを次のように変更します。

serverURL=/forms/lservlet/session

Fusion Middleware Controlを使用したロギング・レベルの指定

Fusion Middleware Controlを使用してFormsサーブレットのロギングにログ・レベルを設定するには、次の手順を実行します。

1. Fusion Middleware Controlで管理対象サーバーを選択します(WLS_FORMSなど)。

2. 「WebLogic Server」メニューで、「ログ」→「ログ構成」を選択します。

3. 「ロガー名」フィールドでルート・ロガーを開きます。oracleとoracle.formsをそれぞれ開きます。「ロギングの指定」に記載のとおりに、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ファイルが変更されます。

Formsサーブレットを起動するURLでの完全診断の指定

完全診断を開始するには、次のようにformsweb.cfgでserverURLパラメータを指定します。

serverURL=/forms/lservlet/debug

次のURLを使用してOracle Forms Servicesアプリケーションを起動します。

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

診断ログの表示

診断ログの内容は、Fusion Middleware Controlから表示します。

診断ログの内容を表示するには:

1. 「Forms」メニューから「ホーム」を選択します。

Fusion Middleware Controlホームページが表示されます。

2. 「Formsデプロイメント」リージョンで、「サーブレット・ログ」列にスクロールします。

3. 対象の配布済アプリケーションに対応するログ・リンクをクリックします。

「ログ・メッセージ」ページが表示されます。

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

「Forms」メニューから「監視」→「サーブレット・ログ」を選択します。このページで、収集されたサーバー診断ログの検索、ソート、表示、ダウンロードおよびエクスポートを実行できます。

ログ・ファイルの管理および表示の詳細は、Oracle Fusion Middlewareの管理のログ・ファイルと診断データの管理を参照してください。

ログ・ファイルの場所

デフォルトのサーブレット・ログ・ファイル名は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です。このトレース・ログのデフォルトの場所は次のとおりです。

$DOMAIN_HOME/system_components/FORMS/forms1/trace/forms_pid.trc

このログを表示するには、「Translateユーティリティの実行」の説明にあるTranslateユーティリティを使用します。

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

次のロギング・レベルを使用した場合の各種の出力例を示します。

- (なし)

- /session

- /sessionperf

- /perf

- /debug

(なし)

[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
]]

/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.

/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.
]]

/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.

/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.2] 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.2] [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.2] [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.2] [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.2] [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.2] [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.2] [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.2] [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.2] [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.2] [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.2] [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.2] [SRC_METHOD: startProcess] [FORMS_SESSION_ID: ..43] [arg:
frmweb webfile=HTTP-0,default] RunformProcess.startProcess():  executing frmweb
webfile=HTTP-0,default

.
.
.
.

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

この章では、Oracle Formsサービスの組込み最適化機能、Forms Services機能を活用したアプリケーションのチューニングによるパフォーマンスの向上、アプリケーションの実行に必要なリソースを減らす方法、Oracle Traffic DirectorとFormsの統合に関する情報を提供します。

この章の構成は、次のとおりです。

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

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

- Oracle Traffic DirectorとFormsの統合

Oracle Forms ServicesとOracle Database Server間の接続のチューニングについては、この章では扱いません。

Forms Servicesの組込み最適化機能

Oracle Forms ServicesおよびJavaクライアントには、いくつかの最適化機能が含まれており、大きく次のカテゴリに分類できます。

- Forms Servicesの監視

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

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

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

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

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

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

Forms Servicesの監視

Fusion Middleware Controlを使用してOracle Forms Servicesを監視し、次のメトリック情報を確認します。

- Forms Servicesインスタンス

- イベント

- ユーザー・セッション

- Forms Trace

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つのグラフにドラッグ・アンド・ドロップして、これらを比較します。詳細は、パフォーマンスのチューニング・ガイドのモニタリングの章を参照してください。

Formsイベントの監視

Enterprise Manager Fusion Middleware Controlを使用して、すべてのイベントまたは特定のイベントに対するトレースを有効にします。表13-1に、このページで実行できるタスクのリストを示します。

表13-1 Formsイベントの監視

タスク

関連項目

ユーザー・セッションのメトリックの監視

「Formsユーザー・セッションを表示するには:」

メトリック情報のソート

「Formsユーザー・セッションのリストをソートするには:」

メトリック情報の検索

「Formsユーザー・セッションを検索するには:」

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

Formsランタイム・プーリング(Formsランタイム・プレスタート)を使用すると、構成可能な数のアプリケーション・ランタイム・エンジンを使用する前に起動できます。ランタイム・プーリングにより、サーバーのピーク時に迅速に接続できるようになり、サーバー側のアプリケーションの起動時間が短縮されます。ランタイム・プーリングは、サーバー構成の窓口が小さいにもかかわらず、そこで多くのユーザーがFormsアプリケーションに接続するような状況で役立ちます。事前に起動されたランタイム・エンジンはすべて、同じ環境で実行され、同じアプリケーションを提供します。

事前起動パラメータの構成

Enterprise Manager Fusion Middleware Controlで表13-2に示されているパラメータを使用して、Forms Servicesのランタイム・プーリングを構成します。

表13-2 Formsランタイム・プーリング・パラメータ

パラメータ名

データ型

説明

デフォルト値

prestartRuntimes

boolean

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

false

prestartInit

integer

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

1

prestartTimeout

integer

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

0 (0に設定した場合、タイマーは起動しません)

prestartMin

integer

プールに存在する必要のあるランタイム・プロセスの最小数。

0

prestartIncrement

integer

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

0

prestartMinは、特定のアプリケーションに対してランタイム・プーリングがアクティブな間は常に存在する必要のある、事前に起動されるランタイムの最小数を定義します。最小値は、prestartInitパラメータに定義した値と同等またはそれ未満に設定してください。prestartMinパラメータは、いつでも変更可能で、アプリケーション・サーバーの再起動を必要としません。クライアントが事前起動済のランタイム・プロセスへの接続をリクエストし、このランタイム・プロセスがタイムアウトしていない場合、この新しいエントリが取得されます。プロセスがタイムアウトすると、アプリケーションはデフォルトの動作になり、最小のしきい値は維持されません。

各構成セクションで、これらのパラメータの値を指定できます。prestartRuntimes = trueエントリがあっても、関連する事前起動パラメータがない場合は、デフォルト値が使用されます。

ロード・バランシングが実現されたシステムに複数のOracle WebLogic管理対象サーバーがある場合は、前述のパラメータに指定された様々な値は、アプリケーションの全体ではなく、JVMごとに対応します。

ランタイム・プーリングの起動

管理者は、Enterprise Manager Fusion Middleware Controlを使用して、特定のアプリケーションでランタイム・プーリングが有効になるように構成できます。アプリケーション・サーバー(Oracle WebLogic管理対象サーバー)を起動すると、アプリケーションごとに構成した数のFormsランタイム・プロセスが事前に起動されます。

Formsサーブレットの初期化フェーズで構成ファイル(formsweb.cfg)が読み取られ、prestartRuntimesパラメータが有効になっているアプリケーションがサーバーによって事前に起動されます。

ランタイム・プーリングのスケジューリング

ランタイム・プーリングのスケジューリング(またはランタイム事前開始のスケジューリング)は、Formsランタイム・エンジンの事前開始をスケジュールできる機能です。Oracle Formsでは、構成可能な数のFormsランタイム・エンジンを使用する前にその起動について管理できるのみでなく、より柔軟性の高い方法で適切な時間にFormsランタイム・プロセスの事前開始をスケジュールできます。Enterprise Manager Fusion Middleware Controlを使用することにより、Formsランタイム事前開始のスケジュール、既存のスケジュールの確認、既存の任意のスケジュールの削除およびスケジュールのエクスポートとインポートを行うことができます。

事前開始スケジュールの作成: 事前開始スケジュールを作成するには、次の手順を実行します。

1. 「Forms」メニューから、「スケジュール事前開始」を選択します。
「スケジュール事前開始」ページが表示されます。

2. 「スケジュール済のジョブ」リージョンで、「作成」をクリックします。
図13-1に、事前開始のスケジューリングのために表示されるページを示します。

図13-1 Formsランタイム事前開始のスケジューリング

この図は、事前開始スケジュールの作成に使用されるEnterprise Managementの画面を示しています。

3. 「ジョブ名」に、スケジュールの名前を入力します。
ジョブ名の最大長が100文字を超えないようにする必要があります。アンパサンド(&)などの特殊文字を含めることはできません。

4. 「構成セクション」リストから、構成タイプを選択します。
このリストには、パラメータの論理セットが含まれています。

5. 「事前開始初期」に、初期に起動する必要があるランタイム・プロセスの数を示す数値を入力します。この値が1以上であることを確認します。

6. 「事前開始タイムアウト」に、未使用の事前開始プロセスを停止するまでの時間(分単位)を示す数値を入力します。この値にゼロを設定すると、タイマーは開始されないため、プロセスはタイムアウトしません。

7. 「スケジュール・タイプ」オプションから、適切なスケジュール・タイプを選択します。
設定可能な3つのスケジュール・タイプを次に示します。

- 「1回(遅延ベース)」: 初期遅延ベースで1回の事前開始をスケジュールする必要がある場合に、このオプションを選択します。初期遅延とは、事前開始が始まるまでの時間数または分数を指定する、時間ベースのパラメータです。このオプションを選択する場合、スケジュール・タイプの下に表示される「初期遅延」フィールドに、初期遅延時間(時間単位または分単位)を入力する必要があります。

- 「1回(日付ベース)」: 日付ベースで1回の事前開始をスケジュールする必要がある場合に、このオプションを選択します。このオプションを選択する場合、スケジュール・タイプの下に表示される「開始日」フィールドに、日付を入力する必要があります。

- 「繰返し」: 繰返しの事前開始をスケジュールする必要がある場合に、このオプションを選択します。「頻度」リストから、次のオプションのいずれかを選択できます。

- 「繰返し日付および間隔」: このオプションを選択する場合、開始日と、事前開始を繰り返す間隔を指定する必要があります。

- 「繰返し初期遅延および間隔」: このオプションを選択する場合、初期遅延と、事前開始を繰り返す間隔を指定する必要があります。

8. 「発行」をクリックします。
「ジョブの表示」をクリックすると、作成されたすべての事前開始スケジュールを表示できます。

事前開始スケジュールの削除: 事前開始スケジュールを削除するには、次の手順を実行します。

1. 「Forms」メニューから、「スケジュール事前開始」を選択します。
「スケジュール事前開始」ページが表示されます。

2. 図13-2に示すように、「スケジュール済のジョブ」リージョンから、削除する事前開始スケジュールの行を選択します。

図13-2 事前開始スケジュールの削除

削除する複数の行を同時に選択できます。

3. 「削除」をクリックします。
選択した事前開始スケジュールが削除されます。

事前開始スケジュールのエクスポートおよびインポート: このユーティリティを使用すると、既存のすべてのスケジュールを特定の管理対象サーバーからエクスポートして、それらを別の管理対象サーバーにインポートできます。この機能では、スケジュールを選択してエクスポートすることができないため、既存のすべてのスケジュールをエクスポートする必要があります。事前開始スケジュールをエクスポートおよびインポートするには、次の手順を実行します。

1. 「Forms」メニューから、「スケジュール事前開始」を選択します。

「スケジュール事前開始」ページが表示されます。

2. 「スケジュール済のジョブ」リージョンで、「エクスポート」をクリックします。

ダイアログ・ボックスが表示されます。

3. ダイアログ・ボックスに新しいファイル名を入力します。

このファイル名には、.xml拡張子を含める必要があります。

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

これで、すべての事前開始スケジュールの属性を含むxmlファイルが作成されます。ブラウザの設定に応じて、ファイルを保存する場所を選択するよう求められるか、ローカル・マシンのデフォルトの場所にファイルが保存されます。

5. スケジュール(前述の手順でエクスポートしたもの)を他の管理対象サーバーにインポートするには、そのサーバーの「スケジュール事前開始」ページに移動し、「インポート」をクリックします。

ダイアログ・ボックスが表示されます。

6. スケジュールをエクスポートしたときに作成したファイルの名前を入力します。ダイアログ・ボックスで「参照」をクリックして、ローカル・マシンからxmlファイルをアップロードすることもできます。

7. 「OK」をクリックします。

インポートされたスケジュールが、「スケジュール済のジョブ」リージョンにリストされるようになります。

注意:

xmlファイル内のスケジュール・エントリにエラーがある場合は、サーバーでその特定のスケジュールがスキップされ、次のスケジュール・エントリがインポートされます。xmlファイル内に期限切れのスケジュールがある場合、それらは無視されインポートされません。

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

Javaクライアントは、主にアプリケーション画面のレンダリングを行います。これには、埋込みアプリケーションのロジックはありません。Javaクライアントをロードすると、複数のフォームを同時に表示できます。すべてのOracle Forms Servicesアプリケーションに汎用Javaクライアントを使用すると、アプリケーションごとにカスタマイズされたJavaクライアントよりも、クライアント上のリソースが少なくて済みます。

Javaクライアントは、多くのJavaクラスで構成されています。これらのクラスは、スプラッシュ画面の表示、ネットワーク通信およびルック・アンド・フィールの変更などの、機能サブコンポーネントにグループ化されます。機能サブコンポーネントを使用すると、Forms DeveloperおよびJava仮想マシン(JVM)は、すべての機能クラスを一度にダウンロードしなくても、必要に応じて機能をロードできます。

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

フォーム定義がFMXファイルからロードされる時、実行プロセスのプロファイルは次のものに要約できます。

- 暗号化されたプログラム・ユニット

- ボイラープレート・オブジェクト/イメージ

- データ・セグメント

これらの中で、データ・セグメント・セクションのみがアプリケーションの指定したインスタンスに対して一意です。暗号化されたプログラム・ユニットとボイラープレート・オブジェクト/イメージは、どのアプリケーション・ユーザーにも共通しています。Forms Servicesでは、共有コンポーネントを物理メモリーにマップし、同じFMXファイルにアクセスするすべてのプロセス間でこれを共有します。

指定したFMXファイルをロードする最初のユーザーは、そのフォームに必要な全メモリー量を使用します。ただし、後続のユーザーの場合は必要なメモリー量が大幅に減らされているので、ローカル・データのエクステントにのみ依存します。共有コンポーネントをマップするこのメソッドを使用すると、指定したアプリケーションに必要な、ユーザーごとの平均メモリー量を減らすことができます。

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

帯域幅は重要なリソースであり、インターネット・コンピューティングの一般的な広がりとともに、インフラストラクチャにますます大きな負担を強いるようになっています。このため、アプリケーションはネットワークの容量を節約して使用することが重要です。

Oracle Forms Servicesは、メタデータ・メッセージを使用してJavaクライアントと通信します。メタデータ・メッセージは、実行対象のオブジェクトとその実行方法をクライアントに通知する名前と値のペアのコレクションです。パラメータのみをJavaクライアント上の汎用オブジェクトに送信することで、(同じ効果になるよう新規コードを送信した場合と比較して)通信量を約90%減らすことができます。

Oracle Forms Servicesでは、データ・ストリームを次の3つの方法で効率的に圧縮します。

- 同じようなメッセージの集合(名前と値のペアのコレクション)を送信すると、2番目以降のメッセージには、前のメッセージとの相違点のみが含まれます。この結果、ネットワーク・トラフィックを大幅に減らすことができます。このプロセスは、message diff-ingと呼ばれます。

- 同じ文字列がクライアント画面で繰り返されると(たとえば、同じ企業名が記載されている複数行のデータが表示される場合)、Oracle Forms Servicesはその文字列を一度のみ送信し、後続のメッセージではその文字列を参照します。参照によって文字列を渡すことで、帯域幅の効率は向上します。

- データ型はその値に必要な最小のバイト数で送信されます。

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

Forms Developerモデル内のトリガーを多数使用すると大きな効果がありますが、各トリガーにネットワークの往復が必要なため、待機時間の影響が大きくなります。待機時間は、アプリケーションのレスポンス時間に影響を与える最も重要な要因です。待機時間は、ネットワーク速度と同じではありません。ネットワーク速度には、時間単位あたりの転送可能ビットの測定が関連しますが、待機時間は、1ビットがあるエンドポイントから別のエンドポイントまで移動するのにかかる時間を表します。待機時間の影響をなるべく受けないようにする最もよい方法の1つは、JavaクライアントとForms Services間で、対話中に送信されるネットワーク・パケットの数を最小限にすることです。

Oracle Forms Servicesは、イベント・バンドルを通じてトリガー・イベントをグループ化することで、イベント・バンドルを実装します。イベント・バンドルは、2つのオブジェクト間をナビゲートしている間にトリガーされたすべてのイベントを集めて、それらを単一のパケットとしてOracle Forms Servicesに配布して処理します。

たとえば、ユーザーが項目Aから項目Bにナビゲートする場合(あるエントリ・フィールドから別のフィールドにタブする場合など)、PreトリガーとPostトリガーの範囲が起動対象となり、それぞれForms Services上での処理が必要です。ナビゲートによって複数のオブジェクトを横切る場合(離れているオブジェクトに対してマウスのクリックを行った場合など)、イベント・バンドルは通過されたすべてのオブジェクトからすべてのイベントを集めて、そのグループを単一のネットワーク・メッセージとしてOracle Forms Servicesに配信します。

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

指定したフォーム内のすべてのボイラープレート・オブジェクトは、仮想グラフィック・システム(VGS)ツリーの一部です。VGSは、すべてのForms Developer製品に共通の図形サブコンポーネントです。VGSツリー・オブジェクトは、座標、カラー、線幅およびフォントなどの属性を使用して記述します。オブジェクトのVGSツリーをJavaクライアントに送信する場合、送信する属性のみが指定したオブジェクト・タイプのデフォルトと異なる属性になります。

イメージは圧縮されたJPEGイメージとして送信および格納されます。これにより、ネットワーク・オーバーヘッドとクライアントで必要なメモリー量の両方を減らすことができます。

リソースの最小化には、クライアントおよびサーバー・プロセスのメモリー・オーバーヘッドの最小化も含まれます。ネットワークを最適な状態で使用するには、帯域幅を最小に維持し、クライアントとOracle Forms Services間の通信で使用するパケット数を最小化してネットワークの待機時間の影響を含めることが必要です。

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

アプリケーションの開発者は、Forms Servicesの組込みアーキテクチャの最適化機能により最大の利益を得ることができます。この章の後半では、多くのアプリケーションに影響を与える主要なパフォーマンスの問題、および開発者がアプリケーションをチューニングしてパフォーマンスを改善し、Forms Services機能を活用するための方法について説明します。

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

Forms Javaクライアントは、GUIオブジェクトを表示する役割のみを担います。Oracle Forms Servicesのすべてのロジックは、中間層のOracle Forms Servicesで実行されます。これには、データベースへのデータの挿入や更新、データベースからのデータの問合せ、データベースでのストアド・プロシージャの実行などが含まれます。そのため、アプリケーション・サーバーとデータベース・サーバー間の高速接続(高帯域幅、短い待機時間)が重要になります。

このサーバー間の対話はすべて、Forms Javaクライアントと通信することなく行われます。画面に変更があった場合のみ、クライアントとForms Services間で通信が行われます。これにより、Oracle Forms Servicesアプリケーションは、モデムや衛星を介した低速ネットワーク(待機時間が長いネットワーク)で実行することが可能です。

図13-3の構成では、Forms Servicesとデータベース・サーバーがデータ・センター内で並存する仕組みを示しています。

図13-3 OracleAS Forms Servicesとデータベース・サーバーの並存

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

アプリケーションをロードするためにかかる時間は、第一印象として重要であり、またどのユーザーにとっても主要な基準となります。起動時間は、オーバーヘッドと見なされます。また、今後のパフォーマンスを期待させるものでもあります。業務でクライアント・テクノロジを使用する場合、クライアント・コードのロードに必要な追加のオーバーヘッドは、ユーザーにあまりよい影響を与えません。したがって、可能なかぎりロード時間を最小化することが重要です。

Oracle Forms Servicesアプリケーションを要求した後、アプリケーションを使用できる状態にするまでにはいくつかの手順を実行する必要があります。

1. Java仮想マシン(JVM)を起動します。

2. すべての初期Javaクライアント・クラスをロードし、クラスのセキュリティを認証します。

3. スプラッシュ画面を表示します。

4. フォームを次に示す方法で初期化します。

a. 必要に応じて、追加のJavaクラスをロードします。

b. クラスのセキュリティを認証します。

c. ボイラープレート・オブジェクトとイメージをレンダリングします。

d. 初期画面ですべての要素をレンダリングします。

5. スプラッシュ画面を削除します。

6. フォームを使用できます。

アプリケーション開発者は、JVMの起動にかかる時間についてほとんど何も行うことができません。ただし、Java配置モデルおよびOracle Forms Services Developer Javaクライアントの構造では、開発者はどのJavaクラスをどのようにロードするかを決定できます。これにより、Javaクラスに必要なロード時間を最小化します。

Javaクライアントには、基本機能のクラス(ウィンドウを開くなど)と特定の表示オブジェクトの追加クラス(LOV項目など)のコア集合が必要です。これらのクラスはサーバーに始めから常駐している必要がありますが、次の方法を使用し、これらのクラスをクライアントのJVMにロードするために必要な時間を短縮できます。

- Javaファイルの使用

- オラクル社のJava Plug-inの使用方法

- キャッシュの使用

Javaファイルの使用

JavaはJavaアーカイブ(JAR)メカニズムを提供して、クライアントにネットワークを介して効率的な配布を行うために、クラスをまとめてグループ化し、圧縮(Zip形式)することができるファイルを作成します。このファイルがクライアントで使用されると、今後の使用のためにキャッシュされます。

JARファイルのサイズを2倍にすることもできます。frmall.jarを使用してこれを行うと、約700Kを節約できます。オラクル社のPlug-inでは、そのファイルには接尾辞jarjarが付きます。

次の項では、一般的なデプロイメントのシナリオをサポートするためにOracle Forms Servicesが提供する事前構成済Jarファイルについて説明します。

オラクル社のJava Plug-inの使用方法

frmall.jarには、Java Plug-inでの実行に必要なクラスがすべて含まれています。

1つ以上のJARファイルを指定するには、Forms構成ファイル(formsweb.cfg)で指定する構成セクションのarchive設定を使用します。次に例を示します。

[MyApp]
archive=frmall.jar

キャッシュの使用

オラクル社のJava Plug-inは、Oracle Forms ServicesでのJarファイルのキャッシュをサポートします。JVMがクラスを参照する場合、最初にローカルのクライアント・キャッシュにあるキャッシュ済JARファイル内にクラスが存在するかどうかを確認します。クラスがキャッシュ内に存在する場合、JVMはサーバーのJARファイルをチェックして、キャッシュ内のJARファイルより新しいバージョンが存在するかどうかを確認します。新しいバージョンが存在しない場合は、サーバーからではなくローカルのクライアント・キャッシュからクラスはロードされます。

キャッシュは、効率性を最大化するために適切なサイズにします。キャッシュ・サイズが小さすぎると、有効なJARファイルが上書きされてしまう場合があります。その結果、アプリケーションを再度起動すると、別のJARファイルのダウンロードが必要になります。デフォルトのキャッシュ・サイズは20MBです。このサイズは、アプリケーションを正常に実行した後のキャッシュ容量のサイズと比較する必要があります。

JARファイルはロード元のホストに関連してキャッシュされます。このため、ロード・バランシング・アーキテクチャを使用している場合、異なるサーバーからの同一のJARファイルがキャッシュされる可能性があります。JARファイルを中央に置き、ロード・バランシング構成の各サーバーでそれらを参照することで、開発者は各JARファイルの1つのコピーのみがクライアントのキャッシュでメンテナンスされていることを確認できます。この方法を使用すると、JARファイル内の特定のクラスに署名して、ロード元のサーバー以外のサーバーに接続を戻せるようにする必要があります。Oracleが提供するJARファイルでは、事前にクラスに署名してあります。

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

開発者は、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イベントは常に送信されますが、メニュー全体の再送信は行われません。

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

次に示す方法を使用すると、アプリケーションの実行に必要なリソースをさらに削減できます。

- タイマーの検証と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ファイルに会社のロゴ・イメージを含めてください。会社のロゴを背景イメージとしてアプリケーションに挿入するかわりにこれを行ってください。会社ロゴを背景イメージとして指定すると、データベースまたはファイルシステムから検索して、ユーザーのコンピュータにダウンロードするトラフィックが繰返し発生します。

Oracle Traffic DirectorとFormsの統合

Oracle Traffic Directorは高速で、かつ信頼性と拡張性のあるレイヤー7のソフトウェア・ロード・バランサです。これは、複数のOracle FMW 11gR2 Weblogic管理対象サーバーで実行されているFormsアプリケーションのロード・バランシングに使用されることもあります。Oracle Traffic Directorの詳細は、Oracle® Traffic Director管理者ガイドのOracle Traffic Directorスタート・ガイドに関する項を参照してください。

図13-4 非シングル・サインオン設定のOracle Traffic Directorのロード・バランシング

図13-5 シングル・サインオン設定のOracle Traffic Directorのロード・バランシング

図13-4および図13-5は、単一のOracle Traffic Directorインスタンスによって2つのアプリケーション・サーバー層のロード・バランシングが実現されている設定を前提としています。この状態は次のように説明できます。

1. ホストAでOracle Traffic Directorインスタンスが実行されています。シングル・サインオン・シナリオ(図13-5)では、ホストAにWebGateもインストールされています。

2. ホストBのOracle WebLogic管理対象サーバーで、Oracle FormsアプリケーションDが実行されています。

3. ホストCのOracle WebLogic管理対象サーバーで、Oracle Forms ServicesアプリケーションDが実行されています。

前提条件

1. Oracle Traffic Director 11.1.1.7以上をインストールします。Oracle Traffic Directorのインストールの詳細は、Oracle Traffic Directorインストレーション・ガイドを参照してください。

2. 図13-5に示すシングル・サインオン・シナリオでFormsアプリケーションを実行する場合は、ホストAにWebGateをインストールする必要があります。WebGateのインストールの詳細は、『Oracle Fusion Middleware WebGates for Oracle Access Managerのインストール』を参照してください

3. アプリケーション・サーバー・ホスト(ホストBおよびホストC)で、WebLogic Serverをバージョン10.3.6にアップグレードする必要があります。

4. アプリケーション・サーバー・ホスト(ホストBおよびホストC)で、WebLogic Serverの1回限りのパッチ・セット(パッチID JSESおよびXJNR)を、Oracle WebLogic Smart Updateユーティリティを使用してWebLogic Serverインストールに適用する必要があります。

5. アプリケーション・サーバー・ホスト(ホストBおよびホストC)のパッチ・セットのバージョンが同一である必要があります。

6. Formsの構成ファイルが両方のアプリケーション・サーバー・ホスト間で同期されることを確認します。これは、両方のアプリケーション・サーバー・ホストで、Formsの構成ファイルに一致するエントリを作成する必要があることを意味します。

Oracle Traffic Director構成の設定

Oracle Traffic Director構成を設定するには、次の手順を実行します。

1. ホストAで実行されているOracle Traffic Directorサーバーに新しい構成を設定します。構成の作成の詳細は、Oracle Traffic Director管理者ガイドを参照してください。

2. アプリケーション・サーバー(ホストBおよびホストC)をオリジン・サーバーとして指定し、Forms WebLogicサーバーのホスト名とポート番号を指定します。

3. 表示される指示に従って、構成の作成手順を完了します。

新しく作成したOracle Traffic Directorインスタンスを起動します。

注意:

デフォルトルートの詳細設定で、デフォルトルートのプロパティを変更しないてください。このデフォルト設定は、セッションの固定性を維持し、ロード・バランシング設定でFormsアプリケーションを実行するうえで最も重要な要素になります。

Oracle Traffic Directorのパートナ・アプリケーションとしての登録

図13-5に示すシングル・サインオン・シナリオでOracle Formsのロード・バランシングを実現するようにOracle Traffic Directorを設定する場合は、Oracle Traffic Directorをパートナ・アプリケーションとしてOracle Formsに登録する必要があります。

Oracle Traffic Directorをパートナ・アプリケーションとして登録する手順は、「OAMパートナ・アプリケーションとしてのWeb層インスタンスの登録およびOAMポリシーの構成」を参照してください。

パートナ・アプリケーションを登録する際は、Oracle Traffic Directorのホストおよびポートを必ず指定してください。生成されるアクセス・エージェント・ファイルObAccessClient.xmlおよびcwallet.ssoを、ホストAのOracle Traffic Director層で実行されているWebGateインスタンスにコピーする必要もあります。

設定のテスト

設定をテストするには、次の手順を実行します。

1. ブラウザを使用して、Oracle Traffic Directorホストを指定し、Oracle FormsアプリケーションDにアクセスします。アプリケーションが適切に動作することを確認します。ブラウザ・ウィンドウは開いたままにします。

2. Oracle Traffic Directorアクセス・ログを使用して、リクエストを処理したOracle WebLogic管理対象サーバーを識別します。たとえば、これがホストBである場合は、そのホスト上のWebLogic管理対象サーバーをシャットダウンします。このシナリオでは、ホストCで実行されているWebLogic Serverのみがアクセス可能となり、リクエストを処理できます。

ログの表示の詳細は、Oracle Traffic Director管理者ガイドを参照してください。

3. Oracle Formsクライアントを実行している同じブラウザを使用して、Oracle FormsアプリケーションDに再度アクセスします。リクエストは失敗し、Formsクライアントはセッションを失います。Oracle Formsセッションの状態は、Oracle WebLogic管理対象サーバー間でレプリケートされません。

4. 次に、ブラウザのCookieを消去し、ブラウザ・ウィンドウを開きます。Oracle Traffic Directorホストを指定して、Oracle FormsアプリケーションDにアクセスします。Oracle Traffic Directorは、ホストCで実行されている残りのWebLogic管理対象サーバーにリクエストをダイレクトします。アプリケーションが適切に動作することを確認します。

5. ホストBのWebLogic管理対象サーバーを再起動します。

14 Forms診断エージェント

Forms診断エージェントまたはFormsメトリック・エージェントを使用すると、環境内で実行中のFormsアプリケーションに関するパフォーマンス関連の様々な情報を分析できます。このエージェントはメトリック・データ(DMSで使用可能なもの)に定期的にアクセスし、データベース表に移入します。このプロセスにより、履歴データとして収集されたデータにアクセスできるようになります。

Forms診断エージェントは、Oracle Forms 11g R2以降のみで動作します。このアプリケーションのデプロイメントはオプションです。このエージェント・アプリケーションは、データ収集の頻度の指定、さらにデータ収集の開始と停止の制御が可能な対話型インタフェースを備えています。これを行うには、次の項のタスクを実行します。

- Oracle Forms 12cのインストールと構成

- データベース・スキーマの設定

- WebLogicでのデータ・ソースの設定

- Forms診断エージェントのデプロイ

- データ収集の管理

- エージェント・アプリケーションの使用

- エージェント・アプリケーションの制限

Oracle Forms 12cのインストールと構成

Forms診断エージェントはOracle Forms 12cでのみ動作するため、このバージョンをインストールして構成する必要があります。Oracle Forms and ReportsのインストールのOracle Forms and Reportsのインストールおよび構成の章を参照してください。

データベース・スキーマの設定

Forms診断エージェント用にDBスキーマを設定するには、データベース内にユーザーとスキーマを作成する必要があります。ユーザーは、独自のデータベース・インスタンスを選択できます。Formsまたは診断エージェントとともにインストールされる特殊なデータベースはありません。

データベースでのユーザーの作成: データベース内にユーザーを作成するには、次の手順を実行します。

注意:

データベース内にユーザーを作成する前に、指定するユーザー名が新しいものであり、既存のものではないことを確認します。(データベース内にユーザーを作成する際に使用される).sqlスクリプトによってユーザーが新しいユーザーで上書きされるためです。

1. 次に示すとおり、sysdbaとしてデータベースにログインします。
sqlplus sys/<sys-password>@<DB> as sysdba

2. 次のスクリプトを実行します。
@ORACLE_HOME/forms/forms_create_diagnostics_user.sql

3. ユーザーは、ユーザーIDおよびパスワードを入力する必要があります。
これにより、ユーザーが作成されます。

データベースでのスキーマの作成: データベース内にスキーマを作成するには、次の手順を実行します。

注意:

データベース内にスキーマを作成する前に、指定するユーザー名が新しいものであり、既存のものではないことを確認します。(データベース内にスキーマを作成する際に使用される).sqlスクリプトによってスキーマが新しいスキーマで上書きされるためです。

1. 前述の手順で作成したユーザーとして、データベースにログインします。

sqlplus <user>/<password>@<DB>

2. 次のスクリプトを実行します。

@ORACLE_HOME/forms/forms_create_diagnostics_schema.sql

3. これにより、スキーマが作成されます。

WebLogicでのデータ・ソースの設定

Forms診断エージェントで使用するデータベースを設定した後で、Weblogicコンソールを使用してデータ・ソースを設定する必要があります。これを実行する手順を次に示します。

1. WebLogicコンソールにログインします。

2. 左のナビゲーション・パネルで、「サービス」を選択し、「データ・ソース」にナビゲートします。

「チェンジ・センター」ウィンドウで、ロックして編集をクリックして変更を行います。

3. 「JDBCデータ・ソースのサマリー」ページで、「構成」をクリックします。

「データ・ソース」表で、「新規」をクリックし、リストから「汎用データ・ソース」を選択します。

4. 次のパラメータに値を入力します。

JDBCデータ・ソースの名前

ユーザーは任意の名前を入力できます。

JNDI名

oracle/forms/agentDS

データベース・タイプ

前述の手順でユーザーおよびスキーマの作成に使用したデータベースのタイプを選択します。

「次」をクリックします。「新しいJDBCデータ・ソースの作成」ページが表示されます。

5. 選択したデータベースのタイプに使用可能なドライバのリストから、「データベース・ドライバ」を選択します。「次」をクリックします。

6. 次のパラメータに値を入力します。

データベース名

ホスト名

ポート

データベース・ユーザー名

前述の手順で、データベースにユーザーを作成したときに使用したユーザー名を入力します。

パスワード

前述の手順で、データベースにユーザーを作成したときに使用したパスワードを入力します。

「次へ」をクリックします。

7. 次のページで、左上にある「構成のテスト」をクリックし、データベースが正しく構成されたかどうかをチェックします。

「次へ」をクリックします。

8. データ・ソースをデプロイするターゲットとして、「管理サーバー」を選択します。

「終了」をクリックします。

9. 「チェンジ・センター」ウィンドウで、「変更のアクティブ化」をクリックして変更を保存します。

これでJDBCデータ・ソースの設定は終了です。

Forms診断エージェントのデプロイ

Weblogicでデータ・ソースを設定した後で、Weblogic管理サーバーにForms診断エージェントをデプロイする必要があります。

このためには、Weblogicコンソールで次の手順を実行します。

1. Weblogicコンソールにログインします。

2. 左のナビゲーション・パネルで、「デプロイメント」を選択します。

「チェンジ・センター」ウィンドウで、ロックして編集をクリックして変更を行います。

3. 「デプロイメントのサマリー」ページで、「インストール」をクリックします。

「アプリケーション・インストール・アシスタント」ページが表示されます。

4. .warファイルのパスを次のとおり入力します。

ORACLE_HOME/forms/j2ee

これは、formsagentapp.warファイルの場所です。

5. formsagentapp.warファイルを選択します。「次」をクリックします。

「ターゲット指定スタイルの選択」ページが表示されます。

6. 「Install this deployment as an application」を選択します。

7. Forms診断エージェントをデプロイするターゲットとして、「管理サーバー」を選択します。「次へ」をクリックします。

8. オプション設定はデフォルト値のままにし、「終了」をクリックします。

「チェンジ・センター」ウィンドウで、「変更のアクティブ化」をクリックして変更を保存します。Forms診断エージェントが、Weblogic管理サーバーに正常にデプロイされました。

このアプリケーションを起動するには、デプロイされたアプリケーションのリストから「formsagentapp」を選択し、「起動」をクリックします。

データ収集の管理

このエージェント・アプリケーションでは、インタフェースを使用してデータ収集を管理できます。ユーザーは、データ収集の頻度を指定したり、データ収集の開始と停止を制御できます。このためには、次の手順を実行します。

1. 次のURLから、エージェント・コンソールにログインします。

http://<host>:<admin port>/formsagent/AgentConsole.jsp

2. ユーザーIDおよびパスワードを入力します。

管理者権限を持つすべてのユーザーがこのコンソールにログインできます。

3. データ収集の頻度に値を入力します。このパラメータは、連続する2つのデータ収集の間隔です。

デフォルト値は10分です。最小値は1分にする必要があります。

4. 「起動」をクリックします。

Forms診断エージェントが実行中であることを示すメッセージが表示されます。エージェントによるメトリックの収集を停止する必要がある場合は、「停止」をクリックします。

エージェント・アプリケーションの使用

ユーザーがエージェント・アプリケーションにメトリックの収集を開始するよう指示すると、エージェントによってDMSからメトリックが収集され、データベース表に移入されます。ユーザーは、データベース表内のこの収集されたメトリックにアクセスできます。収集されたメトリックを使用する場合、ユーザーはフロントエンド・アプリケーションを作成して、これらのデータを読み取り、チャートやグラフなどを準備して環境内で実行中のFormsアプリケーションの履歴パフォーマンスを分析できます。

各表の主キーおよび外部キーを、次のそれぞれの表に示します。次に、Forms診断エージェントによるメトリック収集中に移入されるデータベース表を示します。

表14-1 ADMIN_SERVERデータベース表

シリアル番号

列名

サンプル値

説明

01

AGENT_ID

1

AGENT_IDは、ADMIN_SERVERデータベース表の主キーです。

エージェント・アプリケーションのID。1から始まる任意の整数

02

ADMIN_HOSTNAME

myhost.mydomain.com

管理サーバーがデプロイされたマシンの名前

03

ADMIN_PORT

7001

管理サーバーのポート

表14-2 AGENTデータベース表

シリアル番号

列名

サンプル値

説明

01

AGENT_STATUS

Running

エージェントのステータス

02

REAL_TIME

2009.07.23 at 17:11:41

ステータスが記録される日時

すべての時刻エントリはUTC/GMT形式

03

SEQUENCE_ID

205

エージェントのステータスが記録されるたびにエージェントによって作成されるID

04

FREQUENCY

40

連続する2つのデータ収集の間隔(分単位)

05

AGENT_ID

1

AGENT_IDは、このデータベース表の外部キーです。これはADMIN_SERVERデータベース表内のAGENT_IDを参照しています。

エージェント・アプリケーションのID。1から始まる任意の整数

表14-3 FRM_DBデータベース表

シリアル番号

列名

サンプル値

説明

01

FRM_DB_ID

8769

FRM_DB_IDは、FRM_DBデータベース表の主キーです。

Formsアプリケーションで使用されるデータベースに割り当てられたID

02

DB_NAME

v11g

frmwebが接続されているデータベース。v11gに接続されている場合は、このフィールドにv11gと表示されます。frmwebがいずれのデータベースにも接続されていない場合、これはNULLになります。

03

TNS_ENTRY

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = sample.host.com)(PORT = 1521)))

(CONNECT_DATA =

(SERVICE_NAME = v11g)))

frmwebが接続されているデータベースのTNSエントリ

04

USER_NAME

scott

ログインしているデータベース・ユーザー

表14-4 FRM_DB_LOGINデータベース表

シリアル番号

列名

サンプル値

説明

01

FRM_DB_LOGIN_ID

345

FRM_DB_LOGIN_IDは、FRM_DB_LOGINデータベース表の主キーです。

表内の各行に割り当てられたID

02

FRM_RUNTIME_ID

107

FRM_RUNTIME_IDは、このデータベース表の外部キーです。これはFRM_RUNTIMEデータベース表内のFRM_RUNTIME_IDを参照しています。

03

FRM_DB_ID

1025

FRM_DB_IDは、このデータベース表の外部キーです。これはFRM_DBデータベース表内のFRM_DB_IDを参照しています。

Formsアプリケーションで使用されるデータベースに割り当てられたID

04

REAL_TIME

2009.07.23 at 17:11:41

表を更新するためのステータスが記録されメトリック・データが収集される日時

すべての時刻エントリはUTC/GMT形式

表14-5 FRM_RUNTIMEデータベース表

シリアル番号

列名

サンプル値

説明

01

FRM_RUNTIME_ID

107

FRM_RUNTIME_IDは、FRM_RUNTIMEデータベース表の主キーです。

Formsプロセスを識別するID

02

WLS_APP_ID

5005

WLS_APP_IDは、このデータベース表の外部キーです。これはWLS_APPデータベース表内のWLS_APP_IDを参照しています。

WLS_APP表内のFormsアプリケーションを判別します。

03

FRM_USER_ID

1310

FRM_USER_IDは、このデータベース表の外部キーです。これはFRM_USERデータベース表内のFRM_USER_IDを参照しています。

Formsクライアントまたはクライアント・インスタンスに割り当てられたID

04

CONFIG_VALUE

formsweb.cfgからの構成セクション名

05

CONNECT_TIME

2009.07.23 at 17:11:41

frmwebが起動される日時

すべての時刻エントリはUTC/GMT形式

06

DISCONNECT_TIME

2009.07.23 at 18:15:43

frmwebが終了する日時

すべての時刻エントリはUTC/GMT形式

07

STARTING_FORM_NAME

emp

開始フォームの名前

08

PROCESS_ID

8020

中間層マシン上のfrmwebのプロセスId

09

FRM_STATUS

Running / Exited

frmwebのステータス

10

FRM_CPU_TIME_ON_EXIT

256

frmwebの終了時のCPU時間

11

FRM_PRIVATE_MEMORY_ON_EXIT

6385

終了時にFormsプロセスで使用されていたメモリー

12

FRM_EXIT_CODE

表14-6 FRM_TRACEデータベース表

シリアル番号

列名

サンプル値

説明

01

FRM_TRACE_ID

2679

FRM_TRACE_IDは、このデータベース表の主キーです。

FRM_TRACEデータベース表内の行に割り当てられたID

02

TRACE_FILE

forms_1055.trc

ftraceが有効化されている場合のトレース・ファイルの名前。ftraceが無効化されている場合はNULLになります。

03

TRACING

mytrace

アプリケーションによって選択されたトレース・グループの名前

表14-7 FRM_TRACE_USEデータベース表

シリアル番号

列名

サンプル値

説明

01

FRM_TRACE_USE_ID

1906

FRM_TRACE_USE_IDは、このデータベース表の主キーです。

データベース表内の行に割り当てられたID

02

FRM_RUNTIME_ID

107

FRM_RUNTIME_IDは、このデータベース表の外部キーです。これはFRM_RUNTIMEデータベース表内のFRM_RUNTIME_IDを参照しています。

Formsプロセスを識別するID

03

FRM_TRACE_ID

2679

FRM_TRACE_IDは、このデータベース表の外部キーです。これはFRM_TRACEデータベース表内のFRM_TRACE_IDを参照しています。

データベース表内の行に割り当てられたID

04

REAL_TIME

2009.07.23 at 17:11:41

表を更新するためのステータスが記録されメトリック・データが収集される日時

すべての時刻エントリはUTC/GMT形式

表14-8 FRM_USERデータベース表

シリアル番号

列名

サンプル値

説明

01

FRM_USER_ID

1310

FRM_USER_IDは、このデータベース表の主キーです。

Formsクライアントまたはクライアント・インスタンスに割り当てられたID

02

CLIENT_IP

255.255.255.255

ブラウザの起動元およびユーザーが中間層への接続に使用したクライアント・マシンのIPアドレス

03

SSO_USERID

fname.lname@myapp.com

ログインしたユーザーのシングル・サインオンID

表14-9 HISTORYデータベース表

シリアル番号

列名

サンプル値

説明

01

FRM_RUNTIME_ID

107

FRM_RUNTIME_IDは、このデータベース表の外部キーです。これはFRM_RUNTIMEデータベース表内のFRM_RUNTIME_IDを参照しています。

Formsプロセスを識別するID

02

REAL_TIME

2009.07.23 at 17:11:41

スナップショットが実行される日時

すべての時刻エントリはUTC/GMT形式

03

SEQUENCE_ID

205

エージェントのステータスが記録されるたびにエージェントによって作成されるID。

04

FRM_BYTES_SENT

400

これまでに、このプロセスでサーバーからクライアントに送信されたバイト数

05

FRM_BYTES_SENT_DELTA

37

エージェントで前回測定されてから、このプロセスでサーバーからクライアントに送信されたバイト数の差分

06

FRM_BYTES_RECEIVED

200

これまでに、このプロセスでクライアントからサーバーに送信されたバイト数

07

FRM_BYTES_RECEIVED_DELTA

23

エージェントで前回測定されてから、このプロセスでクライアントからサーバーに送信されたバイト数の差分

08

FRM_NETWORK_ROUND_TRIPS

30

これまでに、このプロセスでクライアントとサーバーとの間に発生したネットワーク・ラウンド・トリップ数

09

FRM_NETWORK_ROUND_TRIPS_DELTA

3

エージェントで前回測定されてから、このプロセスでクライアントとサーバーとの間に発生したネットワーク・ラウンドトリップ数の差分

10

FRM_CPU_TIME

230

これまでに、このプロセスでfrmwebにかかった合計処理時間

11

FRM_CPU_TIME_DELTA

47

エージェントで前回測定されてからの、FRM_CPU_TIMEの値の差分

12

FRM_PRIVATE_MEMORY

7998

スナップショットの取得時にFormsプロセスで使用されていたメモリー

13

ITERATION

50

データベース表にデータが収集された回数。

表14-10 WLS_APPデータベース表

シリアル番号

列名

サンプル値

説明

01

WLS_APP_ID

5005

WLS_APP_IDは、このデータベース表の主キーです。

WLS_APP表内のFormsアプリケーションを判別します。

02

SERVER_TYPE

MANAGED

サーバーのタイプ(MANAGED、ADMINなど)

03

SERVER_NAME

WLS_FORMS

サーバー名

04

DEPLOYED_APPLN_NAME

formsapp

Formsアプリケーション名

05

FORMS_HOSTNAME

host52.example.com

Formsランタイムが実行されている中間層マシン

06

INSTANCE_HOME_NAME

asinst_1

FormsランタイムがデプロイされているFMWインスタンス・ホームの名前

07

CLUSTER_NAME

cluster_xyz

Formsアプリケーションがデプロイされているクラスタの名前

08

AGENT_ID

1

AGENT_IDは、このデータベース表の外部キーです。これはADMIN_SERVERデータベース表内のAGENT_IDを参照しています。

エージェント・アプリケーションのID。1から始まる任意の整数

エージェント・アプリケーションの制限

Forms診断エージェントには、そのデプロイメントおよび使用に関して制限があります。

制限事項は次のとおりです。

- Forms診断エージェント・アプリケーションのデプロイメントはオプションです。Formsアプリケーションに関してパフォーマンス関連の情報が必要な場合は、インストール後にForms診断エージェントを手動でデプロイする必要があります。

- このエージェント・アプリケーションは、管理サーバーのみにデプロイする必要があります。このエージェント・アプリケーションによって、その管理サーバーのWLSドメインで実行中のすべてのFormsセッションに関する情報が収集されます。

- エージェントがメトリック・データ(DMSで使用可能なもの)にアクセスするには、DMSアプリケーションが起動されて実行中である必要があります。

- スキーマは、任意の時点で1つのドメインでのみ機能するように設計されています。別々のドメインで実行されている複数のエージェントに対して、同じスキーマは使用できません。

- データ収集の頻度に小さい値を設定しないでください。データ収集の頻度に小さい値を設定すると、本番環境が遅くなり、過剰で不要なデータ収集が行われます。

- このユーティリティは、データベース・オブジェクトおよび収集の実行に必要なエージェントのみを提供します。収集したデータを公開するためのユーザー・インタフェース(UI)は提供しません。データは、前述のドキュメントで概説した表を問い合せることで取得できます。あるいは、お気に入りのテクノロジを使用してユーザー・インタフェースを開発できます。

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

この章では、Oracle Formsを使用してWeb上でアプリケーションを実行する際に発生する可能性のある問題の解決に役立つ情報を提供します。この中では、エラーの一般的な原因について概説し、インストール内容を確認する方法と、問題を診断するためのツールとテクニックを紹介します。

この章は、http://www.oracle.com/technetwork/developer-tools/forms/overview/index.htmlにあるOracle Forms診断テクニックというホワイトペーパーのサブセットでもあります。

この付録は、次の各項で構成されています。

- インストールの確認

- FRM-XXXXXエラーの診断

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

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

- Forms TraceとServlet Logging Tool

- メモリーの問題の解決

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

- 問題が解決しなかった場合

インストールの確認

インストールになんらかの問題があると、構成が不正になり、Oracle Formsが正しく動作しなくなります。Fusion Middleware Controlを正常にインストールしたという通知がOracle Universal Installerから得られた後で、Oracle Forms Servicesが正しく構成されているかどうかを確認できます。

このために次のツールが用意されています。

Web Form Testerの使用

Web Form Testerの使用

Web Form Testerは、Oracle Fusion Middlewareをインストールすると使用できるようになります。OracleのインストールおよびForms Servicesの構成が正しいかどうかを確認するには、Web Form Testerを実行します。インストールを確認するには、インストールが行われた中間層でこれを実行する必要があります。

次の手順では、WebLogic ServerおよびOracle Formsがすでにインストールされていること、構成ウィザードが正常に動作すること、ノード・マネージャ、管理サーバーおよびWLS_FORMSが起動していることを前提としています。また、Javaプラグインがブラウザに対してインストールおよび構成されていることも前提としています。

1. このOracle Formsリリースでの使用が認証されているブラウザを開きます。

2. ブラウザで、次のURLを入力して[Enter]を押します。使用環境に合せてホスト名およびポートを適切な値に置き換えてください。WLS_FORMSのデフォルト・ポートは9001です。

http://hostName:9001/forms/html/runform.htm

3. デフォルト値を使用して、「フォーム実行」ボタンをクリックします。これにより、Oracle Formsテスト・フォームがロードされます。表示されると、Oracle Formsが正常にインストールされたことが示されます。「終了」ボタンを押し、テスト・フォームを終了します。

また、次のURLを使用して(Webフォーム・テスター・ページを使用せずに)テスト・フォームを直接実行することもできます。

http://hostName:9001/forms/frmservlet?form=test

Webフォーム・テスター・ページまたはテスト・フォームが表示されない場合、次の理由が考えられます。

- 正しくないホスト名またはポート番号(あるいはその両方)が使用されています。

- WLS管理対象サーバー(WLS_FORMSなど)が実行されていません。

- サーバー・ホストまたはクライアント(あるいはその両方)上のネットワーク構成が正しくありません。

- インストールまたはインストール後の構成が正常に完了していません。

FRM-XXXXXエラーの診断

FRM-XXXXXエラーの診断と解決には、Oracle Formsアプレット・ツールを使用します。

この部の内容は次のとおりです。

- Oracle Formsアプレット

Oracle Formsアプレット

問題の基本的な原因の特定に、簡潔なFRMエラーのメッセージが役立ちます。多くの場合、Formsアプレットからレポートされるエラーには、FRMエラーの原因の特定が可能なすべての情報が含まれています。FRMエラーが発生すると、エラー・ダイアログに「詳細」ボタンが表示されます。「詳細」ボタンを押すと、現在のJavaスタックが表示されます。このスタックには、根本的な原因とOracle Formsのバージョンが関連付けられています。これは、リリースが異なると、アプレット・クラス・ファイルに使用されるパッケージ構造も異なるためです。

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

Forms Webランタイムが予期せず終了した場合は、$DOMAIN_HOME/system_components/FORMS/forms1/traceディレクトリにスタック・トレースが書き込まれます。ファイル名の形式は<forms_runtime_process>_dump_<process id>です。ダンプ・ファイルには、実行中のプロセスのスタック・トレースが記録され、Formsで最後に成功した操作が示されます。このコア・ファイルをユーザーが使用し、ダンプが発生したマシン上でGNU Debuggerやdbxまたは類似したデバッグ・ツールを使用してシンボル名でスタック・トレースをアセンブルできます。

この部では、次の項目について説明します。

- スタック・トレース

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

スタック・トレース

スタック・トレースは、次の2つの理由で役立ちます。

- スタック内の情報は既知の問題を識別するために使用されます。100%信頼できるわけではありませんが、スタック・トレースが同一の場合、問題が同一であると考えることができます。同一ではなくても、既存のバグに対する迂回策やパッチがあれば、それを試すことができます。

- 問題が既知のバグでない場合、スタックから、正確な原因と開発を支援する有益な情報を得ることができる場合があります。

スタック・トレースの構成と使用

スタック・トレースを構成および使用するには、環境を確認し、UNIXおよびWindowsのスタック・トレースを理解する必要があります。

この項は、次のトピックで構成されています。

- 環境の確認

- UNIXのスタック・トレースの理解

- Windowsのスタック・トレースの理解

環境の確認

UNIXまたはWindowsでスタック・トレースをテストするには、環境変数FORMS_DELIBERATECRASHを設定します。名前が示すように、この変数を設定するとFormsランタイム・プロセスがクラッシュします。Oracle Formsでは現在1と2の設定が認識されます。FORMS_DELIBERATECRASHを1に設定すると、実行時にBELLビルトインが実行されたときにFormsがクラッシュします。2に設定すると、実行時にwhen-button-pressedトリガーが起動されたときにFormsがクラッシュします。この環境変数は、環境ファイル(default.envなど)で設定できます。

UNIXのスタック・トレースの理解

UNIXのスタック・トレースでは、上位2つの関数siehjmpterm()およびsigacthandler()が、シグナル処理コードとしてスタック・トレースに頻繁に出現します。エラーが発生したときにプログラムが実行していた関数を確認するには、さらに下方のスタックを参照する必要があります。

FORMS_CATCHTERM=0を設定すると、この2つの関数はダンプ・ファイルに記述されなくなります。スタック・トレースにはクラッシュ処理シンボルが示されません。

注意:

FORMS_CATCHTERMは非推奨であるため、使用しないでください。これは、FORMS_ABTERM_CLEANUPに置き換えられています。

Windowsのスタック・トレースの理解

UNIXとWindowsではスタック・トレースの動作が異なります。UNIXでは、シンボル情報が実行可能ファイルおよび共有ライブラリに格納されます。Windowsでは、バイナリ形式の.symファイルとしてこの情報がリンク時に取り出されています。すべてのOracle Forms実行可能ファイルまたはDLLに、.symファイルが1つずつ存在します。.symファイルはデフォルトでインストールされます。Windowsでは、このファイルはORACLE_HOME\binディレクトリにあります。Windowsプラットフォームのメカニズムとして、クラッシュが発生すると、メモリーにロードされているForms実行可能ファイルに対応するすべての.symファイルが、Formsランタイム・プロセスによって読み取られます。その後に、.symファイル内の情報を使用してシンボル名が参照されます。

クライアント・クラッシュの診断

クライアント・クラッシュの診断、およびハングしているアプリケーションの診断に関する情報を提供します。

この項は、次のトピックで構成されています。

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

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

クライアント・クラッシュの診断

Formsアプレットが予期せず表示されなくなり致命的エラーを通知するダイアログが表示される場合は、Formsアプレットはクラッシュしています。Windowsでは、クラッシュが発生すると無効な操作を通知するダイアログが表示されるか、タスク・マネージャで「応答なし」のフラグが設定されます。クラッシュを検証するには、クライアントのスタック・トレース・ファイルをチェックします。クライアントがクラッシュした場合は、実行可能ファイルと同じディレクトリに.rpt拡張子の付いたファイルが作成されます。ファイル名のルートは、実行可能ファイルの名前です。

アプレットがクラッシュしたように見えても、対応する.rptファイルが見つからないことがあります。この場合は、Oracle Formsとクライアントの接続が予期せず突然切断された可能性があります。アプレットはそのまま稼働されますが、すべてのFormsウィンドウがシャットダウンされたために、クライアントがクラッシュしたように見えます。

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

クライアントがハングしたように見える場合は、サーバー・プロセスがまだ稼働しているかを確認することが重要です。サーバー・プロセスがクラッシュしていないのにクライアントがユーザーの操作に応じなくなったように見える場合は、アプリケーションがハングしていると考えられます。

このような場合は、スレッド・ダンプにデッドロックが示されている可能性があります。Javaコンソールでtを押すとスレッド・ダンプが得られます。ここには、クライアントのJVMで動作しているすべてのスレッドのリストが表示されます。

ダンプ・ファイル内の情報は、オラクル社の開発に非常に役立ちます。問題を報告する場合は、提出するバグにこの情報を含めるようにしてください。

アプリケーションがハングする原因

原因の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アプレット・パラメータを設定します。詳細は、「非同期型通信の構成」を参照してください。この機能の主な目的は、サーバー・プロセスの孤立を防止することですが、サーバー・プロセスが早い段階で不必要にクリーンアップされないようにする効果もあります。

Forms TraceとServlet Logging Tool

Forms TraceおよびServlet Loggingの2つのツールは、Oracle Formsの環境をトラブルシューティングする際に使用します。Forms Traceの構成および使用の詳細は、「Forms Traceについて」および「Oracle Diagnostics Loggingのツールの利用」を参照してください。

メモリーの問題の解決

メモリーの問題を解決するには、Javaアプレットがメモリーを使用する仕組み、初期Javaヒープの設定、およびメモリー・リークについて学ぶ必要があります。

この項は、次のトピックで構成されています。

- Javaのメモリーの使用方法

- 初期Javaヒープの設定

- メモリー・リーク

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

Javaのメモリーの使用方法

すべてのソフトウェア・プログラムと同様に、Javaアプレットもメモリーを使用します。Javaの言語仕様ではガベージ・コレクタを必要とします。これはJava仮想マシン(JVM)の内部メモリーを管理するものです。メモリーが必要になるとJavaプログラムはJVMにこのメモリーを要求します。メモリーが残っていない場合は、JVMがガベージ・コレクタを使用してある程度のメモリーを解放しようとします。ガベージ・コレクタは、プログラムで不要となったメモリーを解放してJVMに戻そうとします。それでも必要なタスクの実行にメモリーが足りない場合は、JVMがオペレーティング・システムからさらにメモリーを取得しようとします。このメモリーの割当てが失敗すると、Javaプログラムは処理を続行できません。

初期Javaヒープの設定

Fusion Middleware Controlで、アプリケーションの初期Javaヒープ(JVMが使用するメモリー)を指定できます。クライアントに対しては、オラクル社のJava Plug-inをインストールした後にJavaコントロール・パネルで設定を変更できます。

注意:

JVMは、使用を許可されているメモリーのみを使用します。オペレーティング・システムに使用可能なメモリーがあっても、使用しないように指定することでJVMではそれを使用しなくなります。

メモリー・リーク

メモリー・リークは、プログラムの動的な格納割当てロジックにおけるエラーであり、破棄されたメモリーを再利用できなくなるため、メモリーが枯渇して最終的な崩壊に至ります。

たとえば、プログラムの実行において特定のタスクの実行にメモリーの割当てが必要な場合があります。プログラムがメモリーを使用して作業を終了し、不要になったメモリーをコンピュータ上の他のプログラムに解放できなかった場合は、メモリーはリークしたと判断されます。

メモリー・リークを発見するための一般的な方法は、一連のステップを繰り返し実行してアプリケーションによるメモリーの使用状況を監視します。実行を繰り返すたびにメモリー使用量が増えていく場合は、プログラムでメモリー・リークが発生していると考えられます。

ただし、後から再利用できるように、前に割り当てられたメモリーを保持する複雑なアプリケーションもあります。メモリーの割当ては大きな負荷がかかるため、後でさらにメモリーが必要であると予測されるとき、使用されていないメモリーを再利用できるように保持しておく方が効率的な場合があります。

Javaでのメモリー・リーク

Java言語仕様では、JVMにガベージ・コレクタを実装することを必要としています。Javaでは、プログラマが新しいオブジェクトを作成することでメモリーを割り当てます。そのメモリーの割当てを解除する方法はありません。ガベージ・コレクタは、プログラムに割り当てられたメモリーを定期的にすべて検索し、安全に破棄できるオブジェクトを特定してメモリーを解放します。安全に破棄できるオブジェクトを特定するために、ガベージ・コレクタはmark and sweepアルゴリズムを使用します。ガベージ・コレクタは、オブジェクトに動的に割り当てられたメモリーをスキャンし、アクティブな参照を持つオブジェクトをマークします。

オブジェクトへのパスがすべて調査された後に、不要と認定されたマークのないオブジェクトがガベージとして収集されます。一般に、Javaプログラミングでは、ガベージ・コレクタがあればメモリー・リークが発生しないと言われています。ガベージ・コレクタは、単純に、アクティブな参照を持つオブジェクトをマークし、そうでないものは破棄します。不要になったオブジェクトへのアクティブな参照を持つ可能性があります。これがJavaにおけるメモリー・リークです。リークを解決するには、不要となったオブジェクトへの参照を破棄して、ガベージ・コレクタがそのオブジェクトを安全に破棄できる対象と判断できるようにします。Javaプログラムにメモリー・リークが存在する場合は、ガベージ・コレクタを頻繁にコールしても意味がありません。

問題をさらに複雑にしているのが、JVMが使用されていないメモリーをオペレーティング・システムにあえて戻さない場合がある点です。しかしほとんどのプログラムは追加のメモリーが必要なときにJVM内の空きメモリーを再使用するため、実際にはこれはほとんど問題となりません。ただし、JVMに割り当てられたすべてのメモリーが、JVMで稼働中のプログラムによって使用されるわけではないことに注意してください。

メモリー・リークの特定

通常、ある一連の操作を実行するたびにメモリー使用量が増えていく場合は、メモリー・リークが発生しています。適切な判別方法は次のとおりです。

1. フォームを初期の基本状態にして、メモリー使用量を記録します。

2. 一連の手順を実行して問題を再現します。

3. 初期の基本状態に戻り、メモリー使用量を記録します。

ステップ2と3を繰り返すことで、継続的にメモリー・リークが発生しているかどうかを判断できます。何度繰り返しても使用量があまり伸びない場合は、リークではなく、JVMが使用されていないメモリーを保持しているか、あるいはガベージ・コレクタが予定の頻度で動作していない可能性があります。

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

Javaプログラムの実行時に、Java仮想マシンはクラス・ファイルをロードする必要があります。インターネット上で実行する場合は、プログラムが実行されるたびにクラス・ファイルをダウンロードすると時間がかかってパフォーマンスに支障をきたすことがあります。このダウンロードの問題を解決するために、JDKではJavaアーカイブ(JAR)ファイルがサポートされています。JARファイルは簡単に言えば、一連のクラス・ファイルを1つの圧縮ファイルにまとめたものです。一般に、JARファイルのサイズは、その中に含まれているクラス・ファイルのサイズの合計よりもはるかに小さくなります。

JVMは、最初にクラスを参照する際に、ローカル・コンピュータにキャッシュされているJARファイルにそのクラスが存在するかどうかを確認します。事前にキャッシュされたJARファイルのいずれかにそのクラスが存在する場合、JVMはキャッシュ内のJARファイルより新しいバージョンがアプリケーション・サーバーに存在するかどうかを確認します。新しいJARファイルが存在する場合は、JARファイルの新しいコピーがクライアント・キャッシュにダウンロードされます。キャッシュされているJARファイルが最新のものである場合は、ネットワークからではなくキャッシュされているJARファイルからクラス・ファイルがロードされます。

キャッシングは重要な機能です。アプリケーションの1回目の実行で必要なすべてのJARファイルがクライアントにキャッシュされます。アプリケーションのJARファイルに変更がなければ、それ以降のアプリケーションの起動では、常にローカルにキャッシュされたコピーからクラスがロードされるようになります。これによって、アプリケーションの起動時間のパフォーマンスが大幅に向上します。アプリケーションの特定の部分の実行に新しいクラスが必要な場合は、必要に応じてそれらがダウンロードされます。

トラブルシューティングのヒント

以降のトラブルシューティング一覧は、複雑な問題の対処に役立つ場合がありますが、問題を解決するための決定的なガイドではなく、またOracle Forms環境に対する解決策として保証されているわけでもありません。

順序立てて対処する

原因と思われる箇所に直感や推測ですぐに着手するのではなく、まず他の可能性を排除します。人は証拠から判断可能なことに集中せずに、自らの仮説を裏付ける証拠を探すために長い時間を費やしてしまいがちです。ささいな事項や明白な事項を見落とさないでください。

問題を分割する

- 問題を管理しやすいように分割することで、全体を調査する必要がなくなります。ある部分を調査して問題がないことがわかれば、次の部分に進むことができます。問題を重要な部分別に分けるアプローチは、問題の診断において有用です。オラクル社カスタマ・サポート・センターと問題を協議して解決策を得る必要がある場合は、このアプローチは重要です。

- 具体的な現象、および発生のタイミングと頻度を明確にします。これと同様に、発生しなかった現象や発生しなかったタイミングなどを把握することも重要です。たとえば、同じ建物内のユーザー・グループ全体に問題が発生し、その発生が常に午前9時から午前10時の間である場合は、別の建物でその問題が再現しないか、あるいは午後10時以降は再現しないかを把握することも重要です。ユーザーが特定のフォームを午前9時から午前10時の間にのみ使用しているか、あるいはこの時間帯にシステムの負荷が最も高くなっていることが考えられます。

エラー・メッセージを確認する

当たり前のようですが、解決策がエラー・テキストに記述されていることが少なくありません。このドキュメントは、エラー・メッセージを理解して対策を特定する際に役立ちます。

可能であれば問題を再現する

問題を自ら再現できれば、エンド・ユーザーが発見できなかった動作に気付くことができます。その問題が常に発生していたために、エンド・ユーザーがそれを意図された動作であると考えている可能性があります。問題を再現できれば、その解決に一歩踏み出したことになります。

使用するツールを確実に理解する

診断ツールを使用する場合は、その使用方法、およびそのデータの分析方法を把握しておいてください。問題が発生する前にツールの使用方法を理解しておくことは時間の無駄ではありません。ツールを習得するための時間も確保してください。

問題が解決しなかった場合

ここまでの情報では不十分である場合は、http://support.oracle.comのMy Oracle Support(以前のMetaLink)でさらに解決策を検索できます。発生した障害の解決策が見つからない場合は、サービス・リクエストを発行してください。

関連項目

- Oracle Fusion Middlewareリリース・ノートは、Oracle Technology Network(http://www.oracle.com/technetwork/developer-tools/forms/overview/index.html)から入手できます。

B Java Plug-inの構成

この付録では、オラクル社のJava Plug-inをWebブラウザ・プラグインとして使用する方法について説明します。Java Plug-inのドキュメント、レガシー・ライフサイクルの動作、および構成の要件に関する情報を提供します。

この付録は、次の各項で構成されています。

- サポートされる構成

- LEGACY_LIFECYCLEの動作と構成の要件

Javaプラグインの詳細およびダウンロード情報は、https://www.java.com/en/download/help/index_installing.xmlを参照してください

サポートされる構成

Oracle FormsではJava Plug-inをサポートしています。

Oracle Java Plug-inを使用すると、ユーザーがMozilla FirefoxまたはInternet Explorerを使用してOracle Forms Servicesアプリケーションを実行できるようになります。これにより、クライアントで特定のJava仮想マシン(JVM)を使用するように指定する機能が得られます。

詳細は、http://www.oracle.com/technetwork/java/index-137617.htmlにあるJava Plug-inドキュメントを参照してください。

LEGACY_LIFECYCLEの動作と構成の要件

JDK 1.4.1以降、Java Plug-inはLEGACY_LIFECYCLEアプレット・パラメータをサポートしています。このパラメータをtrueに設定すると、ユーザーが別のページに移動しても実行アプレットが破棄されなくなります。また、次の場合を除き、ユーザーが元のページに戻ると、実行していたアプレットが再開されます。

- ブラウザがアプレット定義に対するリクエストを再発行する必要があるとき。

- そのリクエストへのレスポンスによって、元のリクエストから返されたアプレット定義とは異なるアプレット定義が生成されるとき。

構成要件

特定の構成で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 構成ファイルの場所とサンプル

この付録では、構成ファイルとそのデフォルトの場所のリストを示します。また、システムにインストールされているデフォルトの構成ファイルのサンプルも紹介します。デフォルト値の中には、場所やパスのように変更できるものもあります。

この付録は、次の各項で構成されています。

- Forms構成ファイルの場所

- Forms Web構成ファイル

- Forms環境変数構成ファイル

- web.xml

- weblogic.xml

- forms.conf

- Registry.dat

- jvmcontroller.cfg

- webutil.cfg

- ftrace.cfg

Forms構成ファイルの場所

表C-1は、UNIXでのForms構成ファイルのデフォルトの場所を示しています。Windowsでも、これらのファイルの場所はほぼ同じです。

表C-1 リリース12.2.1でのファイルとその場所のリスト

ファイル名

リリース12.2.1での場所

formsweb.cfg

$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config

default.env

$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config

base.htm

$FORMS_INSTANCE/server

basejpi.htm

$FORMS_INSTANCE/server

webutilbase.htm

$FORMS_INSTANCE/server

webutiljpi.htm

$FORMS_INSTANCE/server

ftrace

$FORMS_INSTANCE/server

web.xml

$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.1/<random_string>/war/WEB-INF

weblogic.xml

$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.1/<random_string>/war/WEB-INF

forms.conf

$OHS_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconf

jvmcontroller.cfg

$FORMS_INSTANCE/tools/jvm/

webutil.cfg

$FORMS_INSTANCE/server

Registry.dat

$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config/oracle/forms/registry

base.jnlp

$FORMS_INSTANCE/server

basejpi_jnlp.htm

$FORMS_INSTANCE/server

basessa.txt

$FORMS_INSTANCE/server

webutil.jnlp

$FORMS_INSTANCE/server

webutilsaa.txt

$FORMS_INSTANCE/server

Forms Web構成ファイル

構成ファイルformsweb.cfgを使用して、実行時に使用されるアプレット・パラメータおよびサーブレット・パラメータを設定します。この構成ファイル内のアプレット・パラメータは、$FORMS_INSTANCE/serverにあるFormsテンプレート・ファイルに定義されています。ファイルの編集の詳細は、「Forms Servicesの構成」を参照してください。

Forms環境変数構成ファイル

構成ファイルdefault.envを使用して、実行時に使用される環境変数を設定します。ファイルの編集の詳細は、「環境変数の管理」を参照してください。

web.xml

web.xmlファイルは、Forms Java EEアプリケーションのWebアプリケーション・デプロイメント・ディスクリプタ・ファイルです。このファイルは$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.1/<random_string>/war/WEB-INF/にあります。上級ユーザーは、web.xmlファイルを編集して次のことを実行できます。

- 別のテスト・オプションを使用可能にする。
Oracle Fusion MiddlewareのインストールでOracle Forms Servicesを正しく実行できない場合、セキュリティ上の理由から通常は使用できないようになっているテスト・オプションを使用可能にすると役立つ場合があります。このオプションを使用するには、web.xmlファイルを編集してfrmservletのtestModeパラメータをtrueに設定します。次にWebサーバー(またはOracle WebLogic管理対象サーバー)を再起動します。追加のオプションがFormsサーブレットの管理ページ(http://<your_web_server_hostname>:<port>/forms/frmservlet/adminなどのURLでアクセス可能)に表示されます。

- (Formsサーブレットではなく)静的HTMLページを使用してOracle Forms Servicesを実行する。
Oracle Forms Servicesアプリケーションを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アプレットからのメッセージ通信量を処理します。

weblogic.xml

weblogic.xmlは、Webアプリケーション・デプロイメント・ディスクリプタ・ファイルです。このファイルは$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.1/<random_string>/war/WEB-INFにあります。

forms.conf

12cでは、Forms Servicesアプリケーションのデプロイ先である管理対象サーバーに対するWebLogicハンドラのマッピングをforms.confで定義しています。詳細は、「Oracle HTTP Listenerの構成ファイル」を参照してください。

Registry.dat

場所: $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config/oracle/forms/registry

このファイルを使用すると、Forms Servicesで使用するデフォルトのフォント、フォント・マッピングおよびアイコンを変更できます。詳細は、「Forms Servicesで使用するフォント、アイコンおよびイメージのデプロイ」を参照してください。

jvmcontroller.cfg

jvmcontrollerパラメータを使用すると、特定のJVMコントローラを使用するようにFormsアプリケーションを構成できます。このパラメータはformsweb.cfgで指定します。JVMコントローラで使用するパラメータは、そのJVMコントローラの構成ファイルjvmcontrollers.cfgで指定します。このファイルは$FORMS_INSTANCE/tools/jvm/にあります。詳細は、「Fusion Middleware ControlからのJVMプーリングの管理」を参照してください。

webutil.cfg

webutil.cfgファイルは、実行時のWebUtilを構成するために使用するファイルの1つです。このファイルの詳細は、「WebUtilの構成ファイルおよびテンプレートHTMLファイル」を参照してください。このファイルは$FORMS_INSTANCE/server/にあります。

ftrace.cfg

ftrace.cfgファイルを使用して、診断に使用される様々な構成パラメータを構成します。これは$FORMS_INSTANCE/server/にあります。詳細は、「Forms Traceの有効化と構成」を参照してください。

D Formsのエラー・メッセージ

FRM-10200: このコンテキストでは使用できない機能が含まれています。

原因: このコンテキストでは無効なキーを押しました。

処置: 「キー一覧表示」を押して、有効なファンクション・キーのリストを表示します。

レベル: 25

トリガー: なし

FRM-10201: パラメータは必要ありません。

原因: 「アプリケーション・パラメータ入力」または「メニュー・パラメータ入力」が押されましたが、このコンテキストではパラメータは必要ありません。

処置: 処置は必要ありません。

レベル: 25

トリガー: なし

FRM-10202: メニューのネストが深すぎます。

原因: 深さが10を超えるメニューをネストする項目を選択しようとしました。

処置: 「メイン・メニュー」を押してメイン・メニューに戻ってから、自分で選択したメニューにナビゲートします。

レベル: 25

トリガー: なし

FRM-10203: 選択された項目がこのメニューにありません。

原因: 全画面メニューで、メニュー項目の最大数を超える数値を入力しました。

処置: このメニュー上にある項目を選択します。

レベル: 25

トリガー: なし

FRM-10204: 選択されたバックグラウンド項目に対してコマンドが定義されていません。

原因: nがバックグラウンド・メニュー上の最大数より大きい状態でバックグラウンド・メニューnを押しました。

処置: 処置は必要ありません。「バックグラウンド・メニュー一覧」を押して、有効なバックグラウンド・メニュー項目を確認します。

レベル: 25

トリガー: なし

FRM-10205: メニュー: %sがありません。

原因: 全画面メニューの選択フィールドに、このアプリケーションまたはライブラリにないメニュー名を入力しました。

処置: そのメニューがアプリケーションに存在しない場合には、処置は必要ありません。しかし、存在する場合には、そのライブラリを再コンパイルします。

レベル: 25

トリガー: なし

FRM-10206: メモリーの割当てに失敗しました

原因: Formsランタイムがメニュー操作を実行しようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 25

トリガー: なし

FRM-10207: バックグラウンド・メニューが存在していません。

原因: バックグラウンド・メニューがありません。

処置: 処置は必要ありません。

レベル: 25

トリガー: なし

FRM-10208: パラメータ: %sがありません。

原因: メニュー項目が未定義のパラメータを参照しました。

処置: データベース管理者に連絡してください。

レベル: 25

トリガー: なし

FRM-10209: このコンテキストにはバックグラウンドからの次メニューはありません。

原因: アプリケーションがバックグラウンド・メニューから名前付きメニューにナビゲートしようとしました。

処置: 処置は必要ありません。

レベル: 25

トリガー: なし

FRM-10210: レスポンスが必要です。

原因: 必須パラメータを入力していないか、全画面メニューの選択フィールドが空白のままになっています。

処置: 入力してください。

レベル: 25

トリガー: なし

FRM-10211: フィールドが完全に埋まってません。

原因: 完全入力が必要なパラメータの一部しか入力していません。

処置: そのフィールドに必要なデータを完全に入力します。

レベル: 25

トリガー: なし

FRM-10212: このユーザー名とパスワードのログインに失敗しました。

原因: 無効なユーザー名およびパスワードを指定しました。

処置: ユーザー名およびパスワードをチェックし、再試行します。

レベル: 25

トリガー: なし

FRM-10213: ログイン・プロシージャが終了しました。

原因: 3回連続してORACLEへのログインに失敗しました。

処置: 処置は必要ありません。有効なユーザーである場合、ユーザー名とパスワードをチェックしてください。

レベル: 25

トリガー: なし

FRM-10214: アプリケーションを実行する権限はありません。

原因: Oracle Formsのどのモジュールに対しても有効なユーザーではありません。

処置: 処置は必要ありません。有効なユーザーである場合は、システム管理者に連絡し、実行するモジュールへのアクセス権限を取得してください。

レベル: 25

トリガー: なし

FRM-10215: ヘルプは使用できません。

原因: 「ヘルプ」をクリックしましたが、この項目のヘルプはありません。

処置: 処置は必要ありません。

レベル: 25

トリガー: なし

FRM-10216: オペレーティング・システムに対するコマンドを生成できませんでした。

原因: オペレーティング・システムがサブプロセスを生成できませんでした。

処置: オペレーティング・システムによって発行されたエラー・メッセージを参照します。

レベル: 25

トリガー: なし

FRM-10217: 選択されたメニューには項目に対する権限はありません。

原因: アクセスできる項目がないメニューに移動しようとしました。

処置: 入力したメニュー名をチェックし、再試行します。

レベル: 25

トリガー: なし

FRM-10218: メニュー: %sにエラーが発生しました。

原因: Oracle Formsがこのメニューのライブラリ情報を読み込めなかったか、無効なメニュー名が指定されました。

処置: ライブラリを再コンパイルするか、メニュー名を訂正します。

レベル: 25

トリガー: なし

FRM-10219: 項目番号が無効です。

原因: 全画面メニューの選択フィールドに無効な数値を入力しました。

処置: 項目番号をチェックし、再入力します。

レベル: 25

トリガー: なし

FRM-10220: この項目に使用できる詳細なヘルプはありません。

原因: 「ヘルプ」をクリックしましたが、このメニュー項目のヘルプはありません。

処置: 処置は必要ありません。

レベル: 25

トリガー: なし

FRM-10221: ファイル: %sを読み込めません。

原因: ファイル権限の設定が間違っているか、開こうとしたライブラリが無効です。

処置: そのアプリケーション・ライブラリを再コンパイルし、再試行します。

レベル: 25

トリガー: なし

FRM-10222: メニュー: %sはForm Compilerの古いバージョンで作成されています。

原因: このメニュー・モジュールを作成したものより新しいバージョンのOracle Formsを使用しています。

処置: メニュー・モジュールを再コンパイルし、コマンドを再実行します。

レベル: 25

トリガー: なし

FRM-10223: アプリケーションのパラメータ・モジュールがありません。

原因: パラメータ情報がライブラリにありません。ライブラリ・ファイルが無効であるか、別のアプリケーション用である可能性があります。

処置: そのアプリケーション・ライブラリを再コンパイルし、再試行します。エラーが繰り返される場合は、システム管理者に連絡します。

レベル: 25

トリガー: なし

FRM-10224: アプリケーションのバインド変数モジュールがありません。

原因: バインド変数情報がライブラリ内にありませんでした。ライブラリ・ファイルが無効である可能性があります。

処置: そのアプリケーション・ライブラリを再コンパイルし、再試行します。エラーが繰り返される場合は、システム管理者に連絡します。

レベル: 25

トリガー: なし

FRM-10225: パラメータ・データを読み込むことができませんでした。

原因: アプリケーション・ライブラリが無効です。

処置: そのアプリケーション・ライブラリを再コンパイルし、再試行します。エラーが繰り返される場合は、システム管理者に連絡します。

レベル: 25

トリガー: なし

FRM-10226: バインド変数データを読み込むことができませんでした。

原因: アプリケーション・ライブラリが無効です。

処置: そのアプリケーション・ライブラリを再コンパイルし、再試行します。エラーが繰り返される場合は、システム管理者に連絡します。

レベル: 25

トリガー: なし

FRM-10227: メニュー・パラメータが多すぎます。

原因: このアプリケーションには、オペレーティング・システムで使用できる数を上回るメニュー・パラメータが含まれています。

処置: アプリケーションを改訂・再コンパイルするか、システム管理者に連絡します。

レベル: 25

トリガー: なし

FRM-10228: ヘルプ・テキストを読み込むことができませんでした。

原因: アプリケーション・ライブラリが無効です。

処置: そのアプリケーション・ライブラリを再コンパイルし、再試行します。エラーが繰り返される場合は、システム管理者に連絡します。

レベル: 25

トリガー: なし

FRM-10229: ファイル: %sを閉じることができませんでした。

原因: オペレーティング・システム・エラーまたは内部エラーです。

処置: データベース管理者に連絡してください。

レベル: 25

トリガー: なし

FRM-10230: アプリケーションのプロシージャ・モジュールがありません。

原因: プロシージャ情報がライブラリにありません。ライブラリ・ファイルが無効である可能性があります。

処置: そのアプリケーション・ライブラリを再コンパイルし、再試行します。エラーが繰り返される場合は、システム管理者に連絡します。

レベル: 25

トリガー: なし

FRM-10231: プロシージャ・データを読み込むことができませんでした。

原因: アプリケーション・ライブラリが無効です。

処置: そのアプリケーション・ライブラリを再コンパイルし、再試行します。エラーが繰り返される場合は、システム管理者に連絡します。

レベル: 25

トリガー: なし

FRM-10233: 現在のメニュー・スタイルではナビゲーション・プロシージャ/マクロは無効です。

原因: 全画面ナビゲーション・パッケージ・プロシージャ、プルダウンまたはメニュー・バー表示スタイルのマクロを使用しようとしました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10234: マクロ・ステートメントにセミコロンがありません。

原因: 項目に指定されたコマンドラインに構文エラーがあります。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10235: マクロ: %sがありません。

原因: メニューのデザイナが、未定義のマクロの実行を指定しました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10236: プロシージャ/マクロが指定されていません。

原因: メニューのデザイナが空白コマンドを指定しました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10237: このプロシージャ/マクロに引数は使用できません。

原因: メニューのデザイナが、引数を必要としないコマンドに引数を指定しました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10238: %sの実行中にエラーが発生しました。引数を確認してください。

原因: メニューのデザイナが、引数を必要としないコマンドに引数を指定しました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10239: その名前ではフォームを読み込めません。

原因: Oracle Formsで、現行ディレクトリに存在しないフォームを読み込もうとしました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10240: フォーム名が指定されていません。

原因: Formsランタイム・コマンドから実行するフォーム名が提供されませんでした。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10241: Forms Builderがアクティブの場合にはこの操作は無効です。

原因: Forms BuilderがFormsランタイムをコールするときには使用できないビルトインまたはマクロが、メニュー・デザイナによって指定されました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10242: Oracle Formsからリンク-イン・フォームを呼び出せません。

原因: メニュー・デザイナが、Oracle Forms内からFormsをリンクインするコールを指定しました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10243: Oracle Formsの起動時にエラーが発生しました。

原因: Formsランタイムへのコールが失敗しました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10244: アプリケーション: %sは存在しません。

原因: 指定したアプリケーション名がデータベースに存在しないか、そのアプリケーション名へのアクセス権限がありません。

処置: アプリケーション名をチェックして再試行するか、システム管理者に連絡します。

レベル: 25

トリガー: なし

FRM-10245: すでに第1項目にいます。

原因: パラメータ・フォームの第1項目で「前の項目」をクリックしました。

処置: 処置は必要ありません。パラメータ・フォームの第1項目以前の項目には進めません。

レベル: 25

トリガー: なし

FRM-10246: パッケージ・プロシージャの実行エラーが発生しました。フォームがアクティブではありません。

原因: メニュー・デザイナが、現行のコンテキストでは実行不可能なビルトインを指定しました。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10247: アプリケーションのルート・メニューにアクティブ項目がありません。

原因: アプリケーションを開こうとしましたが、そのルート・メニューにはアクセス可能な項目がありません。ルート・メニューは、アプリケーションのメイン・メニューであるか、またはOracle FormsがForms Designerをコールしたときに指定された別のメニューです。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10248: ルート・メニューの使用時はダイレクト・メニュー選択項目を使用できません。

原因: Forms Designerをコールした際にOracle Formsが別のルート・メニューを指定したため、ルート・メニューはモジュールのメイン・メニューではありません。

処置: 処置は必要ありません。ダイレクト・メニュー選択が行えるのは、モジュールのメイン・メニューがルート・メニューの場合のみです。

レベル: 25

トリガー: なし

FRM-10249: アプリケーション: %sを実行する権限がありません。

原因: 実行しようとしたアプリケーションの有効なユーザーではありません。

処置: 処置は必要ありません。有効なユーザーである場合は、システム管理者に連絡し、アプリケーションへのアクセス権限を取得してください。

レベル: 25

トリガー: なし

FRM-10250: Formsランタイム・アプリケーションの初期化中にエラーが発生しました。

原因: モジュールの命名が不正です。

処置: モジュール名をチェックし、正しく入力してください。

レベル: 25

トリガー: なし

FRM-10251: 使用されているコマンド・タイプ4スイッチ(-e、-i、-r、-w)はサポートされていません。

原因: このメニュー・オプションはフォームを実行しようとしましたが、メニューからのフォーム実行時には無効なコマンドライン引数がFormsランタイムに指定されています。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10252: 使用されているコマンド・タイプ4スイッチが不明です。

原因: このメニュー・オプションはフォームを実行しようとしましたが、Formsランタイムに不明なコマンドライン引数が指定されています。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10253: ファイル名を入力しなければなりません。

原因: ファイル名が入力されていないか、ファイル名が削除されました。

処置: ファイル名を入力する必要があります。

レベル: 25

トリガー: なし

FRM-10254: 画面ショット用のファイルを開けません。

原因: オペレーティング・システムでファイルを開けませんでした(権限上の問題、ディスク領域の欠如など)。

処置: そのエラーの原因となったオペレーティング・システムの条件を解決します。

レベル: 25

トリガー: なし

FRM-10255: 画面ショットの印刷中にエラーが発生しました。

原因: オペレーティング・システムでファイル・トラブルが発生しました。

処置: そのエラーの原因となったオペレーティング・システムの条件を解決します。

レベル: 25

トリガー: なし

FRM-10256: ユーザーに「Oracle Forms」メニューを実行する権限がありません。

原因: ユーザーがOracle Formsに未登録です。Oracle Formsの実表に対するSELECT権限がありません。

処置: データベース管理者に通知してください。

レベル: 25

トリガー: なし

FRM-10257: 指定されたオプションを選択する権限はユーザーにありません。

原因: アクセス権限のないメニュー項目を選択しようとしました。

処置: 他の項目を選択するか、システム管理者に通知します。

レベル: 25

トリガー: なし

FRM-10258: 指定されたメニューはすでにアクティブです。

原因: 現メニューにナビゲートしようとしました。

処置: 処置は必要ありません。

レベル: 25

トリガー: なし

FRM-10259: パッケージ・プロシージャまたはファンクションに対するNULL引数が無効です。

原因: ビルトインに引数を指定していないか、指定した引数が無効です。

処置: オンライン・ヘルプでビルトインの正しい構文をチェックします。

レベル: 25

トリガー: なし

FRM-10260: 選択されたメニューにアクティブ項目がありません。

原因: このメニュー内の項目に対するアクセス権限がありません。

処置: このメニュー内の各項目に対するアクセス権限が必要な場合は、システム管理者に連絡してアクセス権限を取得します。

レベル: 25

トリガー: なし

FRM-10261: メニュー: %sはForm Compilerの新しいバージョンで作成されています。

原因: Formsランタイムの旧バージョンを、Form Compilerの新バージョンで使用しています。

処置: Formsランタイムを新バージョンにアップグレードします。

レベル: 25

トリガー: なし

FRM-10262: ラジオ項目/チェックボックス/セパレータはメニュー・バー上に設置できません。

原因: ラジオ項目またはチェック・ボックス、セパレータをメニュー・バーに配置しようとしました。

処置: これらの項目をサブメニューに配置します。

レベル: 25

トリガー: なし

FRM-10263: アイコン化メニュー項目用のアイコン・ファイルが見つかりません。

原因: このアイコンのディレクトリ名がありません。

処置: メニュー・アプリケーションの作成者に連絡してください。

レベル: 25

トリガー: なし

FRM-10264: 指定されたメニュー項目は存在しません。

原因: フォーム内に存在しないメニュー項目を指定しました。

処置: 名前を再入力するか、他の項目名を選択します。

レベル: 25

トリガー: なし

FRM-10265: ライブラリはForm Compilerの古いバージョンで作成されています。

原因: Oracle Formsがライブラリを使用できません。

処置: ライブラリを現行バージョンのForm Compilerで再コンパイルします。

レベル: 25

トリガー: なし

FRM-10266: ライブラリはForm Compilerの新しいバージョンで作成されています。

原因: Oracle Formsがライブラリを使用できません。

処置: ライブラリを現行バージョンのForm Compilerで再コンパイルします。

レベル: 25

トリガー: なし

FRM-10267: ヘルプ型マジック・メニュー項目は最上位レベルのメニューに配置してください。

原因: ヘルプ型マジック・メニュー項目をサブメニューに配置しました。

処置: ヘルプ型マジック・メニュー項目を最上位レベルのメニュー(メイン・メニュー)に移動します。

レベル: 25

トリガー: なし

FRM-10268: エラー:プログラム・ユニット: %s(ライブラリ: %s中)はコンパイルされていません。

原因: ライブラリからコンパイルされていないプログラム・ユニットをコールしました。

処置: PL/SQLプログラム・エラーに従います。

レベル: 25

トリガー: なし

FRM-10269: 警告:プログラム・ユニット%s (ライブラリ%s中)はコンパイルされていません。

原因: デバッグFormsランタイムのライブラリに、コンパイルされていないプログラム・ユニットがコールされました。

処置: これは警告メッセージです。Formsランタイムはそのプログラム・ユニットのコンパイルおよび実行を試行します。

レベル: 25

トリガー: なし

FRM-10270: ライブラリ: %sを連結できません(メニュー: %sを開いています)。

原因: 指定ライブラリ・ファイルは、指定したメニューに連結されていますが、PL/SQLライブラリの検索パスにありません。

処置: そのライブラリ・ファイルがあることを確認してから、指定したメニューで再度実行します。たとえば、作業ディレクトリにそれを配置します。

レベル: 25

トリガー: なし

FRM-21011: PL/SQL未処理例外 %s。

原因: メニュー・トリガーの実行中に未処理の例外が発生しました。

処置: このメッセージに含まれている例外のテキストを検証します。このテキストに原因が示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 25

トリガー: なし

FRM-40007: ユーザー識別名またはパスワードが無効です。再入力してください。

原因: 正しくないOracleユーザー名またはパスワードを入力しました。

処置: ユーザー名およびパスワードを正しく再入力してください。

レベル: 99

トリガー: ON-ERROR

FRM-40010: フォーム: %sを読み込めません。

原因: 次のいずれかが原因のエラーです。

1. 存在しないフォーム名を入力しました。

2. 不完全なパスを入力しました。

3. フォームを実行するための適切な権限がありません。

4. コンパイルされたフォームがありません。

処置: フォーム名を正しく再入力するか、適切なパス名を指定するか、システム管理者に連絡するか、フォームをコンパイルします。

レベル: 5

トリガー: ON-ERROR

FRM-40011: フォームは古いバージョンのOracle Formsで作成されています。

原因: この.FMBファイルは、互換性のない古いバージョンのForm Compilerで作成されています。

処置: フォームを再コンパイルするか、または生成リンクを再設定します。

レベル: 99

トリガー: ON-ERROR

FRM-40012: フォームは新しいバージョンのOracle Formsで作成されています。

原因: この.FMBファイルは、互換性のない新しいバージョンのForm Compilerで作成されています。

処置: このフォームを再コンパイルします。

レベル: 99

トリガー: ON-ERROR

FRM-40013: プログラム・エラー:フォームを読込み中にエラーが発生しました。

原因: Oracle Formsで.FMBファイルを読込み中に内部エラーが発生しました。

処置: このフォームを再コンパイルします。

レベル: 99

トリガー: なし

FRM-40014: メモリー不足のためフォームをロードできません。

原因: これは内部エラーです。ご使用のコンピュータにはこのフォームの実行に十分なメモリーがありません。

処置: 設計者がフォームを変更すると実行できる場合があります。実行できない場合、オペレーティング・システムのパラメータを変更するか、コンピュータにメモリーを追加して、必要なメモリーを確保する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-40015: フォームの読込み中に予期せぬエンド・オブ・ファイルが検出されました。

原因: フォームが断片化されているか、不完全です。

処置: このフォームを再コンパイルします。

レベル: 99

トリガー: なし

FRM-40019: 表示するべき画面番号が不明です。

原因: 内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: なし

FRM-40020: ページ%dはこのフォームには小さすぎます。

原因: アプリケーションの設計エラーです。ページ外に項目が配置されています。

処置: 所定のページに関連付けられたすべての項目がそのページに完全に収まるようにします。各項目を再配置するか、ページの大きさを変更します。

レベル: 99

トリガー: なし

FRM-40021: フォーム・ファイル中の項目が大きすぎます。

原因: Oracle Formsでフォームを読込み中に内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: なし

FRM-40023: レコード・マネージャ・コンテキストを作成できませんでした。

原因: Oracle Formsが内部レコード・マネージャを初期化できませんでした。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40024: メモリーが不足しています。

原因: これは内部エラーです。ご使用のコンピュータにはこのフォームの実行に十分なメモリーがありません。

処置: 設計者がフォームを変更すると実行できる場合があります。実行できない場合、オペレーティング・システムのパラメータを変更するか、コンピュータにメモリーを追加して、必要なメモリーを確保する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-40025: ファイル入力なしに画面出力を抑止できません。

原因: 非互換のプリファレンスによりコマンドラインでフォームを実行しようとしました。このoutput_file作業環境が有効なのは、keyin作業環境との併用時のみです。

処置: output_fileおよびkeyinプリファレンスの両方を組み込んだコマンドを再入力します。

レベル: 99

トリガー: なし

FRM-40026: キー・スクリプト・ファイルを開けません。

原因: Oracle Formsでは、keyinプリファレンスで指定されたファイルを開くことができません。

処置: そのファイルが存在し、ファイル保護が正しく設定されていることを確認します。または、keyin作業環境でファイルを作成します。

レベル: 99

トリガー: なし

FRM-40027: 表示スプール・ファイルをオープン中にエラーが発生しました。

原因: オペレーティング・システム・エラーです。ディスク領域が不十分か、間違ったファイル名を指定したため、Oracle Formsではoutput_file作業環境で指定されたファイルを開くことができません。

処置: システム管理者に連絡してください。

レベル: 99

トリガー: なし

FRM-40028: メッセージ・ファイル%s%s%s.MSBを開けません。

原因: Oracle Formsで、メッセージ・ファイルを見つけられません。

処置: メッセージ・ファイルが存在し、適切なパスが設定されていることを確認します。

レベル: 99

トリガー: なし

FRM-40029: すでにログオンされています。ログアウトは接続の変更前にしなければなりません。

原因: ログインした後に、Login()ビルトインが発行されました。

処置: 最初にLogout()ビルトインを発行します。

レベル: 25

トリガー: ON-ERROR

FRM-40030: ファイル: %sがFormsのファイルではありません。

原因: コマンドラインに指定されたファイルは、有効なOracle Formsファイルではありませんでした。

処置: 有効なファイル名を指定したFormsランタイム起動コマンドを再入力します。

レベル: 99

トリガー: ON-ERROR

FRM-40031: ファイル: %sはForms Runtimeファイルではありません。

原因: コマンドラインに指定されたファイルは、Formsランタイム(.FMX)ファイルではありません。

処置: 有効なFormsランタイム(.FMX)ファイルを再入力します。

レベル: 99

トリガー: ON-ERROR

FRM-40032: 内部エラー:ファイル: %sは、大きすぎるサイズのデータを含んでいます。

原因: これは内部エラーです。ファイルのコンパイルが不適切か、破損しています。

処置: ファイルを再コンパイルします。

レベル: 99

トリガー: ON-ERROR

FRM-40033: 内部エラー:ファイル: %sは、サイズが大きすぎる表を含んでいます。

原因: これは内部エラーです。ファイルのコンパイルが不適切か、破損しています。

処置: ファイルを再コンパイルします。

レベル: 99

トリガー: ON-ERROR

FRM-40034: ライブラリ・ファイルを連結できません。

原因: Oracle Formsで、指定されたライブラリ・ファイルを検出できませんでした。

処置: Formsランタイムを終了し、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-40036: ライブラリは新しいバージョンのOracle Formsで作成されています。

原因: Oracle Formsでライブラリを使用できません。

処置: ライブラリを現行バージョンのOracle Formsで再コンパイルします。

レベル: 99

トリガー: ON-ERROR

FRM-40037: ライブラリは古いバージョンのOracle Formsで作成されています。

原因: Oracle Formsでライブラリを使用できません。

処置: ライブラリを現行バージョンのOracle Formsで再コンパイルします。

レベル: 99

トリガー: ON-ERROR

FRM-40039: ライブラリ: %sを連結できません(フォーム: %sを開いています)。

原因: 指定されたライブラリは、フォームに連結されていますが、PL/SQLライブラリの検索パスにありません。

処置: 指定されたライブラリがあり、それに読込み許可が設定されていることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-40040: プロキシ接続を実行できません。

原因: プロキシ・ユーザーのデータベース権限がデータベース側で構成されていないか、またはSSOユーザーのデータベース・アカウントが作成されていない可能性があります。

処置: データベースがプロキシ接続用に適切に構成されていることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-40041: フォーム%sにはUTF8文字セットが必要です。

原因: 指定されたフォームを実行しようとしましたが、それにはデータ型がNCHARである項目が1つ以上含まれ、かつNLS_LANG環境変数でUTF8またはAL32UTF8文字セットが指定されていませんでした。

処置: NLS_LANG環境変数に、UTF8またはAL32UTF8文字セットを指定する値を設定し、アプリケーションを再起動します。

レベル: 25

トリガー: ON-ERROR

FRM-40042: RADリポジトリのデータベース・パスワードを更新できません。

原因: RADリポジトリのデータベース・パスワードを更新しようとした際にエラーが発生しました。

処置: システム管理者に連絡し、RADリポジトリのパスワードを更新してください。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40100: 最初のレコードです。

原因: カーソルが最初のレコードにあるときに「前のレコード」を押しました。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-ERROR

FRM-40101: キー項目に位置づけることができません。ナビゲート可能なものがありません。

原因: 「次の主キー項目」を押しましたが、このブロックには入力可能な主キー項目がありません。

処置: 「次の主キー項目」ではなく、「次の項目」を使用します。

レベル: 10

トリガー: ON-ERROR

FRM-40102: まずレコードを入力、または削除してください。

原因: 「次のレコード」または「下へ」を押しましたが、このコンテキストでは無意味です。次のいずれかです。

1. ブロック内の最後のレコードが現レコードです。

2. ブロックが空です。

3. 「レコード挿入」を押して作成されたブロック内の新規レコードを選択しています。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-ERROR

FRM-40103: キー項目に位置づけることができません。問合せ可能なキー項目はありません。

原因: 「次の主キー項目」を使用しようとしましたが、ブロック内のどの主キー項目にも問合せ基準を入力できません。

処置: 処置は必要ありません。

レベル: 10

トリガー: ON-ERROR

FRM-40104: ブロック: %sはありません。

原因: ランタイム・エラーです。GO_BLOCK文が、存在しないブロックを参照しています。

処置: 文を修正してください。

レベル: 99

トリガー: ON-ERROR

FRM-40105: 項目: %sへの参照が解決できません。

原因: ランタイム・エラーです。GO_ITEM文が、存在しない項目を参照しています。

処置: 文を修正してください。

レベル: 99

トリガー: ON-ERROR

FRM-40106: 宛先ブロックにナビゲート可能な項目がありません。

原因: ランタイム・エラーです。GO_BLOCK文が、入力可能項目のないブロックを参照しています。

処置: その文を削除するか、ブロック内の1つ以上の項目を入力可能にします。

レベル: 99

トリガー: ON-ERROR

FRM-40107: 非表示項目: %sにナビゲートできません。

原因: ランタイム・エラーです。GO_ITEM文が、非表示項目を参照しています。

処置: その文を削除するか、指示項目の「表示」プロパティを選択します。

レベル: 20

トリガー: ON-ERROR

FRM-40108: フォーム: %sは存在しません。

原因: 存在しないフォームまたはロードされていないフォームのプロパティを取得/設定しようとしました。

処置: 有効なフォーム名を使用します。

レベル: 99

トリガー: ON-ERROR

FRM-40109: 問合せ入力モードにある現行ブロックからナビゲートすることはできません。

原因: 問合せ入力モード時に現行のブロックからナビゲートしようとしました。

処置: 処置は必要ありません。問合せ入力モード時には、現行のブロックまたはレコードからナビゲートできません。

レベル: 99

トリガー: なし

FRM-40110: カーソルは先頭ブロックにあります。

原因: カーソルが最初のブロックにあるにもかかわらず「前のブロック」を指定しました。

処置: 処置は必要ありません。他の方法でナビゲートしてください。

レベル: 5

トリガー: ON-ERROR

FRM-40111: カーソルは最終ブロックにあります。

原因: カーソルが最終ブロックにあるにもかかわらず「次のブロック」を指定しました。

処置: 処置は必要ありません。他の方法でナビゲートしてください。

レベル: 5

トリガー: ON-ERROR

FRM-40112: go_itemを使用不可項目%sにするよう試みました: %s。

原因: 無効な項目にgo_itemを発行しようとしました。

処置: 処置は必要ありません。他の方法でナビゲートしてください。

レベル: 99

トリガー: ON-ERROR

FRM-40200: フィールドは、プロテクトされているので更新できません。

原因: 更新できないフィールドを更新しようとしました。

処置: 処置は必要ありません。このフォームのこのフィールドは更新できません。

レベル: 15

トリガー: ON-ERROR

FRM-40201: フィールドは一杯です。文字を挿入できません。

原因: Oracle Formsは挿入モードで、現行フィールドはいっぱいです。

処置: 1文字削除して新しい文字を入力できるスペースを作成するか、「挿入/置換」を押して置換モードをアクティブにします。

レベル: 99

トリガー: なし

FRM-40202: フィールドに入力してください。

原因: データ入力を必要とするフィールドに値を入力していないか、値を削除しました。

処置: このフィールドには値を入力する必要があります。

レベル: 15

トリガー: ON-ERROR

FRM-40203: フィールドの最後まで入力してください。

原因: 固定長要件があるフィールドに、完全な値を入力していないか、値の一部を削除しました。

処置: 完全な値(フィールドの端まで続く値)を入力します。

レベル: 15

トリガー: ON-ERROR

FRM-40204: カーソルがフィールド値の最初にあります。

原因: このフィールドの先頭文字位置より前の文字を削除しようとしました。

処置: [Delete Character]を使用して、カーソルの下の文字を削除します。

レベル: 10

トリガー: ON-ERROR

FRM-40205: カーソルが現行フィールドの値を超えています。

原因: ブロック・モードの端末で、カーソルをフィールド外に配置しました。

処置: カーソルをそのフィールド内に移動し、再入力します。

レベル: 99

トリガー: なし

FRM-40206: 直前の文字は現在非表示です。

原因: 画面に表示されていない文字を削除しようとしました。

処置: 矢印キーまたは左スクロールおよび右スクロールを使用し、削除する文字が表示されるようスクロールします。

レベル: 10

トリガー: ON-ERROR

FRM-40207: 値は%.30sから%.30sまでの範囲内になければなりません。

原因: 入力した値が、有効項目範囲内にありません。

処置: 表示範囲に値を入力します。

レベル: 99

トリガー: なし

FRM-40208: フォームは、問合せ専用モードで実行されています。データベース・フィールドを変更できません。

原因: 問合せ専用フォームに値を入力しました。

処置: このフォームに値を入力しないでください。問合せを実行してデータを表示できますが、既存データの変更または新規データの入力はできません。

レベル: 15

トリガー: ON-ERROR

FRM-40209: フィールドは%sの形式でなければなりません。

原因: 入力値は、フィールド上の書式マスクに一致しませんでした。

処置: 書式マスクに一致するフィールド値で再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-40210: 検索文字列が見つかりません。

原因: このモジュールには検索文字列がありません。

処置: 検索文字列が正確かどうか確認するか、他の検索文字列を試行します。

レベル: 99

トリガー: ON-MESSAGE

FRM-40211: 警告:改行はこのフィールドでは削除される可能性があります。

原因: 改行を含むデータを単一行テキスト・フィールドに割り当てようとしました。

処置: 改行が必要な場合は、複数行テキスト・フィールドに割り当てます。

レベル: 5

トリガー: ON-MESSAGE

FRM-40212: フィールド: %sの値が無効です。

原因: 原因は次のいずれかです。

1. 値がデータ型として不正です。

2. 値がどのリストの許容値にも一致しません。

3. テキスト・フィールドの値が指定された範囲に一致しません。

処置: 他の値で再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-40213: 領域コピー/領域切取りができません。領域が選択されていません。

原因: 領域が選択されていません。

処置: 領域を選択し、再試行します。

レベル: 5

トリガー: ON-ERROR

FRM-40214: コピー/切取りのためにクリップボードを開けません。

原因: クリップボードが使用不可です。

処置: プラットフォームの問題です。

レベル: 99

トリガー: ON-ERROR

FRM-40215: クリップボードに書込みできません。

原因: クリップボードが使用不可です。

処置: プラットフォームの問題です。

レベル: 99

トリガー: ON-ERROR

FRM-40216: 貼付けるクリップボードをオープンできません。

原因: クリップボードが使用不可です。

処置: プラットフォームの問題です。

レベル: 99

トリガー: ON-ERROR

FRM-40217: クリップボードからデータ・サイズを取得できません。

原因: データが無効です。

処置: プラットフォームの問題です。

レベル: 99

トリガー: ON-ERROR

FRM-40218: クリップボードから読込みできません。

原因: データが無効です。

処置: プラットフォームの問題です。

レベル: 99

トリガー: ON-ERROR

FRM-40219: クリップボードから読み込まれたデータをフォーマットできません。

原因: データが無効です。

処置: プラットフォームの問題です。

レベル: 99

トリガー: ON-ERROR

FRM-40220: クリップボードから貼付けできません。値が長すぎます。

原因: データが無効です。

処置: プラットフォームの問題です。

レベル: 99

トリガー: ON-ERROR

FRM-40221: OFM_ITEM.PASTEを実行できません。領域が選択されていません。

原因: イメージ項目のどの部分も選択されていないときに領域ペーストが行われました。

処置: 領域ペーストを行う前に、そのイメージ項目の領域を選択します。

レベル: 99

トリガー: ON-ERROR

FRM-40222: 使用不可の項目「%s.%s」の妥当性チェックに失敗しました。

原因: アプリケーションの設計エラーが考えられます。Formsは項目に無効な値が含まれていると判断しましたが、項目が無効であるためフォーカスすることができません。この原因は次のいずれかが考えられます。

アプリケーションが項目に対しプログラム的に無効な値を割り当てました。

エンド・ユーザーが項目に無効な値を入力した後(項目の妥当性検査が行われる前)に、アプリケーションが項目をプログラム的に無効にしました。

処置: アプリケーション・ロジックを修正してください。

レベル: 25

トリガー: ON-ERROR

FRM-40223: フィールドに、セキュリティ上無効な文字列があります。

原因: フィールドに、セキュリティ違反となる可能性のある文字列があります。

処置: 問題の文字列を削除します。

レベル: 15

トリガー: ON-ERROR

FRM-40301: この問合せで検索されたレコードはありません。再入力してください。

原因: 問合せ基準に一致するレコードがありません。まだ問合せ入力モードです。

処置: 問合せ基準を調整するか、「終了/取消」を押して問合せ入力モードを終了します。

レベル: 99

トリガー: ON-MESSAGE

FRM-40302: 問合せを入力できません。問合せ可能なフィールドがありません。

原因: 問合せ可能なフィールドがないブロックにカーソルがあるときに、「問合せ入力」を押しました。

処置: 処置は必要ありません。

レベル: 15

トリガー: ON-ERROR

FRM-40303: ブロックには、実表フィールドはありません。

原因: 現行モジュール内のブロックの1つに実表フィールドがありません。

処置: 処置は必要ありません。

レベル: 99

トリガー: ON-ERROR

FRM-40350: この問合せで検索されたレコードはありません。

原因: 現行の問合せで表からレコードをフェッチできませんでした。表が空であるか、問合せの検索基準に一致するレコードがありません。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-MESSAGE

FRM-40352: 問合せで検索された最終レコードです。

原因: すべてのレコードが取り出された後に、「下へ」、「次のレコード」、「次のレコード・セットへ」、または「下へスクロール」を押しました。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-MESSAGE

FRM-40353: 問合せが取り消されました。

原因: 問合せ入力モードで「終了/取消」を押したか、Oracle Formsがデータベースから行をフェッチ中に[Ctrl]キーを押しながら[C]キー(またはこれに相当するキー)を押しました。

処置: 処置は必要ありません。

レベル: [Ctrl]キーを押しながら[C]キーを押して問合せを取り消した場合は5、それ以外の場合は10

トリガー: ON-MESSAGE

FRM-40355: 問合せによって<レコード数>件のレコードが取り出されます。

原因: 該当件数をクリックしました。「問合せ実行」をクリックすると、この数のレコードを取得できます。

処置: 処置は必要ありません。

レベル: 25

トリガー: ON-MESSAGE

FRM-40356: 例レコードに指定された数が無効です。問合せは発行されません。

原因: 問合せ入力モードで、例レコードに無効な数値を入力しました。

処置: 入力値を訂正し、問合せを再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-40357: 例レコードに指定された文字列が無効です。問合せは発行されません。

原因: 問合せモードで、例レコードに無効なALPHAまたはCHAR値を入力しました。

処置: 入力値を訂正し、問合せを再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-40358: 例レコードに指定された日付が無効です。問合せは発行されません。

原因: 問合せ入力モードで、例レコードに無効な日付を入力しました。

処置: 入力値を訂正し、問合せを再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-40359: 例レコードに指定された日付/時刻が無効です。問合せは発行されません。

原因: 問合せ入力モードで、例レコードに無効なJDATE、EDATEまたはTIME値を入力しました。

処置: 入力値を訂正し、問合せを再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-40360:ここではレコードの問合せはできません。

原因: 問合せできないブロックに問合せしようとしました。

処置: このブロックへの問合せはしないでください。

レベル: 10

トリガー: ON-ERROR

FRM-40361: 問合せ操作は、TIMEデータ型をサポートしていません。

原因: 時刻フィールドで% "like"演算子により問合せが行われましたが、これはサポートされていません。

処置: TIMEデータ型を使用せずに問合せを再記述してください。

レベル: 10

トリガー: ON-ERROR

FRM-40364: 項目: %sのデータ型がストアド・プロシージャの対応列と一致しません。

原因: 項目のデータ型が、ストアド・プロシージャの対応列のデータ型と異なります。

処置: そのブロックの項目のデータ型を、ストアド・プロシージャの列のものと同じにします。

レベル: 20

トリガー: ON-ERROR

FRM-40367: 例レコードのフィールド%sに指定された基準が無効です。

原因: 制限付きの問合せ入力モードでは、単純な句のみ使用できます。

処置: 検索条件を再入力します。

レベル: 99

トリガー: ON-ERROR

FRM-40400: トランザクションが完了しました。%dレコードが更新、保存されました。

原因: 保存が完了しました。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-MESSAGE

FRM-40401: 保存する変更内容はありません。

原因: 最終の適用または保存以降、追加または変更されたレコードはありません。注意: このメッセージが表示される場合でも、明示的なSQL (DML)によって加えられた未適用のデータベース変更はそのまま適用されます。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-ERROR

FRM-40402: 保存は取り消されました。

原因: ロック中に[Ctrl]キーを押しながら[C]キーが押されたか、相当する操作が行われました。

処置: 処置は必要ありません。

レベル: 10

トリガー: ON-MESSAGE

FRM-40403: 呼出し側フォームでは、変更内容が適用されていません。上書き保存が許可されていません。

原因: コール側フォームでは、変更内容が適用されていません。

処置: 変更内容を適用するか、コール側フォームに戻って上書き保存を再試行します。

レベル: 15

トリガー: ON-ERROR

FRM-40404: データベースの適用が完了しました。%d件のレコードが適用されました。

原因: 適用が完了しました。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-MESSAGE

FRM-40405: 適用する変更内容はありません。

原因: 最終の適用または保存以降、追加または変更されたレコードはありません。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-ERROR

FRM-40406: トランザクションが完了しました。%d件のレコードが適用されました。すべてのレコードが保存されました。

原因: 変更内容を記録した適用を完了し、それまで適用された変更内容を保存しました。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-MESSAGE

FRM-40407: トランザクションが完了しました。適用されたレコードが保存されました。

原因: すでに適用した変更を保存する保存を完了しました。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-MESSAGE

FRM-40408: データベースのコミットに失敗しました。

原因: データベースへのコミットに失敗しました。

処置: 更新されたデータベース表の整合性制約を検証します。違反があった場合は、制約に違反せずに更新を再実行します。必要に応じて、sqlplusで更新およびコミットし、違反された制約を識別するORA-nnnnnメッセージが発行されるかどうかを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-40501: Oracleエラー:更新/削除のためにレコードを取っておくことはできません。

原因: 更新のためにレコードを選択しようとしたときに致命的エラーが発生しました。

処置: 他に情報がある場合、「エラー表示」を押すと他の情報が表示されます。また、後でこのレコードを更新または削除できます。必要に応じて、システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40502: Oracleエラー:値リストを読み込めません。

原因: 値リストの読込み中に致命的エラーが発生しました。

処置: システム管理者に連絡してください。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40504: Oracleエラー: %sトリガーを実行できません。

原因: トリガーの実行中に致命的エラーが発生しました。

処置: システム管理者に連絡してください。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40505: Oracleエラー:問合せを実行できません。

原因: 処理エラーが発生しました。フォームの現ブロックに関連付けられている表がないか、表に対して指定したアクションをユーザーが実行する権限がないことが考えられます。

処置: 他に情報がある場合、「エラー表示」を押すと他の情報が表示されます。また、後でこのレコードを更新または削除できます。必要に応じて、システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40506: Oracleエラー:レコードの一意性をチェックできません。

原因: レコードの主キー項目が一意であるかどうかをチェック中に処理エラーが検出されました。このフォームの現行ブロックと対応付けされた表が存在しないか、その表にアクセスする権限がありません。

処置: データベース管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40507: Oracleエラー:次の問合せレコードを取り出せません。

原因: 次のいずれかが原因のエラーです。

1. Oracle Formsでレコード・バッファを割り当てられませんでした(その前のFRM-40900でレポートされているとおりです)。

2. ODBCを使用してOracle以外のデータソースに接続している場合、カーソルは、コミット後に結果セット内で位置を失います。

3. 次の問合せレコードのフェッチ中に致命的なエラーが発生しました。

処置: 原因の1についてはFRM-40900を参照してください。原因の2については再問合せを実行してください。原因の3についてはデータベース管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40508: Oracleエラー:レコードをINSERTできません。

原因: レコードの挿入中に致命的エラーが発生しました。フォームの現ブロックに関連付けられている表がない、表に対し指定したアクションをユーザーが実行する権限がないなどが致命的エラーの原因と考えることができます。

処置: データベース管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40509: Oracleエラー:レコードをUPDATEできません。

原因: レコードの更新中に致命的エラーが発生しました。フォームの現ブロックに関連付けられている表がない、表に対し指定したアクションをユーザーが実行する権限がないなどが致命的エラーの原因と考えることができます。

処置: データベース管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40510: Oracleエラー:レコードをDELETEできません。

原因: レコードの削除中に致命的エラーが発生しました。フォームの現ブロックに関連付けられている表がない、表に対し指定したアクションをユーザーが実行する権限がないなどが致命的エラーの原因と考えることができます。

処置: データベース管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40511: トリガー: %sの実行中にOracleエラーが発生しました。

原因: トリガーの実行中に致命的エラーが発生しました。フォームの現ブロックに関連付けられている表がない、表に対し指定したアクションをユーザーが実行する権限がないなどが致命的エラーの原因と考えることができます。

処置: データベース管理者に連絡してください。

レベル: 99

トリガー: なし

FRM-40512: Oracleエラー:SAVEPOINTコマンドを発行できません。

原因: 新規フォームのコール中またはコミット中に、発行されたSAVEPOINTコマンドが失敗しました。普通、これはそのモジュールのセーブポイントが無くなったことを意味します。

処置: 「エラー表示」を押して、特定のOracleエラーを表示します。INIT.ORAファイル内の最大セーブポイント数を増やせる場合があります。

レベル: 99

トリガー: ON-ERROR

FRM-40513: Oracleエラー:データベースから日付/時間を取得できません。

原因: データベースの日付/時間の初期値を解決中に、エラーが発生しました。

処置: まだ接続していない場合には接続します。データベース状態を検証します。

レベル: 10

トリガー: ON-ERROR

FRM-40514: データベース接続してから操作を行ってください。

原因: データベースに接続せずにデータベース操作を実行しようとしました。

処置: データベースに接続してから、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-40515: Oracleエラー:カーソルをオープンできません。

原因: オープンできるカーソル数の限度に達しました。

処置: オープンしているカーソル数をチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-40600: レコードはすでに挿入されています。

原因: レコードを挿入または更新しようとしましたが、ブロックの主キー項目は一意にする必要があります。挿入または更新されたレコードは、一意ではありません。

処置: 現行のレコードの1つ以上の主キー・フィールドの値を一意になるように変更します。主キーフィールドの一意性要件により問題が発生する場合には、制約の排除を検討します。

レベル: 25

トリガー: ON-ERROR

FRM-40602: ビューへの挿入、またはデータの更新は行えません。

原因: 許可されない方法で、ビューの内容を変更しようとしました。

処置: 処置は必要ありませんが、試行した操作は実行できません。

レベル: 20

トリガー: ON-ERROR

FRM-40603: レコードはすでに失われました。更新するには再問合せをしてください。

原因: FOR_UPDATEパラメータがあるENTER_QUERYまたはEXECUTE_QUERYパッケージ・プロシージャを入力したブロックで、変更をコミットしました。このアクションでは、このブロックのレコード上のすべてのロックが解除されます。

処置: そのブロックを変更する場合には、再度問い合せる必要があります。

レベル: 99

トリガー: ON-MESSAGE

FRM-40652: 共有更新モードでは表をロックできません。

原因: 原因は次のいずれかです。

1. この表に対するアクセス権限がありません。

2. Oracle Formsの共有更新モードでその表をロックすることができません。

処置: データベース管理者に連絡してください。

レベル: 15

トリガー: ON-ERROR

FRM-40653: レコードは更新/削除の準備がされていません。しばらくしてから、再試行してください。

原因: 取消しのために[Ctrl]キーを押しながら[C]キーが押されました(または同等の操作が行われました)。レコードの更新または削除が強制終了されました。

処置: 処置は必要ありません。

レベル: 20

トリガー: ON-MESSAGE

FRM-40654: レコードは別のユーザーによって更新されました。変更内容確認のため、もう一度問合せを行ってください。

原因: 問合せ実行後、別のユーザーがこのレコードを更新し、レコード内の1つ以上のフィールドを変更しました。これまでのアクションでは、メモリー内のレコードは変更されていません。

処置: 別のユーザーが各フィールド値を(あなたが)問合せを実行したときの状態に戻した場合にのみ、このレコードを更新または削除できます。それ以外の場合は、更新または削除する前に、再問合せにより新規レコードをフェッチおよび表示する必要があります。

レベル: 20

トリガー: ON-ERROR

FRM-40655: SQLエラーのためロールバックされました。フォームを消去し、トランザクションを再入力してください。

原因: デッドロックまたはその他のエラーによって、現行のトランザクションが失敗しました。変更内容がロールバックされました。

処置: フォームを消去(または終了してフォームを再入力)してから、そのトランザクションを再入力します。エラーの再発生を防ぐには、フォームの設計を変更する必要がある場合があります。

レベル: 25

トリガー: ON-ERROR

FRM-40657: 別のユーザーによってレコードが変更、または削除されています。

原因: 問合せの実行後、別のユーザーがそのレコードを削除したか、データベース・アクセス制御でその操作が許可されていません。

処置: 画面からこのレコードをクリアできますが、データベース内には存在しないため、またはデータベース・アクセス制御でその操作が許可されていないため、更新または削除は実行できません。データベース・アクセス制御ポリシーを確認してください。

レベル: 20

トリガー: ON-MESSAGE

FRM-40659: 検索結果の最終行です。残りのレコードを見るにはもう一度問合わせを実行してください。

原因: コミットの実行により、FOR_UPDATE問合せが閉じられました。この問合せはコミット前に開いていたので、もっと多くのレコードが取り出される場合があります。

処置: 問合せを再実行し、残りのレコードを確認します。

レベル: 5

トリガー: ON-MESSAGE

FRM-40700: トリガー: %sは存在しません。

原因: アプリケーションの設計エラーです。フォームが存在しないトリガーを実行しようとし、致命的エラーが発生しました。

処置: トリガーの参照を修正します。

レベル: 20

トリガー: ON-ERROR

FRM-40702: 保存されていない変更内容があるフォームをコールすることはできません。

原因: 現在のフォームに未保存の変更内容があり、セーブポイント・モードがオフの状態で、他のフォームをコールしようとしました。

処置: 変更内容をコミット/ポストします。

レベル: 15

トリガー: ON-ERROR

FRM-40703: 取出しフィールドは、問合せモードでは変更できません。

原因: 問合せモードでフェッチした項目を修正しようとしました。

処置: 処置は必要ありません。

レベル: 20

トリガー: ON-ERROR

FRM-40704: 問合せ専用モード内は無効なSQL文が含まれています。

原因: アプリケーションの設計エラーです。問合せ専用フォームでは無効なファンクションを、フォームが実行しようとしました。

処置: フォームの設計を変更する必要がある場合があります。

レベル: 20

トリガー: ON-ERROR

FRM-40705: NON-COMMIT-TIMEトリガー内で使用できないSQL文が含まれています。

原因: アプリケーションの設計エラーです。現トリガーに、そのトリガー・タイプには使用できないSQL文が含まれています。

処置: そのトリガー・テキストを書き換えるか、別のタイプのトリガーを使用します。

レベル: 20

トリガー: ON-ERROR

FRM-40714: このコンテキストではファンクションは使用できません。

原因: アプリケーションの設計エラーです。現トリガーに、使用できないファンクション・コードが含まれています。

処置: そのトリガー・テキストを書き換えるか、別のタイプのトリガーを使用します。

レベル: 20

トリガー: ON-ERROR

FRM-40724: CASE文にセレクタがありません。

原因: アプリケーションの設計エラーです。CASE文にセレクタ部分がありません。

処置: 文を修正してください。

レベル: 99

トリガー: なし

FRM-40730: メッセージ抑止レベルが無効です。%dからの変更はありません。

原因: アプリケーションの設計エラーです。トリガーが、システム・メッセージ・レベルを無効な数値に設定しようとしました。

処置: SYSTEM.MESSAGE_LEVELシステム変数を有効な数値にリセットします。

レベル: 99

トリガー: ON-ERROR

FRM-40732: GOTO先のラベルがこのマクロに存在しません。

原因: アプリケーションの設計エラーです。PL/SQL内で参照されるラベルが存在しません。

処置: 文を修正してください。

レベル: 99

トリガー: ON-ERROR

FRM-40733: PL/SQLビルトイン: %sに失敗しました。

原因: トリガー実行中に、Oracle FormsまたはPL/SQLで致命的エラーが発生しました。

処置: アプリケーション・ロジックを検証し、ビルトインが不正に起動されるかどうかを確認します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40734: 内部エラー:PL/SQLエラーが発生しました。

原因: トリガー実行中にPL/SQLの内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40735: トリガー: %sが未処理の例外: %sを引き起こしました。

原因: アプリケーションの設計エラーです。現トリガーが例外(FORM_TRIGGER_FAILURE以外)を呼び出しましたが、その例外を処理できませんでした。

処置: 例外を処理するためにトリガー・テキストを書き換えます。

レベル: 99

トリガー: ON-ERROR

FRM-40736: PL/SQLを初期化できません。

原因: PL/SQLの初期化中に内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40737: 無効な制限パッケージ・プロシージャ: %sが%sトリガーにあります。

原因: アプリケーションの設計エラーです。トリガーが制限パッケージ・プロシージャを実行しようとしました。

処置: トリガー・テキストからパッケージ・プロシージャを削除します。

レベル: 99

トリガー: ON-ERROR

FRM-40738: 引数: %d(ビルトイン: %s)にはNULLは指定できません。

原因: アプリケーションの設計エラーです。ビルトインに引数が指定されていません。

処置: このビルトインの正しい使用方法は、オンライン・ヘルプを参照してください。

レベル: 99

トリガー: ON-ERROR

FRM-40739: ポスト専用フォームでは完全にロールバックすることができません。

原因: アプリケーションの設計エラーです。トリガーが、ポスト専用コール・フォーム内でFULL_ROLLBACKパラメータ付きのCLEAR_FORMパッケージ・プロシージャを発行しようとしました。

処置: FULL_ROLLBACKパラメータを削除するか、コール時にコール側フォームに未ポストの変更内容がないことを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-40740: プロシージャ: %sは、on-%sトリガー以外では使用できません。

原因: アプリケーションの設計エラーです。非トランザクション・トリガーが、特定のトリガーに限定されたビルトイン・プロシージャを起動しようとしました。

処置: このプロシージャの正しい使用方法は、オンライン・ヘルプを参照してください。

レベル: 99

トリガー: ON-ERROR

FRM-40741: レコード: %dはブロック: %sで検索できません。

原因: 特定のブロックの無効なレコード番号のレコード・プロパティを取得または設定しようとしました。

処置: ご使用のレコード・プロパティの取得/設定のパラメータを検証します。

レベル: 20

トリガー: ON-ERROR

FRM-40742: レコード: %dに無効な状態変換があります: %sから%s

原因: アプリケーションの設計エラーです。SET_RECORD_PROPERTYのコールがレコード状態間の無効な変換を試行しました。

処置: 正しい移行方法は、オンライン・ヘルプのSET_RECORD_PROPERTYを参照してください。

レベル: 99

トリガー: ON-ERROR

FRM-40743: 実表を持たないこの操作には%sトリガーが必要です。

原因: アプリケーションの設計エラーです。適切なトランザクション・トリガーなしで、実表ではないブロックにデータベース操作(問合せ、挿入、更新など)を行いました。

処置: オンライン・ヘルプを参照し、適切なトランザクション・トリガーを作成します。

レベル: 20

トリガー: ON-ERROR

FRM-40744: エディタが受け入れた場合、入力値の切捨てが起こります。

原因: エディタのバッファが小さすぎるので、入力を受け入れられません。

処置: エディタを変更するか、バッファを拡大します。

レベル: 99

トリガー: なし

FRM-40745: ビルトイン: %sの出力値が切り捨てられました。

原因: 出力変数が小さすぎます。

処置: PL/SQL出力変数の桁数を増やします。

レベル: 15

トリガー: ON-ERROR

FRM-40746: 起動デバッガ・ウィンドウからビルトイン: %sをコールできません。

原因: 起動デバッガ・ウィンドウからビルトインにアクセスできません。

処置: 起動デバッガ・ウィンドウからアクセスできないビルトインの詳細は、Oracle Formsの開発者ガイドを参照してください。

レベル: 99

トリガー: なし

FRM-40747: ビルトイン: %sはデバッグ・トリガーからコールできません。

原因: このビルトインは、デバッグ・トリガーからアクセスできません。

処置: デバッグ・トリガーからアクセスできるビルトインの詳細は、Oracle Formsの開発者ガイドを参照してください。

レベル: 99

トリガー: なし

FRM-40748: リセット・コマンドの入力で、トリガー: %sは終了しました。

原因: リセット・コマンドを発行したか、デバッガ内のリセット・ボタンを押しました。

処置: 下方向にナビゲートする場合は、コール・スタックに進みます。

レベル: 99

トリガー: なし

FRM-40749: レコード%d用に指定したレコード・ステータスは無効です。

原因: アプリケーションの設計エラーです。レコードの「ステータス」プロパティを無効な値に設定しようとしました。

処置: レコードの「ステータス」プロパティは、NEW_STATUS、QUERY_STATUS、INSERT_STATUS、CHANGED_STATUSのいずれかに設定する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-40750: レコード%d: 制御ブロックのステータスをQUERYまたはCHANGEDに設定できません。

原因: アプリケーションの設計エラーです。制御ブロック内のレコードの「ステータス」プロパティをQUERY_STATUSまたはCHANGED_STATUSに設定しようとしました。

処置: レコードの「ステータス」プロパティは、NEW_STATUSまたはINSERT_STATUSに設定する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-40800: ユーザー・イグジット: %sが存在しません。

原因: 存在しないユーザー・イグジットを起動しようとしました。この原因は、次のいずれかです。

1. 誤ったバージョンのFormsランタイムが使用されている。

2. フォーム内にエラーがある可能性がある。

3. FORMS_USEREXITSが正しく設定されていない。

処置: ユーザー・イグジット記号を定義するダイナミック・ライブラリがFORMS_USEREXITSリストにあることを確認します。

レベル: 20

トリガー: ON-ERROR

FRM-40801: メモリーの割当てに失敗しました

原因: Formsランタイムが内部マクロを作成しようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 25

トリガー: ON-ERROR

FRM-40808: HOSTコマンドを実行できません。エラー・コード = %s。

原因: オペレーティング・システム・エラーのためHOST文を実行できません。

処置: システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40809: HOSTコマンドのエラー・コード = %s。

原因: 前述のエラー・コードは、オペレーティング・システム・コマンドから発生しました。

処置: コマンドを正しく入力したか検証します。

レベル: 99

トリガー: ON-ERROR

FRM-40811: シェル・コマンドでエラーが発生しました。

原因: 前述のエラー・コードは、オペレーティング・システム・コマンドから発生しました。

処置: コマンドを正しく入力したか検証します。

レベル: 99

トリガー: ON-ERROR

FRM-40815: GLOBAL.%sという名前の変数は存在しません。

原因: アプリケーションの設計エラーです。トリガーが、存在しないグローバル変数を参照しています。

処置: グローバル変数を作成するか、参照を削除します。

レベル: 20

トリガー: ON-ERROR

FRM-40816: 新しい記号にメモリーを割り当てられませんでした。

原因: Formsランタイムが新しいグローバル変数にアクセスしようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: なし

FRM-40817: 新しい値にメモリーを割り当てられませんでした。

原因: Formsランタイムが新しいグローバル変数にアクセスしようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: なし

FRM-40818: システム変数名は定義されていません。

原因: 存在しないシステム変数にアクセスしようとしました。

処置: システム変数名をチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-40819: システム変数は変更できません。

原因: システム変数を変更しようとしました。

処置: システム変数は変更できません。

レベル: 99

トリガー: ON-ERROR

FRM-40828: CALLファンクションかCALLQRYファンクションが無効な変数を参照しました。

原因: アプリケーションの設計エラーです。CALLまたはCALLQRYファンクション・コードに無効な変数参照が含まれています。

処置: 文を修正してください。

レベル: 99

トリガー: なし

FRM-40831: 切捨てが発生しました。フィールド: %sの値が長すぎます。

原因: アプリケーションの設計エラーです。トリガー、問合せまたはユーザー・イグジットが項目に値を読み込みましたが、項目が値全体の長さを保持できません。項目が値を切り捨てました。

処置: 切り捨てを回避するため、ターゲット項目の項目長を増やします。

レベル: 15

トリガー: ON-ERROR

FRM-40832: 変数FORMS_USEREXITSが設定されていません。ユーザー・イグジット%sが実行されませんでした。

原因: FormsのUSER_EXITビルトインを機能させるには、FORMS_USEREXITSを設定する必要があります。

処置: FORMS_USEREXITSを、ユーザー・イグジット記号を定義するダイナミック・ライブラリに設定します。ライブラリのリスト順に検索が実行されます。

レベル: 20

トリガー: ON-ERROR

FRM-40833: ダイナミック・ユーザー・イグジット・ライブラリを完全にロードできませんでした。ユーザー・イグジット%sが実行されませんでした。

原因: ユーザー・イグジット記号が見つからず、一部のダイナミック・ユーザー・イグジット・ライブラリを開けませんでした。

処置: FORMS_USEREXITSにリストされたユーザー・イグジット・ライブラリがすべて正しく、使用可能であることを確認します。

レベル: 20

トリガー: ON-ERROR

FRM-40834: 項目%s.%sの値が、結果セット列に対して長すぎます(実際: %dバイト、最大: %dバイト)。

原因: ストアド・プロシージャに基づくブロックで、長さのセマンティクスがBYTEで指定されている結果セット列に対して、アプリケーションが制限を超えるバイト数の値で挿入もしくは更新の操作を行おうとしました。値は、ブロック内のアイテムのインスタンスから取得されました。挿入または更新は中止されました。

処置: ブロックのキャラクタ・データタイプのアイテムの最大長セマンティクスおよびデータ長セマンティクスが、結果セット列のストアド・プロシージャでの定義に合致しているかどうかを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-40835: 項目%s.%sの値が、結果セット列に対して長すぎます(実際: %d文字、最大: %d文字)。

原因: ストアド・プロシージャに基づくブロックで、長さのセマンティクスがCHARで指定されている結果セット列に対して、アプリケーションが制限を超える文字数の値で挿入もしくは更新の操作を行おうとしました。値は、ブロック内のアイテムのインスタンスから取得されました。挿入または更新は中止されました。

処置: ブロックのキャラクタ・データタイプのアイテムの最大長セマンティクスおよびデータ長セマンティクスが、結果セット列のストアド・プロシージャでの定義に合致しているかどうかを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-40900: レコードを挿入、更新またはフェッチするためのレコード・バッファを割り当てられません。操作は中止されました。

原因: レコードの挿入、更新またはフェッチには、メイン・メモリーもしくは一時レコード・バッファ・ファイルのスペースが必要ですが、メイン・メモリーまたはディスク・スペースが不足していました。詳細は先のメッセージ、FRM-41839 (一時レコード・バッファ・ファイルのI/Oエラー)、FRM-41840 (メモリーの不足)、FRM-41847 (一時レコード・バッファ・ファイルのサイズ制限の超過)またはFRM-41850 (アーカイブされたレコードのメモリーしきい値の超過)で知ることができます

処置: 先のメッセージ、FRM-41839、FRM-41840、FRM-41847またはFRM-41850を参照してください。

レベル: 99

トリガー: ON-MESSAGE

FRM-40901: 注意:この問合せのすべてまたは一部を記憶しておくだけのメモリーがありません。

原因: Formsランタイムが問合せを保存しようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40902: SQL文が大きすぎます。

原因: アプリケーションの設計エラーです。フォームの設計に、2048文字より長いSQLコマンドがあります。

処置: SQLコマンドを短縮します。

レベル: 99

トリガー: ON-ERROR

FRM-40903: 出力ファイルを作成できません。

原因: [Print Screen]を押しましたが、画面の内容は、次のいずれかの理由によりファイルに書き込まれませんでした。

1. 無効なファイル名が入力されました。

2. オペレーティング・システムによりファイルを作成する権限が与えられていません。

3. ディスク容量またはディレクトリ容量が足りません。

処置: 入力したファイル名をチェックし、必要に応じて訂正します。その他のヘルプが必要な場合は、システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40904: プログラム・エラー:レコードで不明な操作が行われました。

原因: これは内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40905: ディスク上にこれ以上レコードをバッファリングできません。

原因: これは内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: なし

FRM-40906: 致命的エラー:バッファリングされたレコードをディスクに書き込めません。

原因: バッファリングされたレコードのディスクへの書込み中に内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40907: 致命的エラー:ディスクから読み込めません。

原因: バッファリングされたレコードのディスクからの読取り中に内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40908: RAM内部エラー: %s

原因: フォームの内部レコード・マネージャ内で内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 20

トリガー: ON-ERROR

FRM-40909: 内部エラー: 不明エラー %d。

原因: これは内部エラーです。Formsランタイムは不明なエラー・メッセージを発行しようとしました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: なし

FRM-40911: 順序番号生成エラーのため、レコードは作成されませんでした。

原因: これは内部エラーです。順序番号オブジェクトが存在しない、デザイナに順序番号オブジェクトに対する権限がないなどの致命的データベース・エラーが発生しました。

処置: データベース管理者に連絡してください。データベース管理者が問題を解決できず、引き続き問題が発生する場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40912: WHEN-NEW-RECORDトリガーに失敗したのでレコードは作成されませんでした。

原因: そのトリガー失敗の原因となったWhen-New-Recordトリガー内でランタイム・エラーが発生しました。新規レコードは作成されませんでした。

処置: データベース管理者に連絡してください。データベース管理者が問題を解決できず、引き続き問題が発生する場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40913: 値リストが最大数を超えました。いくつかの値が表示されませんでした。

原因: アプリケーションの設計エラーです。現行の値リストのすべてのレコードを返せませんでした。

処置: 値リストに返されるレコードが32,767件以下となるよう指定します。

レベル: 25

トリガー: ON-ERROR

FRM-40914: メモリー割当てエラー:トランザクションを完了できません。

原因: Formsランタイムがトランザクションを完了しようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40915: メモリー割当てエラー:トリガー: %sを実行できません。

原因: Formsランタイムがトリガーを実行しようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40916: メモリー割当てエラー:問合せを実行できません。

原因: Formsランタイムが問合せを実行しようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40917: メモリー割当てエラー:レコードをロックできません。

原因: Formsランタイムがレコードをロックしようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40919: SQL文の実行で内部エラー: %dが発生しました。

原因: Oracle Formsで実行しようとしたSQL文にエラーが発生しました。

処置: 最後のSQL文をチェックします。

レベル: 25

トリガー: ON-ERROR

FRM-40920: ビューを作成できません。システム・リソースが不足しています。

原因: ご使用の環境またはアプリケーション内の問題により、ビューを作成できませんでした。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40921: 項目: %sを作成できません。

原因: ご使用の環境またはアプリケーション内の問題により、項目を作成できませんでした。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-40922: OLEエラーが発生しました: 0x%x

原因: ビルトインによってOLEまたはOLE関連のファンクションがコールされましたが失敗しました。

処置: OLEマニュアルでエラー番号を調べて詳細を確認する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-40923: このプラットフォームではOLEがサポートされていません。

原因: OLEサポートを必要とするビルトインがコールされましたが、プラットフォームではOLEがサポートされていません。

処置: OLEがサポートされていないプラットフォームでは、OLE関連のビルトインをコールしないでください。

レベル: 99

トリガー: ON-ERROR

FRM-40924: 指定した引数索引が無効です。

原因: 索引が現行のOLE引数スタックのサイズ制限を超えているOLE引数スタックから値を取得しようとしました。

処置: 引数索引は、1からFORMS_OLE.InitArgs()への最後のコールで指定された数値までの範囲です。

レベル: 99

トリガー: ON-ERROR

FRM-40925: OleArgを引数として初期化する空き領域がありません。

原因: 初期化されたOLE引数スタックに格納しようとする引数が多すぎます。

処置: FORMS_OLE.InitArgs()のコールで十分な空き領域を指定していることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-40926: OLEオブジェクトがNULLです。

原因: NULLのOLEオブジェクトは操作できません。

処置: NULLのOLEオブジェクトではFORMS_OLEビルトインをコールしないでください。

レベル: 99

トリガー: ON-ERROR

FRM-40927: 可変レコードが配列ではありません。

原因: 配列を含む可変レコードにアクセスしようとしましたが、このレコードには配列は含まれていませんでした。

処置: FORMS_OLE.Get_Dims()をコールすると、配列を含む可変レコードがあるか確認できます。配列の場合、このファンクションの戻り値は1以上です。

レベル: 99

トリガー: ON-ERROR

FRM-40928: 指定した配列索引が多すぎます。

原因: 配列がある可変レコードにアクセスしようとしましたが、指定された配列索引が多すぎます。

処置: FORMS_OLE.GET_Dims()から返された数と同じである、正しい数の配列索引を使用する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-40929: 指定した配列索引が少なすぎます。

原因: 配列がある可変レコードにアクセスしようとしましたが、指定された配列索引が少なすぎます。

処置: FORMS_OLE.GET_Dims()から返された数と同じである、正しい数の配列索引を使用する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-40930: 配列の添字が数値ではありません。

原因: 配列を保持する可変レコードにアクセスしようとしましたが、指定された配列索引が数値ではなく、ROWまたはCOLUMNでもありません。

処置: 有効な配列索引は数値のみであり、これは列により分離する必要があります。可変レコードから表にフェッチしている場合、表作成の間、行および列繰り返しのプレースホルダとしてROWおよびCOLUMNを使用できます。

レベル: 99

トリガー: ON-ERROR

FRM-40931: データ型がサポートされていないので、表を挿入できません。

原因: 列の1つがサポートされないデータ型を使用していたため、その表への移入に失敗しました。

処置: 列のデータ型は、整数、数字、文字列および日付に制限します。

レベル: 99

トリガー: ON-ERROR

FRM-40932: 表のデータ型がサポートされていないので、可変レコードを挿入できません。

原因: ソース表の列の1つにサポートされていないデータ型が使用されたため、可変レコードの挿入に失敗しました。

処置: 列のデータ型は、整数、数字、文字列および日付に制限します。

レベル: 99

トリガー: ON-ERROR

FRM-40933: データ型が正しくないので、表を挿入できません。

原因: ブロックのデータ型が表のデータ型と一致していないため、表への移入に失敗しました。

処置: 表のデータ型が、取り出されているブロックの列のデータ型と一致する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-40934: レコードが範囲外なので、表を挿入できません。

原因: 無効な開始または終了レコードが指定されたため、表への移入に失敗しました。

処置: start_recおよびend_recパラメータは、1と取出し可能なレコード数の間にする必要があります。end_recは、ALL_RECORDSと指定することもできます。

レベル: 99

トリガー: ON-ERROR

FRM-40935: オブジェクトがローカルに存在しません。

原因: 'kill_persistent'パラメータがFALSEに設定され、解放するオブジェクトがローカルに存在しないため、オブジェクトを解放できませんでした。

処置: 所有していないオブジェクトは解放しないでください。

レベル: 10

トリガー: ON-ERROR

FRM-41000: この機能は現在使用できません。

原因: 未定義のファンクション・キーを押しました。

処置: 「キー一覧表示」を押して、正しいファンクション・キーを確認します。

レベル: 5

トリガー: ON-ERROR

FRM-41001: この機能はこのデバイス上では使用できません。

原因: INSERT/REPLACEファンクションを実行しようとしました。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-ERROR

FRM-41002: 有効な値を選択してください。

原因: ブロック・メニューで無効な選択番号を入力しました。選択されたブロックは、このフォームに存在しません。

処置: 既存のブロックを選択します。

レベル: 10

トリガー: ON-ERROR

FRM-41003: この機能はここでは実行できません。

原因: 表を参照する機能を実行しようとしましたが、現行のブロックはどの表にも対応しません。

処置: 処置は必要ありません。要求された機能は、このブロックには実行できません。

レベル: 10

トリガー: ON-ERROR

FRM-41004: この機能はこのモードでは使用できません。

原因: このモードで動作しないファンクション・キーを押しました。

処置: 処置は必要ありません。

レベル: 10

トリガー: ON-ERROR

FRM-41005: 内部エラー:ファンクション・キーがインプリメントされていません。

原因: 無効なファンクション・キーをクリックしました。

処置: 処置は必要ありません。フォームの定義を変更しない限り、現行のコンテキストでこのファンクション・キーは使用できません。

レベル: 25

トリガー: ON-ERROR

FRM-41007: カーソルが有効な項目にありません。ファンクション・キーが無視されました。

原因: このファンクション・キーを押したとき、カーソルが有効項目にありませんでした。

処置: その項目内にカーソルを配置し、そのファンクション・キーをもう一度押します。

レベル: 10

トリガー: ON-ERROR

FRM-41008: 未定義のキーが押されました。%sを押して有効なキーのリストを表示してください。

原因: 未定義のファンクション・キーを押しました。

処置: 「キー一覧表示」を押して、正しいファンクション・キーを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41009: ファンクション・キーは使用できません。%sを押して有効なキーのリストを表示してください。

原因: 現在の環境では使用できないファンクション・キーを押しました。

処置: 「キー一覧表示」を押して、正しいファンクション・キーを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41010: 作業中項目の属性を設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM文が、現在の項目の「入力可能」プロパティをオフにしようとしました。

処置: 文を削除するか、トリガーを書き換えます。

レベル: 99

トリガー: ON-ERROR

FRM-41011: 未定義の可視属性です。

原因: アプリケーションの設計エラーです。ビルトインが、未定義の可視属性を設定しようとしました。

処置: 文を修正してください。

レベル: 99

トリガー: ON-ERROR

FRM-41012: 未定義の項目または変数が参照されました。

原因: アプリケーションの設計エラーです。NAME_IN文が、存在しない項目または可変レコードを参照しようとしました。

処置: 文を修正してください。

レベル: 99

トリガー: ON-ERROR

FRM-41013: 項目%s.%sに未定義のプロパティが指定されました。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、未定義のプロパティを指定しました。

処置: 文を修正してください。

レベル: 99

トリガー: ON-ERROR

FRM-41014: NULLのキャンバス項目%s.%sのプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、NULLキャンバス項目のプロパティを変更しようとしました。

処置: 項目のキャンバスを指定するか、または文を削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41015: 現行項目%s.%sのENTERABLEプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、現在の項目の「入力可能」プロパティを変更しようとしました。

処置: 文を修正してください。

レベル: 99

トリガー: ON-ERROR

FRM-41016: 現行項目%s.%sのDISPLAYEDプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、現在の項目の「表示」プロパティを変更しようとしました。

処置: 文を修正してください。

レベル: 99

トリガー: ON-ERROR

FRM-41017: 無効項目%s.%sのUPDATE ALLOWEDプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、入力できない項目の「更新可」プロパティをオンに設定しようとしました。

処置: 項目の「更新可」プロパティをオンに設定するには、この項目の「入力可能」プロパティもオンに設定する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-41018: 無効項目%s.%sのUPDATE_NULLプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、入力できない項目の「NULLの場合、更新」プロパティをオンに設定しようとしました。

処置: 項目の「NULLの場合、更新」プロパティをオンに設定するには、この項目の「入力可能」プロパティもオンに設定する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-41019: 無効項目%s.%sのREQUIREDプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、入力できない項目の「必須」プロパティをオンに設定しようとしました。

処置: 項目の「必須」プロパティをオンに設定するには、この項目の「入力可能」プロパティもオンに設定する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-41020: 非表示項目%s.%sのENTERABLEプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、表示不可項目の「入力可能」プロパティをオンに設定しようとしました。

処置: 項目の「入力可能」プロパティをオンに設定するには、この項目の「表示」プロパティもオンに設定する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-41021: 非表示項目%s.%sのQUERYABLEプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、表示不可項目の「問合せ可」プロパティをオンに設定しようとしました。

処置: 項目の「問合せ可」プロパティをオンに設定するには、この項目の「表示」プロパティもオンに設定する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-41022: 更新不可項目%s.%sのREQUIREDプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、更新不可項目の「必須」プロパティをオンに設定しようとしました。

処置: 項目の「必須」プロパティをオンに設定するには、この項目の「更新可」プロパティまたは「NULLの場合、更新」プロパティもオンに設定する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-41023: 保護項目%s.%sのUPDATE ALLOWEDプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、ユーザーに更新権限のないデータベース項目の「更新可」プロパティを変更しようとしました。

処置: SET_ITEM文を訂正するか、そのユーザーにその列の更新権限を付与します。

レベル: 99

トリガー: ON-ERROR

FRM-41024: 保護項目%s.%sのUPDATE_NULLプロパティは設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、ユーザーに更新権限のないデータベース項目の「NULLの場合、更新」プロパティを変更しようとしました。

処置: SET_ITEM文を訂正するか、そのユーザーにその列の更新権限を付与します。

レベル: 99

トリガー: ON-ERROR

FRM-41025: ページ番号%dは存在しません。

原因: アプリケーションの設計エラーです。存在しないページに対し操作を実行しようとしました。

処置: ページ関連のビルトインに渡す引数をチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41026: フィールドが操作を認識しません。

原因: 特定の項目タイプに対して無効な操作を実行しようとしました。

処置: 項目に対して無効な操作を実行しないでください。

レベル: 99

トリガー: ON-ERROR

FRM-41027: このブロックに主キーを定義しなければなりません。

原因: ブロック内に主キー項目がなく、次のいずれかの状況が発生しました。

1. ブロックに対し主キー・オプションの「Key_Mode」プロパティの設定が試みられました。

2. 「Key_Mode」プロパティが「自動」に設定されており、接続中のデータソースがUNIQUEキー・モードをサポートしていません。

処置: ブロックに1つ以上の主キー項目を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41028: プロパティが無効です。

原因: GetまたはSetプロパティ・ビルトインに無効なプロパティ定数を渡しました。

処置: 引数を検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41029: パラメータが無効です。

原因: フォーム、ブロック、項目、レコードのプロパティに無効な値を設定しようとしました。

処置: SET_FORM_PROPERTY、SET_BLOCK_PROPERTY、SET_ITEM_PROPERTYまたはSET_RECORD_PROPERTYの引数を検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41030: 項目「%s.%s」のITEM_LENGTHがリセットできません。

原因: アプリケーションの設計エラーです。固定長項目の長さを変更しようとしました。

処置: その項目が最大必須長であることを静的に宣言するか、項目タイプを変更します。

レベル: 99

トリガー: ON-ERROR

FRM-41031: 割り当てられたバッファより大きいITEM_LENGTHはリセットできません。

原因: アプリケーションの設計エラーです。割り当たられたバッファより長いITEM_LENGTHにリセットしようとしました。

処置: フォームに定義されている項目長を増やします。

レベル: 99

トリガー: ON-ERROR

FRM-41032: 現行項目%s.%sのENABLEDプロパティは設定できません。

原因: SET_ITEM_PROPERTYのコールが、現在の項目の「有効」プロパティを設定しようとしました。

処置: SET_ITEM_PROPERTYのコールを訂正するか、他の項目にナビゲートしてから、「有効」プロパティを設定します。

レベル: 99

トリガー: ON-ERROR

FRM-41033: 非表示項目%s.%sのENABLEDプロパティは設定できません。

原因: SET_ITEM_PROPERTYのコールが、表示不可項目の「有効」プロパティを設定しようとしました。

処置: まずその項目にナビゲートしてから、SET_ITEM_PROPERTYのコールで「有効」プロパティを設定します。

レベル: 99

トリガー: ON-ERROR

FRM-41034: 非表示項目%s.%sのNAVIGABLEプロパティは設定できません。

原因: SET_ITEM_PROPERTYのコールが、表示不可項目の「ナビゲート可能」プロパティを設定しようとしました。

処置: まずその項目にナビゲートしてから、SET_ITEM_PROPERTYのコールで「ナビゲート可能」プロパティを設定します。

レベル: 99

トリガー: ON-ERROR

FRM-41035: 無効項目%s.%sのNAVIGABLEプロパティは設定できません。

原因: SET_ITEM_PROPERTYのコールが、無効項目の「ナビゲート可能」プロパティを設定しようとしました。

処置: まず、SET_ITEM_PROPERTYのコールでその項目の「有効」プロパティを設定します。次に、もう1度SET_ITEM_PROPERTYをコールしてその項目の「ナビゲート可能」プロパティを設定します。

レベル: 99

トリガー: ON-ERROR

FRM-41036: 問合せできないチェックボックスは変更できません。

原因: 問合せできないチェック・ボックスを変更しようとしました。

処置: 「問合せ可」プロパティをオンに設定すると、エンド・ユーザーは、チェック・ボックスをシフト・クリックして、その項目を使用可能または使用禁止にできます。

レベル: 99

トリガー: ON-ERROR

FRM-41037: 問合せできないラジオ・グループは変更できません。

原因: 問合せできないラジオ・グループを変更しようとしました。

処置: まず、SET_RADIO_BUTTON_PROPERTYをコールし、「有効」プロパティをTrueに設定します。

レベル: 99

トリガー: ON-ERROR

FRM-41038: 項目: %sはチェックボックスではありません。

原因: チェック・ボックスでない項目に対してCHECKBOX_CHECKEDのコールが行われました。

処置: CHECKBOX_CHECKEDのコールを訂正します。

レベル: 20

トリガー: ON-ERROR

FRM-41039: 警告ID %dが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_ALERTのコールが正しく実行されるか検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41040: ラジオ・ボタン: %sを見つけることができません。

原因: 無効なIDまたは名前がビルトイン・サブプログラムに渡されました。

処置: 入力した名前またはIDをチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-41041: フォーム・モジュールが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_FORMのコールが正しく実行されるか検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41042: OFM_ITEM.SET_PROPERTYにそのようなプロパティはありません。

原因: 無効な項目プロパティを設定しようとしました。

処置: 項目プロパティの設定方法をマニュアルでチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-41043: タイマーが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_TIMERのコールが正しく実行されるか検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41044: タイマー: %sの削除でエラーが発生しました。

原因: DELETE_TIMERビルトインの実行中にエラーが発生しました。

処置: ご使用のタイマーが正しく作成されているか検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41045: 項目が見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_ALERTのコールが正しく実行されるか検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41046: OFM_ITEM.SET_PROPERTYで使用されているパラメータが無効です。

原因: SET_ITEM_PROPERTYに無効なパラメータが渡されました。

処置: SET_ITEM_PROPERTYの有効なパラメータを確認し、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-41047: 問合せ入力モードにある現行ブロックからナビゲートすることはできません。

原因: 問合せ入力モードにある現行のブロックからナビゲートしようとしました。

処置: 問合せ入力モードに入る前に操作を実行します。

レベル: 99

トリガー: ON-ERROR

FRM-41048: プロシージャ: %sはトリガー: %sでは無効です。

原因: このプロシージャは、指定したトリガーからコールされた場合には無効です。このプロシージャは、ナビゲート中に起動するトリガーからはコールできない制限プロシージャでも構いません。

処置: 無効なトリガーを訂正します。

レベル: 20

トリガー: ON-ERROR

FRM-41049: このレコードは削除できません。

原因: 削除が許可されていないブロック上でレコードを削除しようとしました。

処置: 「削除可」プロパティをTrueに設定しないかぎり、このブロック内のレコードを削除しないでください。

レベル: 10

トリガー: ON-ERROR

FRM-41050: このレコードは更新できません。

原因: 更新が許可されていないブロック上でレコードを更新しようとしました。

処置: 「更新可」プロパティをTrueに設定しないかぎり、このブロック内のレコードを更新しないでください。

レベル: 10

トリガー: ON-ERROR

FRM-41051: ここではレコードの作成はできません。

原因: 挿入が許可されていないブロック上でレコードを作成しようとしました。

処置: 「挿入可能」プロパティをTrueに設定しないかぎり、新規レコードを作成したりこのブロックに挿入したりしないでください。

レベル: 10

トリガー: ON-ERROR

FRM-41052: ウィンドウが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_WINDOWのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41053: キャンバスが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_CANVASのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41054: OFM_RECORD.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないレコード・プロパティを取得しようとしました。

処置: プロパティが有効かどうか、GET_RECORD_PROPERTYのコールを検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41055: OFM_RECORD.SET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないレコード・プロパティを設定しようとしました。

処置: プロパティが有効かどうか、SET_RECORD_PROPERTYのコールを検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41056: ブロックが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_BLOCKのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41057: OFM_VIEW.SET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないビュー・プロパティを設定しようとしました。

処置: プロパティが有効かどうか、SET_VIEW_PROPERTYのコールを検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41058: OFM_ITEM.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しない項目プロパティを取得しようとしました。

処置: プロパティが有効かどうか、GET_ITEM_PROPERTYのコールを検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41059: OFM_CANVAS.SET_PROPERTYのにはそのようなプロパティはありません。

原因: 存在しないキャンバス・プロパティを設定しようとしました。

処置: プロパティが有効かどうか、SET_CANVAS_PROPERTYのコールを検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41060: 1つしかないキー項目のみの「主キー」プロパティを使用不可にすることはできません。

原因: 次のいずれかの状況で、ブロック上の最後の主キー項目の「主キー」プロパティを無効にしようとしました。

1. 「主キー」プロパティ。

2. 主キーのキー・モード。

3. 接続中のデータベースがUNIQUEキー・モードをサポートしていません。

処置: まず、そのブロックの各プロパティを使用不可にします。

レベル: 20

トリガー: ON-ERROR

FRM-41061: OFM_WINDOW.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないウィンドウ・プロパティを取得しようとしました。

処置: プロパティが有効かどうか、GET_WINDOW_PROPERTYのコールを検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41062: エディタが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_EDITORのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41063: エディタを作成できません。

原因: Formsランタイムに使用可能なメモリーが不足しています。

処置: いくつかのウィンドウを閉じてからSHOW_EDITORのコールを再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41064: タイマー: %sを作成できません。識別子名が間違っています。

原因: 識別子名が無効です。

処置: タイマー名の構文が正しいかチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41065: メニューが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_MENUのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41066: OFM_FORM.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないフォーム・プロパティを取得しようとしました。

処置: プロパティが有効かどうか、GET_FORM_PROPERTYのコールを検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41067: メニュー項目が見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_MENU_ITEMのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41068: OFM_MENUITEM.SET_PROPERTYでエラーが発生しました。

原因: SET_MENU_ITEM_PROPERTYへのコールが無効です。

処置: 有効なパラメータを確認し、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41069: OFM_MENUITEM.GET_PROPERTYでエラーが発生しました。

原因: GET_MENU_ITEM_PROPERTYへのコールが無効です。

処置: 有効なパラメータを確認し、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41070: OFM_MENUITEM.SET_PROPERTYに不明なプロパティが設定されました。

原因: 存在しないメニュー項目プロパティを設定しようとしました。

処置: プロパティが有効かどうか、SET_MENU_ITEM_PROPERTYのコールを検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41071: OFM_MENUITEM.GET_PROPERTYに不明なプロパティが設定されました。

原因: 存在しないメニュー項目プロパティを取得しようとしました。

処置: プロパティが有効かどうか、GET_MENU_ITEM_PROPERTYのコールを検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41072: グループ: %sを作成できません。

原因: 原因は次のいずれかです。

1. SQL文で列名が重複しています。

2. レコード・グループ名が無効です。

3. 問合せが無効です。

処置: グループ名のチェック、またはSQL文の訂正、あるいはその両方を行います。

レベル: 20

トリガー: ON-ERROR

FRM-41073: グループが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_GROUPのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41074: グループ、または列が見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_GROUPまたはFIND_COLUMNのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41075: グループの削除でエラーが発生しました。

原因: DELETE_GROUPのコールに指定されたレコード・グループ名またはIDが無効であるか、そのレコード・グループが動的に作成されませんでした。

処置: レコード・グループ名またはIDをチェックし、指定されたレコード・グループが動的に作成されたことを確認します。

レベル: 20

トリガー: ON-ERROR

FRM-41076: グループの挿入でエラーが発生しました。

原因: 列名または表名が無効であるため問合せが失敗したか、その問合せおよびグループ列構造体が一致しません。

処置: POPULATE_GROUP_WITH_QUERYのコール内のSQL SELECT文をチェックします。

レベル: 20

トリガー: ON-ERROR

FRM-41077: グループ行の削除でエラーが発生しました。

原因: スタティック・レコード・グループからレコードを削除するためにDELETE_GROUP_ROWが使用できないか、指定した行番号が無効です。

処置: DELETE_GROUP_ROWのコールを訂正します。

レベル: 20

トリガー: ON-ERROR

FRM-41078: グループ選択の再設定中にエラーが発生しました。

原因: 指定されたレコード・グループ名またはIDが無効です。

処置: レコード・グループ名またはIDをチェックし、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41079: グループに列を追加中にエラーが発生しました。

原因: 原因は次のいずれかです。

1. すでに行があるグループには列を追加できません。

2. CHAR_COLUMNタイプの列の幅は、対応するデータベース列の幅よりも小さくすることはできません。

3. 存在しない、または無効なレコード・グループの名前が入力されました。

4. 存在しない、または無効な列の名前が入力されました。

5. CHAR、NUMBER、DATE以外の列タイプが入力されました。

処置: グループへの列の追加は、CREATE_GROUPのコールを使用してグループを作成した後でしか実行できません。そのグループにすでに行がある場合は、DELETE_GROUP_ROWでその行を削除してから、列を追加します。

レベル: 20

トリガー: ON-ERROR

FRM-41080: グループに行を追加中にエラーが発生しました。

原因: 原因は次のいずれかです。

1. 存在しないグループまたは列のないグループに行を追加しようとしました。

2. 存在しないレコード・グループ名を入力しました。

3. 範囲外または無効な行番号を指定しました。

処置: グループまたは行を作成してから再度実行します。ADD_GROUP_ROWへのコールをチェックして、レコード・グループ名および行番号が有効か確認します。

レベル: 20

トリガー: ON-ERROR

FRM-41081: 項目を移動できません。位置が無効です。

原因: キャンバス上の無効な位置に項目を移動しようとしました。

処置: SET_ITEM_PROPERTYのコールで選択した座標が有効か確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41082: 項目のサイズを変更できません。項目位置がキャンバス外になっています。

原因: SET_ITEM_PROPERTYのコールに指定した高さまたは幅、あるいはその両方が無効であるか、指定した高さまたは幅、あるいはその両方によって、項目がキャンバス外にはみ出しています。

処置: SET_ITEM_PROPERTYのコールを訂正します。

レベル: 99

トリガー: ON-ERROR

FRM-41083: Set_Form_Propertyにはそのようなプロパティはありません。

原因: 存在しないフォーム・プロパティを設定しようとしました。

処置: プロパティが有効かどうか、SET_FORM_PROPERTYのコールを検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41084: グループ・セルを獲得中にエラーが発生しました。

原因: GET_GROUP_CHAR_CELL、GET_GROUP_DATE_CELL、またはGET_GROUP_NUMBER_CELLのコールが無効です。

処置: 列型がそれぞれCHAR型、DATE型、またはNUMBER型であるか確認します。指定された行番号および列名の妥当性を検査します。

レベル: 20

トリガー: ON-ERROR

FRM-41085: グループ行カウントを獲得中にエラーが発生しました。

原因: GET_GROUP_ROW_COUNTへのコールが無効です。

処置: レコード・グループ名をチェックし、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41086: グループ選択カウントを獲得中にエラーが発生しました。

原因: 無効なレコード・グループ名を指定しました。GET_GROUP_SELECTION_COUNTへのコールが無効です。

処置: GET_GROUP_SELECTIONのコールを訂正します。

レベル: 20

トリガー: ON-ERROR

FRM-41087: グループ選択を獲得中にエラーが発生しました。

原因: 指定したレコード・グループ名または選択番号が無効です。GET_GROUP_SELECTIONのコールが無効です。

処置: GET_GROUP_SELECTIONのコールを訂正します。

レベル: 20

トリガー: ON-ERROR

FRM-41088: グループ選択を設定できません。

原因: 指定したレコード・グループ名、ID、または行番号が無効です。

処置: SET_GROUP_SELECTIONのコールを訂正します。

レベル: 20

トリガー: ON-ERROR

FRM-41089: ビューを移動できません。位置が無効です。

原因: SET_VIEW_PROPERTYのコールに指定されたx座標とy座標が無効です。

処置: 座標によって指定される位置がキャンバス上に存在するようにSET_VIEW_PROPERTYのコールを訂正します。

レベル: 99

トリガー: ON-ERROR

FRM-41090: go_item: %sの項目型が無効です。

原因: その項目にはナビゲートできません。

処置: その項目がナビゲート可能な項目であるか確認します。

レベル: 20

トリガー: ON-ERROR

FRM-41091: 値リストが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_LOVのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41092: ブロック: %sにレコードがありません。

原因: レコードが存在しないブロック上の項目に値を配置しようとしました。

処置: まずブロック内にレコードを配置します。

レベル: 20

トリガー: ON-ERROR

FRM-41093: 項目プロパティ: %sの設定でエラーが発生しました。

原因: 「ロック・レコード」を指定し、その項目がテキスト項目ではなかったか、「大/小文字区別なしの問合せ」を指定し、そのデータ型がALPHA型またはCHAR型ではありませんでした。

処置: 「ロック・レコード」の場合は、その項目がテキスト項目であることを確認します。「大/小文字区別なしの問合せ」を指定するときは、そのデータ型がALPHA型またはCHAR型であることを確認します。

レベル: 20

トリガー: ON-ERROR

FRM-41094: OFM_VIEW.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないビュー・プロパティを取得しようとしました。

処置: プロパティが有効かどうか、GET_VIEW_PROPERTYのコールを検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41095: OFM_CANVAS.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないキャンバス・プロパティを取得しようとしました。

処置: プロパティが有効かどうか、GET_CANVAS_PROPERTYのコールを検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41096: ビューをサイズ変更できません。サイズが無効です。

原因: このx座標とy座標ではビューがキャンバスの外に配置されます。

処置: x座標とy座標を修正します。

レベル: 99

トリガー: ON-ERROR

FRM-41097: キャンバスをサイズ変更できません。サイズが無効です。

原因: このx座標とy座標ではビューがウィンドウの外に配置されます。

処置: x座標とy座標を修正します。

レベル: 99

トリガー: ON-ERROR

FRM-41098: 内容表示の表示位置を変更できません。

原因: この表示位置プロパティは、スタック・キャンバス・ビューにのみ適用されます。

処置: SET_VIEW_PROPERTYのコールを訂正します。

レベル: 99

トリガー: ON-ERROR

FRM-41099: 内容表示のサイズを変更できません。

原因: 内容表示のサイズはウィンドウ・サイズに依存します。スタック・ビューのサイズのみ、SET_VIEW_PROPERTYを使用して変更できます。

処置: SET_VIEW_PROPERTYのコールを訂正します。

レベル: 99

トリガー: ON-ERROR

FRM-41100: リレーション: %sを見つけることができません。

原因: 無効なリレーションを使用して取得、設定または検索しようとしました。

処置: 引数が正しいか、ビルトインのコールをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41101: OFM_RELATION.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないリレーション・プロパティを取得しようとしました。

処置: プロパティが有効かどうか、GET_RELATION_PROPERTYのコールを検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41102: OFM_RELATION.SET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないリレーション・プロパティを設定しようとしました。

処置: プロパティが有効かどうか、SET_RELATION_PROPERTYのコールを検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41103: OFM_RELATION.SET_PROPERTYにはそのようなプロパティ値はありません。

原因: アプリケーションの設計エラーです。不適切なリレーション・プロパティの値がSET_RELATION_PROPERTYビルトインに渡されました。

処置: SET_RELATION_PROPERTYビルトインへのコールを修正し、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-41104: リレーションが見つかりません。IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_RELATIONのコールが正しく実行されるか検証します。

レベル: 20

トリガー: ON-ERROR

FRM-41105: 保存済み親レコードがなければ、レコードの問合せはできません。

原因: 最初にマスター・レコードを作成しないでディテール・レコードの問合せを試行しました。

処置: マスター・レコードを作成してから、ディテール・レコードの問合せを行います。

レベル: 10

トリガー: ON-ERROR

FRM-41106: 親レコードがなければ、レコードの作成はできません。

原因: 最初にマスター・レコードを作成しないで新規ディテール・レコードの作成を試行しました。

処置: マスター・レコードを作成してから、ディテール・レコードを追加します。

レベル: 10

トリガー: ON-ERROR

FRM-41107: リレーションのマスター削除オプションが無効です。

原因: ディテール・ブロックに指定された問合せデータ・ソース・タイプまたはDMLデータ宛先タイプが無効です。

処置: ディテール・ブロックの問合せデータ・ソースとDMLデータ宛先のタイプが表であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41200: 統合エラー:製品が無効です。

原因: 統合時に指定した製品名が無効です。

処置: 統合パラメータをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41201: 統合エラー:通信モードは、SYNCHRONOUSまたはASYNCHRONOUSでなければなりません。

原因: RUN_REPORT_OBJECTに指定した通信モードが無効です。

処置: RUN_REPORT_OBJECTのパラメータをチェックして、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41202: 統合エラー:パラメータ・リスト: %sには、パラメータがありません。

原因: パラメータ・リストに引数がありません。

処置: 指定したパラメータ・リストのパラメータをチェックします。

レベル: 20

トリガー: ON-ERROR

FRM-41203: 統合エラー:パラメータ・リストIDが無効です。

原因: 渡されたパラメータ・リストIDが無効です。

処置: パラメータ・リストIDをチェックし、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41204: 統合エラー:メモリー割当てエラーが発生しました。

原因: 内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 20

トリガー: ON-ERROR

FRM-41208: 統合エラー:実行モードはBATCHまたはRUNTIMEでなければなりません。

原因: RUN_REPORT_OBJECTに指定した実行モードが無効です。

処置: execmodeパラメータにBATCHまたはRUNTIMEのいずれかを指定します。

レベル: 20

トリガー: ON-ERROR

FRM-41209: 統合エラー:文書位置はFILESYSTEMまたはDBでなければなりません。

原因: 他の製品との統合中に指定された文書位置が無効です。

処置: locationパラメータにFILESYSTEMまたはDBのいずれかを指定します。

レベル: 20

トリガー: ON-ERROR

FRM-41211: 統合エラー:SSLは、別製品の実行に失敗しました。

原因: 別製品の実行時に問題が検出されました。

処置: RUN_REPORT_OBJECTビルトインをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41212: 統合エラー:データ交換の通信モードが無効です。

原因: 非同期RUN_REPORT_OBJECTを指定しました。

処置: 同期RUN_REPORT_OBJECT通信モードに変更します。

レベル: 20

トリガー: ON-ERROR

FRM-41213: Reportsサーバー: %sに接続できません。

原因: 指定されたReports Serverへの接続時に問題が発生しました。

処置: Reports Serverをチェックし、正常に稼働していることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41214: レポートを実行できません

原因: Reports Serverが指定レポートを実行できませんでした。

処置: Reports Serverをチェックし、正常に稼働していることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41215: サーバー名またはジョブIDが無効です。

原因: ビルトインrun_reportからの戻り値のデコード時に問題が発生しました。

処置: ビルトインrun_reportからの戻り値は、別のレポート・ビルトインに渡されるまで変更しないでください。

レベル: 99

トリガー: ON-ERROR

FRM-41216: ジョブを取り消せません。

原因: レポート・ジョブの取消し時に問題が発生しました。

処置: Reports Serverをチェックして、指定されたジョブが存在するか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41217: レポートのジョブ・ステータスを取得できません。

原因: 指定されたレポート・ジョブのレポート・ステータス取得時に問題が発生しました。

処置: Reports Serverをチェックして、指定されたジョブが存在するか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41218: レポート出力をコピーできません。

原因: 指定されたレポート・ジョブのレポート出力のコピー時に問題が発生しました。

処置: Reports Serverをチェックして、指定された出力ファイルが存在するか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41219: レポートが見つかりません。IDが無効です。

原因: ユーザーの指定したレポート・オブジェクト名が無効です。

処置: フォームをチェックし、そのレポート・オブジェクトが存在するか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41220: ユーザーの認証に失敗しました。

原因: Webレポートの表示に失敗しました。

処置: ユーザー資格証明が使用中のアイデンティティ・ストアに対して有効かどうかをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41221: アイデンティティ・ストアへの接続に失敗しました。

原因: アイデンティティ・ストアの認証サービスへの接続に失敗しました。

処置: 認証サービスが実行中かどうかをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41222: このレポート・オブジェクト・タイプのプロパティが無効です。

原因: レポートのプロパティに不一致がありました。

処置: 操作しようとしたプロパティが正しいレポート・オブジェクト・タイプに属しているようにしてください。レポート・オブジェクト・タイプ「ORAREPORTS」に属するプロパティを、レポート・オブジェクト・タイプ「ORABIP」に対して操作しようとしたり、その逆の操作をしようとした場合、プロパティの不一致になります。

レベル: 99

トリガー: ON-ERROR

FRM-41223: BI Publisher統合エラーです。

原因: BI Publisherの呼び出し中にエラーが発生しました。

処置: システム管理者に連絡してください。

レベル: 99

トリガー ON-ERROR

FRM-41224: BI Publisherサービスの場所が無効です。

原因: サービスの場所として無効な値が指定されています。

処置: サービスの場所のプロパティとして指定されている値を完全なものにしてください。

レベル: 99

トリガー: ON-ERROR

FRM-41225: SSLが必須ですが、サービスの場所が非SSLです。

原因: SSL接続のプロパティが設定された時点で、指定されていたサービスの場所が非SSLでした。

処置: SSL接続が構成される時点で、SSLのサービスの場所が指定されているようにしてください。システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41226: BI Publisherサーバーでアクセスが拒否されました。

原因: BI Publisherサーバーへのアクセス権限がありません。

処置: BI Publisherのユーザー名とパスワードが正しいことを確認してください。システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41227: 無効なパラメータが使用されていることがBI Publisherから報告されました。

原因: BI Publisherの呼び出し時にInvalidParametersExceptionが返されました。

処置: すべてのレポート・プロパティが正しいことを確認してください。

レベル: 99

トリガー: ON-ERROR

FRM-41228: BI Publisherサーバーで操作に失敗しました。

処置: BI Publisherサーバーで操作を実行する際にエラーが発生しました。

処置: システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41229: 出力ファイル名がありません。

原因: 出力レポートをコピーする操作を呼び出した際に、ファイル名が指定されていませんでした。

処置: 出力レポートをコピーする操作の際に、有効なファイル名が指定されるようにしてください。

レベル: 99

トリガー: ON-ERROR

FRM-41230: ファイルが見つからない例外が発生しました。

原因: 出力レポートをコピーしようとした際に、FileNotFoundExceptionがスローされました。

処置: 指定されたファイル名に対するファイル作成権限があることを確認してください。システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41231: レポート出力の書込みに失敗しました。

原因: レポート出力の書込みをしようとした際に、IOExceptionがスローされました。

処置: 書込み権限とディスクのスペースを確認してください。システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41232: JVMの初期化に失敗しました。

原因: BI Publisherの呼び出しに必要なJVMを初期化できませんでした。

処置: システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41300: OFM_RADIOBUTTON.SET_PROPERTYで使用されているパラメータが無効です。

原因: 存在しないパラメータを指定しました。

処置: 有効なパラメータのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41301: OFM_VIEW.SET_PROPERTYで使用されているパラメータが無効です。

原因: 存在しないパラメータを指定しました。

処置: 有効なパラメータのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41302: OFM_CANVAS.SET_PROPERTYで使用されているパラメータが無効です。

原因: 存在しないパラメータを指定しました。

処置: 有効なパラメータのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41303: OFM_WINDOW.SET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないプロパティを指定しました。

処置: 有効なプロパティのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41304: OFM_BLOCK.SET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないプロパティを指定しました。

処置: 有効なプロパティのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41305: OFM_BLOCK.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しないプロパティを指定しました。

処置: 有効なプロパティのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41306: OFM_WINDOW.SET_PROPERTYで使用されているパラメータが無効です。

原因: 指定したパラメータが無効です。

処置: 有効なパラメータのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41307: OFM_BLOCK.SET_PROPERTYで使用されているパラメータが無効です。

原因: 指定したパラメータが無効です。

処置: 有効なパラメータのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41308: グループ選択の設定解除でエラーが発生しました。

原因: 選択されていない、またはレコード・グループ内に存在しないレコードまたはレコードのサブセットを選択解除しようとしました。

処置: そのグループにあるレコードをチェックします。

レベル: 20

トリガー: ON-ERROR

FRM-41309: OFM_RADIOBUTTON.GET_PROPERTYにはそのようなプロパティはありません。

原因: 無効なプロパティを指定しました。

処置: 有効なプロパティのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41310: OFM_RADIOBUTTON.SET_PROPERTYにはそのようなプロパティはありません。

原因: 無効なプロパティを指定しました。

処置: 有効なプロパティのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41311: %sの引数、または引数の順序が無効です。

原因: 渡した引数リストが不正です。

処置: 有効な引数のリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41312: ブロックに少なくとも1つの書込み可能な項目が必要です。

原因: 「挿入可能」または「更新可」プロパティがTrueに設定されているブロックでは、1つ以上の書込み可能な項目が必要です。「導出列」プロパティまたは「問合せのみ」プロパティのいずれかをTrueに設定することで、ブロックに残っている唯一の実表項目を書込み不能にしようとしました。

処置: 各項目の「導出列」または「問合せ可」をFalseに設定するのではなく、そのブロックの「挿入可能」または「更新可」をFalseに設定します。

レベル: 10

トリガー: ON-ERROR

FRM-41313: OFM_ALERT.SET_PROPERTYにはそのようなプロパティはありません。

原因: SET_ALERT_PROPERTYに無効なプロパティが指定されました。

処置: 警告プロパティに有効な値を入力します。

レベル: 99

トリガー: ON-ERROR

FRM-41314: 現在の項目「%s.%s」の挿入可能プロパティが設定できません。

原因: 現在の項目に「挿入可能」プロパティを設定しようとしました。

処置: 「挿入可能」プロパティは現在以外の項目にのみ有効です。その項目が現在の項目でないことを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41315: 非表示項目「%s.%s」の挿入可能プロパティが設定できません。

原因: 非表示項目に「挿入可能」プロパティを設定しようとしました。

処置: 「挿入可能」プロパティは表示項目にのみ有効です。その項目が表示されるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41316: 実行不可項目「%s.%s」の挿入可能プロパティが設定できません。

原因: 実行不可項目に「挿入可能」プロパティを設定しようとしました。

処置: 「挿入可能」プロパティは使用可能項目にのみ有効です。その項目が使用可能か確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41317: 項目は、ラジオ・ボタン: %sではありません。

原因: ラジオ・ボタンでない項目でラジオ・ボタン・ビルトインを使用しようとしました。

処置: その項目がラジオ・ボタンであることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41318: 項目: %sはVBX項目ではありません。

原因: VBX項目でない項目でVBXビルトインを使用しようとしました。

処置: その項目がVBX項目であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41319: 指定プロパティ: %s (VBX項目: %s用)が無効です。

原因: 指定されたVBX項目に対して無効なプロパティを取得または設定しようとしました。

処置: そのプロパティが指定VBX項目に有効であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41320: プロパティ: %s (VBX項目: %s用)を取得できません。

原因: VBX項目に対して有効なプロパティを取得できませんでした。

処置: 有効なプロパティのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41321: プロパティ: %s (VBX項目: %s用)を設定できません。

原因: VBX項目に対して有効なプロパティを設定できませんでした。

処置: 有効なプロパティのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41322: イベント: %s (VBX項目: %s用)が無効です。

原因: 指定されたVBX項目に対して無効なイベントを取得または設定しようとしました。

処置: イベントが指定されたVBX項目に対して有効であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41323: イベント: %s (VBX項目: %s用)のパラメータが多すぎます。

原因: VBX項目のイベント名に対して指定したパラメータが多すぎます。

処置: そのイベントに対して有効な数のパラメータが指定されていることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41324: イベント: %s (VBX項目: %s用)のパラメータが少なすぎます。

原因: VBX項目のイベント名に対して指定したパラメータが少なすぎます。

処置: そのイベントに対して有効な数のパラメータが指定されていることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41325: VBXイベントのパラメータは文字列でなければなりません。

原因: VBXイベント・パラメータが文字列ではありません。

処置: VBXイベント・パラメータが文字列であるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41326: イベント: %s (VBX項目: %s用)の解放に失敗しました。

原因: VBXイベントが失敗しました。

処置: イベントが指定されたVBX項目に対して有効であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41327: VBX項目: %sのデフォルト・プロパティの取得に失敗しました。

原因: VBX.GET_VALUE_PROPERTYビルトインに失敗しました。

処置: VBコントロール値プロパティに初期値が割り当てられているか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41328: VBX項目: %sのデフォルト・プロパティの設定に失敗しました。

原因: VBX.SET_VALUE_PROPERTYビルトインに失敗しました。

処置: 有効なプロパティ値を設定しているか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41329: 項目: %sはリスト項目ではありません。

原因: リストではない項目にリスト要素を追加しようとしました。

処置: 項目がリスト項目であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41330: リスト要素を%sに挿入できませんでした。

原因: ブロックに問合せまたは変更されたレコードが含まれているときに、他の値要素を挿入しようとしました。

処置: 詳細は、<a href="../builta_c/addliste.html">ADD_LIST_ELEMENT Built-in</a>の制限に関するヘルプを参照してください。

レベル: 99

トリガー: ON-ERROR

FRM-41331: %sから要素を削除できませんでした。

原因: 原因は次のいずれかです。

ブロックに問合せまたは変更されたレコードが含まれているときに、他の値要素を削除しようとしました。

ブロックに問合せまたは変更されたレコードが含まれているときに、他の値要素を含まないリストから要素を削除しようとしました。

処置: 詳細は、<a href="../builta_c/clearlis.html">CLEAR_LIST</a>および<a href="../builtd_f/dellsele.html">DELETE_LIST_ELEMENT</a>の制限に関するヘルプを参照してください。

レベル: 99

トリガー: ON-ERROR

FRM-41332: リストの要素がインデックスの範囲外です。

原因: Add_List_Elementビルトインに無効なインデックス(例: 負の数)が指定されています。

処置: Add_List_Elementのコール内でインデックスを訂正します。

レベル: 99

トリガー: ON-ERROR

FRM-41333: リスト要素の値を変換できません。

原因: リスト要素値を文字列に解決できませんでした。

処置: リスト要素が文字列であるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41334: リストにするレコード・グループが無効です。

原因: 存在しないレコード・グループからリストに移入しようとしました。

処置: そのレコード・グループが存在するか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41335: OFM_LIST.POPULATE: 列1の列タイプが無効です。

原因: このレコード・グループには同じタイプの列がありません。

処置: レコード・グループに同じタイプの列があるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41336: OFM_LIST.POPULATE: 列2の列タイプが無効です。

原因: このレコード・グループには同じタイプの列がありません。

処置: レコード・グループに同じタイプの列があるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41337: レコード・グループからリストを作成できません。

原因: レコード・グループが無効であるか、そのリスト項目が各要素を削除および追加するための要件を満たしていません。

処置: そのレコード・グループが有効であることを確認します。リスト要素の削除と追加の詳細は、<a href="../builtd_f/dellsele.html">DELETE_LIST_ELEMENT</a>および<a href="../builta_c/addliste.html">ADD_LIST_ELEMENT</a>の制限に関するヘルプを参照してください。

レベル: 99

トリガー: ON-ERROR

FRM-41338: リストからレコード・グループを抽出できません。

原因: レコード・グループが無効です。

処置: そのレコード・グループが有効であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41339: リストを消去できません。

原因: Formsランタイムがリストを消去しようとしましたが、メモリーの割当てに失敗しました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41340: OFM_APPLICATION.SET_PROPERTYにはそのようなプロパティおよび値はありません。

原因: 無効なプロパティまたは無効なプロパティ値(あるいはその両方)を指定しました。

処置: 有効なプロパティまたは有効な値(あるいはその両方)を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41341: 指定されたカーソル型: %sは無効です。

原因: 事前定義済のカーソル型の集合があり、無効なカーソル型が指定されました。

処置: 有効なカーソル型を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41342: VBXイベント: %sに指定されたパラメータ: %sが無効です。

原因: VBXイベントに無効なパラメータを指定しました。

処置: パラメータ・タイプをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41343: 項目: %sは、OLEオブジェクトではありません。

原因: OLEビルトインに渡された項目が無効です。

処置: 有効なOLE項目を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41344: OLEオブジェクトは、現レコード中の%s用には定義されていません。

原因: 空のOLEコンテナが定義されています。

処置: OLEコンテナに常駐するOLEオブジェクトを定義します。

レベル: 20

トリガー: ON-ERROR

FRM-41345: このサーバーのVERB: %sが見つかりません。

原因: 無効なOLE verbを指定しました。

処置: 有効なOLE verbを指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41346: OLEオブジェクト: %sのVERBを確定できません。

原因: OLEサーバーと通信できませんでした。

処置: OLEサーバーを再インストールします。

レベル: 99

トリガー: ON-ERROR

FRM-41347: OLEオブジェクト: %sのVERB索引が無効です。

原因: verbカウントより大きい索引を指定しました。

処置: 索引値をチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41348: OLEサーバー・エラー: %s。

原因: OLEサーバーでエラーが検出されました。

処置: OLEサーバーからのメッセージに基づいてエラーの解決を試みます。

レベル: 99

トリガー: ON-ERROR

FRM-41349: OLEオブジェクト: %sは、VERBを実行できません; VERB ID: %d

原因: OLEオブジェクトでは、このverbが認識されません。

処置: 別のverbを実行します。

レベル: 99

トリガー: ON-ERROR

FRM-41350: OLEオブジェクトは、現在表示されていません。

原因: 起動されていないサーバーをクローズしようとしました。

処置: 現在アクティブでないレコード内でサーバーがアクティブかどうかを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41351: 現行フォームからはナビゲートできません。

原因: 非アクティブ・フォームにはナビゲートできません。

処置: ナビゲート先のフォームがアクティブであるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41352: 新規セッションの作成に失敗しました。

原因: 新規フォームを新しいセッションで開こうとしました。

処置: データベース・サーバーをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41353: 別の呼出しフォームを起動できません。

原因: 同等のフォームに進み、コール・フォームを実行しました。

処置: フォームのコール時、カーソルが同等のフォームにないか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41354: フォーム: %sを閉じることができません。

原因: フォームのクローズに失敗しました。

処置: フォームがオープンされていることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41355: フォーム: %sまでナビゲートできません。

原因: 非アクティブ・フォームにはナビゲートできません。

処置: ナビゲート先のフォームがアクティブであるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41356: メソッド: %s (VBX項目: %s用)が無効です。

原因: VBX項目に対して指定したメソッド名が無効です。

処置: VBX項目に対して有効なメソッド名を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41357: メソッド: %s (VBX項目: %s用)の引数の数が正しくありません。

原因: VBX項目のメソッドに指定した引数の数に誤りがあります。

処置: 引数の数が、VBX項目が期待するものであるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41358: メソッド: %s (VBX項目: %s用)は失敗しました。

原因: VBX項目に対して指定したメソッド名が無効です。

処置: VBX項目に対して有効なメソッド名を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41359: OFM_FORM.OPENセッション機能は使用できません。新規セッションを作成できません。

原因: データベース上で複数セッション機能が使用可能になっていません。

処置: Open_Formセッション機能は、マルチ・セッション可能なデータベースに対してのみ使用可能です。

レベル: 99

トリガー: ON-ERROR

FRM-41360: ウィンドウ: %sのOFM_WINDOW.SET_PROPERTYで、使用された値が無効です。

原因: ウィンドウ・プロパティ設定時に無効な値を使用しています。

処置: 有効なウィンドウ・プロパティ値を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41361: 問合せ入力モードでは現行のフォームから外へはナビゲートできません。

原因: 問合せ入力モードが選択されている状態で、オープン・フォーム使用時に他のフォームにナビゲートしようとしました。

処置: 問合せ入力モードを終了し、再試行します。

レベル: 10

トリガー: ON-ERROR

FRM-41362: OFM_ALERT.SET_BUTTON_PROPERTYには、そのようなプロパティはありません。

原因: Set_Alert_Button_Propertyに無効なプロパティを指定しました。

処置: Set_Alert_Button_Propertyに有効なプロパティを指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41363: OFM_LOV.SET_COLUMN_PROPERTYには、そのようなプロパティはありません。

原因: Set_LOV_Column_Propertyに無効なプロパティを指定しました。

処置: Set_LOV_Column_Propertyに有効なプロパティを指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41364: 値リスト: %sで指定された列数は無効です。

原因: 値リストに無効な列番号を指定しました。

処置: 値リストに有効な列番号を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41365: Set_TabPage_Propertyにはそのようなプロパティはありません。

原因: Set_TabPage_Propertyに無効なプロパティを指定しました。

処置: Set_TabPage_Propertyに有効なプロパティを指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41366: Get_TabPage_Propertyにはそのようなプロパティはありません。

原因: 無効なプロパティ・パラメータを指定しました。

処置: 有効なプロパティのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41367: タブ・ページが見つかりません: IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: FIND_TABPAGEのコールが正しく実行されるか検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41368: Set_TabPage_Propertyに使われているパラメータが無効です。

原因: 指定したパラメータが無効です。

処置: 有効なパラメータのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41369: 単一レコード・ブロックに第2レコードは挿入できません。

原因: ユーザー(またはアプリケーション)が、「単一レコード」プロパティが「TRUE」に設定されているブロックに第2レコードを挿入しようとしました。

処置: このようなブロックへはレコードを挿入しないでください。

レベル: 99

トリガー: ON-ERROR

FRM-41370: 計算項目: 「%s.%s」を変更できません。

原因: アプリケーションの設計エラーです。アプリケーションが、計算項目に値を割り当てようとしました。

処置: 計算項目が式項目である場合は、常にその計算式によって値が決定されます。式の変更が適切な場合もあります。また、計算項目を、様々なトリガー内で値が設定されている非計算制御項目に変更した方が適切な場合があります。

レベル: 99

トリガー: ON-ERROR

FRM-41371: 計算項目: 「%s.%s」のINSERT_ALLOWEDプロパティを設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、計算項目のINSERT_ALLOWEDプロパティにTRUEを設定しようとしました。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41372: 計算項目: 「%s.%s」のITEM_IS_VALIDプロパティを設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、計算項目のITEM_IS_VALIDプロパティにFALSEを設定しようとしました。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41373: 計算項目: %s.%sのOFM_RECORD.LOCK_RECORDプロパティを設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、計算項目のLOCK_RECORDプロパティにTRUEを設定しようとしました。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41374: 計算項目: 「%s.%s」のPRIMARY_KEYプロパティを設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、計算項目のPRIMARY_KEYプロパティにTRUEを設定しようとしました。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41375: 計算項目: 「%s.%s」のQUERYABLEプロパティを設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、計算項目のQUERYABLEプロパティにTRUEを設定しようとしました。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41376: 計算項目: 「%s.%s」のREQUIREDプロパティを設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、計算項目のREQUIREDプロパティにTRUEを設定しようとしました。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41377: 計算項目: 「%s.%s」のUPDATEABLEプロパティを設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、計算項目のUPDATEABLEプロパティにTRUEを設定しようとしました。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41378: 計算項目: 「%s.%s」のUPDATE_NULLプロパティを設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYビルトインが、計算項目のUPDATE_NULLプロパティにTRUEを設定しようとしました。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41379: 非式項目: 「%s.%s」を再計算できません。

原因: アプリケーションの設計エラーです。RECALCULATEビルトインが、式項目以外の項目を指定しました。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41380: ブロックに問合せデータ・ソースを設定できません。

原因: ブロックのデータ・ソースを動的に変更しようとしましたが失敗しました。

処置: フォームをチェックして、指定したブロックが制御ブロックではなく、ブロック・ステータスが新規であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41381: ブロックにDMLデータ・ターゲット・ソースを設定できません。

原因: ブロックのDMLデータ宛先名を動的に変更しようとしましたが失敗しました。

処置: フォームをチェックして、指定したブロックが制御ブロックではなく、ブロック・ステータスが新規であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41382: OFM_ITEM.GET_INSTANCE_PROPERTYにはそのようなプロパティはありません。

原因: アプリケーションの設計エラーです。GET_ITEM_INSTANCE_PROPERTYビルトインが無効なプロパティを指定しました。

処置: プロパティを、ビルトインでサポートされていると説明されているものに変更するか、ビルトインへの呼出しを削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41383: OFM_ITEM.SET_INSTANCE_PROPERTYにはそのようなプロパティはありません。

原因: アプリケーションの設計エラーです。SET_ITEM_INSTANCE_PROPERTYビルトインが無効なプロパティを指定しました。

処置: プロパティを、ビルトインでサポートされていると説明されているものに変更するか、ビルトインへの呼出しを削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41384: OFM_ITEM.SET_INSTANCE_PROPERTYに使われているパラメータが無効です。

原因: アプリケーションの設計エラーです。SET_ITEM_INSTANCE_PROPERTYビルトインが無効なプロパティの値を指定しました。

処置: ビルトインへの呼出しを修正するか削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41385: 問い合せたレコードが最大数を超えています。

原因: 特定のブロックの最大レコード数に達しました。

処置: フォーム・ブロック・プロパティおよびフォーム・レベル・プロパティをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41386: 現行項目を含むタブ・ページのVISIBLEプロパティを設定できません。

原因: 現行項目を含むタブ・ページに「可視」プロパティを設定しようとしました。

処置: 「可視」プロパティは、現行項目を含まないタブ・ページに対してのみ有効です。

まず、他のタブ・ページまたは他のキャンバス上の項目にナビゲートします。

レベル: 99

トリガー: ON-ERROR

FRM-41387: 入力可能な最後のタブ・ページのVISIBLEプロパティを設定できません。

原因: キャンバス上の唯一の入力可能なタブ・ページに、「可視」プロパティを設定しようとしました。

処置: 「可視」プロパティを設定する前に、キャンバス上に入力可能なタブ・ページがもう1つ以上あることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41388: 現行項目を含むタブ・ページのENABLEDプロパティを設定できません。

原因: 現行項目を含むタブ・ページに「有効」プロパティを設定しようとしました。

処置: このプロパティは、現行項目を含まないタブ・ページに対してのみ有効です。

まず、他のタブ・ページまたは他のキャンバス上の項目にナビゲートします。

レベル: 99

トリガー: ON-ERROR

FRM-41389: 入力可能な最後のタブ・ページのENABLEDプロパティを設定できません。

原因: キャンバス上の唯一の入力可能なタブ・ページに、「有効」プロパティを設定しようとしました。

処置: 「有効」プロパティを設定する前に、キャンバス上に入力可能なタブ・ページがもう1つ以上あることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41390: 従属ミラー項目: 「%s.%s」のREQUIREDプロパティを設定できません。

原因: アプリケーションの設計エラーです。SET_ITEM_PROPERTYまたはSET_ITEM_INSTANCE_PROPERTYビルトインが、従属ミラー項目の「必須」プロパティを設定しようとしました。「必須」プロパティはマスター・ミラー項目(「項目と同期」プロパティにより指定された項目)から取得されます。

処置: マスター・ミラー項目の「必須」プロパティを設定します。

レベル: 25

トリガー: ON-ERROR

FRM-41391: 可視属性が見つかりません:IDが無効です。

原因: 無効なIDがビルトイン・サブプログラムに渡されました。

処置: Find_VAのコールが正しく実行されるか検証します。

レベル: 99

トリガー: ON-ERROR

FRM-41392: OFM_VA.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しない可視属性プロパティを取得しようとしました。

処置: プロパティが有効かどうか、Get_VA_Propertyへのコールを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41393: OFM_VA.SET_PROPERTYにはそのようなプロパティはありません。

原因: 無効な可視属性プロパティを設定しようとしました。

処置: 可視属性プロパティの設定方法をマニュアルでチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-41394: OFM_VA.SET_PROPERTYで使用されているパラメータ値が無効です。

原因: 可視属性プロパティに無効な値を設定しようとしました。

処置: 可視属性プロパティの設定方法をマニュアルでチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-41395: OFM_REPORT.SET_PROPERTYで使用されているパラメータが無効です。

原因: 存在しないパラメータを指定しました。

処置: 有効なパラメータのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41396: Get/Set_Report_Object_Propertyにはそのようなプロパティはありません。

原因: 存在しないプロパティを指定しました。

処置: 有効なプロパティのリストをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41397: MESSAGEに使用されているパラメータが無効です。

原因: アプリケーションの設計エラーです。MESSAGEビルトインに無効なオプションが指定されています。オプションは、ACKNOWLEDGE、NO_ACKNOWLEDGE、RUEI_BEGIN、RUEI_END、ODL_DEBUG、ODL_NOTIFICATION、ODL_WARNING、ODL_ERRORのうちのいずれか1つでなければなりません。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-41402: Set_<object>_Propertyに渡された可視属性のタイプが無効です。

原因: オブジェクトの可視属性を無効な可視属性タイプに設定しようとしました。

処置: Builderで可視属性タイプを確認し、このオブジェクトに有効な可視属性を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41403: DEFAULT_WHEREを設定できません。値が無効です。

原因: DEFAULT_WHEREを無効な値に設定しようとしました。

処置: SET_BLOCK_PROPERTYのコールで選択した値が有効かどうかをチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41411: SELECTED_RADIO_BUTTONプロパティはラジオ・グループにのみ許可されます。

原因: ラジオ・グループでない項目のSELECTED_RADIO_BUTTONプロパティを取得しようとしました。

処置: その項目に指定された値をチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41412: 指定したブロックのスクロールバー位置を設定できません。

原因: スクロールバーを持たないブロックに、スクロールバー位置プロパティを設定しようとしました。

処置: そのブロックに指定された値をチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41413: 指定したブロックのスクロールバー位置を取得できません。

原因: スクロールバーを持たないブロックのスクロールバー位置プロパティを取得しようとしました。

処置: そのブロックに指定された値をチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41414: コンボ・ボックス項目の要素%sは最大長を超えています。

原因: コンボ・ボックス項目の要素%sのラベルが最大長を超えています。

処置: 要素のラベルの文字数を減らします。

レベル: 99

トリガー: ON-ERROR

FRM-41800: このフィールドでは値リストを使用できません。

原因: 「一覧表」を押しましたが、このフォームではこのフィールドの値リストが表示されません。

処置: 処置は必要ありません。

レベル: 10

トリガー: ON-MESSAGE

FRM-41801: 最後の値です。

原因: リストの最後の値が表示された後に、「一覧表」、「次の項目」を順に押しました。

処置: 項目値を入力するか、「一覧表」を再度押して有効な値のリストを表示します。

レベル: 10

トリガー: ON-MESSAGE

FRM-41802: レコードの複製機能は新規レコードでのみ使用可能です。

原因: 「レコード複製」を押しましたが、現行のレコードはデータベースから取り出されたレコードです。

処置: 処置は必要ありません。「レコード複製」を使用できるのは、新規レコードの作成時のみです。

レベル: 10

トリガー: ON-ERROR

FRM-41803: 値をコピーする元の前レコードがありません。

原因: 項目複製または「レコード複製」を押しましたが、現レコードはそのブロックの最初のレコードです。

処置: 処置は必要ありません。このコンテキストにおける項目複製および「レコード複製」の使用は無意味です。

レベル: 10

トリガー: ON-ERROR

FRM-41804: 変数が入力されていません: %.30s。

原因: 「検索条件入力」警告に対するレスポンスに、どの問合せ項目でも使用されないプレースホルダが含まれていました。

処置: レスポンスの中のプレースホルダを訂正するか、問合せ項目の1つにプレースホルダを定義します。次に、その問合せを再実行します。

レベル: 99

トリガー: ON-ERROR

FRM-41805: 項目名: %sが曖昧です。

原因: アプリケーションの設計エラーです。ビルトインのコールで指定された項目名があいまいです(ブロックは指定されておらず、指定された名前の項目が複数のブロックに含まれています)。

処置: ブロック名(block.item)を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-41806: 指定された変数が多すぎます。

原因: 問合せに25個を超える置換変数を使用しました。

処置: 置換変数の数を減らし、問合せを再度行います。

レベル: 99

トリガー: ON-ERROR

FRM-41809: メニューを初期化中にエラーが発生しました。

原因: Oracle Forms内部からメニュー・コンポーネントを使用しようとしましたが、内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41810: メニューの作成中にエラーが発生しました。

原因: Oracle Forms内部からメニュー・コンポーネントを使用しようとしましたが、内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41811: メニューの削除中にエラーが発生しました。

原因: Oracle Forms内部からメニューを使用しようとしましたが、内部メニュー・エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41812: メニューを再設定中にエラーが発生しました。

原因: Oracle Forms内部からメニュー・コンポーネントを使用しようとしましたが、内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41813: フォームはデバッグ・モードによって終了されました。

原因: 処理の中断メニューのOracle Formsランタイムの終了オプションを選択しました。

処置: 処置は必要ありません。

レベル: 99

トリガー: なし

FRM-41814: ページ位置が無効です。

原因: アプリケーションの設計エラーです。トリガーが、ビューの全体または一部がスクリーン外に表示されるページにビューを移動またはサイズ変更しようとしました。

処置: 文を修正してください。

レベル: 99

トリガー: ON-ERROR

FRM-41815: OFM_LOV.GET_PROPERTYにはそのようなプロパティはありません。

原因: 存在しない値リスト・プロパティを取得しようとしました。

処置: 有効な値リスト・プロパティを確認し、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41816: 既存タイマー: %sの作成が試みられました。

原因: すでに存在するタイマーを作成しようとしました。

処置: 既存のタイマーを削除または変更してから新規タイマーを再作成します。

レベル: 99

トリガー: ON-ERROR

FRM-41817: タイマー: %sはありません。

原因: 存在しないタイマーを変更または削除しようとしました。

処置: ビルトインの引数が正しいかチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-41818: Toolkitは、タイマー: %sの作成に失敗しました。メモリーが不足しているのかもしれません。

原因: タイマー作成試行中に内部エラーが発生しました。メモリー制約が原因の可能性があります。

処置: メモリー割当て制限をチェックし、必要に応じて調整します。

レベル: 99

トリガー: ON-ERROR

FRM-41819: このプラットフォームではタイマーはサポートされません。

原因: タイマーがサポートされないプラットフォームでのタイマー作成は無効です。

処置: 処置は必要ありません。このプラットフォーム上では、タイマー・オプションを使用できません。

レベル: 99

トリガー: ON-ERROR

FRM-41820: Toolkitでタイマー: %sを削除するのに失敗しました。

原因: タイマー障害により内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-41821: タイマー名が長すぎます: %s。

原因: 長さが30バイトを超える名前のタイマーを作成しようとしました。

処置: 短い名前で再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-41822: タイマー名はヌル文字列にできません。

原因: null名でタイマーを作成しようとしました。

処置: null名以外の名前で再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-41823: タイマー: %sに対して無効な時間間隔です。

原因: 1ミリ秒より短い間隔でタイマーを作成しようとしました。

処置: 1ミリ秒以上の間隔でタイマーを再作成します。

レベル: 99

トリガー: ON-ERROR

FRM-41824: %sの日付/時刻操作に失敗しました。

原因: 項目の日付/時刻初期値の解決中に内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 10

トリガー: ON-ERROR

FRM-41825: SET_LOV_PROPERTYにはそのようなプロパティはありません。

原因: 存在しない値リスト・プロパティを設定しようとしました。

処置: 有効な値リスト・プロパティを確認し、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41826: グループを置換できません。列が値リストに一致しません。

原因: 値リストの現行のレコード・グループを、値リストの列構造と一致しないレコード・グループと置換することはできません。

処置: このレコード・グループをこの値リストに割り当てないでください。

レベル: 20

トリガー: ON-ERROR

FRM-41827: グループが存在していません。

原因: 指定されたグループ名またはIDが無効です。

処置: 入力した名前またはIDをチェックし、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41828: 値リストが存在していません。

原因: 指定された値リスト名またはIDが無効です。

処置: 入力した名前またはIDをチェックし、再試行します。

レベル: 20

トリガー: ON-ERROR

FRM-41829: レコードは作成されませんでした。

原因: アプリケーションの設計エラーです。レコードが初期値の取得に失敗しました。

処置: アプリケーション・デザイナに連絡します。

レベル: 20

トリガー: ON-ERROR

FRM-41830: 値リストに値がありません。

原因: 値リストの基礎となるレコード・グループにレコードがありません。

処置: 長い値リストを縮小するために使用される基準によって、一致するすべての要素が排除されていないかチェックします。

レベル: 5

トリガー: ON-ERROR

FRM-41832: エラー:プログラム・ユニット: %s(ライブラリ: %s内)がコンパイルされていません。

原因: ライブラリからコンパイルされていないプログラム・ユニットをコールしました。

処置: PL/SQLプログラム・エラーに従います。

レベル: 99

トリガー: ON-ERROR

FRM-41833: 警告:プログラム・ユニット%s (ライブラリ%s中)はコンパイルされていません。

原因: デバッグ・モードが指定されているときに、ライブラリ内の未コンパイルのプログラム・ユニットをコールしました。

処置: これは警告メッセージです。Formsランタイムはそのプログラム・ユニットのコンパイルおよび実行を試行します。

レベル: 99

トリガー: なし

FRM-41835: キャンバス: %sはタブ・キャンバスではありません。

原因: タブ・キャンバスでないキャンバスにタブ・キャンバス固有の操作を実行しようとしました。

処置: 指定されたキャンバスがタブ・キャンバスか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41836: タブ・ページ: %sはキャンバス: %sにありません。

原因: 指定されたキャンバスに存在しないタブ・ページに操作を実行しようとしました。

処置: 指定されたタブ・キャンバスに存在するタブ・ページを指定しているか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41837: タブ・ページ: %sを呼出し中にエラーが発生しました。

原因: 指定されたタブ・ページを一番上(そのタブ・ページの現行ページとなる)に配置できませんでした。

処置: 指定されたページが使用可能であり、非表示でないことを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41838: 一時レコード・バッファ・ファイル%sを開けません

原因: 一時レコード・バッファとして使用されるファイルを開けません。

処置: ファイルが常駐するファイル・システムまたはディレクトリが存在し、それに対する読込みおよび書込み権限があることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41839: テンポラリ・レコード・バッファ・ファイル: %sでディスクI/Oエラーが発生しました。

原因: 一時レコード・バッファ・ファイルに対するレコードの読取りまたは書込み時に、I/Oエラーが発生しました。

処置: ファイルが常駐するファイル・システムまたはディレクトリが存在し、それに対する読込みおよび書込み権限があり、かつそれに十分な領域があることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-41840: レコード・バッファのメイン・メモリーが不足しています。

原因: ブロック内に作成中のレコードにメモリーを割り当てることができません。

処置: 大規模な問合せを実行しようとしている場合には、問合せ条件を追加して再試行してください(結果セットのサイズを縮小するためです)。もしくは、変更をコミットし、さらに必要であれば1つまたはそれ以上のブロックをクリアしてディスク・スペースを解放するか、同時に起動しているプログラムの数が少ないとき、もしくはより大きなメモリーを持つマシン上でアプリケーションを再起動します。

レベル: 99

トリガー: ON-ERROR

FRM-41841: DEBUG=YESを指定している場合は、デバッガ使用可能実行モジュールを使ってください。

原因: デバッガが含まれていない実行可能ファイルからデバッガの使用が試みられました。

処置: そのデバッガが含まれている他の実行可能ファイルを実行します。実行可能ファイルの名前は、オペレーティング・システムによって異なります。

レベル: 99

トリガー: なし

FRM-41843: ADJUST_TZのタイムゾーン地域: %sが無効です。

原因: ADJUST_TZプロシージャへのコールで指定されたfromまたはtoタイムゾーン地域名が無効です。

処置: 有効な名前を指定してください。名前が有効な場合は、より大きいタイムゾーン・ファイルのインストールをシステム管理者に依頼します。

レベル: 25

トリガー: ON-ERROR

FRM-41844: ADJUST_TZは日付を変換できませんでした。

原因: ADJUST_TZプロシージャへのコールで指定されたfromおよびtoタイムゾーン地域名は有効ですが、日付の変換に失敗しました。これは、日付が1月1日(4712 BC)または12月31日(9999 AD)に近すぎる可能性があります。

処置: 有効な日付を指定します。

レベル: 25

トリガー: ON-ERROR

FRM-41845: JavaScriptイベントは無効になりました。

原因: 環境変数FORMS_ALLOW_JAVASCRIPT_EVENTSまたはアプレットのパラメータに対応したenableJavaScriptEventのいずれかがFALSEに設定されています。

処置: クライアントのアプレットのパラメータに対応したenableJavaScriptEventおよびサーバー環境変数FORMS_ALLOW_JAVASCRIPT_EVENTSをtrueに設定します。デフォルトの値は両方ともTRUEに設定されています。

レベル: 15

トリガー: ON-ERROR

FRM-41847: 一時レコード・バッファ・ファイル・サイズ制限を超えました

原因: レコードの挿入、更新またはフェッチには、一時レコード・バッファ・ファイルのスペースが必要ですが、必要スペースがサイズ制限値(4GBまたは環境変数FORMS_RECMGR_MAX_TMPFILE_SIZEで指定した値)に達しました。

処置: 大規模な問合せを実行しようとしている場合には、問合せ条件を追加して再試行してください(結果セットのサイズを縮小するためです)。もしくは、変更をコミットし、さらに必要であれば、1つまたはそれ以上のブロックをクリアして、ディスク・スペースを解放します。

レベル: 99

トリガー: ON-ERROR

FRM-41848: webstartセッション中にJavaScriptの実行は無効になります。

原因: webstartの実行中、JavaScriptの統合はサポートされません。

処置: Oracle FormsでJavaScriptの統合を実行する場合にはブラウザを使用します。

レベル: 15

トリガー: ON-ERROR

FRM-41849: JavaScript実行がスタンドアロン・アプリケーションで無効になっています。

原因: JavaScriptの統合は、スタンドアロン・アプリケーションではサポートされていません。

処置: Oracle FormsでJavaScriptの統合を実行する場合にはブラウザを使用します。

レベル: 15

トリガー: ON-ERROR

FRM-41850: アーカイブ・レコードのメモリーがしきい値を超えました

原因: レコードの挿入、更新またはフェッチに仮想メモリーが必要でしたが、アーカイブされたレコード全体で消費される仮想メモリーが、アーカイブしきい値(4GBもしくは環境変数FORMS_RECMGR_ARCHIVE_THRESHOLDで指定されている値)を超えていました。

処置: 大規模な問合せを実行しようとしている場合には、問合せ条件を追加して再試行してください(結果セットのサイズを縮小するためです)。もしくは、変更をコミットし、さらに必要であれば、1つまたはそれ以上のブロックをクリアして、メモリーを解放します。

レベル: 99

トリガー: なし

FRM-41900: 実行は致命的エラーによって中止されました。

原因: これは内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: なし

FRM-41901: エラー: %d個のカーソルが閉じられていません。

原因: これは内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: なし

FRM-41902: 合計: %d個のカーソルが使用されています。

原因: 「統計」プリファレンスをTrueに設定してフォームを実行したときにこのメッセージが表示されます。

処置: 処置は必要ありません。

レベル: 20

トリガー: ON-MESSAGE

FRM-41903: 入力ファイルのEOFが検出されたため、実行が中止されました。

原因: これは内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: なし

FRM-42017: モジュール名を指定してください。

原因: モジュール名が指定されていません。

処置: モジュール名を指定します。

レベル: 99

トリガー: なし

FRM-42100: エラーは見つかっていません。

原因: 「エラー表示」を押しましたが、現在エラーは発生していません。

処置: 処置は必要ありません。

レベル: 5

トリガー: ON-MESSAGE

FRM-42400: イベント・トリガー: %sを実行しています。

原因: このメッセージは、デバッグ・モードが指定されている状態でトリガーを実行しているときに表示されます。

処置: 処置は必要ありません。

レベル: 99

トリガー: ON-MESSAGE

FRM-42401: プログラム・トリガー: %sを実行しています。

原因: このメッセージは、デバッグ・モードが指定されている状態でトリガーを実行しているときに表示されます。

処置: 処置は必要ありません。

レベル: 99

トリガー: ON-MESSAGE

FRM-42423: トリガー: %sを実行できません。コンパイルされていません。

原因: このメッセージは、トリガーのコンパイル状態が破壊されている場合に、デバッグ・モードでフォームを実行中に表示されます。これは、そのトリガー・テキストに変更を加え、その変更内容がコンパイル・エラーを起こした場合に発生することがあります。

処置: デバッガでこのトリガーを再コンパイルするか、そのフォームを終了し、再起動してください。

レベル: 99

トリガー: ON-ERROR

FRM-42431: デバッガを初期化できません。

原因: デバッガを初期化しようとしたときにエラーが発生しました。この原因は、次のいずれかです。

1. JVMが起動できません。

2. CLASSPATHにデバッガ依存性が指定されていません。

処置: JVMを再起動するか、またはClasspathを変更します。

レベル: 99

トリガー: ON-ERROR

FRM-42435: リモート・デバッガ: 指定したポートは使用できません。

原因: 指定したポートは他のプロセスが使用しています。

処置: 他のポートを指定してください。

レベル: 99

トリガー: なし

FRM-47000: パラメータ・リスト: %sを作成できません:内部エラーです。

原因: これは内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47001: パラメータ・リスト: %sを作成できません:この名前のリストが存在しています。

原因: このパラメータ・リストに指定した名前は、すでに使用されています。

処置: パラメータ・リストに別の名前を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47002: パラメータ・リストを作成できません:名前はNULL以外でなければなりません。

原因: パラメータ・リスト名を指定する必要があります。

処置: パラメータ・リストに名前を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47003: パラメータ・リストを削除できません:内部エラーです。

原因: これは内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47004: パラメータ・リストを削除できません:IDが無効です。

原因: 無効なパラメータ・リストIDを渡そうとしました。

処置: リストIDをチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47005: パラメータ: %sの妥当性チェックができません:内部エラーです。

原因: これは内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47006: パラメータ・リスト: %sを作成できません:識別子名が間違っています。

原因: 識別子名が無効です。

処置: 識別子の有効な構文をチェックします。

レベル: 99

トリガー: ON-ERROR

FRM-47007: パラメータ・リストからパラメータ: %s属性を取得できません:リストIDが無効です。

原因: 無効なパラメータ・リストIDを指定しました。

処置: パラメータ・リストIDをチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47008: パラメータ: %sをパラメータ・リスト: %sに追加できません:内部エラーです。

原因: 内部エラーが発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47009: パラメータ: %sをパラメータ・リストに追加できません:リストIDが無効です。

原因: 無効なパラメータ・リストIDを指定しました。

処置: パラメータ・リストIDをチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47010: パラメータをパラメータ・リスト: %sに追加できません:指定キーがNULLです。

原因: パラメータに名前が指定されていません。

処置: ADD_PARAMETERのコールにパラメータ名キーを指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47011: パラメータ: %sをパラメータ・リスト: %sに追加できません:指定したタイプが正しくありません。

原因: 無効なパラメータ・タイプを指定しました。

処置: TEXT_PARAMETERまたはDATA_PARAMETERを指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47012: パラメータ: %sをパラメータ・リスト: %sに追加できません:グループ: %sは存在していません。

原因: レコード・グループ名が存在しません。

処置: レコード・グループ名をチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47013: パラメータ: %sをパラメータ・リスト: %sに追加できません:この名前のパラメータは存在しています。

原因: この名前のパラメータはすでに存在します。

処置: パラメータに別の名前を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47014: パラメータ: %sをパラメータ・リスト: %sから削除できません:内部エラーです。

原因: これは内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47015: パラメータ: %sをパラメータ・リストから削除できません:リストIDが無効です。

原因: 無効なパラメータ・リストIDを指定しました。

処置: リストIDをチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47016: パラメータをパラメータ・リスト: %sから削除できません:指定キーがNULLです。

原因: パラメータに名前を指定していません。

処置: パラメータ名を指定して、DELETE_PARAMETERのコールを訂正します。

レベル: 99

トリガー: ON-ERROR

FRM-47017: パラメータ: %sをパラメータ・リスト: %sから削除できません:このような名前のパラメータは存在していません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 存在しないパラメータ名を指定しました。

処置: パラメータ名をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47018: パラメータ: %sの属性をパラメータ・リスト: %sに設定できません:内部エラーです。

原因: 内部エラーが発生しました。無効なパラメータ・リストIDを指定しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47019: パラメータ: %s属性をパラメータ・リストに設定できません:リストIDが無効です。

原因: 無効なパラメータ・リストIDを指定しました。

処置: パラメータ・リストIDをチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47020: パラメータ: %sの属性をパラメータ・リスト: %sに設定できません:このような名前のパラメータは存在していません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 存在しないパラメータ名を指定しました。

処置: パラメータ名をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47021: %sという名前のパラメータはパラメータ・リスト: %sに存在しません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 存在しないパラメータ名を指定しました。

処置: 名前をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47022: パラメータ・リスト: %sを作成できません:名前が予約語です。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 名前に予約語を指定しました。

処置: パラメータ・リストに別の名前を指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47023: %sという名前のパラメータはフォーム: %sに存在しません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 存在しないパラメータ名を指定しました。

処置: 名前をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47024: パラメータ: %sタイプはフォーム: %sの定義と一致しません。

原因: フォーム内の定義と一致しないパラメータ・タイプを指定しました。

処置: フォーム内の定義に一致するパラメータ・タイプを指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47025: パラメータ: %s属性をパラメータ・リスト: %sから取得できません:内部エラーです。

原因: 内部エラーが発生しました。無効なパラメータ・リストIDを指定しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47026: パラメータ: %s属性をパラメータ・リスト: %sから取得できません:このような名前のパラメータは存在していません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 存在しないパラメータ名を指定しました。

処置: 名前をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47027: パラメータ: %sをパラメータ・リスト: %sに追加できません:指定キーが無効です。

原因: 無効なパラメータ・リストIDを指定しました。

処置: 名前をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47028: パラメータ: %sの属性をパラメータ・リスト: %sに設定できません:グループ: %sは存在していません。

原因: 無効なパラメータ・リストIDを指定しました。

処置: 名前をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47029: フォーム: %sのパラメータ・リストIDが無効です。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 存在しないパラメータ名を指定しました。

処置: IDをチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47030: パラメータ値: %sは、フォーム: %sの定義には長過ぎます。

原因: 指定したパラメータが長すぎます。

処置: 有効なパラメータを指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47031: DEFAULTパラメータ・リストでパラメータ: %sの値を設定できません。指定した値が無効です。

原因: アプリケーションの設計エラーです。フォームが設計されたときに定義されたパラメータの値の設定をビルトイン(SET_PARAMETER_ATTRなど)が試みていますが、指定された値はそのパラメータのデータ型に有効ではありません。

処置: そのビルトインのコールを変更または削除します。

レベル: 99

トリガー: ON-ERROR

FRM-47032: DEFAULTパラメータ・リストでパラメータ: %sの値を設定できません。内部エラーです。

原因: パラメータ値の設定中に発生した内部エラーです。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47033: 読込み専用バインド変数: %sを設定できません。

原因: アプリケーションの設計エラーです。アプリケーションが、プログラム的には変更不能なバインド変数に値を割り当てようとしました。

処置: 割当てを削除します。

レベル: 25

トリガー: ON-ERROR

FRM-47100: イメージ・ファイル: %sが読込めません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. Oracle Formsがファイルを見つけることができなかったか、ファイルを開けませんでした。

3. ファイル内のデータが指定された形式ではありません。

処置: ファイル名およびファイル形式をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47101: イメージ・ファイル: %sが書込みできません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. Oracle Formsがファイルを見つけることができなかったか、ファイルを開けませんでした。

3. ファイル内のデータが指定された形式ではありません。

処置: ファイル名をチェックし、書込み権限があるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47102: %s操作をイメージ%sおよび%sで実行できません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. この操作はカラー・イメージでは実行できません。

処置: 両方のイメージがモノクロであることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47103: イメージ: %sがズームできません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. NULLイメージまたは無効なイメージ・データをスケーリングしようとして発生した内部的なマルチメディア・エラーです。

処置: ズームするイメージ名をチェックし、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47104: イメージ・タイプ: %sが無効です。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 指定したファイルのデータが指定したデータ型と一致しません。

処置: ファイル名をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47105: イメージ名が指定されていません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. ビルトイン・コールに対して名前が指定されませんでした。

処置: 問題のビルトインの正しい構文をマニュアルで確認してください。

レベル: 99

トリガー: ON-ERROR

FRM-47106: イメージ・タイプが指定されていません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. READ_IMAGE_FILEまたはWRITE_IMAGE_FILEのコール時にイメージ・タイプが指定されませんでした。

処置: READ_IMAGE_FILEまたはWRITE_IMAGE_FILEのコールにイメージ・タイプを引数として指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47107: OFM_ITEM.IMAGE_ZOOMのスケール変更係数: %dが無効です。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 無効なスケール変更係数を指定しました。

処置: IMAGE_ZOOMのコールを修正します。

レベル: 20

トリガー: ON-ERROR

FRM-47108: 項目: %sがイメージ項目ではありません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. イメージ項目ではない項目に対しイメージ操作を実行しようとしました。

処置: 項目名をチェックして、再試行します。

レベル: 99

トリガー: ON-ERROR

FRM-47109: イメージ・ファイル: %sが見つかりません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. 見つからない、または存在しないファイルが指定されました。

処置: そのファイルが存在し、パス名が正しいことを確認します。

レベル: 20

トリガー: ON-ERROR

FRM-47110: OFM_ITEM. IMAGE_ZOOM: %sに選択された領域がありません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. イメージ領域を選択せずにイメージをズームしようとしました。

処置: イメージ領域を選択します。

レベル: 20

トリガー: ON-ERROR

FRM-47111: 項目: %sに値をコピーできません。

原因: 原因は次のいずれかです。

1. 無効なパラメータ・リストIDを指定しました。

2. イメージ項目に対してCOPYビルトインを使用しようとしました。

処置: イメージ項目にCOPYビルトインは使用できません。

レベル: 99

トリガー: ON-ERROR

FRM-47300: 項目は階層ツリーではありません。(%s)

原因: 階層ツリー・ビルトインが、ツリー項目以外でコールされました。

処置: 項目タイプおよび項目名を確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47301: ツリーのルートと同レベルにデータを追加することはできません。

原因: ADD_TREE_DATAまたはADD_TREE_NODEを使用して、ルートの兄弟としてデータを追加しようとしました。

処置: ツリー内の下位レベルにデータを追加します。

レベル: 99

トリガー: ON-ERROR

FRM-47302: ツリーの子または同レベルにのみデータを追加できます。

原因: ADD_TREE_DATAまたはADD_TREE_NODEにおいて、不明なoffset_type値を使用しようとしました。

処置: offset_typeパラメータの指定は、PARENT_OFFSETおよびSIBLING_OFFSETにのみ許可されています。

レベル: 99

トリガー: ON-ERROR

FRM-47303: OFM_TREE.ADD_DATAはグループまたは問合せからのデータのみを受け付けます。

原因: ADD_TREE_DATAにおいて、不明なdatasource値を使用しようとしました。

処置: datasourceパラメータの指定は、RECORD_GROUPおよびQUERY_TEXTにのみ許可されています。

レベル: 99

トリガー: ON-ERROR

FRM-47304: ツリーのルート・ノードは削除できません。

原因: DELETE_TREE_NODEにおいて、ルート・ノードを削除しようとしました。

処置: ノードを削除する前に、ID_NULLを使用して、ノードがルートかどうかを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47305: ツリーの検索ではラベルまたは値以外は検索できます。

原因: FIND_TREE_NODEにおいて、不明なsearch_byパラメータ値を使用しようとしました。

処置: search_byパラメータを、NODE_LABELまたはNODE_VALUEに設定します。

レベル: 99

トリガー: ON-ERROR

FRM-47306: Search_typeはFIND_NEXTまたはFIND_NEXT_CHILDでなければなりません。

原因: FIND_TREE_NODEにおいて、無効なsearch_typeパラメータ値を使用しようとしました。

処置: search_typeパラメータを、FIND_NEXTまたはFIND_NEXT_CHILDに設定します。

レベル: 99

トリガー: ON-ERROR

FRM-47307: ツリーのルート・ノードのプロパティを取得できません。

原因: GET_TREE_NODE_PARENTまたはGET_TREE_NODE_PROPERTYにおいて、ルート・ノードから情報を取得しようとしました。

処置: ビルトインは、有効なノードに対してのみコールします。

レベル: 99

トリガー: ON-ERROR

FRM-47308: OFM_TREE.SET_NODE_PROPERTYまたはGETのプロパティが無効です。

原因: GETまたはSET_TREE_NODE_PROPERTYに無効なプロパティ定数が渡されました。

処置: 引数を検証します。

レベル: 99

トリガー: ON-ERROR

FRM-47309: OFM_TREE.SET_PROPERTYまたはGETのプロパティが無効です。

原因: GETまたはSET_TREE_PROPERTYに無効なプロパティ定数が渡されました。

処置: 引数を検証します。

レベル: 99

トリガー: ON-ERROR

FRM-47310: OFM_TREE.GET_SELECTIONの選択インデックスが無効です。

原因: 選択索引の範囲は1から選択ノード数です。

処置: 選択が、必須範囲内であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47311: レコード・グループのデータロード中にエラーが発生しました。

原因: POPULATE_GROUP_FROM_TREEに指定されたレコード・グループが無効です。

処置: レコード・グループが存在していること、およびレコード・グループが静的に定義されたものではないことを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47312: レコード・グループのデータロード中に内部エラーが発生しました。

原因: POPULATE_GROUP_FROM_TREEで、内部エラーが発生しました。一部の行はすでに追加されている場合があります。

処置: レコード・グループに行を追加できません。

レベル: 99

トリガー: ON-ERROR

FRM-47313: 階層ツリーへの問合せが無効です。

原因: 指定された問合せテキストから有効なツリー・データを作成できませんでした。

処置: 問合せテキストの列数が有効であること、およびデータ型が有効であることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47314: ツリーのルート・ノードのプロパティを設定できません。

原因: SET_TREE_NODE_PROPERTYにおいて、ルート・ノードのプロパティを設定しようとしました。

処置: ビルトインは、有効なノードに対してのみコールします。

レベル: 99

トリガー: ON-ERROR

FRM-47315: OFM_TREE.SET_NODE_PROPERTYのパラメータ値が無効です。

原因: 設定しようとしているツリー・ノード・プロパティのパラメータ値を確認します。

処置: SET_TREE_NODE_PROPERTYに渡されたパラメータ値を修正します。

レベル: 99

トリガー: ON-ERROR

FRM-47316: 子を持たないブランチ・ノードは許可されていません。

原因: ノードの状態をリーフ・ノードからブランチに変更しようとしました。このツリーには、空のブランチ・ノードを使用できません。

処置: 空のブランチ・ノードを使用できるようにツリーを変更するか、ノードに子を追加します。

レベル: 99

トリガー: ON-ERROR

FRM-47317: リーフ・ノードは子を持つことができません。

原因: 子を持つノードの状態を、ブランチ・ノードからリーフ・ノードに変更しようとしました。

処置: ノードの状態を変更するには、まずノードから子を削除します。

レベル: 99

トリガー: ON-ERROR

FRM-47318: OFM_TREE.SET_PROPERTYのパラメータ値が無効です。

原因: 設定しようとしているツリー・プロパティのパラメータ値を確認します。

処置: SET_TREE_PROPERTYに渡されたパラメータ値を修正します。

レベル: 99

トリガー: ON-ERROR

FRM-47319: ツリーのルート・ノードは選択できません。

原因: SET_TREE_SELECTIONにおいて、ルート・ノードを選択しようとしました。

処置: ビルトインは、有効なノードに対してのみコールします。

レベル: 99

トリガー: ON-ERROR

FRM-47320: OFM_TREE.SET_SELECTIONの選択タイプが無効です。

原因: SET_TREE_SELECTIONで、無効なselection_typeパラメータ値を使用しようとしました。

処置: selection_typeパラメータを、SELECT_ON、SELECT_OFFまたはSELECT_TOGGLEに設定します。

レベル: 99

トリガー: ON-ERROR

FRM-47321: ツリーのデータロードに使われたデータが無効です。

原因: ADD_TREE_DATAにおいて、無効な書式のデータを使用しようとしました。

処置: グループまたは問合せにおける列の数と型を確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47322: 指定されたツリーのデータ・ソースはレコード・グループではありません。

原因: ツリーのデータ・ソースはレコード・グループとして宣言されていますが、レコード・グループではありません。

処置: 指定されたIDまたは名前が、既存のレコード・グループのIDまたは名前であるか確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47323: ツリーのノードが選択されていません。

原因: ノードが選択されていないときに、ノードを取得しようとしました。

処置: 選択されているノードの数の確認してから、取得を行います。

レベル: 99

トリガー: ON-ERROR

FRM-47324: ツリー構造にメモリーを割り当てられませんでした。

原因: 内部ツリー構造にメモリーを割り当てることができません。ツリーは破棄されました。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47325: ツリー・ノードにメモリーを割り当てられませんでした。

原因: ツリー・ノードにメモリーを割り当てることができません。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47333: ツリー・ノードに要求された状態に設定できませんでした。

原因: ツリー・ノードの状態を変更できません。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47334: ツリー・ノードのアイコンの文字列にメモリーを割り当てられませんでした。

原因: ツリー・ノード・アイコン名にメモリーを割り当てることができません。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47335: ツリー・ノードのアイコンが見つかりませんでした。 (%s)

原因: 目的のアイコンが通常の場所にありません。

処置: ツリー・ノードのアイコンが適切なディレクトリ内にあることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47336: ツリー・ノードを要求されたアイコンに設定できませんでした。

原因: 要求されたツリー・ノード・アイコンを設定できません。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47337: ツリー・ノードのラベルはNULLにできません。

原因: ツリー・ノードのラベルをnull値に設定しようとしました。

処置: ラベルをnull以外の値に設定します。

レベル: 99

トリガー: ON-ERROR

FRM-47338: ツリー・ノードのラベルにメモリーを割り当てられませんでした。

原因: ツリー・ノード・ラベルにメモリーを割り当てることができません。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47339: ツリー・ノードを要求されたラベルに設定できませんでした。

原因: 要求されたツリー・ノード・ラベルを設定できません。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47340: ツリー・ノードの値にメモリーを割り当てられませんでした。

原因: ツリー・ノード値にメモリーを割り当てることができません。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47341: ツリーのノードが多すぎます。

原因: ツリー内には、現行であり削除されたMAX-SIGNED-4-BYTEノードのみを指定できます。

処置: ツリー内のノード数を減らします。常にノードを追加したり削除したりする場合は、ツリーを消去して再移入する必要があります。

レベル: 99

トリガー: ON-ERROR

FRM-47342: ツリーの問合せテキストにメモリーを割り当てられませんでした。

原因: ツリー問合せテキストにメモリーを割り当てることができません。

処置: システムの負荷が小さいときにアプリケーションを実行してみます。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-47343: 階層ツリー項目%sに指定したノードIDが無効です

原因: 階層ツリー・ビルトインが、階層ツリー項目でコールされましたが、そのビルトインに渡されたノードIDはツリー項目に対して無効です。

処置: 有効なノードIDを指定します。

レベル: 99

トリガー: ON-ERROR

FRM-47500: データベース・イベント: %sの登録に失敗しました

原因: データベース・イベントの登録が失敗しました。

処置: データベース側のイベント属性を確認します。

レベル: 5

トリガー: ON-ERROR

FRM-47501: 無効なイベントID

原因: イベントIDが無効です。

処置: イベントIDをチェックします。

レベル: 99

トリガー: なし

FRM-47502: 無効なイベント・プロパティ

原因: イベント・プロパティが無効です。

処置: イベント・プロパティをチェックします。

レベル: 5

トリガー: ON-ERROR

FRM-47700: JVMの起動に失敗しました。

原因: インプロセスJVMの起動中にエラーが発生しました。

処置: ランタイム・プロセスがjvmライブラリを検出できることを確認します。

レベル: 99

トリガー: ON-ERROR

FRM-47800: JVMコントローラ: %sと通信できません。

原因: JVMコントローラと通信できません。

処置: ランフォームの接続先であるJVMコントローラが停止している可能性があります。システム管理者に連絡してください。

レベル: 99

トリガー: ON-ERROR

FRM-50000: 値が長すぎます。

原因: 項目に対して入力した値のバイト数または文字数が大きすぎます。

処置: 短い値を入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50001: 使用可能な文字はa-z、A-Z、スペースです。

原因: 使用できない文字を項目に入力しました。

処置: aからz、AからZまたはスペースを入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50002: 月は1から12の間の値でなければいけません。

原因: 無効な月の値を日付フィールドに入力しました。

処置: 1 (1月)から12 (12月)の月の値を入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50003: 年は適切な範囲内で指定してください。

原因: 適用可能な書式マスクの年要素に有効でない年が入力されました。

処置: 有効な年を入力します。ほとんどの書式マスクの年要素の場合、許容値は0から9999までです。符号付き書式マスクの年要素の場合は、-4712から-1までの数値も指定できます。

レベル: 15

トリガー: ON-ERROR

FRM-50004: 日は1から月の最終日までの間の値でなければいけません。

原因: 無効な日を入力しました。

処置: 有効な日を入力します。たとえば4月であれば、1から30の間の数値を入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50006: 正しい文字は0から9、+、-です。

原因: 数値項目に使用できない文字を入力しました。

処置: 有効な数値を入力してください。有効な数値とは、各桁に0から9の数字を使用したものです。数値の先頭には、正(+)または負(-)の符号を付けることができます。メッセージで許容されていれば、その数値には正負符号の前以外の位置に小数点を1つ付けられます。

レベル: 15

トリガー: ON-ERROR

FRM-50007: 小数点以降の桁数が多すぎます。

原因: MONEY型またはRMONEY型の項目に、小数点以降の桁数が3桁以上の数値を入力しました。

処置: 有効な数値を再入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50009: 小数点が多すぎます。

原因: 小数点が2つ以上ある数値を入力したか、または整数(小数ではない数)が必要な項目に小数点がある数値を入力しました。

処置: 小数点が1つ以下の数値を入力します。小数点を1つのみ使用した場合は、その小数点およびその数値の小数部を削除します。

レベル: 15

トリガー: ON-ERROR

FRM-50010: 通貨フォーマットは、[+-]9999999.99です。

原因: MONEY型またはRMONEY型の項目に無効な値を入力しました。

処置: 有効な値を入力します。この値には、0(ゼロ)または金額を表す桁が必要です。この数値の前にプラス記号(+)またはマイナス記号(-)を付けることができます。

レベル: 15

トリガー: ON-ERROR

FRM-50011: 月名が無効です。

原因: 無効な月名を日付フィールドに入力しました。

処置: 有効な月名を入力します。Oracle Formsでは、月名の最初の3文字が認識されます。たとえば、JANはJanuary、JUNはJuneを表します。

レベル: 15

トリガー: ON-ERROR

FRM-50012: 日付は%sのような書式で入力しなければなりません。

原因: 無効または不適切な書式の日付が入力されました。

処置: 日付を適切な書式で再入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50013: +または-は先頭になければいけません。

原因: プラス記号(+)またはマイナス記号(-)が誤った位置に入力されました。

処置: プラス記号(+)またはマイナス記号(-)を先頭に入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50014: 指数が間違っています。

原因: 指数を使用できない項目に指数が入力されました。

処置: 指数を使用しない値を入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50016: 正しい文字は0から9、-、+、Eです。

原因: 数値項目に使用できない文字を入力しました。

処置: 有効な数値を入力してください。有効な数値とは、各桁に0から9の数字を使用したものです。数値の先頭には、正(+)または負(-)の符号を付けることができます。メッセージで許容されていれば、その数値には正負符号の前以外の位置に小数点を1つ付けられます。科学表記法を指定するには、Eを使用します。

レベル: 15

トリガー: ON-ERROR

FRM-50017: 時間は0から23の間の値でなければいけません。

原因: 無効な時間を入力しました。

処置: 有効な時間を入力します。Oracle Formsでは、24時間制で時間が記録されます。

レベル: 15

トリガー: ON-ERROR

FRM-50018: 分は00から59の間の値でなければいけません。

原因: 無効な分を入力しました。

処置: 有効な分を入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50019: 秒は00から59の間の値でなければいけません。

原因: 無効な値を入力しました。

処置: 00から59の値を入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50020: 指数がありません。

処置: 指数を入力していません。

処置: 指数を入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50021: 日付は%sのような書式で入力しなければなりません。

原因: 無効または不適切な書式の日付が入力されました。

処置: 日付を適切な書式で再入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50022: 時間は%sのような書式で入力しなければなりません。

原因: 無効または不適切な書式の時間が入力されました。

処置: 時間を適切な書式で再入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50023: 日付は%sのような書式で入力しなければなりません。

原因: 無効または不適切な書式の日付が入力されました。

処置: 日付を適切な書式で再入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50024: スペースは、先頭のみで使用できます。

原因: スペースを含むデータを入力しました。

処置: スペースを含まないデータを再入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50025: 日付/時間は%sのような書式で入力しなければなりません。

原因: 無効または不適切な書式の日付および時間が入力されました。

処置: 日付と時間を適切な書式で再入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50026: 日付は%sのような書式で入力しなければなりません。

原因: 無効または不適切な書式の日付が入力されました。

処置: 日付を適切な書式で再入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50027: 与えられたデータ型の書式マスクが無効です。

原因: テキスト項目に割り当てた書式マスクが、このテキスト項目のデータ型とは非互換です。

処置: テキスト項目に新しい書式マスクを割り当てます。詳細は、<a href="../../designing_forms/items/f500842.html">書式マスクによるテキスト項目値の書式設定について</a>のヘルプを参照してください。

レベル: 15

トリガー: ON-ERROR

FRM-50028: 書式マスクはこのデータ型では使用できません。

原因: LONG型およびIMAGE型のデータ型では、書式マスクを使用できません。

処置: LONG型またはIMAGE型には、書式マスクを作成しないでください。

レベル: 15

トリガー: ON-ERROR

FRM-50029: 科学表記法の小数点より前の桁数が多すぎます。

原因: 科学表記法を使用して数値を指定しましたが、小数点より前に2桁以上あります。

処置: 科学表記法を使用して数値を再入力します。

レベル: 15

トリガー: ON-ERROR

FRM-50045: 0時を過ぎた秒数が時間と合いません。

原因: 入力された時間の秒が深夜0時をすぎています。この時間は許容範囲ではありません。

処置: 時間と深夜0時をすぎた秒が一致することを確認するか、深夜をすぎた秒を指定せずに書式マスクを使用します。

レベル: 15

トリガー: ON-ERROR

FRM-50048: 新規パスワードが一致しません。同じパスワードを入力してください。

原因: 「新規パスワード」フィールドおよび「新規の再入力」フィールドで異なる文字列が入力されました。

処置: 新規および再入力のフィールドに同一の値を再入力します。

レベル: 99

トリガー: なし

FRM-91124: ランタイム・プロセスの致命的エラー: FORMS_DECIMAL_PREFIXで指定された%sはゼロまたは空の文字列である必要があります

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-91126: ランタイム・プロセスの致命的エラー: 環境変数%sに無効な値%sが指定されました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-91127: ランタイム・プロセス: 環境変数%sに無効なディレクトリ名が指定されました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-91129: ランタイム・プロセス: 必須の環境変数%sに値が指定されていません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-91132: ランタイム・プロセスの致命的エラー: タイムゾーン・ファイル%sに無効なデータがあります

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-91135: ランタイム・プロセスの致命的エラー: メッセージ・ファイル%sが存在しません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-91137: ランタイム・プロセス: ログ・ファイル%sを開くことができません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-91145: ランタイム・プロセスの致命的エラー: serverArgsパラメータがありません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92000: 内部エラー: Javaクラスにアクセスできません

原因: Formsサーバーは数値によるhandlerClassIdを指定してJavaクラスをリクエストし、Forms Javaクライアントにより指定のhandlerClassIdに関するエントリがレジストリ内で検出されました。ただし、レジストリ・エントリで指定されたJavaクラスにアクセスできませんでした。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因(構成の問題など)がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92020: ブラウザに対してターゲット%sで無効なURL %s が送信されました。 詳細: %s

原因: Formsアプリケーションでweb.showDocumentビルトインが実行され、アプレットではclientBrowserパラメータが定義されていないため、Formsはアプレットのドキュメント・ベースに対する相対パスとして指定のURLを解決しようとしました。ただし、この試行中にMalformedURLExceptionが発生しました。これは致命的エラーではありません。

処置: web.showDocumentビルトインに渡されるURLを訂正します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92022: URL %sを%sをターゲットにして開けません。詳細: %s

原因: Formsアプリケーションでweb.showDocumentビルトインが実行され、例外が発生しました。これは致命的エラーではありません。

処置: 「全詳細」のメッセージに問題が示されている場合は、それを修正します。そうでない場合、問題が解消しなければ、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92030: 内部エラー: handleClassId=%sに対応するレジストリ・エントリが見つかりません

原因: Formsサーバーは数値によるhandlerClassIdを指定することでJavaクラスをリクエストしましたが、Forms Javaクライアントにより指定のhandlerClassIdに関するエントリがレジストリ内で検出されませんでした。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92040: 内部エラー: Javaクラスが見つかりません

原因: Formsサーバーは数値によるhandlerClassIdを指定してJavaクラスをリクエストし、Forms Javaクライアントにより指定のhandlerClassIdに関するエントリがレジストリ内で検出されました。ただし、レジストリ・エントリで指定されたJavaクラスが見つかりませんでした。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因(構成の問題など)がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92050: 致命的エラー: サーバー: %s:%sに接続できません

原因: Formsサーバーに接続しようとしました。serverURLアプレット・パラメータが指定されていなかったため、Formsは指定のホスト・マシンに指定のポートで接続しようとしました(これらは、serverHostおよびserverPortアプレット・パラメータが指定されていれば、そこから導出されます)。ただし、予期しない例外が発生しました。このメッセージが表示されるのは、より限定的な接続失敗理由を示すメッセージがない場合です。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92052: 致命的エラー: URL %sでサーバーに接続できません

原因: Formsサーバーに指定のURLで接続しようとしました(これは、serverURLアプレット・パラメータから導出されます)ただし、予期しない例外が発生しました。このメッセージが表示されるのは、より限定的な接続失敗理由を示すメッセージがない場合です。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92054: URL %sでシングル・サインオン・セッションを終了しようとしてエラーが発生しました。

原因: 指定されたURLで、OHSリダイレクトを使用してシングル・サインオン・サーバーへ接続しようとしました。ただし、予期しない例外が発生しました。このメッセージが表示されるのは、より限定的な接続失敗理由を示すメッセージがない場合です。

処置: システム管理者は、OHSリダイレクトが正しく動作していることを確認します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92055: シングル・サインオン・セッションの終了中にCookieの読取りでエラーが発生しました

原因: シングル・サインオン・セッションの終了中にCookieを読み取ろうとしました。ただし、予期しない例外が発生しました。このメッセージは、発生したエラーについて、より具体的な理由を示すメッセージがない場合に表示されます。

処置: Javascriptがブラウザで有効になっていることを確認します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92056: シングル・サインオン・セッションの存続期間をチェック中にCookieの読取りでエラーが発生しました

原因: シングル・サインオン・セッションの存続期間のチェック中にCookieを読み取ろうとしました。ただし、予期しない例外が発生しました。このメッセージは、発生したエラーについて、より具体的な理由を示すメッセージがない場合に表示されます。

処置: Javascriptがブラウザで有効になっていることを確認します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92060: 致命的エラー: サーバーに接続できません。 指定されたマシン: %s:%s

原因: Formsサーバーに接続しようとしました。serverURLアプレット・パラメータが指定されていなかったため、Formsは指定のホスト・マシンに指定のポートで接続しようとしました(これらは、serverHostおよびserverPortアプレット・パラメータが指定されていれば、そこから導出されます)。ただし、ホスト/ポートの組合せの書式が無効です。

処置: serverHostまたはserverPortアプレット・パラメータ(あるいはその両方)の構文を訂正するか、serverURLアプレット・パラメータに対して有効な値を指定します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRMー92062: 致命的エラー: サーバーに接続できません。 指定されたURL: %sは無効です

原因: Formsサーバーに指定のURLで接続しようとしました(これは、serverURLアプレット・パラメータから導出されます)が、URLが不正です。

処置: serverURLアプレット・パラメータの構文を訂正します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92070: 内部エラー: Javaクラスをインスタンス化できません

原因: Formsサーバーは数値によるhandlerClassIdを指定してJavaクラスをリクエストし、Forms Javaクライアントにより指定のhandlerClassIdに関するエントリがレジストリ内で検出されました。ただし、レジストリ・エントリで指定されたJavaクラスをインスタンス化できませんでした。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因(構成の問題など)がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92080: 致命的エラー: コマンドを実行できません: %s %s 詳細: %s

原因: Formsアプリケーションでweb.showDocumentビルトインが実行され、アプレットでclientBrowserパラメータが定義されたため、Formsは指定された外部クライアント・ブラウザを起動しようとしました。この試行中に例外が発生しました。

処置: 「全詳細」のメッセージに問題が示されている場合は、それを修正します。そうでない場合、問題が解消しなければ、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92089: アプレットのユーザー・インタフェースを初期化中に予期しない致命的エラーが発生しました

原因: アプレットのユーザー・インタフェースを初期化中に予期しない例外が発生しました。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アプレット・ステータス・ウィンドウ

レベル: 99

トリガー: なし

FRM-92090: 起動中にクライアント側のJavaコードに予期しない致命的エラーが発生しました

原因: 起動中にクライアント側のJavaコードに予期しない例外が発生しました。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92091: クライアント側のJavaコードに予期しない致命的エラーが発生しました

原因: クライアント側のJavaコードに(起動後に)予期しない例外が発生しました。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92102: ネットワーク・エラーまたはサーバー障害が発生しました。Formsクライアントはサーバーと%s回の接続を試みましたが、成功しませんでした。アプリケーションを再起動する必要があります。

原因: Forms JavaクライアントがFormsサーバーと通信しようとしました。示された回数(networkRetriesアプレット・パラメータで指定)の接続を試みましたが、試行ごとに予期しない例外が発生しました。ネットワーク、Formsサーバーをホストしているアプリケーション・サーバー、またはアプリケーション・サーバーをホストしているサーバー・マシンに問題が発生した可能性があります。

処置: ネットワークの問題を訂正するか(存在する場合)、アプリケーション・サーバーを再起動するか、サーバー・ホスト・マシンをリブートします(必要な場合)。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92103: ネットワーク・エラーまたはサーバー障害が発生しました。アプリケーションを再起動する必要があります。

原因: Forms JavaクライアントがFormsサーバーと通信しようとしました。networkRetriesアプレット・パラメータで正の値が指定されていないため、1回のみ試行されました。この試行で予期しない例外が発生しました。ネットワーク、Formsサーバーをホストしているアプリケーション・サーバー、またはアプリケーション・サーバーをホストしているサーバー・マシンに問題が発生した可能性があります。

処置: ネットワークの問題を訂正するか(存在する場合)、アプリケーション・サーバーを再起動するか、サーバー・ホスト・マシンをリブートします(必要な場合)。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92104: ネットワーク・エラーまたはサーバー障害が発生しました。リクエストは誤ったアプリケーション・サーバー(セッションを作成したアプリケーション・サーバーではなく)に送信されました。Formsクライアントはセッションの移行を%s回試みましたが、成功しませんでした。アプリケーションを再起動する必要があります。

原因: Forms JavaクライアントがFormsサーバーと通信しようとしました。示された回数の接続を試みましたが、試行ごとにリクエストが(セッションを作成したアプリケーション・サーバーではなく)誤ったアプリケーション・サーバーに送信されました。ネットワーク、最初にセッションを作成したFormsサーバーをホストしているアプリケーション・サーバー、またはアプリケーション・サーバーをホストしているサーバー・マシンに問題が発生した可能性があります。

処置: ネットワークの問題を訂正するか(存在する場合)、アプリケーション・サーバーを再起動するか、サーバー・ホスト・マシンをリブートします(必要な場合)。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92110: 新規パスワードが一致しません。同じ文字列を入力してください。パスワードの変更に失敗しました。

原因: 「パスワードの変更」ダイアログで、新規パスワードと再入力された新規パスワードが一致していません。

処置: 「パスワードの変更」ダイアログを再試行し、新規パスワードを正しく入力および再入力します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92120: 致命的エラー: レジストリ・ファイル%sが見つかりません。

原因: Forms Javaクライアントが、指定された(Formsサーバー・マシン上の)URLでレジストリ・ファイルを読み取れませんでした。

処置: システム管理者が、レジストリ・ファイルが存在し、読取り可能であることを確認する必要があります。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92130: Oracle Formsスタンドアロン・アプリケーションではJavaScriptの実行は無効です。

原因: JavaScriptの統合は、Oracle Formsスタンドアロン・アプリケーションでは無効です。

処置: Oracle FormsでJavaScriptの統合を実行する場合にはブラウザを使用します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92135: ソース・ファイルがPlay_Audioに指定されていません。

原因: URI文字列がnullであるかまたは存在しません。

処置: メディア・ファイル名として指定された値をチェックし、値がnullでなく、指定された場所にファイルが存在することを確認します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92136: 無効なURL形式がメディア・ファイル名%sで使用されています。

原因: URIにnullスキームが含まれるか、URIが正しくありません。

処置: メディア・ファイル名として指定されている値をチェックします。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92137: サポートされていないプロトコルがPlay_Audio %sに指定されました。

原因: サポートされていないプロトコルがメディア・ソースに指定されました。

処置: サポートされているプロトコルがPlay_Audioに使用されるようにします。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92138: 誤った形式のURLがPlay_Audio %sに使用されています。

原因: 正しくない、もしくはサポートされていないURLがメディア・ソースに指定されました。

処置: メディアURLをチェックし、必要に応じてURLの形式を修正します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92140: メディア・エラー - %s MEDIA_CORRUPTED

原因: メディアが無効であるか壊れている可能性があります。

処置: 有効なメディア・ファイルであるか検査します。また、javafx.scene.media.MediaPlayerでサポートされているかどうかもチェックします。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92141: メディア・エラー- %s MEDIA_INACCESSIBLE

原因: メディアは存在すると考えられますが、アクセスできません。

処置: メディア・ファイルにアクセスしようとしているユーザーへアクセス権限が与えられているかチェックします。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92142: メディア・エラー- %s MEDIA_UNAVAILABLE

原因: メディアが存在しないか利用できません。

処置: メディア・ファイルが指定された場所で物理的に使用可能な状態であることを確認します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92143: メディア・エラー- MEDIA_UNSPECIFIED

原因: メディアが指定されていません。

処置: 有効なメディア・ファイル名を指定します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92144: メディア・エラー- %s MEDIA_UNSUPPORTED

原因: メディア・タイプは、このプラットフォームでサポートされていません。

処置: ソース・メディアにはサポートされている形式を採用します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92145: メディア・エラー- OPERATION_UNSUPPORTED

原因: メディアに対して行われた操作は、このプラットフォームでサポートされていません。

処置: ユーザーがメディアに対して行おうとした操作は、このプラットフォームでサポートされていません。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92146: メディア・エラー- PLAYBACK_ERROR

原因: 事前に定義された他のカテゴリのいずれにも該当しない再生エラーです。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92147: メディア・エラー- PLAYBACK_HALTED

原因: 再生が停止するような、回復不能なエラーが発生しました。

処置: メディア・プレイヤーは停止状態になっています。メディア・サポートが必要な場合、アプリケーションを再起動します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92148: メディア・エラー- %s UNKNOWN

原因: 原因不明のエラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92150: 致命的エラー: Webクライアントは新しいバージョンです。

原因: クライアントがサーバーより新しいバージョンです。

処置: システム管理者が、Forms製品がFormsサーバー・マシンに正しくインストールされていることを確認する必要があります。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92160: 致命的エラー: Webクライアントは古いバージョンです。

原因: クライアントがサーバーより古いバージョンです。

処置: システム管理者が、Forms製品がFormsサーバー・マシンに正しくインストールされていることを確認する必要があります。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92170: Java Web Startセッション中にJavaScriptの実行は無効になります。

原因: Java Web Startの実行中、JavaScriptの統合はサポートされません。

処置: Oracle FormsでJavaScriptの統合を実行する場合にはブラウザを使用します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92180: 致命的エラー: JavaScriptがサーバーURLを取得できません。これは、legacy_lifecycle=trueであり、かつJavaScriptが無効化されている場合に発生することがあります。その場合は、JavaScriptを再度有効化して、ブラウザを再起動し、アプリケーションを再起動する必要があります。

原因: serverURLアプレット・パラメータで、serverURLをアプレット外の要素から取得する必要があることを示す値「?」が指定されています。(標準のベースHTMLファイルから生成されたページ内で、formsweb.cfgでlegacy_lifecycle=trueである場合にこれが発生します。)FormsはJavaScriptを使用してserverURLを取得しようとしましたが、おそらくJavaScriptが無効化されていたことが原因で、試行は失敗しました。

処置: JavaScriptを再度有効化して、ブラウザを再起動します。それでも問題が解決されない場合は、このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92190: JavaScriptが式を評価できません。

原因: Formsアプリケーションがweb.JavaScript_Eval_Exprビルトインを実行しましたが、第1引数として指定されたJavaScript式が無効です。

処置: web.JavaScript_Eval_Exprビルトインに渡されるJavaScript式を訂正します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92192: JavaScript評価用のターゲット%sが存在しません。

原因: Formsアプリケーションがweb.JavaScript_Eval_Exprビルトインを実行しましたが、第2引数として指定されたターゲットが無効です。

処置: web.JavaScript_Eval_Exprビルトインに渡されるターゲットを訂正します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92193: シングル・サインオン・セッションの終了中にJavaScriptの実行でエラーが発生しました

原因: Javascriptを使用してシングル・サインオン・セッションを終了しようとしました。ただし、予期しない例外が発生しました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92210: lookAndFeelアプレット・パラメータの値%sが無効です。%sにデフォルト設定されます。

原因: lookAndFeelアプレット・パラメータに無効な値が指定されました。

処置: システム管理者が、lookAndFeelアプレット・パラメータに対して有効な値が指定されていることを確認する必要があります。

表示場所: Javaコンソール、アプレット・ステータス・ウィンドウ

レベル: 99

トリガー: なし

FRM-92211: colorSchemeアプレット・パラメータの値%sが無効です。Formsでは、指定したlookAndFeelに対してデフォルトのcolorSchemeを使用します。

原因: colorSchemeアプレット・パラメータに無効な値が指定されました。

処置: システム管理者が、colorSchemeアプレット・パラメータに対して有効な値が指定されていることを確認する必要があります。

表示場所: Javaコンソール、アプレット・ステータス・ウィンドウ

レベル: 99

トリガー: なし

FRM-92212: カスタム・カラー・スキームに必要な%sを処理できません。Formsではカスタム・カラー・スキームは使用されません。

原因: レジストリ・ファイルが見つからないか、その形式になんらかの問題があります。

処置: システム管理者は、レジストリ・ファイルが存在しており有効であることを確認する必要があります。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92213: カラー・パラメータ%sが%sで定義されていません。Formsではカスタム・カラー・スキームは使用されません。

原因: カスタム・カラー・スキームに必要なカラー・パラメータが、レジストリ・ファイルで定義されていません。

処置: システム管理者は、カスタム・カラー・スキームが構成された時点で、必要なカラー・パラメータすべてがレジストリ・ファイルで定義されていることを確認します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92214: カラー・パラメータ%sの値が無効です。Formsではカスタム・カラー・スキームは使用されません。

原因: レジストリ・ファイルでカラー・プロパティに無効な値が指定されています。

処置: システム管理者は、カラー・パラメータに定義済の有効な値が指定されていることを確認する必要があります。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92220: システム・クリップボードへのアクセスが拒否されました

原因: システム・クリップボードが他のなんらかのアプリケーションによりロックされています。通常、これは他のアプリケーションの問題を示します。注意: allowAlertClipboardアプレット・パラメータがfalseに設定されている場合、このメッセージはJavaコンソールにのみ表示されます。

処置: システム・クリップボードをロックしているアプリケーションを判別し、それ(または、クリップボードをロックしているアクション)を終了します。次に、可能な場合は、システム・クリップボードを誤ってロックしないようにアプリケーションを修正します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-92410: EndUserMonitoringの初期化に失敗しました。%s (アプレット・パラメータ%sで指定)が有効なURLであることを確認してください。

原因: EndUserMonitoringの初期化に失敗しました。指定のアプレット・パラメータ(通常はEndUserMonitoringURLパラメータ)で指定されたURLが無効であることが原因の可能性があります。このアプレット・パラメータは無視され、EndUserMonitoringは無効化され、実行は続行されました。

処置: システム管理者が、指定のアプレット・パラメータに対して有効なURLが指定されていることを確認する必要があります。それでも問題が解決されない場合は、このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92411: EndUserMonitoringに失敗しました。無効になります。

原因: EndUserMonitoringは有効化されましたが、以降にEndUserMonitoringモニターにメッセージを送信しようとした際に、予期しない例外が発生しました。EndUserMonitoringは無効化され、実行は続行されました。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92412: EndUserMonitoringデータの送信に失敗しました

原因: EndUserMonitoringは有効化されましたが、以降にEndUserMonitoringモニターにメッセージを送信しようとして失敗しました。実行は続行されました。

処置: このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92420: リスナー・クラス%sが見つかりませんでした

原因: formsMessageListenerアプレット・パラメータで指定されたクラスが見つかりませんでした。このアプレット・パラメータは無視され、実行は続行されました。

処置: システム管理者が、formsMessageListenerアプレット・パラメータに対して有効なクラス名が指定されていることを確認する必要があります。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92421: リスナー・クラス%sをインスタンス化できませんでした

原因: formsMessageListenerアプレット・パラメータで指定されたクラスをインスタンス化できませんでした。このアプレット・パラメータは無視され、実行は続行されました。

処置: システム管理者が、formsMessageListenerアプレット・パラメータに対して有効なクラス名が指定されていることを確認する必要があります。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92422: リスナー・クラス%sを初期化できませんでした

原因: formsMessageListenerアプレット・パラメータで指定されたクラスを検索してインスタンス化する際に、予期しないエラーが発生しました。このアプレット・パラメータは無視され、実行は続行されました。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92430: 警告: パラメータ%sに対する無効な値%sは無視されます - %sにデフォルト設定されます

原因: 指定されたアプレット・パラメータ(通常はasyncEventDelayパラメータ)で、有効な小数が指定されていません。かわりにデフォルト値(5秒)を使用して実行が続行されました。

処置: システム管理者が、指定のアプレット・パラメータに対して有効な小数が指定されていることを確認する必要があります。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92431: 警告: heartbeatまたはmaxeventwaitパラメータ値が250ミリ秒未満です

原因: パラメータheartbeatまたはmaxeventwaitに指定された値が250ミリ秒未満になっています。このために問題が発生することがあります。

処置: システム管理者は、値を大きくして、より適切な時間に設定することを検討する必要があります。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92440: スレッド%sはサーバーからのメッセージを待機中に中断されました。

原因: 指定されたスレッド(Forms Javaクライアント内)は、Formsサーバーからのメッセージを待機中に中断されました。このメッセージでは、診断のためにスレッドが識別されます。続いて致命的エラーが発生します。

処置: このメッセージに関する処置は必要ありません(ただし、以降の致命的エラーに関する処理が必要な場合があります)。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92450: スレッド%sは表示するダイアログを待機中に中断されました。

原因: 指定されたスレッドはダイアログを起動中でしたが、表示するダイアログの待機中に中断されました。待機が再開されました。

処置: 処置は必要ありません。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92460: スレッド%sは値リスト・データ・フェッチ・スレッドの停止を待機中に中断されました。

原因: 指定されたスレッドは値リストのデータをフェッチ中でしたが、エンド・ユーザーが値リストを受け入れるか取り消しました。そのため、スレッドは正常な停止をリクエストしましたが、リクエストの処理中に中断されました。

処置: 処置は必要ありません。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92470: イメージ項目に対するイメージ%sをロードできません

原因: リクエストされたイメージをロードできませんでした。かわりにデフォルトの(ロードの失敗を示す)イメージを使用して実行が続行されました。

処置: エラー・メッセージでイメージ・ファイル名が示されている場合は、そのファイルが存在し、読取り可能で、有効なイメージ・フォーマットであることを確認します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92471: アイコン・ボタン項目にイメージ%sをロードできません

原因: リクエストされたイメージをロードできませんでした。かわりにデフォルトの(ロードの失敗を示す)イメージを使用して実行が続行されました。

処置: エラー・メッセージでイメージ・ファイル名が示されている場合は、そのファイルが存在し、読取り可能で、有効なイメージ・フォーマットであることを確認します。

表示場所: Javaコンソール

レベル: 警告

トリガー: なし

FRM-92480: プロパティ%s: 指定した値により%sが発生しました。

原因: 値のタイプが正しくないため、項目プロパティの値の設定に失敗しました。このプロパティは変更されないまま、実行が続行されました。ほとんどの場合、このエラーはアプリケーションでSET_CUSTOM_PROPERTYビルトインを実行する際に発生します。

処置: SET_CUSTOM_PROPERTYビルトインに渡される値を訂正します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92490: サーバーからアプレット・パラメータをフェッチできません。

原因: Oracle Formsスタンドアロン・アプリケーションがサーバーからアプレット・パラメータを取得しようとしましたが、エラーが発生しました。

次の理由により失敗した可能性があります。

1. サーバーがエラー・コードを返した。

2. 通信エラー。

処置: 次のようにします。

1. URLが正しいことを確認します。

2. 定義済のbaseSAAfileパラメータが、formsweb.cfgで指定されていることを確認します。

3. URLで与えられている構成セクション名を使用して、formsweb.cfgでパラメータbaseSAAfileが定義されている場所へ到達できることを確認します。

4. ネットワーク接続を確認します。

5. タイムアウト値を変更します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92491: サーバーからアーカイブ・ファイルをフェッチできません。

原因: Oracle Formsスタンドアロン・アプリケーションがサーバーからアーカイブ・ファイルを取得しようとしましたが、エラーが発生しました。

次の理由により失敗した可能性があります。

1. アーカイブ・ファイルが存在しない。

2. 通信エラー。

処置: 次のようにします。

1. 定義済のARCHIVEパラメータが、formsweb.cfgで指定されていることを確認します。

2. ネットワーク接続を確認します。

3. タイムアウト値を変更します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92492: サーバーからエラー・コードを受け取りました。次の応答が診断のために出力されています。

原因: サーバーにリクエストが送られましたが、エラー・コードが返されました。

処置: サーバーから受け取ったエラー・コードに応じて適切な処置を行います。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92493: URLを開くことができません。java.awt.Desktopはこのプラットフォームではサポートされていません。

原因: このプラットフォームでは、java.awt.Desktopクラスはサポートされていません。

処置: Oracle Formsスタンドアロン・アプリケーションを、java.awt.Desktopクラスがサポートされているプラットフォームで実行します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92494: 警告: 無効なタイムアウト値です。デフォルトのタイムアウト値%sミリ秒で動作を継続します。

原因: コマンド・ラインの引数内で無効なタイムアウト値が指定されていました。

処置: 処置は必要ありません。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92496: Oracle Formsスタンドアロン・ランチャ・ファイルのチェックサムの生成中にエラーが発生しました

原因: チェックサムの生成中にI/Oエラーが発生しました。

処置: Oracle Formsスタンドアロン・ランチャ・ファイルが存在するか確認します。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92522: ネイティブHTTPの実装の使用を強制しています

原因: useURLConnectionアプレット・パラメータがtrueまたはyesと指定されています。

処置: 処置は必要ありません。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92523: Forms HTTP(S)の実装の使用を強制しています

原因: useURLConnectionアプレット・パラメータがfalseまたはnoと指定されています。

処置: 処置は必要ありません。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92530: ソケットのクローズ中にエラーが発生しました: %s

原因: ソケットのクローズ中に予期しない例外が発生しました。実行は続行されました。

処置: 処置は必要ありません。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92540: ネイティブHTTP実装用の出力バッファを再割当しています

原因: ネイティブHTTPのwriteメソッドが、現行の出力バッファよりも大きいデータ・ブロックを書き込むようにリクエストされました。バッファは再割当てされ、実行が続行されました。

処置: 処置は必要ありません。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92550: URL %sに対するGETへのレスポンスでcontent-lengthが負の値です

原因: Forms JavaクライアントがFormsサーブレットにGETリクエストを発行しました。結果は、負のcontent-lengthを含むレスポンスでした。続いて致命的エラーFRM-92052が表示されます。

処置: このメッセージに関する処置は必要ありません(ただし、以降の致命的エラーに関する処理が必要な場合があります)。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92551: URL %sに対するGETの代わりの読取りへのレスポンス(%s)が負の値です

原因: Forms JavaクライアントがFormsサーブレットにGETリクエストを発行しました。結果は、負のレスポンスでした。続いて致命的エラーFRM-92052が表示されます。

処置: このメッセージに関する処置は必要ありません(ただし、以降の致命的エラーに関する処理が必要な場合があります)。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92572: Forms HTTP接続に失敗しました - %s回試行した後断念します。

原因: Forms HTTP接続に失敗しました。続いて致命的エラーFRM-92050(またはFRM-92060)が表示されます。

処置: このメッセージに関する処置は必要ありません(ただし、以降の致命的エラーに関する処理が必要な場合があります)。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-92574: Forms HTTPの読取りに失敗しました: %s

原因: ネイティブHTTPの読取り中に予期しない例外が発生しました。

処置: このメッセージに付随するスタック・トレースを検証します。考えられる原因がスタック・トレースに示されている場合は、それを訂正します。それでも問題が解決できない場合は、Oracleサポート・サービスに連絡してください。

表示場所: Javaコンソール

レベル: 99

トリガー: なし

FRM-93110: Formsサーブレット構成ファイルが指定されていません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93111: Formsサーブレット構成ファイル%sが見つかりません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93112: Formsサーブレット構成ファイル%sの読取り中にエラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93114: Formsサーブレット構成ファイル%sに無効なデータが含まれています。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93121: 環境変数構成ファイル%sが見つかりません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93122: 環境変数構成ファイル%sの読取り中にエラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93124: 環境変数構成ファイル%sに無効なデータが含まれています。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93130: ベースHTMLファイルが指定されていません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93131: ベースHTMLファイル%sが見つかりません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93132: ベースHTMLファイル%sの読取り中にエラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93134: ベースJNLPファイルが指定されていません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93135: ベースJNLPファイル%sが見つかりません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93136: ベースTXTファイルがOracle Formsスタンドアロン・アプリケーションに指定されていません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93137: ssoModeが有効な状態でOracle Formsスタンドアロン・アプリケーション・セッションが許可されませんでした。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93143: Oracle Formsスタンドアロン・ランチャ・チェックサムが失敗しました。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93144: Oracle Formsスタンドアロン・ランチャ・ファイルのチェックサムの生成中にエラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93145: Oracle Formsスタンドアロン・ランチャのバージョン・パラメータが欠落しています。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93146: Oracle Formsスタンドアロン・ランチャのバージョン%sがサーバーのバージョン%sと一致しません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93150: URLに次の制限付きパラメータを指定できません: %s

原因: このパラメータがエンド・ユーザーによって(FormsサーブレットのURLに)指定されました。

処置: 示されたパラメータをURLから削除して再送信します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93151: URLに制限付き文字を指定できません。

原因: 無効な文字がエンド・ユーザーによって(FormsサーブレットのURLに)指定されました。

処置: 無効な文字をURLから削除して再送信します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93154: Formsサーブレットでは新規接続ができません。

原因: システム管理者がFormsサーブレットへの新規接続を無効化しています。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93156: FormsサーブレットはForms Load Balancing Server %s:%sに接続できません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93218: クライアント・リクエスト・コンテンツの読取り中に致命的エラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93240: 1つのHTTPセッションは、複数のFormsアプリケーションで共有できません。

原因: (1) Cookieを使用してサーブレット・セッションが追跡される間に、ユーザーがInternet Explorerで「ファイル」→「新規作成」→「ウィンドウ」(または[Ctrl]+[N])を選択しました。

(2) Formsアプリケーションが不適切に構成されています。

処置: ケース(1)の場合、Formsアプリケーションを実行中でないInternet Explorerウィンドウで「ファイル」→「新規作成」→「ウィンドウ」を選択する(または[Ctrl]キーを押しながら[N]キーを押す)か、Internet Explorerの第2のインスタンスを起動します。その他の場合は、システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93242: serverURLアプレット・パラメータがすでに存在しないHTTPセッションを参照しています。

原因: SSOが有効なJava Web Startのために作成され、ダウンロードされたJNLPファイルを、ユーザーがおそらくダブルクリックしました。

処置: Java Web Startをブラウザから再起動します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93243: 静的HTMLは許可されていません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93244: URLはJava Web StartアプリケーションまたはOracle Formsスタンドアロン・アプリケーションに再書込みできません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93301: 致命的認証エラー: Oracle Internet Directoryに接続できません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93302: FormsをSSOモードで実行中にエラーが発生しました。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93320: Oracle Platform Security Servicesからアプリケーション・エンティティ資格証明を取得できません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93330: 致命的認証エラー: ユーザーに適切な資格証明が構成されていません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93331: 致命的認証エラー: 無効なシングル・サインオン・ユーザーです。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93340: セッションはSSOユーザー認証が必要です。

原因: セッションがSSO認証済でないか、または期限切れです。

処置: SSO資格証明を使用して再ログインします。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93364: Oracle Internet Directoryでリソースを動的に作成できません: 構成パラメータでURLは無効な値"%s"を指定しています。

原因: SSOリソースを動的に作成しようとしましたが、ユーザーが存在しない構成セクションを指定していたため失敗しました。

処置: ベース構成ファイルで、構成パラメータの値として有効な構成セクションの名前を指定します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93365: FormsをSSOモードで実行中にエラーが発生しました。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93366: Oracle Internet DirectoryでFormsアプリケーションのリソース・アクセス記述子を作成中にエラーが発生しました。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93367: Forms Rad Servletに無効なパラメータ%sが渡されました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93368: Forms Rad Servletは無効な状態です。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93369: RadServletの直接のユーザー・アクセスは許可されません。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93370: 更新のためのリソース・アクセス記述子の読取り中にエラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93500: ランタイム・プロセスを作成しようとして予期しないエラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93520: ランタイム・プロセスが作成されませんでした: ランタイム・プロセスが最大許容数を超えました。

原因: 現在実行中のランタイム・プロセスの数が、システム管理者により設定された上限に達しています。

処置: システムの負荷が小さいときにアプリケーションを再試行します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93531: ランタイム・プロセスを作成できません: 作業ディレクトリに切り替えられません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93535: ランタイム・プロセスを作成できません: 起動コマンドを実行できません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93536: ランタイム・プロセスを作成できません: 一時ログ・ファイルを作成できません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93543: ランタイム・プロセスに接続できません: 新たに作成されたランタイム・プロセスからI/Oストリームを取得できません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93550: ランタイム・プロセスに接続できません: 新たに作成されたランタイム・プロセスからレスポンスがありません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93552: ランタイム・プロセスに接続できません: 新たに作成されたランタイム・プロセスが異常終了しました。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93553: ランタイム・プロセスに接続できません: 新たに作成されたランタイム・プロセスへのソケット接続を確立できません

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93558: ランタイム・プロセスに接続できません: 新たに作成されたランタイム・プロセスからデータを読取り中にエラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93600: クライアントまたはランタイム・プロセスと通信しようとして予期しないエラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93618: ランタイム・プロセスからデータの読取り中に致命的エラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93628: ランタイム・プロセスへのデータの書込み中に致命的エラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93652: ランタイム・プロセスが異常終了しました。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93830: テストCookieが設定されました。詳細: %s

原因: これは、setcookieおよびsetcookiesessコマンドの標準出力です。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93832: テストCookieが見つかりました: %s=%s

原因: テストCookieが見つかりました。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93834: テストCookieが見つかりません。

原因: テストCookieが見つかりませんでした。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93840: Proctest: 警告: nProcs構成パラメータは数値ではありません - 1を使用します。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93841: Proctest: %sで始まるプロセス・テストを処理します。

原因: Proctestコマンドが処理を開始しました。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93842: Proctest: プロセス%sを作成しています。

原因: Proctestコマンドがランタイム・プロセスの作成を開始しました。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93843: Proctest: プロセス%sの作成に失敗しました - テストを異常終了しています。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93844: Proctest: プロセス%sに接続しています。

原因: Proctestコマンドが新規に作成されたランタイム・プロセスへの接続を開始しました。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93845: Proctest: プロセス%sへの接続に失敗しました - テストを異常終了しています。

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93846: Proctest: プロセス・テストで予期しないエラーが発生しました

原因: Formsサーバーに、システム管理者による対応を必要とする致命的エラーが発生しました。

処置: システム管理者に連絡してください。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93847: Proctest: 開始され、接続されたプロセスの数は%sです。

原因: Proctestコマンドがリクエストされた数のランタイム・プロセスを作成し、各プロセスに正常に接続しました。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93848: Proctest: %sランタイム・プロセスを停止しています。

原因: Proctestコマンドは、前に作成したランタイム・プロセスを停止しようとした処理中の位置に達しました。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93849: Proctest: プロセス・テストが完了しました。

原因: Proctestコマンドが完了しました。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93860: em_result=%s|000

原因: これはstatusコマンドの標準出力です。

処置: 処置は必要ありません。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93890: トレース: 無効なXlateパラメータ%s

原因: トレース・コマンドを含んだURLで、Xlateユーティリティで認識されないパラメータも指定されています。

処置: URLを訂正します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93891: トレース: Xlateに対するoutputClassパラメータ値"%s"には"."を使用できません。

原因: トレース・コマンドを含んだURLで、outputClassパラメータに無効な値が指定されています。

処置: 無効なパラメータ値を指定しているURLを訂正します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-93892: トレース: Xlateに対するPIDパラメータ値"%s"には"%s"を使用できません。

原因: トレース・コマンドを含んだURLで、PIDパラメータに無効な値が指定されています。

処置: 無効なパラメータ値を指定しているURLを訂正します。

表示場所: Javaコンソール、アラート

レベル: 99

トリガー: なし

FRM-99999: エラー%sが発生しました。このエラーに関する情報は、リリース・ノート・ファイル(relnotes)を参照してください。

原因: エラーが発生しましたが、このエラーは、リリース・ノート・ファイルで説明されています。

処置: リリース・ノート・ファイルを参照してください。

レベル: 25

トリガー: なし

E Oracle Formsのユーティリティおよびスクリプト

この付録では、WeblogicドメインでFormsの構成カスタマイズおよびFMW統合を行う上で役に立つ情報を提供します。

この付録は、次の各項で構成されています。

- Oracle Formsの構成ヘルパー・スクリプト

Oracle Formsの構成ヘルパー・スクリプト

Oracle Formsの構成ヘルパー・スクリプト(frmconfighelper)を使用すると、管理者は、通常は複雑なインストール後のForms構成タスクをより簡単な方法で実行できるようになります。このスクリプトを使用するには、Oracle Forms 12cが正常にインストールされており、config.shまたはconfig.batスクリプトを使用して初期構成が完了していることが前提です。次の変更を手動で行うより、このスクリプトを使用することをお薦めします。

注意:

Oracle Formsヘルパー・スクリプトは、ディレクトリMW_HOME\forms\provisionにあります。

このスクリプトには、次の機能があります。

- enable_ohs: OHSからクラスタcluster_forms下のForms管理対象サーバーへの場所/フォームのルーティングを有効にします。

- deploy_app: formsapp EARファイルをデプロイし、context-rootおよびサーブレットの別名を指定した管理対象サーバーに対してオーバーライドします。

- update_app: FMw Forms Servicesパッチの適用後に、デプロイしたアプリケーションを(オーバーライドしたコンテキスト・ルート)とともに更新します。

- enable_sso: OHSインスタンス内のWebゲート構成を有効にし、パートナ・アプリケーション登録を実行し、WebゲートのアーティファクトをOHSインスタンス内の適切な場所にコピーします。enable_webgateオプションはenable_ssoオプションによって暗黙的に呼び出されるため、enable_ssoの使用時はenable_webgateオプションを使用しないでください。

- enable_webgate: パートナ・アプリケーションがOAMコンソールを介して登録される場合のみ使用されます。これは、enable_ssoが以前に使用されていた場合は使用しないでください。

注意:

このスクリプトを使用してドメインに対して管理タスクを実行する前にドメインを必ずバックアップしてください。

表E-1 frmconfighelperスクリプト

オプション

使用タイミング

機能

再起動が必要なコンポーネント

enable_sso

構成ウィザードを実行してドメイン内のFormsおよびOHSインスタンスを実行した後、Formsアプリケーションに対してシングル・サインオン保護を有効にするとき。

- OHS-Forms管理対象サーバーのルーティングを有効にします。

- OHSインスタンスでWebゲート構成を有効にします。

- OHSインスタンスでパートナ・アプリケーション登録を実行します。

- OAMサーバーでFormsおよびReportsアプリケーションを保護するためのポリシーを作成します

- 管理サーバー

- WLS_FORMS

- OHS

enable_webgate

新しいOHSインスタンスを追加した後、OHSインスタンスでWebゲート構成を個別に有効にするとき。

このコマンドは、enable_ssoコマンドが以前に使用されていた場合は使用しないでください。

OHSインスタンスでWebゲート構成を有効にします。

- 管理サーバー

- OHS

deploy_app

構成ウィザードを実行した後、Forms javaEEアプリケーションを再度デプロイし、デフォルトのcontext-rootおよびFormsサーブレットの別名をオーバーライドするとき。

例: デフォルトのForms JavaEEアプリケーションのアクセスURLは、次のとおりです。

http(s)://host:port/forms/frmservlet

context-rootをsalesに対してオーバーライドし、Forms Servletの別名をsalesservletに対してオーバーライドする場合、アプリケーションのアクセスURLは、次のとおりです。

http(s)://host:port/sales/salesservlet

- Forms JavaEEアプリケーションのcontext-root、Forms Servletの別名をオーバーライドし、Forms JavaEEアプリケーションを新しいEARファイルにパッケージ化します。

- EARファイルをWeblogicドメインにデプロイし、管理対象サーバーでアクティブ化します。

deploy_appオプションを実行する前に管理対象サーバーを作成する必要があります。

- 管理サーバー

- デプロイメントと関連付けられている管理対象サーバー

update_app

deploy_appオプションを実行した後、パッチのリリース後にカスタム・アプリケーションを更新するとき。

パッチのリリース後に、deploy_appオプションを使用して作成したJavaEEカスタムEARファイルを更新します。

- 管理サーバー

- デプロイメントと関連付けられている管理対象サーバー

enable_ohs

新しいOHSインスタンスを作成した後、Forms管理対象サーバーへのルーティングを有効にするとき。

管理対象サーバーのルーティング・ディレクティブをテンプレートforms.confに追加し、OHSインスタンスにコピーします。

- 管理サーバー

- OHS

- 構文
frmconfighelper.sh <option> <arguments>

- オプション

- enable_ohs <domain-home> <ohs-instance> <forms-managed-server1-host> <forms-managed-server1-port> <forms-managed-server2-host> <forms-managed-server2-port>

- deploy_app <new-context-root> <new-servlet-alias> <managed-server>

- update_app <Forms-context-root> <Forms-servlet-alias>

- enable_sso <oam-host> <oam-port> <ohs-host> <ohs-port> <domain-home> <ohs-instance>

- enable_webgate <domain home> <ohs-instance>

引数の説明

この項では、スクリプトに含まれている各関数の引数を説明しています。

引数の詳しい説明を次に示します。

- enable_ohs

- domain-home: ドメイン・ホーム・ディレクトリ

- ohs-instance: OHSインスタンス名(ohs1など)

- forms-managed-server(n)-host: Forms管理対象サーバーのホスト

- forms-managed-server(n)-port: Forms管理対象サーバーのポート

- deploy_appまたはupdate_app

- new-context-root: formsappの新しいコンテキスト・ルート

- new-servlet-alias: formsservletの新しいサーブレットの別名

- managed-server: 新しいアプリケーションのターゲット管理対象サーバー

- enable_sso

- oam-host: OAMサーバーのホスト名

- oam-port: OAMサーバーのポート番号

- ohs-host: OHSホスト名

- ohs-port: OHSポート番号

- domain-home: ドメイン・ホーム・ディレクトリ

- ohs-instance: OHSインスタンス名(ohs1など)

- enable_webgate

- domain-home: ドメイン・ホーム・ディレクトリ

- ohs-instance: OHSインスタンス名(ohs1など)

各関数の例

スクリプトに含まれている各関数の例を参照してください。

- enable_ohs

frmconfighelper.sh enable_ohs /middleware/user_projects/domain/base_domain ohs1 wlshost.example.com 9001 wlshost.example.com 9010

- deploy_app

frmconfighelper.sh deploy_app sales salesservlet WLS_FORMS3

- update_app

frmconfighelper.sh update_app sales salesservlet

- enable_sso

frmconfighelper.sh enable_sso oamhost.example.com 7001 ohshost.example.com 7777 /middleware/user_projects/domain/base_domain ohs1

- enable_webgate。

frmconfighelper.sh enable_webgate /middleware/user_projects/domain/base_domain ohs1

Oracleの法律上の注意点

コピーライト

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

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

保証免責

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

制限付権利について

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

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)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

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

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。