5 既知の問題と回避策

この章では、Oracle Formsに関連する既知の問題と回避策について説明します。

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

Oracle Formsの問題点と回避策

この項では、Oracle Formsに関連する問題の詳細およびその回避策について説明します。

表5-1 Oracle Formsの問題点と回避策

問題 オペレーティング・システム 説明
Oracle HTTP Server (OHS)は、Database 19バンドルまたはPSUパッチをミドルウェア・ホームに適用した後に起動しない場合があります。 すべて

データベース・バンドルまたはPSUパッチをミドルウェア・ホームにインストールしようとすると、パッチの競合エラーが発生しました。エラーを解決するには、-rollback-forceまたは-force_conflictのいずれかのオプションの使用を選択します。

データベース・パッチのインストールが正常に完了すると、OHSは起動しなくなります。

この問題は、2023年10月のクリティカル・パッチ・アップデート(CPU)リリースで修正される予定です。2023年10月以降のCPUパッチの適用後にこの動作が発生した場合は、Oracleサポート・サービスに連絡してください。

Oracle Forms Builderの「フォームの実行」ボタンが失敗する すべて Forms builderで「フォームの実行」ボタンを使用しようとすると、先にフォームがFORMS_PATHに含まれるディレクトリに保存されていない場合は失敗します。かわりに、作業ディレクトリをFORMS_PATHに追加します。これは通常MIDDLEWARE_HOME \binディレクトリです。これは意図的な動作上の変更で、ディレクトリ・パスがURLに追加されるのを防ぎます。推奨はされませんが、FORMS_MODULE_PATHエントリ全体をdefault.envから削除(コメント化)すると、以前のバージョンの動作に戻すことができます。
WLS_FORMSがプロキシの後ろにある場合Web Startが機能しない すべて WLS_FORMSがプロキシ・サーバーの後ろにある場合、Web Startを使用してFormsアプリケーションを起動しようとすると失敗します。この問題を修正するには、formsweb.cfgのWEBSTART_CODEBASEを外部サーバーからの表示のようなCODEBASEの完全修飾パスに設定します。たとえば、http://OHShost:OHSport/forms/javaです。
項目内に入力できる文字数に影響を与える変更とその回避策 すべて
問題
  1. Forms Builder (frmbld)を使用してフォームが作成されると、項目のプロパティ「問合せ長」のデフォルト値は0になります。その後フォームが11gより前のリリースでコンパイルされると、この値(0)によって、「問合せ長」のデフォルト値が「最大長」プロパティの値になります。Oracle Forms 11gでは、「問合せ長」のデフォルト値が、「最大長」プロパティの値に2を加算した値になります。以前のリリースの動作に戻す場合は、フォームのコンパイル時に環境変数FORMS_QUERY_LENGTH_DELTAを'0'に設定する必要があります。
  2. DATE書式マスクによって、テキスト項目またはコンボ・ボックスに入力できる文字数が決まります。通常、この数は出力書式マスクおよび許容されるすべての入力書式マスクに必要な最大文字数になります。コンボ・ボックス、または書式マスクを設定しないテキスト項目に入力および出力書式マスクを選択する方法のプロセスは、「日付の書式要素について」で説明しています。FORMS_USER_DATE_FORMATまたはFORMS_USER_DATETIME_FORMAT環境変数では、複数の入力書式マスクが指定される場合があります。また、Oracle Forms Builderオンライン・ヘルプに含まれるSQLリファレンスの「書式モデル」文字列から日付への変換規則に関する項の説明に記載されているとおり、FXを含まないどの入力書式マスクに対しても、代替書式マスクを使用できます。

    前述の説明に含まれる規則には、例外が1つあります。文字列から日付への変換規則に関する項の説明に記載されている動作では、数字の月(MM形式のマスク要素)または省略形の月(MON形式のマスク要素)に、月のスペル全体を入力することも許可されます。ただしこの場合、テキスト項目またはコンボ・ボックスに入力できる文字数は、省略形の月のみを入力できる長さになります。

    11gR1以前のリリースでは、入力DATE書式マスクは考慮されません。10gR2 (10.1.2)では、エンド・ユーザーがDATE項目に入力できる文字数は、出力書式マスクによってのみ決まります。Forms 6i (6.0.8)では、DATE項目の「最大長」プロパティも考慮されます。

回避策

前述の説明に含まれる動作の変更は、DATE項目のAuto-Skipプロパティを設定したユーザーに影響を与える場合があります。このリリースでは、エンド・ユーザーがより多くの文字を特定のDATE項目に入力できる場合があります。この場合、自動スキップは11gR1より前とは異なり発生しません。自動スキップを確実に発生させるには、項目に使用する書式マスクに、FX修飾子をFXYYYY/MM/DDのように追加します。項目固有の書式マスクがない場合(つまり、項目のプロパティ・パレットまたはプログラムに書式マスクが設定されていない場合)、項目の書式マスクは環境変数から取得されます。FORMS_USER_DATE_FORMATおよびFORMS_USER_DATETIME_FORMAT環境変数は、DATE書式マスクに影響を与える可能性があるどのNLS環境変数よりも優先されるため、これらの変数を使用することをお薦めします。

FX修飾子を指定すると、SQLリファレンスの「書式モデル」文字列から日付への変換規則に関する項の説明に記載されている、代替書式マスクが許可されなくなります。また、FORMS_USER_DATE_FORMATおよびFORMS_USER_DATETIME_FORMAT環境変数では、代替書式マスクを縦線で区切って明示的に指定できます。たとえば、FXDD-MON-YYYY|FXMON-DD-YYYYのように指定します。FORMS_OUTPUT_DATE_FORMATおよびFORMS_OUTPUT_DATETIME_FORMAT環境変数が設定されていない場合、出力書式マスクは、FORMS_USER_DATE_FORMATおよびFORMS_USER_DATETIME_FORMAT環境変数のそれぞれに指定された最初の書式マスクから取得されます。

ORA-01031エラー すべて ATP-S(共有)への接続時に、Forms Builderによって「ORA-01031: 権限が不足しています」というエラーがスローされます。このエラーは無視しても問題ありません。ただし、この状態の結果として、リモート依存性モードはTIMESTAMPに設定されます。
以前のバージョンのFormsモジュールをコンパイル/生成しようとすると、エラーが発生する場合があります すべて

以前のバージョンのFormsモジュールをコンパイル/生成しようとすると、このエラーがスローされ、必要なFMXまたはMMXモジュールの生成に失敗する場合があります:

PL/SQLエラー422 行<NUMBER>、列<NUMBER>

この問題は、Formsの四半期ごとのパッチ・リリース(QPR)で修正されています。Ref 35687821

シグナル・チェーン機能に必要なLD_PRELOAD設定 Linux/UNIX JVMバージョン1.5以上でシグナル・チェーン機能が動作するには、default.envLD_PRELOAD設定が必要です。他の環境ファイルを作成または使用する場合、その環境ファイルでのLD_LIBRARY_PATHおよびLD_PRELOADの設定は、default.envでの設定と同じである必要があります。
一部のNLS_LANG設定を使用して一部のモジュール・タイプを生成できない Linux/UNIX

NLS_LANGの地域を一部のリージョンに設定すると、コンパイラが失敗してFRM-30312.がスローされる場合があります。

問題を回避するには、NLS_LANGUAGEをリージョンの一般的な言語からAMERICANに変更します。たとえば、CROATIAN_CROATIA.UTF8AMERICAN_CROATIA.UTF8に変更します。

アウトオブプレース・アップグレードの完了後、ビルダーおよびその他のFormsユーティリティが機能しません。 Microsoft Windows

アウトオブプレース・アップグレードの実行に使用するツールは、ミドルウェアOracleホームに関連付けられているWindowsレジストリ・キーを更新しません。その結果、Oracleホームのパスへの参照を含むすべてのサブキーは、新しい場所ではなく、古い場所を参照します。

警告:

Windowsレジストリを不適切に変更すると、オペレーティング・システムに永続的な損傷を与える可能性があるため、変更するキーまたはレジストリ全体(あるいはその両方)のバックアップを作成することが重要です。レジストリの編集に精通していない場合は、そのような変更を行った経験のある人に相談するか、Microsoft社のドキュメントを参照してください(あるいはその両方)。

問題を修正するには、このミドルウェア・インストールに関連付けられたレジストリ・キーで見つかったエントリ(たとえば、HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OracleHome<NUMBER>)を確認します。Oracleホームが以前に配置されていたパスを参照する任意のエントリを手動で修正します。修正された値は、新しいホームの場所のパスを参照する必要があります。

JAWSで動作しないショートカット・キー Microsoft Windows

Forms BuilderをJAWSと組み合せて使用すると、アイテムを作成するために[Ctrl]を押しながら[Insert]を押すキーボード・ショートカットは、機能しません。

この問題を回避するには、メニューのニーモニック・キーを使用します。[Alt]を押しながら[E]を押すと、「編集」メニューが開き、次に[R]を押すと「作成」を選択してアイテムを作成できます。

WLS_FORMSを停止して再起動する前に停止する必要のあるdejvm Microsoft Windows Oracle WebLogic管理対象サーバーを再起動する前に、そのサーバーにより起動されたすべてのJVMコントローラ・プロセス(dejvm)を停止する必要があります。そうしないと、停止後にWLS_FORMSが再起動しません。
クリアでないテキストおよびイメージのレンダリング Microsoft Windows

ディスプレイの拡大縮小の値が100%以外の値に設定されているデスクトップで、Java 11以降をFormsスタンドアロン・ランチャで使用すると、歪みが見られることがあります。

回避策としては、Windowsのディスプレイの拡大縮小設定を100%に変更します。変更を反映して完全に適切にレンダリングされるようにするには、現在のWindowsセッションからログアウトして再度ログインする必要がある場合があります。

また、次のJavaスイッチの1つ以上を使用すると問題を軽減できる場合もあります。正確にどれが必要かは、その症状によって決まります。

  • -Dsun.java2d.dpiaware=true
  • -Dsun.java2d.uiScale=true
  • -Dsun.java2d.autoScaleThreshold=1.5
  • -Dsun.java2d.uiScale=1.0
Oracle Forms Compilerのランタイム・エラー Solaris

Oracle FormsコンパイラおよびForms Builderを実行中で、かつNLS_LANGを設定している場合に、コンパイラが終了時にクラッシュする問題を解決するには、ユーザーはさらに環境変数LC_ALLを設定する必要があります。

export LC_ALL=C

フォーム実行時のHTTP 404エラー SUSE Linux

WLSドメインのインストールと作成が成功したように見えるのに、その後でフォームを実行しようとすると、HTTP 404エラーが発生します。

この問題を解決するには:

  1. すべての管理対象サーバーを停止します。
  2. $DOMAIN_HOME/binディレクトリでsetStartupEnv.shファイルを見つけて、編集のために開きます。
  3. 次のエントリを、このファイルの最上部付近にあるコメントの真下(最初のコード行の上)に追加します:
    LD_LIBRARY_PATH="<ORACLE HOME>/lib${CLASSPATHSEP}${LD_LIBRARY_PATH}"
        export LD_LIBRARY_PATH

    ここで、<ORACLE HOME>は、このインストールのOracleホーム・ディレクトリへの完全修飾パスです。

  4. 変更を保存して、ファイルを閉じます。
  5. サーバーを再起動して再テストします。
インストーラが前提条件のソフトウェアのインストールに失敗し、エラー・メッセージが表示される SUSE Linux Enterprise Server 15のみ

SUSE Linux Enterprise Server 15にインストールするとき、インストーラが必要なOSパッケージをインストールせずに停止し、エラー・メッセージが表示されます。これは既知の問題であり、パッチ35299885で修正されました。

SUSE Linux Enterprise Server 15へのインストールを実行するには、インストーラの起動時にパッチ35299885をダウンロードしてインストールします。パッチは、Oracle Supportサイト(https://support.oracle.com/epmos/faces/PatchResultsNDetails?patchId=35299885&platformId=2000)にあります。

ノート:

ソフトウェアをインストールする前に、付属のReadmeを十分に確認してください。