Oracle® Fusion Middleware Oracle Forms and Reportsリリース・ノート 11g リリース2 (11.1.2) B66167-05 |
|
![]() 前 |
![]() 次 |
この章では、Oracle Formsに関連する問題について説明します。内容は次のとおりです。
この項では、一般的な問題および回避策について説明します。内容は次のとおりです。
Forms 6iからのアップグレードの詳細は、『Forms Servicesデプロイメント・ガイド』の「Oracle Forms Services 11gへのアップグレード」の章を参照してください。変更された機能と不要になった機能の詳細は、『Oracle Forms Upgrading Oracle Forms 6i to Oracle Forms 11g』を参照してください。
Oracle Forms 10gまたはOracle Forms Services 11gリリース1 (11.1.1)からのアップグレードについては、『Oracle Fusion Middlewareのアップグレードのプランニング』およびFormsおよびReportsのアップグレード・ガイドを参照してください。
Forms 11gR1アプリケーションでコンパイル済の場合は、Forms 11gR2アプリケーションを再コンパイルする必要はありません。11gR1より前のバージョンからアップグレードしたFormsアプリケーションは再コンパイルする必要があります。
この項では、Oracle FormsおよびMicrosoft Windowsに関連する問題について説明します。内容は次のとおりです。
表3-1の前提条件パッチは、Windows 8.1、Windows 2012リリース1、Windows 2012リリース2およびWindows 10のOracle Forms Builderに必要です。この前提条件パッチはインストーラの要件ではありません。
Forms BuilderをJAWSと組み合せて使用すると、アイテムを作成するために[Ctrl]を押しながら[Insert]を押すショートカット・キーは、機能しません。
この問題を回避するには、メニューのニーモニック・キーを使用します。[Alt]を押しながら[E]を押すと、「編集」メニューが開き、次に[R]を押すと「作成」を選択してアイテムを作成できます。
FormsとReportsを異なるインスタンスで構成している場合、シェルでORACLE_HOME
およびORACLE_INSTANCE
の正しい値を設定し、Windowsのショートカット・メニューではなく、シェルからForms Builderを起動します。そうしないと、Forms Builder内からのReports Builderの起動に失敗します。
JAWSとJava Access Bridgeは、Oracle Forms 11gにデフォルトでインストールされません。Java Access Bridge 2.0.1をインストールするには、http://java.sun.com/products/accessbridge/
のダウンロード手順に従ってください。Oracle Forms Builder用のJAWSスクリプトは、ORACLE_HOME
\forms\ScreenReader\
にインストールされます。
Oracle WebLogic管理対象サーバーを再起動する前に、そのサーバーにより起動されたすべてのJVMコントローラ・プロセス(dejvm
)を停止する必要があります。そうしないと、停止後にWLS_FORMS
が再起動しません。
Forms Servicesで2つのOracleインスタンスを構成しており、Windowsマシンで単一のOracleホームを使用している場合、2番目の ORACLE_INSTANCE
のFORMS_ORACLE_INSTANCE
レジストリ・エントリが優先的に使用されます。Forms Builderコンポーネントは、2番目のORACLE_INSTANCE
で構成することをお薦めします。
Formsの複数のバージョンがインストールされているWindowsマシン上では、最初にインストールしたOracle Formsがデフォルトで実行されません。これは、Fusion MiddlewareをWindowsにインストールすると、新規のORACLE_HOME
/bin
がシステム変数PATH
の先頭に追加されるためです。後続のインストールによって、システム変数PATH
の先頭にORACLE_HOME
/bin
が追加されます。前にインストールしたバージョンを実行するための回避策として、システム変数PATH
を編集します。使用するORACLE_HOME
/bin
を変数PATH
の前に移動します。
この項では、Oracle FormsおよびLinux/UNIXに関連する問題について説明します。内容は次のとおりです。
表3-2の追加の前提条件パッチは、Oracle Forms Builder、およびOracle Linux 7、Red Hat 7およびSUSE 12 (SP1+)オペレーティング・システムのユーティリティで必要です。この前提条件パッチはインストーラの要件ではありません。
表3-2 Oracle Forms 11g (11.1.2.2.0)に必要なパッチ
パッチ番号 | 説明 |
---|---|
次の3つの前提条件パッチすべてで、不具合20974387 (「OUI-67200: 起動に失敗しました」でCPUが失敗する)の再リンクの問題を修正するために、この必須パッチが必要です。 このパッチのダウンロードにはパスワードが必要です。 |
|
データ・ブロック・ウィザードを起動するときにForm Builderがクラッシュする |
|
データ・ブロック・ウィザード内で移動するときにForm Builderがクラッシュする。 このパッチのダウンロードにはパスワードが必要です。 |
|
FMAおよびJDAPIがクラッシュする |
JVMバージョン1.5以上でシグナル・チェーン機能が動作するには、default.env
にLD_PRELOAD
設定が必要です。他の環境ファイルを作成または使用する場合、その環境ファイルでのLD_LIBRARY_PATH
およびLD_PRELOAD
の設定は、default.env
での設定と同じである必要があります。
FormsセッションでReportsを実行しようとして、レポートを実行できないというFormsエラー(FRM-41214)が発生した場合、そのエラーの詳細はReportsエンジン・ログを確認してください。
この項では、構成に関する問題およびその回避策について説明します。内容は次のとおりです。
3.2.1項「One-Button-Runの使用時におけるInternet Explorer以外のブラウザのプロキシ設定」
3.2.6項「Safari 5ブラウザでFormsアプリケーションをコールするJavaScriptイベントが機能しない問題」
Internet Explorer以外のサポートされる任意のブラウザでOne-Button-Runを使用している際にFORBIDDENエラーが発生した場合、127.0.0.1 (localhost)がブラウザのプロキシ・設定に存在するかどうかを確認してください。127.0.0.1が例外リストに存在しない場合は、追加します。これにより、ブラウザはプロキシ・サーバーを迂回できます。
WebUtilによるinstall.syslib
ライブラリのダウンロードは、Windowsオペレーティング・システムの場合はJREまたはJVMのbin
ディレクトリを対象に、UNIXオペレーティング・システムの場合はJREのlib
ディレクトリを対象に行われます。この場所は、webutil.cfg
のパラメータinstall.syslib.location.client.<OS> = <Path on client machine>
で指定できます(<Path on client machine>
は、WebUtilによりクライアントで使用されるライブラリが格納される場所へのパスを表し、絶対パスまたはクライアント・ユーザー・ホームに対する相対パスです)。
install.syslib
ライブラリのダウンロード時に、WebUtilでは、webutil.properties
ファイルをクライアント・ユーザー・ホームに作成します。異なるサーバーでクライアントにライブラリをダウンロードして管理できるように、異なるwebutil.propertiesファイルがクライアント側で保持されます。クライアント上のファイルの名前は、webutil.<HOST>.<CONFIG>.properties
です。HOST
はサーバー・コンピュータ名で、CONFIG
はformsweb.cfg
の構成セクション名です。
WinRunnerがインストールされているクライアント上でJDKバージョン1.6.0_12以上を使用すると、Formsを実行できません。
この問題を回避するには、2つの環境変数_JAVA_OPTIONS
およびJAVA_TOOLS_OPTIONS
の名前を変更します。たとえば、これらの名前をtest_JAVA_OPTIONS
およびtest_JAVA_TOOLS_OPTIONS
に変更します。これにより、WinRunnerは無効化されますが、Formsは実行できます。
file://
プロトコルを使用してInternet Explorer 7またはInternet Explorer 8で開かれたフレーム付きHTMLファイルでは、JavaScript通信は機能しません。
この問題を回避するには、フレームのURLでマシン名のかわりにIPアドレスを使用します。たとえば、testform.htmで、次の部分を変更します。
<frame noresize="noresize" src="http://example.domain.com:8888/forms/java/js2frm1.html" name="fr2" frameborder="0"> <frame noresize="noresize" src="http://example.domain.com:8888/forms/frmservlet?play=&record=forms& form=js2frm1&userid=scott/tiger@adt10220" name="fr1" frameborder="0">
次のように変更します。
<frame noresize="noresize" src="http://IP_Address:8888/forms/java/js2frm1.html" name="fr2" frameborder="0"> <frame noresize="noresize" src="http://IP_Address:8888/forms/frmservlet?play=&record=forms&form=js2fr m1&userid=scott/tiger@adt10220" name="fr1" frameborder="0">
WindowsのSafari 5ブラウザでJavaScriptをFormsアプリケーションと統合して使用する場合、Formsからブラウザ上で稼働するJavaScriptへの通信は機能しますが、JavaScriptからのアプレットのコールは機能しません。
回避策として、次の手順を実行します。
base.htm
を使用していることを確認します。
base.htm
で、<APPLET>
タグをラップする<NOSCRIPT></NOSCRIPT>
タグを削除します。
実行時にWebutilを使用して構成された場合、Oracle Forms 11gR2はクライアント側のOLE統合を実行するためにJACOBバージョン1.14.3をサポートします。このバージョンのJACOBは、Oracle Formsの以前のリリースでサポートされたバージョンとは異なることに注意してください。
JACOBは、JavaからのCOMオートメーション・コンポーネントの呼出しを可能にするJAVA-COMブリッジです。これは、JNIを使用してCOMライブラリにネイティブ・コールを行います。JACOBは、32ビットおよび64ビットのJVMをサポートするx86およびx64環境で動作します。
Oracle Enterprise Manager (EM)で「スケジュール事前開始」ページに移動しようとすると次の問題が発生します。
個別にデプロイされたアプリケーションの「スケジュール事前開始」リンクは予期しない方法で動作します。FormsホームページのFormsデプロイメント表には、個別にデプロイされたアプリケーションがすべてリストされます。個別にデプロイされたいずれのアプリケーションの「スケジュール事前開始」リンクから「スケジュール事前開始」ページに移動しても、そのページでは、個別にデプロイされたアプリケーションの事前開始スケジュールの表示に失敗します。そのかわり、「スケジュール事前開始」ページには、デフォルト・アプリケーションの事前開始スケジュールが常に表示されます。
DBパスワードの期限切れ時にForms ServerプロセスからOIDのForms RADエントリを更新すると、次の問題が発生します。
Formsアプリケーションのデータベース・パスワード更新(パスワードの有効期限)がSSOシナリオで失敗します。サーバーからメッセージFRM-24309がスローされ、Formsセッションは使用できません。ユーザーはFormsセッションを終了し、新規セッションを実行する必要があります。DB内のパスワードが更新され、OIDのパスワードが更新されていないという別の問題があります。
これらの問題を解決するには、インストール/デプロイされた環境でdefault.envを変更する必要があります。CLASSPATHエントリの最後に、次のエントリを追加します。
/scratch/t_work/Oracle/Middleware/oracle_common/modules/oracle.jps_11.1.1/jps-manifest.jar:/scratch/t_work/Oracle/Middleware/oracle_common/modules/oracle.dms_11.1.1/dms.jar:/scratch/t_work/Oracle/Middleware/oracle_common/modules/oracle.odl_11.1.1/ojdl.jar:/scratch/t_work/Oracle/Middleware/oracle_common/modules/javax.management.j2ee.jar
この例では、/scratch/t_work/Oracle/Middleware
はFRM_HOMEを表します。
この項では、ドキュメントの訂正箇所を示します。内容は次のとおりです。
セキュア・モードでのユーザーIDの引渡しに関する次の情報は、Oracle Forms Builderオンライン・ヘルプに追加する必要があります。
Formsコンパイラ(frmcmp
またはfrmcmp_batch
)を使用する際に引数としてユーザーIDを渡すと、セキュリティ上のリスクを伴う可能性があります。コンパイラでは、すでに使用可能な対話式ダイアログ・モードに加えて、標準入力による接続文字列も受け入れられます。ユーザーIDをセキュア・モードで渡すには、次の手順を実行します。
環境変数FORMS_STDIN_PASSWORD
を1に設定します。
接続文字列を入力せずにコンパイラを実行します。コンパイラの開始後に接続文字列を入力します。
リダイレクトを使用してコンパイラを実行し、パスワードをコンパイラに渡します。(これは特に、1スクリプトで複数のFormsをコンパイルする際に役立ちます。)次に例を示します。
#!/bin/sh echo "Enter userid" read -s myuserid for i in 'ls *.fmb' do echo Compiling Form $i .... frmcmp_batch.sh batch=yes module=$i module_type=form compile_all=yes <<< "$myuserid" done
このスクリプトはパスワード保護のためのサンプルであり、一部のプラットフォームや構成では、セキュリティの脆弱性は解決しないことがあります。
Oracle Forms Builderオンライン・ヘルプに、次の情報を追加する必要があります。
Form Builder (frmbld)を使用してフォームが作成されると、項目のプロパティ「問合せ長」のデフォルト値は0になります。その後フォームが11g以前のリリースでコンパイルされると、この値(0)によって、「問合せ長」のデフォルト値が「最大長」プロパティの値になります。Oracle Forms 11gでは、「問合せ長」のデフォルト値が、「最大長」プロパティの値に2を加算した値になります。以前のリリースの動作に戻す場合は、フォームのコンパイル時に環境変数FORMS_QUERY_LENGTH_DELTA
を'0'に設定する必要があります。
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
環境変数のそれぞれに指定された最初の書式マスクから取得されます。