プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Publisher管理者ガイド
12c (12.2.1.3.0)
E80600-02
目次へ移動
目次

前
次

E メモリー・ガード機能の有効化

この項では、過剰なデータを生成するレポート・リクエストが原因で生じるメモリー障害からシステムを保護するために用意されたプロパティ設定について説明します。

次の項が含まれます:

メモリー・ガード機能とは

BI Publisherは、過剰な量のデータを生成したり過剰な量のメモリーを消費したりするレポート・リクエストを遮断することにより、メモリー不足エラーを防止する一連の機能を備えています。

メモリー・ガード機能には一連のプロパティがあります。これらのプロパティでは、データ・サイズと使用可能な空きメモリーを調査してレポート・リクエスト処理の続行または終了を判断するための条件および処理ポイントを構成できます。

主な機能

この項では、メモリー・ガードのプロパティとデータ・モデルのプロパティの主な機能についての情報を提供します。

すべてのプロパティは「メモリー・ガードおよびデータ・モデルのプロパティの構成」に記載されています。プロパティは、次のようなコントロールを設定することで、メモリー不足エラーから保護し、データ処理を強化します。

  • レポートの最大データ・サイズ

  • スケジュール済レポートの最大データ・サイズ

  • 最少空きメモリー・サイズ

  • 未使用データ・セット列のSQLプルーニング

  • SQL問合せおよびレポートのタイムアウト

次の項では、いくつかのプロパティを取り上げ、システムがどのように設定に対応するか説明します。

レポート処理の最大データ・サイズの制限

レポート処理で許容されるデータ・サイズを制限すると、システムで処理できるよりも多くのデータが戻された場合、メモリー不足エラーを防ぐことができます。

オンライン処理の最大許容データ・サイズの指定

プロパティ: オンライン・レポート用の最大レポート・データ・サイズ

このプロパティを使用すると、オンライン・レポート表示の最大許容データ・サイズを指定できます。最大データ・サイズを設定した場合、ユーザーがオンライン表示でレポートを開くと、次の処理が行われます。

  1. ユーザーが、ブラウザでのオンライン表示用にレポートを送信します。

  2. データ・エンジンがレポート用のデータを生成します。

  3. ドキュメントが生成される前に、データのサイズ(バイト単位)が検査されます。

  4. 生成されたデータが最大設定を超える場合、レポート処理は終了します。ユーザーに次のメッセージが表示されます。

    実行しようとしているレポートは、このサーバーに設定されたデータ制限を超えています。データを削減するパラメータを使用して再実行するか、このレポートをスケジュールしてください。質問がある場合は管理者に問い合せてください。

    ユーザーは、データを制限するパラメータを設定して(レポートで使用できる場合)オンラインで再送信するか、BI Publisherスケジューラを使用してレポートを送信することが可能です。

このプロパティのデフォルト値は300MBです。

「オフライン(スケジュール済)レポート用の最大レポート・データ・サイズ」処理の設定

プロパティ: オフライン(スケジュール済)レポート用の最大レポート・データ・サイズ.

この機能では、スケジュール済レポート表示の最大許容データ・サイズを指定できます。最大データ・サイズを設定すると、スケジュール済レポートジョブの実行により、次のような動作が発生します。

  1. スケジューラは、レポート・ジョブの処理を開始します。

  2. データ・エンジンがレポート用のデータを生成します。

  3. 生成されたデータが最大設定を超える場合、レポート処理は終了します。レポート・ジョブにエラーが発生すると、次のステータスのメッセージが表示されます。

    レポート・データ・サイズが制限(<nnn>バイト)を超えています。処理を停止しました。

    パラメータを(レポートで使用できる場合)を設定して、データを制限できます。

このプロパティのデフォルト値は500MBです。

「空きメモリーしきい値」の構成

この一連のプロパティにより、最低許容空きメモリー領域を確立してメモリー不足エラーから保護することができます。

この一連のプロパティを使用すると、空きメモリーの可用性をシステムで自動的に保護できます。また、この可用性に基づいた大きなデータ・セットのあるレポートを高度に処理できます。

「レポート処理の最小空きメモリーしきい値」の指定

プロパティ: 空きメモリーしきい値

この設定では、空きJVM領域の最小値を指定できます。これにより、2つの要素(現行使用量およびレポート・データのサイズ)に基づいて、レポートを実行するかどうかを制御できます。この機能では、組み合せて使用する複数のプロパティを設定する必要があります。JVM領域のしきい値、JVMがしきい値を下回った場合のレポートの最大許容レポート・サイズ、およびレポートを一時停止して使用可能なJVMの空き領域が増加するのを待つ最大待機時間を指定します。

これらのプロパティを設定した場合、ユーザーがオンライン表示でレポートを開くと、次の処理が行われます。

  1. ユーザーが、ブラウザでのオンライン表示用にレポートを送信します。

  2. データ・エンジンがレポート用のデータを生成します。

  3. JVMメモリーが検査されます。使用可能なJVMメモリーが「空きメモリーしきい値」プロパティ値を上回る場合、レポートは通常どおり処理され、システムの介入は行われません。

    使用可能なJVMメモリーがしきい値を下回る場合、レポート・データのサイズが検査され、「空きメモリーしきい値未満の最大レポート・データ・サイズ」のプロパティ設定と比較されます。レポート・データがこのしきい値を下回る場合、レポートの処理は続行します。

    レポート・データ・サイズがしきい値を超えている場合、レポートは一時停止して、空きメモリーが使用可能になるのを待機します。レポートは「空きメモリーがしきい値を超えて回復するまでの最大待機時間」プロパティで指定された長さの時間待機します。指定された待機時間内に空きメモリーが最小値を超えて回復しない場合、レポート・リクエストは拒否されます。

このプロパティのデフォルト値は500MBです。

「空きメモリーしきい値未満の最大レポート・データ・サイズ」の指定

プロパティ: 空きメモリーしきい値未満の最大レポート・データ・サイズ

デフォルト値: (「空きメモリーしきい値」の値)/10

空きJVMメモリーが「空きメモリーしきい値」に設定されている特定のしきい値を下回る場合の最大許容レポート・データ・サイズ。たとえば(デフォルトの設定の場合)、単一のレポートのために生成されたデータが「空きメモリーしきい値」に設定された値の1/10を超える場合、処理は終了します。「空きメモリーしきい値」が100MBに設定され、単一のレポート・データ抽出物が10MBを超える場合、レポート処理は終了します。

このプロパティが有効になるのは、「空きメモリーしきい値」が正の値に設定されている場合のみです。

「ガベージ・コレクション実行間隔の最小時間範囲」の設定

2つの連続するガベージ・コレクション実行間隔の最小時間範囲(秒単位)。この値を設定して、JVMガベージ・コレクションのオーバーランを回避します。サーバーでは120秒の最小時間が強制されるので、値がこの最小時間を下回っていると120秒にリセットされます。

デフォルトは300秒です。

「空きメモリーがしきい値を超えて回復するまでの最大待機時間」の設定

空きJVMメモリーがしきい値を超えて回復するまで、レポートの実行リクエストが待機する最大時間(秒単位)。このプロパティ値が有効になるのは、正の値の「空きメモリーしきい値」が指定されている場合のみです。

指定された時間内に空きメモリーが使用可能になると、リクエストがすぐに処理されてドキュメントを生成します。指定した時間の後、空きメモリーが依然としてしきい値を下回っている場合、リクエストは拒否されます。オンライン・リクエストでは、このプロパティ値を大きくすれば、ブラウザがリクエストの実行を待機する時間が長くなります。

このプロパティのデフォルト値は、30秒です。

データ・エンジン・プロパティの設定

データ・エンジン・プロパティの設定は、メモリー不足から保護する機能をシステムに追加します。

データ・エンジンで生成可能な最大データ・サイズの設定

このプロパティはデータ・モデル・エディタでXMLデータを生成するときにのみ使用されます。通常のレポート生成シナリオでは、テンプレートは必ず選択されるので、メモリー・ガード側のプロパティ(各テンプレート・タイプのオンラインまたはオフラインの最大レポート・データ・サイズ)がこのプロパティに優先します。

最大データ・サイズを設定することにより、データ・モデルの実行で生成可能なデータに対して絶対制限を設定します。この設定は、オンライン・レポート・リクエストとスケジューラ経由で送信されたリクエストの両方に適用されます。データ・エンジンによって生成されたファイルのサイズが制限を超える場合、データ・エンジンはデータ・モデルの実行を終了して、次の例外をスローします。

「oracle.xdo.dataengine.diagnostic.XMLSizeLimitException: 生成されたXML出力(NNNNNNバイト)は指定のファイル・サイズ制限(NNNNNバイト)を超えています。」

レポート・リクエストがスケジューラ経由で送信された場合、そのジョブは「レポート・ジョブ履歴」ページに失敗と表示されます。前述の例外エラーは、カーソルをステータスの上に置くと表示されます。レポート・リクエストがオンラインで送信された場合、ユーザーにエラー「データXMLを取得できません。」が表示されます。

最大サンプル・データ・サイズの設定

サンプル・データ・セットが、すべてのデータ・モデルに必要です。サンプル・データは、テンプレート設計の際に使用します。サンプル・データはデータ・モデル・エディタで生成されます。データ・モデルにアップロードすることもできます。大規模なサンプル・データ・セットは、設計ツールのパフォーマンスに影響を与えます。

このプロパティを設定して、データ・モデルにアップロードできるサンプル・データ・ファイルのサイズを制限します。

自動データベース・フェッチ・サイズの設定

この設定では、データ・セット列の合計数と問合せ列の合計数に基づいて、実行時にデータベース・フェッチ・サイズの計算と設定を行います。このプロパティを設定すると、サーバー・レベルおよびデータ・モデル・レベルのデータベース・フェッチ・サイズのプロパティがオーバーライドされます。このプロパティは、設定時にすべてのデータ・モデルに適用されるので、処理時間が大幅に遅くなる可能性があります。この設定は、何百もの列を使用した複雑な問合せを頻繁に処理するBI Publisherの実装(Oracle Fusion Applicationsの実装など)で使用することをお薦めします。ほとんどの一般的なBI Publisherの実装で、この設定を使用することはお薦めしません。

メモリー・ガードおよびデータ・モデルのプロパティの構成

メモリー・ガードの機能を実装するには、「管理」→「ランタイム構成」ページの「プロパティ」タブでプロパティを設定するか、runtimepropertiesconfig.shコマンドライン・ユーティリティを使用します。

「管理」→「ランタイム構成」ページの「プロパティ」タブでのメモリー・ガードとデータ・モデルのプロパティ設定を次の表に示します。

メモリー・ガード

プロパティの説明 デフォルト値

オンライン・レポート用の最大レポート・データ・サイズ

300MB

オフライン(スケジュール済)レポート用の最大レポート・データ・サイズ

500MB

空きメモリーしきい値

500MB

空きメモリーしきい値未満の最大レポート・データ・サイズ

free_memory_threshold/10

空きメモリーがオフライン(スケジュール済)レポート用に回復するまでの最大待機時間

30 (秒)

ガベージ・コレクション実行間隔の最小時間範囲

300 (秒)

空きメモリーがしきい値を超えて回復するまでの最大待機時間

30 (秒)

オンライン・レポートのタイムアウト

600 (秒)

CSV出力の最大行数

1000000

データ・モデル

プロパティ 説明

データ生成の最大データ・サイズ制限

デフォルト値: 500MB

データ・モデルの実行で生成可能な最大XMLデータ・サイズ。この設定は、オンライン・レポート・リクエストとスケジューラ経由で送信されたリクエストの両方に適用されます。データ・エンジンによって生成されたファイルのサイズがこのプロパティの設定値を超える場合、データ・エンジンはデータ・モデルの実行を終了して例外をスローします。

Validation rule: [1-9][0-9]*[KB|MB|GB]?

例:
  • 123MB

  • 128974848

  • 2GB

  • 2147483648

このプロパティを使用しない場合は、0または負の数値を入力します。

最大サンプル・データ・サイズ制限

デフォルト値: 1MB

データ・モデルにアップロードできるサンプル・データ・ファイルの最大ファイル・サイズ。

データ・モデル・スケーラブル・モードの有効化

デフォルト: True

大きなデータ・セットの処理では、大量のRAMが必要です。メモリー不足を防止するには、データ・エンジンのスケーラブル・モードを有効にします。スケーラブル・モードでは、データの処理時に、データ・エンジンがディスク領域を利用します。

このプロパティを特定のデータ・モデルに設定することもできます。データ・モデル設定はこのシステム・モデル設定を上書きします。

自動DBフェッチ・サイズ・モードの有効化

デフォルト値: True

Trueに設定されると、BI Publisherは、データ・セット列の合計数と問合せ列の合計数に基づいて、実行時にデータベース・フェッチ・サイズの計算と設定を行います。

この設定によりメモリー不足エラーを回避できますが、処理時間が大幅に遅くなります。

Trueに設定されると、他の「DBフェッチ・サイズ」設定は無視されます。

この設定は、何百もの列を使用した複雑な問合せを頻繁に処理するBI Publisherの実装(Oracle Fusion Applicationsの実装など)で使用することをお薦めします。ほとんどの一般的なBI Publisherの実装で、この設定を使用することはお薦めしません。

このプロパティは、データ・モデル・レベルのデータベース・フェッチ・サイズのプロパティをオーバーライドします。

このプロパティは、設定時にすべてのデータ・モデルに適用されるので、処理時間が大幅に遅くなる可能性があります。

DBフェッチ・サイズ

デフォルト値: 20 (行)

データ・モデルの、最大データベース・フェッチ・サイズ。このプロパティ値が有効になるのは、「自動DBフェッチ・サイズ・モードの有効化」がFalseに設定されている場合のみです。フェッチ・サイズが一致すると、列が一時ファイルに書き込まれ、別のフェッチが実行されます。この処理は、すべての列が一時ファイルに戻されるまで繰り返されます。

フェッチ・サイズが小さいと、BI Publisherからデータベースへのやりとりの回数が増え、全体的な処理時間に影響を与えます。データ・チャンクを小さくすると、過度なメモリー使用量を抑えることができます。

このプロパティは、データ・モデル・レベルでも設定できます。データ・モデル設定はサーバー・プロパティ設定を上書きします。

SQL問合せタイムアウト

デフォルト: 600秒

SQL問合せに基づくデータ・モデルのタイムアウト。タイムアウト値が満たされた時にSQL問合せがまだ処理中の場合、「データxmlの取得に失敗しました」エラーが戻されます。

このプロパティは、データ・モデル・レベルでも設定できます。データ・モデル設定はこのサーバー・プロパティ設定を上書きします。

インスタンス・レベルまたはデータ・モデル・レベルでの設定に関係なく、オンラインで実行されているすべてのBI Publisherレポートの最大SQL問合せタイムアウトは10分です。これはスレッドのスタックとサーバーの停止を防止します。

データ・モデル診断の有効化

デフォルト値: False

このプロパティをTrueに設定すると、データ・セットの詳細、メモリーおよびSQL実行時間の情報がログ・ファイルに書き込まれます。デバッグ目的限定で、このプロパティをtrueに設定することをお薦めします。trueに設定すると、処理時間が増大します。

SQLセッション・トレースの有効化

デフォルト値: False

このプロパティをTrueに設定すると、実行されるSQL問合せごとに、BI PublisherはSQLセッション・トレース・ログをデータベースに書き込みます。データベース管理者はこのログを調査できます。

このプロパティは、テストおよび開発環境でのみ有効化することをお薦めします。

このプロパティを有効化するには、データベース接続に定義したユーザーが、データベースでセッションを変更する権限を付与されている必要があります(構文: GRANT ALTER SESSION TO <USER NAME>)。「データソースへのJDBC接続の設定」を参照してください。

SQLプルーニングの有効化

デフォルト値: False

標準SQLを使用するOracle Database問合せのみに適用されます。問合せにより戻される列が多数あり、サブセットのみをレポート・テンプレートで使用する場合、SQLプルーニングによりテンプレートで必要な列のみが戻されます。このプロパティを設定すると、処理時間が強化され、メモリー使用量を削減できます。「SQLプルーニングの有効化」もデータ・モデル・レベルのプロパティであり、このサーバー・レベルの設定をオーバーライドする特定のデータ・モデルに対してこのプロパティを選択するか、選択を解除することができます。

SQLプルーニングは、PDF、ExcelおよびE-textテンプレート・タイプに対して適用できません。

『Oracle Business Intelligence Publisherデータ・モデリング・ガイド』のデータ・モデル・プロパティの設定に関する項を参照してください。

runtimepropertiesconfig.shコマンドライン・ユーティリティの使用

この項では、runtimepropertiesconfig.shコマンドライン・ユーティリティを使用してメモリー・ガードのプロパティを構成する方法を説明します。

コマンドライン・ユーティリティの条件

runtimepropertiesconfig.shコマンドライン・ユーティリティを実行するには、次のことを実行する必要があります。

  • 環境変数を設定します。たとえば、export JAVA_HOME=/home/jdk/jdk1.8.0_40です。デフォルトでは、JAVA_HOME=$BI_HOME/jdkです

  • <BI_HOME>/modules/BIPConfigService.zipファイルを解凍して、<BI_HOME>/modules/BIPConfigService/binディレクトリにruntimepropertiesconfig.shユーティリティを配置します。

    cd <BI_HOME>/modules

    unzip —d BIPConfigService BIPConfigService.zip

  • runtimepropertiesconfig.shコマンドライン・ユーティリティの場所にディレクトリを変更します。

    cd <BI_HOME>/modules/BIPConfigService/bin

  • ユーティリティの要求に応じて、BI_DOMAIN_HOMEのパスを入力します。

    例: /user_projects/domains/bidomain/

構文

runtimepropertiesconfig.sh <操作> <オプション>

ここで

操作: updategetまたはhelp

update操作のオプション : KEY1=VALUE1,KEY2=VALUE2

get操作のオプション: KEY1,KEY2

メモリー・ガードのプロパティ

プロパティ 説明
server.ONLINE_REPORT_MAX_DATA_SIZE オンライン・レポート用の最大レポート・データ・サイズ

デフォルト値: 300MB

server.OFFLINE_REPORT_MAX_DATA_SIZE オフライン(スケジュール済)レポート用の最大レポート・データ・サイズ

デフォルト値: 500MB

server.FREE_MEMORY_THRESHOLD 空きメモリーしきい値

デフォルト値: 500MB

server.MAX_DATA_SIZE_UNDER_FREE_MEMORY_THRESHOLD 空きメモリーしきい値未満の最大レポート・データ・サイズ

デフォルト値: free_memory_threshold/10

server.MINIMUM_SECOND_RUN_GARBAGE_COLLECTION ガベージ・コレクション実行間隔の最小時間範囲

デフォルト値: 300 (秒)

server.WAIT_SECOND_FOR_FREE_MEMORY 空きメモリーがしきい値を超えて回復するまでの最大待機時間

デフォルト値: 30 (秒)

server.ONLINE_REPORT_TIMEOUT オンライン・レポートのタイムアウト。

デフォルト値: 600 (秒)

server.MAX_ROWS_FOR_CSV_OUTPUT CSV出力の最大行数

デフォルト値: 1000000

server.XML_DATA_SIZE_LIMIT データ生成の最大データ・サイズ制限

デフォルト値: 500MB

server.MAX_SAMPLE_XML_DATA_SIZE_LIMIT 最大サンプル・データ・サイズ制限

デフォルト値: 1MB

server.DB_FETCH_SIZE DBフェッチ・サイズ

デフォルト値: 20

server.SQL_QUERY_TIMEOUT SQL問合せタイムアウト

デフォルト値: 600 (秒)

例E-1 メモリー・ガードのプロパティの更新

次のコマンドはserver.ONLINE_REPORT_MAX_DATA_SIZEプロパティとserver.SQL_QUERY_TIMEOUTプロパティの値を更新します。

./runtimepropertiesconfig.sh update server.ONLINE_REPORT_MAX_DATA_SIZE=223MB,server.SQL_QUERY_TIMEOUT=600

例E-2 すべてのメモリー・ガードのプロパティの値のリスト

次のコマンドは、すべてのメモリー・ガードのプロパティの値をリストします。

./runtimepropertiesconfig.sh get

例E-3 指定されたメモリー・ガードのプロパティの値のリスト

次のコマンドは、指定されたプロパティの値を取得します。

./runtimepropertiesconfig.sh get server.ONLINE_REPORT_MAX_DATA_SIZE,server.SQL_QUERY_TIMEOUT

例E-4 ヘルプ取得

次のコマンドは、すべてのメモリー・ガードのプロパティとデフォルト値をリストします。

./runtimepropertiesconfig.sh help

メモリー不足エラー回避のための最大スレッド数制約の構成

大量のBI Publisherレポート処理の際、Oracle WebLogicサーバーは複数のスレッドを同時に使用してレポートを生成します。

スレッドに制約がない場合、Oracle WebLogic Serverで大量のスレッドを割り当ててレポートを生成すると、メモリー不足エラーが発生します。このエラーを回避するには、ワーク・マネージャを作成して、Oracle WebLogic ServerがBI Publisherに割り当てる最大スレッド数を適用してレポートの処理を実施します。

最大スレッド数制約を設定するには、次の手順に従います。

  1. Oracle WebLogic Serverでの最大スレッド数制約の作成

  2. ワーク・マネージャ(XdoWorkManager)の作成

  3. xmlpserver.earファイルの再デプロイ

    注意:

    ここでは、xmlpserver.earファイルをデプロイして、新しいワーク・マネージャをアクティブにする方法を説明します。また、手順3のかわりに、次のいずれかを実行することもできます。

    • bipublisherアプリケーションを再起動(停止および起動)します。

    • Oracle WebLogicサーバー・インスタンス(たとえば、bi_server1、bi_server2など)を再起動します。

この初期設定の手順が終了すると、最大スレッド件数値の変更(たとえば、10から20に変更)がすぐに有効になります。再起動または再デプロイ操作は必要ありません。

Oracle WebLogic Serverでの最大スレッド数制約の作成

Oracle WebLogicコンソールで最大スレッド数制約コンポーネントを作成します。

最大スレッド数制約を設定するには、次の手順に従います。
  1. Oracle WebLogicコンソールにログインします。
  2. 「ドメイン構造」ペインで、「ワーク・マネージャ」をクリックします。
  3. 「チェンジ・センター」ペインで、「ロックして編集」クリックします。
  4. 「ワーク・マネージャ、リクエスト・クラスおよび制約」表で、「新規」をクリックします。
  5. 「新しいワーク・マネージャ・コンポーネントの作成」ダイアログで、「最大スレッド数制約」を選択して、「次」をクリックします。
  6. 「最大スレッド数制約のプロパティ」で、次のプロパティ値を入力します。
    • 名前 — XdoMaxThreadsConstraintと入力します

    • カウント — BI Publisherレポートの生成のために割り当てる最大スレッド数(たとえば10)を入力します

    「次」をクリックします。

  7. 「デプロイ・ターゲットの選択」で"bi_cluster"を選択し、「終了」をクリックします。

ワーク・マネージャ(XdoWorkManager)の作成

前述の操作で、「最大スレッド数制約」コンポーネントを作成し、"XdoMaxThreadsConstraint"と名前を付けました。次に、ワーク・マネージャをXdoMaxThreadsConstraintコンポーネントに関連付けます。

ワーク・マネージャを作成する手順は、次のとおりです。

  1. 「ワーク・マネージャのサマリー」ページから移動せずに、「新規」を再びクリックします。
  2. 「新しいワーク・マネージャ・コンポーネントの作成」ダイアログで、「ワーク・マネージャ」を選択して、「次」をクリックします
  3. 「ワーク・マネージャのプロパティ」で、「名前」プロパティに、XdoWorkManagerと入力します。
  4. 「デプロイ・ターゲットの選択」で"bi_cluster"を選択し、「終了」をクリックします。
  5. 「ワーク・マネージャのサマリー」ページに戻り、新しく作成したXdoWorkManagerリンクをクリックします。
  6. XdoWorkManager設定ページの「構成」タブで、「最大スレッド数制約」をXdoMaxThreadsConstraintに指定して、「保存」をクリックします。

xmlpserver.earファイルの再デプロイ

アプリケーション・アップグレード・アシスタントを使用して、xmlpserver.earファイルを再デプロイします。

xmlpserver.earファイルを再デプロイする手順は、次のとおりです。
  1. コンソールの左のペインで 「デプロイメント」を選択します。

    すべてのデプロイ済みのアプリケーションとモジュールを示す表が右ペインに表示されます。

  2. 表からbipublisherアプリケーションを選択します。
  3. 「更新」をクリックします。
  4. アプリケーション・アップグレード・アシスタント「次」をクリックします。
  5. 「終了」をクリックします。
  6. 「チェンジ・センター」ペインで「変更のアクティブ化」をクリックします。