ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Intelligence Publisher管理者ガイド
12c (12.2.1)
E70037-01
  目次へ移動
目次

前
 
次
 

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

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

内容は以下のとおりです。

F.1 メモリー・ガード機能とは

BI Publisherは、過剰な量のデータを生成するレポート・リクエストを遮断することにより、メモリー不足エラーから保護する一連の機能を備えています。メモリー・ガード機能には一連のプロパティがあります。これらのプロパティを使用すると、データ・サイズを検査してシステムでレポート・リクエストの処理を続行するか、終了するかを判断する条件および処理ポイントを構成できます。データ・サイズが原因で処理が終了すると、エラー・メッセージが返されます。

図F-1 メモリー・ガードおよびデータ・モデルのプロパティの設定

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

F.2 主な機能

プロパティの完全なリストは表F-1および表F-2を参照してください。プロパティは、次のようなコントロールを設定することで、メモリー不足エラーから保護し、データ処理を強化します。

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

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

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

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

SQL問合せのタイムアウト

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

この一連のプロパティにより、最低許容空きメモリー領域を確立してメモリー不足エラーから保護することができます。この一連のプロパティを使用すると、空きメモリーの可用性をシステムで自動的に保護できます。また、この可用性に基づいた大きなデータ・セットのあるレポートを高度に処理できます。

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

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

この設定では、空き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秒です。

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

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

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

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

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

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

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

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

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

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

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

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

メモリー・ガード機能を実装するには、「管理ランタイム」プロパティ・ページでプロパティを設定します。

表1は、「メモリー・ガード」設定について説明します。

表F-1 メモリー・ガードのプロパティおよび説明

プロパティ 説明

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

デフォルト値は300MBです。

最大許容オンライン・レポート・データ・サイズを設定します。この値は、GB、MBまたはKBで設定できます。たとえば、1GB、200MBまたは1500KBです。

オンライン・レポート・リクエストは、データ・モデルの実行から返されたレポート・データ・サイズがこのプロパティの値を超えると即座に拒否されます。

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

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

デフォルト値は500MBです。

最大許容オフライン(またはスケジュール済)・レポート・データ・サイズを設定します。この値は、GB、MBまたはKBで設定できます。たとえば、1GB、200MBまたは1500KBです。

スケジュール済レポート・リクエストは、データ・モデルの実行から返されたレポート・データ・サイズがこのプロパティの値を超えると即座に拒否されます。

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

空きメモリーしきい値

デフォルト値は500MBです。

レポート・リクエストの拒否を判定する、空きJVMメモリーのしきい値。この値は、GB、MBまたはKBで設定できます。たとえば、1GB、200MBまたは1500KBです。

ランタイムから返されたJVM空きメモリーがこのプロパティの値を下回ると、サーバーはレポート・データ・サイズをチェックして、リクエストを受け入れるか拒否するかを決定します。このプロパティは、次の3つのプロパティと組み合せて使用します。

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

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

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

このプロパティ値が0または負の数値の場合、この条件は無視されます。このプロパティはオンライン・レポート・リクエスト専用です。

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

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

空きJVMメモリーが「空きメモリーしきい値」に設定されている特定のしきい値を下回る場合の最大許容レポート・データ・サイズ。リクエストのレポート・データ・サイズがこのプロパティの値を超えると、リクエストは拒否されます。

このプロパティが有効になるのは、「空きメモリーしきい値」が正の値に設定されている場合のみです。このプロパティはオンライン・レポート・リクエスト専用です。

この値は、GB、MBまたはKBで設定できます。たとえば、1GB、10MBまたは1500KBです。排他的に値を設定しない場合、デフォルト値は「空きメモリーしきい値」に設定した値を10で割った値に計算されます。「空きメモリーしきい値」を100MBに設定した場合、このプロパティのデフォルト値は10MBです。

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

デフォルト値: 300 (秒)

2つの連続するガベージ・コレクション実行間隔の最小時間範囲(秒単位)。この値を設定して、JVMガベージ・コレクションのオーバーランを回避します。サーバーが自動的に最少値の120秒で実施するため、120秒よりも少ない値を入力すると、サーバーはそれを上書きさします。

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

デフォルト値: 30 (秒)

空きJVMメモリーがしきい値を超えて回復するまで、レポートの実行リクエストが待機する最大時間(秒単位)。このプロパティ値が有効になるのは、正の値の「空きメモリーしきい値」が指定されている場合のみです。「空きメモリーがしきい値を超えて回復するまでの最大待機時間」の値未満の時間内に空きメモリーが回復すると、リクエストはただちにドキュメントの生成を続行します。このプロパティに設定した時間の後、空きメモリーが依然としてしきい値を下回っている場合、リクエストは拒否されます。このプロパティ値を大きくすれば、ブラウザがリクエストの実行を待機する時間が長くなります。

オンライン・レポート・フォーマットのプロセス・タイムアウト

デフォルト値: 600 (秒)

オンライン・レポートのフォーマット・プロセスの実行で許される最大時間(秒単位)。オンライン・レポート・フォーマットのプロセスが制限を超えると、ユーザーは次のエラー・メッセージを受け取ります。

「フォーマット時間(nn秒)が制限(nn秒)を超えています。処理を停止しました。」

このレポートを表示するには、スケジュール・ジョブを作成します。

この設定は、RTFおよびXPTテンプレート・タイプでPDF、Excel、HTML、Word (RTFおよびDOCX)またはPowerPoint出力を生成する場合に影響します。


表F-2は、「データ・モデル」設定について説明します。

表F-2 「データ・モデル」プロパティおよび説明

プロパティ 説明

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

デフォルト値は500MBです。

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

この値は、GB、MBまたはKBで設定できます。たとえば、1GB、200MBまたは1500KBです。

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

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

デフォルト値は1MBです。

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

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

デフォルト: True

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

このプロパティを特定のデータ・モデルに設定することもできます。データ・モデル設定はこのシステム・モデル設定を上書きします。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド』のデータ・モデル・プロパティの設定に関する項を参照してください。

自動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の取得に失敗しました」エラーが戻されます。

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

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

デフォルト値: False

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

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

デフォルト値: False

このプロパティをTrueに設定すると、SQL問合せの実行の度に、SQLセッションのトレース・ログがデータベースに書き込まれます。ログはデータベース管理者によって評価されます。

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

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

SQLプルーニングの有効化

デフォルト値: False

標準SQLを使用するOracle Database問合せのみに適用されます。問合せにより戻される列が多数あり、サブセットのみをレポート・テンプレートで使用する場合、SQLプルーニングによりテンプレートで必要な列のみが戻されます。このプロパティを設定すると、処理時間が強化され、メモリー使用量を削減できます。「SQLプルーニングの有効化」はデータ・モデル・レベルのプロパティであり、特定のデータ・モデルに対して有効化または無効化して、このサーバー・レベルの設定をオーバーライドできます。データ・モデル設定の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド』のデータ・モデル・プロパティ設定に関する項を参照してください。


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

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

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

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

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

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


    注意:

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

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

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


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

F.4.1 Oracle WebLogicサーバーでの最大スレッド数制約の作成

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

  1. Oracle WebLogicコンソールにログインします。

    Oracle WebLogicログイン・ページ
  2. 「ドメイン構造」ペインで、「ワーク・マネージャ」をクリックします。

    「ドメイン構造」ペインの「ワーク・マネージャ」
  3. 「チェンジ・センター」ペインで、「ロックして編集」クリックします。

    「ロックして編集」をクリックします。
  4. 「ワーク・マネージャ、リクエスト・クラスおよび制約」表で、「新規」をクリックします。

    「ワーカー・マネージャ」表の概要
  5. 「新しいワーク・マネージャ・コンポーネントの作成」ダイアログで、「最大スレッド数制約」を選択して「次」をクリックします。

    「最大スレッド数制約」を選択します
  6. 「最大スレッド数制約のプロパティ」で、次のプロパティ値を入力します。

    • 名前 - XdoMaxThreadsConstraintと入力します。

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

    「最大スレッド数制約」の選択

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

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

    デプロイ・ターゲットとしてbi_clusterを選択します。

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

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

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

  1. 「ワーク・マネージャのサマリー」ページから移動せずに、「新規」を再びクリックします。

    「新規」をクリックして、ワーク・マネージャを作成します。
  2. 「新しいワーク・マネージャ・コンポーネントの作成」ダイアログで、「ワーク・マネージャ」を選択して「次」をクリックします。

    ワーク・マネージャを選択します。
  3. 「ワーク・マネージャのプロパティ」で、「名前」プロパティに、XdoWorkManagerと入力します。

    ワーク・マネージャの名前を入力します。

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

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

    デプロイ・ターゲットとしてbi_clusterを選択します。
  5. 「ワーク・マネージャのサマリー」ページに戻り、新しく作成したXdoWorkManagerリンクをクリックします。

    XdoWorkManagerリンクを選択します。
  6. 「XdoWorkManager設定」ページの「構成」タブで、「最大スレッド数制約」をXdoMaxThreadsConstraintに指定し、「保存」をクリックします。

    XdoMaxThreadsConstraintを指定します。

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

xmlpserver.earファイルを再デプロイする手順は、次のとおりです。

  1. コンソールの左のペインで 「デプロイメント」を選択します。

    「デプロイメント」をクリックします

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

  2. 表からbipublisherアプリケーションを選択します。

    bipublisherserverを表内で検索します。
  3. 更新」をクリックします。 bipublisherアプリケーションを更新します。

  4. 「アプリケーションのアップグレード・アシスタント」で、「次」をクリックします。

    アプリケーション・アシスタントをアップグレードします。
  5. 「終了」をクリックします。

  6. 「チェンジ・センター」ペインの「変更のアクティブ化」をクリックします。

    変更のアクティブ化