5 既知の問題と回避策

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

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

Oracle Formsの問題点と回避策

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

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

問題 オペレーティング・システム 説明
Forms JDAPI、Forms Application Deployment Services (FADS)またはForms XML Converterを使用すると、JVMがクラッシュする Microsoft Windows

Oracleホームで使用されるJDKをバージョン8U261以上に更新した後、JDAPI、FADSまたはXML Converterを使用しようとすると、JVMがクラッシュする可能性があります。次のようになります:

  • FADSを使用すると、アプリケーションはデプロイに失敗します。
  • JDAPIを使用すると、アプリケーションは実行に失敗します。
  • XML Converterを使用すると、モジュールは変換されません。

この問題は、以前のバージョンのJDKでは発生しませんでした。

解決策: パッチ32460115を適用します。

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スタンドアロン・ランチャで使用すると、歪みが見られることがあります。https://bugs.openjdk.java.net/browse/JDK-8194165

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

シグナル・チェーン機能に必要な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 Builderが起動しない

Linux 7 (OELおよびRedHat)およびSLES 12 SP1

Forms Builderは、Linux OEL7、RedHat7、SUSE Linux Enterprise Server 12 SP1、またはより新しいオペレーティング・システムで起動されません。次のエラーが表示されます。

共有ライブラリlibXm.so.3をロードしようとしてエラーが発生しました。共有オブジェクト・ファイルを開けません。ファイルまたはディレクトリがありません。

これは、Forms BuilderがlibXm.so.3を見つけようとしているためです。このバージョンは、新しいLinuxのバージョンには存在しません。問題を回避するには、ソフト・リンクを作成します。

  1. libXm.so.3という名前の/usr/lib64/下のlibXm.so.4へのソフト・リンクを作成します

    ln -s /usr/lib64/libXm.so.4.0.4 libXm.so.3

  2. これをLD_LIBRARY_PATHに追加します

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64

Oracle Forms Compilerのランタイム・エラー

Solaris

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

export LC_ALL=C

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 Application Deployment Service (FADS)は、一部のアプリケーションのデプロイに失敗します。

すべて

ATP (共有および専用)に接続しようとすると、SQLスクリプトを含むデプロイメントは失敗します。デプロイメント詳細に次のエラーが表示されます: IOエラー: 読取りコールからマイナス1を取得しました。データベースとの接続の確立中にエラーが発生しました。

ノート:

SQLスクリプトのデプロイメントは、IBM AIXではサポートされていません。

解決策: パッチ32645990を適用します。