ヘッダーをスキップ
Oracle® Fusion Middleware Forms Servicesデプロイメント・ガイド
11g リリース1(11.1.1)
B61388-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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

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

FormsアプリケーションからJavaをコールすると、各Formsプロセスは初めてJavaをコールするときにJVMに接続されます。以降は、個別のプロセスが再びJavaをコールしなくても、そのプロセスが有効なかぎり、このJVMはプロセスに接続された状態を維持するので、リソースの競合が発生する可能性があります。JVMプーリングは、関係するすべてのFormsプロセス間で限られた数のJVMを共有するためのプロビジョニングを行います。すべてのFormsプロセスが、ある時点でJavaをコールすることがあったとしても、特定の時点でこれらのプロセスの一部のみがJavaをコールするならば、開始する必要のあるJVMの数は、使用率のピーク時に必要な数のみとなります。JVMプーリングを使用すると、JavaをコールするFormsインストールのリソースの使用率を大幅に低減できる可能性があります。

Formsランタイム・プロセスは、Javaの実行が必要になると、Java仮想マシン(JVM)コントローラに含まれるJVMにメッセージを送信します。JVMは、そのFormsランタイム・プロセス用に新しいスレッドを作成します。その後、JVMは別のFormsランタイム・プロセスからの次の新しいリクエストのリスニングを続行します。一方、リクエストは新しく作成されたスレッドによって処理され、結果がFormsランタイム・プロセスに返されます。該当のFormsセッションが有効である間、Formsランタイム・プロセスはそのスレッドと直接通信します。

Java仮想マシン・プーリングは、JVMコントローラを含む別のプロセスです。JVMプーリングでは、JVMはFormsランタイム・プロセスの外部で実行されます。また、JVMを複数のFormsランタイム・プロセスで共有することもできます。JVMコントローラ・プロセスはJVMそのものではなく、JVMを含むコンテナです。これは、Formsランタイム・プロセスがインプロセスJVMを含む仕組みと同様です。JVMプーリングの使用はオプションです。管理者は、JVMプーリングを使用せず、JVMがFormsランタイム・プロセスに含まれるようにすることもできます。

Java仮想マシン(JVM)プーリングは、Java Importerとの組合せで機能します。また、ReportsをコールするFormsの機能との組合せでも動作します。Java Importerを使用すると、開発者は設計時にForms Builder内のPL/SQLからJavaクラスを参照できます。実行時に、FormsはJava仮想マシン(JVM)を使用してJavaコードを実行します。Oracle Formsの以前のバージョンでは、Java Importerを使用する各Formsセッションに、Javaコードを実行するための個別のJVMインスタンスがありました。このモデルでは、各JVMがサーバー上のメモリーを消費するため、同時に多数のユーザーが存在すると、複数のJVMプロセスによって消費されるメモリーの量は膨大なものになる可能性があります。

Java Importerの詳細は、Oracle Forms Developerのオンライン・ヘルプを参照してください。

JVMプーリングを有効化すると、管理者は実行中のJVMインスタンスの数を整理して、複数のFormsセッションでJVMを共有し、Formsセッションごとに個別のJVMインスタンスを持たないようにすることができます。これにより、メモリー消費が大幅に削減されるため、サーバーのより多くのリソースが解放されます。

アプリケーションの設計および配布においても、JVMプーリングを考慮する必要があります。詳細は、「第10章の「設計時の考慮事項」を参照してください。

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

10gの場合、Formsランタイム・プロセスではReportsをコールする前にJVMが個別に作成され、ReportsではこのJVMを使用してJavaメソッドを実行します。このJVMはFormsランタイム・プロセスに属しています。10gでJVMプーリング機能を使用するのはJava Importerのみです。一方、JVMプーリングを有効にした11gの場合、Oracle Forms ServicesではOracle Reportsのリクエストに対して共有JVMコントローラを使用します。

各Formsランタイム・プロセスで専用のJVMインスタンスを持たずに、複数のFormsランタイム・プロセスでJVMを共有できます。JVMプーリングでは、JVMを収容するJVMコントローラと呼ばれるプロセスを使用できます。このJVMを複数のFormsランタイム・プロセスで共有できます。これにより、メモリー消費を大幅に削減できるので、サーバーではより多くのリソースを解放できます。

jvmcontrollerパラメータを使用すると、特定のJVMコントローラを使用するようにフォームを構成できます。jvmcontrollerパラメータは、どのJVMコントローラを使用するかをFormsランタイム・プロセスに指示します。これは、Forms構成ファイルformsweb.cfgで設定できます。また、Formsアプリケーションの呼び出しに使用するURLのパラメータとしてこの情報を渡すこともできます。jvmcontrollerを起動するときに必要な各種のパラメータは、JVMコントローラの構成ファイルjvmcontrollers.cfgで指定する必要があります。

Reportsの統合でのJVMプーリングの使用の詳細は、第10.10項「FormsとReportsの統合」を参照してください。

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

各Formsランタイム・プロセスがJVM内に個別にスレッドを持つため、同時実行性が実現します。JVMが同時リクエストの指定数に達すると、負荷を分散させるためにJVMを生成します。さらに、複数のJVMコントローラを持ち、それぞれに子JVMを持つことも可能です。

たとえば、複数のFormsアプリケーションで、オプションやクラスパスが異なるJVMを使用する場合があります。特定のFormsアプリケーションで使用するJVMコントローラは、Forms構成ファイル(formsweb.cfg)の名前を付けたセクションで指定できます。詳細は、第10.8.6項「Forms構成ファイル設定」を参照してください。

図10-1は、JVMプーリングを使用した場合の環境の例を示しています。2つのJVMコントローラがあり、1つはインプロセスJVMのみを使用し、もう1つは3つのJVMを使用しています。

図10-1 子プロセスを持つ複数のJVMコントローラ

この図はJVMプーリングを使用した環境を示しています。

図10-1には示されていませんが、各JVMコントローラには、起動、停止、またはForms構成ファイル内で参照に使用される一意な名前があります。

図10-1は、複数のFormsアプリケーションで異なるJVMコントローラを使用していることを概念的に示しているだけです。ただし、Formsランタイム・プロセスは、JVMコントローラと通信せず、使用可能なJVMのいずれかと直接通信します。したがって、図の最初の2つのクライアントはインプロセスJVMを使用できるだけですが、残りのクライアントには処理に使用できるJVMが3つあります。

JVMのパフォーマンスが大幅に低下した場合は、そのJVMが処理するリクエストが多すぎる可能性があります。その場合は、そのJVMコントローラで複数の子JVMを持つようにできます。子JVMは必要に応じて動的に作成されます。

JVMパラメータのmaxsessionsは、新しい子JVMが作成されるまでに1つのJVMに対して接続できるFormsランタイム・プロセスの数を指定します。子JVMが起動すると、その子JVMはJVMコントローラと同じパラメータを継承します。

JVMがmaxsessionsで指定された接続数に達すると、そのJVMは新しいFormsランタイム・プロセスからのリクエストを受け付けなくなります。新しいFormsランタイム・プロセスが初めてJavaコードを実行しようとすると、そのプロセスは使用可能なJVM(maxsessionsより少ない接続数のもの)に接続されます。JVMの選択方法は完全に任意で、ロード・バランシングやラウンドロビン・アルゴリズムはありません。

JVMがmaxsessionsで指定された接続数に達しても、別のJVMがそれに達していなければ、新しいJVMは作成されません。すべてのJVMが同時にmaxsessionsで指定された接続数に達した場合は、別の子JVMが作成されます。

子JVMは負荷が低下しても自動的に削除されません。そのため、一部の子JVMを削除する場合は、JVMコントローラを停止する必要があります。これにより、すべての子JVMも停止します。その後、JVMコントローラを再起動できます。

子JVMの有効範囲は、JVMコントローラのネームスペースのコンテキスト内に限定されます。たとえば、2つのJVMコントローラ、ordersJVMおよびhrJVMがある場合、ordersJVMとその子JVMは、hrJVMやその子JVMに影響を与えることはなく、これらから影響を受けることもありません。

10.2.1 子JVMの例

ordersJVMというJVMコントローラがmaxsessions=50に設定されているとします。実行中の各オーダー・アプリケーションは、ordersJVMにリクエストを送信します。新しいFormsランタイム・プロセスがordersJVMにリクエストを送信すると、そのたびにFormsランタイム・プロセスと通信する新しいスレッドが作成されます。その後、JVMコントローラは新しいリクエストのリスニングに戻ります。ユーザーがセッションを終了すると、JVM内のスレッドも終了します。

ordersJVMコントローラが50番目の同時リクエストを受信すると(一部のユーザーが終了した後で開始するユーザーも存在するため、最初から50番目のユーザーとはかぎりません)、コントローラは子JVMを生成します。子JVMは親の設定を継承するため、この子JVMのmaxsessions50になります。この段階では、JVMコントローラには50の接続があり、子JVMには接続はありません。

新しいユーザーがこのOracle Formsアプリケーションを起動し、Javaコードを実行すると、Formsランタイム・プロセスはそのJVMコントローラのネームスペース内でリスニングを実行しているJVMに接続します。このJVMコントローラには50の接続があり、使用できないため、子JVMがこのリクエストを受信します。その後、親のJVMコントローラで一部のユーザーがアプリケーションを終了し、接続数が減少すると、コントローラはmaxsessionsで指定された接続数に達しないかぎり新しいリクエストを受信することができます。

このような処理が行われる間、hrJVMはこれとは別に動作しています。ordersJVMで接続が超過してもhrJVMには接続されず、ordersJVMの子JVMに対してのみ接続が行われます。

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

JVMプーリングのアーキテクチャでは、複数のJVMコントローラを持ち、それぞれが子JVMを持つことができます。複数のJVMコントローラを使用するのは、次のような場合です。

10.4 JVMプーリングの使用例

ここでは、ユーザー・インタフェースのボタンを持つOracle Formsアプリケーションについて検討します。ユーザーがボタンを押すと、Oracle Formsは画面上のフィールドから値を取得してJavaに渡し(Java Importer機能を使用)、PL/SQLでは実行できないなんらかの複雑な計算を実行します。その後、結果が返され、フォーム内のフィールドに表示されます。このFormsセッションを実行するために、1つのJVMプロセスが実行されています。

図10-2は、JVMプーリングが有効になっていないために、このOracle Formsセッションに個別のインプロセスJVMが存在する様子を示しています。図の左側には、独自のFormsセッションを実行する複数のクライアントが示されています。図の中央で、各クライアントは、独自のJVMプロセスを含む独自のFormsランタイム・プロセスをコールします。

図10-2 JVMプーリングを使用しない場合のFormsランタイム

この図はインプロセスJVMを示しています。
「図10-2 JVMプーリングを使用しない場合のFormsランタイム」の説明

図10-3は、JVMプーリングが有効になっている場合に、複数のFormsランタイム・プロセスで単一のJVMプロセスが共有される様子を示しています。

図10-3 JVMプーリングが有効な場合のFormsランタイム

JVMプーリング
「図10-3 JVMプーリングが有効な場合のFormsランタイム」の説明

この例では、同じアプリケーションでそれぞれ独自のランタイム・プロセスを使用して機能している5つのクライアントが、独自のJVMインスタンスを生成するそれぞれのFormsランタイム・プロセスを使用するかわりに、1つのプールされたJVMプロセスを使用しています。このため、メモリー使用率とシステム・リソースを大幅に節約できます。

10.5 設計時の考慮事項

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

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

JVMプーリングが利用可能になる時点より前にOracle FormsのJava Importer機能を使用していた場合は、JVMプーリングを使用する前にJavaクラスを再インポートする必要があります。Javaクラスを初めてインポートしたときには、そのJavaクラスのPL/SQLラッパーが生成されています。これは、フォームで作成されたプログラム・ユニット内で確認することができます。ただし、JVMプーリングを使用するJava Importerで生成されているPL/SQLラッパーはこれとは異なります。

Oracle Forms Services 10g以降では、Java Importerは新しいPL/SQLラッパーを生成します。Java Importerを使用し、JVMプーリングを利用しない場合は、インプロセスJVMは新しい PL/SQLラッパーで正常に機能します。また、旧スタイルのPL/SQLラッパーでもこれまでどおりに機能します。

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

JVMプーリングのメリットの1つに、同一クラスの複数のインスタンス間で静的変数を使用してデータを共有する機能があります。ただし、静的変数は1つのJVM内の同一クラスのインスタンス間で共有され、複数のJVM間では共有されません。この条件に従って計画を立案する必要があります。

たとえば、ローン・クラスのすべてのインスタンスで同じ金利を使用して計算を実行するという理由で、interestRateという静的変数が用意されているとします。JVMを1つのみ使用する場合は、ローン・クラスの1つのインスタンスでinterestRateが変更されると、その他のすべてのインスタンスが影響を受けます(これは意図した動作です)。

ただし、JVMコントローラに1つ以上の子JVMが存在する場合は、2つ以上のJVMが存在する場合があります。1つのJVMでinterestRateが変更されても、他のJVMにあるローン・インスタンスでは新しい値が認識されません。子JVMの管理の詳細は、第10.2項「子Java仮想マシンのプロセスについて」を参照してください。JVMプーリングを使用しておらず、interestRateを変更した場合は、各Oracle Formsのランタイム・プロセスが個別にインプロセスJVMを持つため、その変更により他のインスタンスは影響を受けません。

静的変数を使用してクラスの複数のインスタンス間で情報を共有する場合は、maxsessions65535に設定して、子JVMが生成されないようにしてください。

10.6 JVM構成の概要

Fusion Middleware Controlを使用してJVMを構成するには、次の手順を実行します。

  1. Fusion Middleware Controlを使用して、formsweb.cfgに新しい構成セクションを追加するか、そこにある既存の構成セクションを変更し、アプリケーションでのJVMコントローラの使用を有効または無効にします。詳細は、第10.8.6項「Forms構成ファイル設定」を参照してください。

  2. default.envまたはjvmcontrollers.cfgでCLASSPATHが更新されていることを確認します。

  3. Fusion Middleware Controlを使用してJVMパラメータを構成します。詳細は、第10.8.3項「パラメータの管理」を参照してください。

  4. JVMコントローラを起動します。詳細は、第10.8.5項「Fusion Middleware ControlによるJVMコントローラの起動と停止」を参照してください。

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

コマンドラインからJVMコントローラを管理するには、JVMコントローラの起動および停止のオプションを理解し、環境を指定する必要があります。JVMコントローラを実行しているコンピュータと同じコンピュータ上にあるJVMコントローラにのみアクセスできます。


注意:

この章で説明するJVMコントローラの制御メカニズムは、主にコマンドラインに関連しています。使いやすい画面とオンライン・ヘルプのあるFusion Middleware Controlを使用する方法のほうが簡単です。ただし、各種のフィールドやオプションの意味およびJVMコントローラの動作の仕組みを理解するために、Fusion Middleware Controlのユーザーも次の情報を参照することをお薦めします。


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

この項では、JVMコントローラのコマンドの例について説明します。これらの例の詳しい説明は、第10.8.7項「起動の例」を参照してください。

  • dejvm -start jvmcontroller=hrJVM

    hrJVMというIDのJVMコントローラを起動します。コントローラ名hrJVMは、構成ファイルの名前付きセクションで定義されています。このため、JVMオプションとクラスパス・パラメータは構成ファイルから取得されます。maxsessionsはデフォルト・セクションでの定義に従って50になり、他のパラメータはそれぞれのデフォルト値になります。

  • dejvm -start jvmcontroller=myJVM

    myJVMというIDのJVMコントローラを起動します。オプションの指定がなく、jvmcontrollers.cfgに名前付きセクションがないため、JVMオプション・パラメータは、デフォルト・セクションでの設定に従って"-Xms512m -Xmx1024m"およびmaxsessions=50になります。他のパラメータはそれぞれのデフォルト値になります。たとえば、CLASSPATHの値はシステムCLASSPATHです。

  • dejvm -start jvmcontroller=hrJVM jvmoptions="-Xms128m -Xmx256m" maxsessions=75

    名前付きセクションでの定義に従って、クラスパスを/myJava/hrClassesに設定します。コマンドラインはjvmcontrollers.cfgファイルより優先されるため、JVMオプションは"-Xms128m -Xmx256m"になります。同様に、maxsessions75になります。他のパラメータはすべて、それぞれのデフォルト値になります。

  • dejvm -start jvmcontroller=myJVM maxsessions=100 classpath=/myJava/myClasses;/moreJava/moreClasses

    jvmcontrollers.cfgのデフォルト・セクションでの定義に従って、コントローラにはjvmoptions="-Xms512m -Xmx1024m"が設定されます。maxsessionsは100になり(デフォルト・セクションより優先される)、クラスパスは/myJava/myClasses;/moreJava/moreClassesとなります。他のパラメータはすべて、それぞれのデフォルト値になります。

  • dejvm -stop jvmcontroller=hrJVM

    hrJVMコントローラを停止します。これは、このコマンドを正常に発行するために、起動済である必要があります。

10.7.2 コマンドの制限

次のコマンド制限に注意してください。

  • コマンドでは、大文字と小文字が区別されます。

  • 1度に1つのコマンドのみをJVMコントローラに発行できます。

  • 1度に1つのJVMコントローラに対してのみ、コマンドを発行できます。

JVMコントローラ(dejvmプロセス)で使用可能なコマンドを表10-1に示します。Enterprise Managerを使用している場合は、これらのコマンドを発行するためのインタフェースを含む画面があります。コマンドラインを使用している場合は、Enterprise Managerを使用したJVMコントローラの管理はできないことがあります。

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

表10-1に、コマンドラインからJVMを起動するために使用するJVMパラメータを示します。

表10-1 JVMパラメータ

パラメータ 説明

jvmcontroller

JVMの名前を入力します。この名前は、文字で始まり、英数字、'_'、'$'、または'#'で構成される有効なOracle識別子にする必要があります。Oracle識別子の最大長は30バイトです。

ヒント: 名前は、そのJVMにアクセスするアプリケーションの名前に基づいたものを入力することをお薦めします。このJVMコントローラの名前は後から変更できません。

maxsessions

新規JVMが生成される前に該当のJVMが処理する最大同時Oracle Formsセッション数を指定します。この値によって、デフォルトJVMコントローラ用のセットが上書きされます。

classpath

クラスパスを指定すると、環境で指定されたクラスパスまたはシステムのクラスパス、またはデフォルトJVMコントローラ用のクラスパス・セットが上書きされます。

jvmoptions

JVMに渡すために有効なオプションを入力します。この値によって、デフォルトJVMコントローラ用のセットが上書きされます。有効なJVM起動オプションの詳細は、Sun社のJavaドキュメントを参照してください。

logdir

デフォルトJVMコントローラのログ・ディレクトリを使用する場合は、「ログ・ディレクトリ」を空白のままにしておきます。他のディレクトリが設定されている場合は、Enterprise Managerからログ・ファイルにアクセスできないことがあります。

logging

オンまたはオフ。


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

Fusion Middleware Controlでは、使用可能なすべてのJVMプーリング・オプションを管理するためにWebベースの環境が用意されています。また、環境内のすべてのJVMコントローラが一覧表示され、(リモートで)これらを管理することができます。たとえば、JVMコントローラの起動や停止、新規コントローラの追加、既存のコントローラの再構成などができます。さらに、Fusion Middleware Controlでは、JVMコントローラで消費されるリソース(メモリーやCPU)、接続されているFormsの数、JVMの総数などのメトリック情報も得られます。

Formsランタイム・プロセスが直接JVMと対話的に処理するとき、JVMコントローラではそのJVMを管理(JVMの起動や停止、JVMの状態情報の取得など)します。たとえば、管理者がJVMコントローラを停止すると、JVMコントローラではすべての子JVMを終了したことを確認します。Fusion Middleware Controlを使用してJVMコントローラを管理します。

JVMコントローラは、次の3通りの場合に起動されます。

Fusion Middleware Controlでは、JVMコントローラの構成ファイルが読み取られます。これには、名前と値のペア、デフォルト・セクションおよび名前を付けたセクションが含まれ、Forms構成ファイル(formsweb.cfg)と同様の機能を果たします。jvmcontrollers.cfgに含まれるパラメータは、JVMコントローラの起動パラメータに相当します。


注意:

JVMコントローラの構成ファイルのディレクトリや名前を変更することはできません。


JVMコントローラを起動すると、設定が構成ファイルから取得されます。このファイルでは、デフォルト・セクションと名前を付けたセクションの両方で、オプションをまったく指定しないことも、一部またはすべてのオプションを指定することもできます。

Fusion Middleware Controlの「JVM構成」ページと「JVMコントローラ」ページを使用して、次のようなJVMプーリング・タスクを管理します。

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

この項では、JVM構成ファイルとそのパラメータのセクションで構成を編集するために実行できる、一般的なタスクについて説明します。

表10-2に、JVM構成ファイル内の名前を付けた構成セクションで実行できるタスクを示します。

表10-2 構成セクションで行うタスク

タスク 説明 コメント

類似作成

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

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

編集

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

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

削除

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

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

作成

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

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


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

表10-3 名前を付けた構成セクションでのパラメータ処理のタスク

タスク 説明 コメント

元に戻す

以前のバージョンの構成セクションに戻すことができます。

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

適用

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

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

追加

「パラメータの追加」ダイアログを開きます。

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

削除

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

変更を保存するには「適用」、破棄するには「元に戻す」をそれぞれ使用します。一度適用すると、個々のパラメータへの変更を元に戻すことはできません。


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

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

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

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

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

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

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

    「JVM構成」ページ(図10-4)が表示されます。

    図10-4 「JVM構成」ページ

    「JVM構成」ページ
    「図10-4 「JVM構成」ページ」の説明

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

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

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

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

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

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

    作成」ダイアログが表示されます。

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

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

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

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

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

  1. JVM構成」リージョンで、説明を編集する名前を付けた構成を含む行を選択します。

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

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

  4. 「コメント」フィールドに説明を入力します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


注意:

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


10.8.3 パラメータの管理

名前を付けた構成内のパラメータを管理するには、Fusion Middleware Controlを使用します。Fusion Middleware Controlを使用して、パラメータを追加、編集または削除できます。

構成セクションでパラメータを編集するには:

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

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

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

構成セクションにパラメータを追加するには:

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

  2. 「追加」をクリックして新しいパラメータを追加します。

    「追加」ダイアログが表示されます。

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

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

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

構成セクションのパラメータを削除するには:

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

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

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

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

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

表10-4に、JVM構成パラメータとそのデフォルト値を示します。

表10-4 JVM構成パラメータ

パラメータ 説明 デフォルト値

JVM当たりの最大セッション数

新規JVMが生成される前にデフォルトのJVMが処理する、最大同時Oracle Formsセッション数を指定します。

65535

クラスパス

クラスパスを指定すると、システムのクラスパスまたは環境で指定されたクラスパスが上書きされます。

$ORACLE_HOME/jdk/bin/java

JVMオプション

JVMに渡すために有効なオプションを入力します。有効なJVM起動パラメータの詳細は、Sun社のJavaドキュメントを参照してください。

Null

ログ・ディレクトリ

デフォルトJVMコントローラのログ・ディレクトリを使用する場合は、「ログ・ディレクトリ」を空白のままにしておきます。他のディレクトリが設定されている場合は、ログ・ファイルはEnterprise Managerで表示できません。

$ORACLE_INSTANCE/FRComponent/frcommon/tools/jvm/log

ロギング

ロギングが有効かどうかを指定します。有効値: On、Off

On

コメント

このテキスト領域に、デフォルトのJVMに関するコメントを追加します。

Null


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

Fusion Middleware Controlは、JVMコントローラの起動、停止、再起動など、Oracle Forms Servicesを管理するツールです。Oracle Forms Servicesの管理には、このツールの使用をお薦めします。

JVMコントローラが停止した場合は、起動することができます。JVMコントローラがすでに実行中の場合は、手動で停止せずに再起動することができます。Fusion Middleware Controlでは、自動的にこの手順が実行されます。


注意:

JVMを停止または再起動する前に、JVMコントローラを使用しているFormsセッションをユーザーが停止したことを確認します。JVMを再起動すると、ユーザー側ではセッションの再起動が必要になることがあります。


「JVMコントローラ」ページにアクセスするには:

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

  2. 「Forms」ホームページで、「JVMコントローラ」を選択します。

    JVMコントローラ」ページ(図10-5)が表示されます。

図10-5 「JVMコントローラ」ページ

「JVMコントローラ」ページ
「図10-5 「JVMコントローラ」ページ」の説明

実行中でないJVMコントローラを起動するには:

  1. 「Forms」メニューで、「JVMコントローラ」を選択します。

    JVMコントローラ」ページが表示されます。

  2. 起動するJVMコントローラを選択します。実行されていないJVMコントローラには赤い下矢印が表示されています。

  3. 起動」をクリックします。

    JVMコントローラが起動すると、「ステータス」に緑色の上矢印(図10-5)が表示されます。

実行中のJVMコントローラを再起動するには:

  1. 「Forms」メニューで、「JVMコントローラ」を選択します。

    JVMコントローラ」ページが表示されます。

  2. 再起動するJVMコントローラを選択します。

  3. 再起動」をクリックします。

  4. 「確認」ダイアログで「はい」をクリックします。

    JVMコントローラ」ページが再表示されます。

    JVMコントローラが再起動すると、「ステータス」に緑色の上矢印が表示されます。

JVMコントローラを停止するには:

  1. 「Forms」メニューで、「JVMコントローラ」を選択します。

    JVMコントローラ」ページが表示されます。

  2. 停止する対象となる実行中のJVMコントローラ(緑色の上矢印で表示されているコントローラ)を選択します。

  3. 停止」をクリックします。

  4. 「確認」ダイアログで「はい」をクリックします。

    JVMコントローラが停止すると、「ステータス」に赤色の下矢印(図10-5)が表示されます。

JVMコントローラのその他の詳細を表示するには:

  1. 「Forms」メニューで、「JVMコントローラ」を選択します。

    JVMコントローラ」ページが表示されます。

  2. JVMコントローラの横にあるプラス記号をクリックします。行が開き、JVMコントローラに関する追加の詳細(図10-5)が表示されます。

10.8.6 Forms構成ファイル設定

この項では、アプリケーションでのJVMコントローラの使用を有効または無効にするためにForms構成ファイル(formsweb.cfg)で使用するJVMプーリング・パラメータについて説明します。パラメータ名には大/小文字の区別はありません。Fusion Middleware Controlを使用して、Forms構成ファイルを管理できます。

表10-5「Oracle FormsのJVMコントローラ起動パラメータ」に、formsweb.cfgファイルで指定する起動オプションを示します。

formsweb.cfgでのパラメータの変更の詳細は、第4.2.4項「パラメータの管理」を参照してください。

表10-5 Oracle FormsのJVMコントローラ起動パラメータ

パラメータ 説明

jvmcontroller

有効値: jvmcontrollerの名前。空白のままにしてJVMを指定しないこともできます。

デフォルト値はありません。

注意: formsweb.cfgでこのパラメータを指定するには、jvmcontroller=%jvmcontroller%の形式でotherparamsにこのパラメータを指定する必要があります。otherparamsの詳細は、表4-13「詳細構成パラメータ」を参照してください。

このパラメータはデフォルト・セクションでグローバルに設定することも、アプリケーション・セクションを優先することもできます。これによって、Formsランタイム・プロセスで使用するJVMコントローラが決まります。dejvm実行可能ファイルのjvmcontrollerパラメータに対応します。

jvmcontrollerに値を指定していない場合(jvmcontroller=)、Formsランタイム・プロセスは自身のインプロセスJVMを起動します。これは、Java Importerの動作は10gより前のリリースのものとなることを意味します。

allowJVMControllerAutoStart

有効値: truefalse

デフォルト値: true

JVMコントローラを使用するようにFormsが構成されていて、そのJVMコントローラが実行されていない場合、このパラメータにより、Oracle FormsでJVMコントローラを実行することができます。


10.8.7 起動の例

この例では、複数のアプリケーションで複数のJVMを使用する環境を示します。

表10-6に示すように、formsweb.cfgは4つの構成セクションで構成されます。

図10-6 複数のアプリケーションで使用する複数のJVM

名前を付けた構成セクション JVM構成

デフォルト

jvmcontroller=commonJVM

ordersApp

なし

hrApp

jvmcontroller=hrJVM

salesApp

jvmcontroller=


ユーザーがordersAppアプリケーションを起動し、アプリケーションがJavaコードを実行すると、Formsランタイム・プロセスはそのリクエストをcommonJVMという名前のJVMコントローラにルーティングします。[ordersApp]アプリケーション・セクションでは使用するJVMコントローラが指定されていないので、Formsランタイム・プロセスはグローバルなJVMコントローラを使用します。JVMコントローラが起動していない場合は、動的に起動します。別のユーザーが同じアプリケーションを起動すると、同様にcommonJVMに接続します。

ユーザーがhrAppアプリケーションを起動し、アプリケーションがJavaコードを実行すると、Formsランタイム・プロセスはそのリクエストをhrJVMという名前のJVMコントローラに送ります。これは、[hrApp]アプリケーション・セクションがグローバル設定より優先されるためです。JVMコントローラが起動していない場合は、動的に起動します。別のユーザーが同じアプリケーションを起動すると、同様にhrJVMに接続します。

ユーザーがsalesAppアプリケーションを起動し、アプリケーションがJavaコードを実行すると、Java ImporterがJVMプーリングなしで機能するのと同様に、Formsランタイム・プロセスはインプロセスJVMを起動します。別のユーザーが同じアプリケーションを起動すると、そのアプリケーションは自身のインプロセスJVMを取得するため、図10-6に示すようにメモリーの消費量が多くなります。

図10-6 複数のアプリケーションで使用する複数のJVM

複数のアプリケーションで使用する複数のJVM
「図10-6 複数のアプリケーションで使用する複数のJVM」の説明

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

ロギングを有効にすると、JVMコントローラは次のような情報をログ・ファイルに記録します。

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

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

Fusion Middleware Controlを使用して、JVMコントローラのロギング・プロパティを管理します。

  1. JVM構成」ページで、JVM構成セクションを選択します。

  2. 「ロギング」パラメータに、「オン」または「オフ」を入力します。

  3. 適用」をクリックします。

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

ログ・ファイルのディレクトリはJVMコントローラで指定できます。また、他のJVMコントローラが使用するデフォルトJVMコントローラのログ・ファイル・ディレクトリも指定できます。

ログ・ファイルのディレクトリの場所を指定するには:

  1. JVMコントローラを作成します。詳細は、第10.8.2.2項「新しい構成セクションの作成」または第10.8.2.4項「名前を付けた構成の複製」を参照してください。

  2. ログ・ディレクトリ」パラメータを追加します。詳細は、第10.8.3項「パラメータの管理」を参照してください。

    ログ・ディレクトリ」パラメータが定義されている名前の付いた構成セクションを複製した場合は、第10.8.3項「パラメータの管理」にあるように、既存のそのパラメータを編集できます。

  3. 適用」をクリックして変更を保存します。

    JVM構成」ページが再表示されます。

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

ログ・ファイルが存在する場合は、「ログ・ファイル」列にアイコンが表示されます。

ログ・ファイルにアクセスするには:

  • 該当のJVMコントローラで使用可能な「ログ・ファイル」列の「ログ・ファイル」リンクをクリックします。

    「ログ・ファイル」ページが開き、そのログの情報が表示されます。

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

Fusion Middleware Controlを使用して、ログ・ファイルを削除します。

JVMコントローラのログ・ファイルを削除するには:

  1. JVMコントローラ」ページで、ターゲットJVMを選択します。

  2. ログ・ファイルを削除」をクリックします。

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

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

    ログ・ファイルが削除され、「JVMコントローラ」ページが再び表示されます。


注意:

実行中のJVMのログ・ファイルを削除した場合、JVMを再起動すると、そのログ・ファイルが再び使用可能になります。ロギングを可能にするには、JVMを再起動する必要があります。


10.10 FormsとReportsの統合

FormsでのReportsの統合にはJVMコントローラ(dejvm)を使用します。Reports Serverでのレポートの実行、レポートのステータスの取得、Reports出力の取得、Reports Serverに送信したジョブのキャンセルなど、Reportsに関するすべてのリクエストはdejvmにルーティングされ、dejvm対応のランフォームがReportsをコールします。

Reportsの統合でdejvmを使用するには、次の手順を実行します。Oracle FormsからReportsを直接コールする場合、この設定は不要です。

Reportsの統合にdejvmを使用するには:

  1. formsweb.cfgでJVMプーリングを有効にします。詳細は、第10.8.6項「Forms構成ファイル設定」を参照してください。

  2. Reportsの統合では、2つの.jarファイルがdejvmで別途必要です。jvmcontrollers.cfgで、クラスパスにこの2つのJARファイル、zrcclient.jar($ORACLE_HOME/jlib/zrclient.jar)とrwrun.jar($ORACLE_HOME/reports/jlib/rwrun.jar)を追加します。


注意:

JVMコントローラを使用してレポートを実行する場合にReports Serverの名前を返すようにするには、次に示すようにREPORTS_SERVERMAP環境変数をjvmcontrollers.cfgに定義する必要があります。

[myjvm]
jvmoptions=-DREPORTS_SERVERMAP=<value> <other-jvmoption-parameters>

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

PDE-JM001: JVMコントローラ: <jvm_name>と通信できません。

原因: JVMコントローラの起動または既存のJVMコントローラへの接続に失敗しました。

処置: 管理者に連絡してください。