プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド
12c (12.2.1.1.0)
E77226-02
目次へ移動
目次

前
前へ
次
次へ

イベント・ポーリング表によるキャッシュ・イベントの処理

1つ以上の物理表が更新されたことをOracle BIサーバーに通知する方法として、Oracle BIサーバーのイベント・ポーリング表(イベント表)を使用できます。イベント表に追加される各行は、本番データベース内の本番表に対して発生する更新など、単一の更新イベントを表します。

Oracle BIサーバー・キャッシュ・システムは、イベント表から行を読み込み(ポーリング)、物理表の情報を行から抽出し、その物理表を参照する古いキャッシュ・エントリをパージします。

イベント表は、Oracle BIサーバーがアクセス可能なリレーショナル・データベース上に存在する物理表です。専用のデータベースにあるか、他の表も含まれるデータベースにあるかにかかわらず、固定のスキーマ(物理データベース上でのイベント・ポーリング表の設定を参照)が必要です。通常は、管理ツールの物理レイヤーでのみ公開され、「物理表」ダイアログ内でOracle BIサーバー・イベント表として識別されます。

イベント表の使用は、古いキャッシュ・エントリを無効化する最も正確な手段の1つであり、多くの場合、最も信頼できる方法です。ただし、データベース表が更新されるたびに、イベント表を移入する必要があります。また、ポーリング間隔の間はキャッシュが必ずしも最新の状態ではないため、キャッシュ内のデータが古い可能性が常にあります。詳細は、「Oracle BIサーバー・イベント・ポーリング表の移入」を参照してください。

イベント表を更新する一般的な方法は、データベースを移入する、抽出およびロードのスクリプトまたはプログラムに、SQLのINSERT文を指定する方法です。INSERT文によって、物理表が変更されるたびに1つの行がイベント表に追加されます。このプロセスが配置され、Oracle Business Intelligenceリポジトリ内でイベント表が構成されると、キャッシュの無効化が自動的に行われます。イベント表を更新するスクリプトが、表に対する変更を正確に記録しているかぎり、指定されたポーリング間隔で、古いキャッシュ・エントリが自動的にパージされます。

この項では、次の項目について説明します。

物理データベース上でのイベント・ポーリング表の設定

各物理データベース上に物理イベント・ポーリング表を構成して、データベース内の変更を監視できます。

独自のデータベースでイベント表を構成することもできます。イベント表は、データベース内の表が変更されるたびに更新されます。

イベント・ポーリング表がOracle Databaseにある場合は、管理ツールの物理レイヤーで、イベント表をその独自のデータベース・オブジェクトで構成します。次に、イベント・ポーリング表の「データベース」ダイアログの「機能」タブで、機能PERF_PREFER_IN_LISTSの選択が解除されていることを確認します。このガイドラインに従うことで、リスト内で許容される最大式数を超えるエラーが回避されます。

イベント・ポーリング表を作成するには、リポジトリ作成ユーティリティ(RCU)を実行し、物理データベース内にBusiness Intelligence Platform (BIPLATFORM)スキーマを作成します。RCUによってS_NQ_EPTという名前のイベント・ポーリング表が作成されます。リポジトリ作成ユーティリティの実行の詳細は、Oracle Business Intelligenceのインストールと構成を参照してください。

イベント表は次の表に示す構造である必要があります。イベント表の配置場所によっては、一部の列にnull値を格納できます。列の名前は、次の表に記載されている列名に一致する必要があります。表示されているデータ・タイプは、Oracle Database用です。

イベント表の列 データ型 説明

CATALOG_NAME

VARCHAR2

更新された物理表が位置するカタログの名前。

イベント表が、更新された物理表と同じデータベース内にない場合のみ、CATALOG_NAME列を移入します。それ以外の場合は、null値に設定します。

DATABASE_NAME

VARCHAR2

更新された物理表が位置するデータベースの名前。これは、管理ツールの物理レイヤーで定義されるときのデータベースの名前です。たとえば、物理データベースの名前が11308Productionで、管理ツールに表示される場合のデータベース名がSQL_Productionの場合、イベント表内のポーリングされる行には、データベース名としてSQL_Productionが含まれている必要があります。

イベント表が、更新された物理表と同じデータベース内にない場合のみ、DATABASE_NAME列を移入します。それ以外の場合は、null値に設定します。

OTHER_RESERVED

VARCHAR2

将来の拡張に備えて予約されています。この列は、null値に設定する必要があります。

SCHEMA_NAME

VARCHAR2

更新された物理表が位置するスキーマの名前。

イベント表が、更新された物理表と同じデータベース内にない場合のみ、SCHEMA_NAME列を移入します。それ以外の場合は、null値に設定します。

TABLE_NAME

VARCHAR2

更新された物理表の名前。この名前は、管理ツールの物理レイヤーで表に対して定義されている名前に一致している必要があります。

null値は指定できません。

UPDATE_TS

DATE

イベント表に対する更新が発生する日時。これは、イベント表に追加される行ごとに増加する、キー(一意)値である必要があります。増加する一意の値であるためには、列のデフォルト値として現在のタイムスタンプを指定します。たとえば、Oracle Databaseの場合は、DEFAULT CURRENT_TIMESTAMPを指定します。

null値は指定できません。

注意: この列は、イベント表に追加される行ごとに増加する一意の値である必要があるため、1秒間に多くの挿入が行われる場合は、非常に高い精度を設定する必要がある可能性があります。このため、データベース機能のFRACTIONAL_SECOND_PRECISIONを調整して、UpdateTime列のフィルタで小数秒を使用するようにできます。Oracle BIサーバーでは、FRACTIONAL_SECOND_PRECISIONで定義される桁数でタイムスタンプが切り捨てられます。

たとえば、Oracle DatabaseやTeradataの場合は、FRACTIONAL_SECOND PRECISIONを0から6に変更します。

UPDATE_TYPE

NUMBER

更新スクリプトに値1を指定して、標準の更新であることを指定します(その他の値は、将来の使用に備えて予約されています)。

null値は指定できません。

Oracle BIサーバーは、イベント・ポーリング表に対して読取りと書込みの権限を持っている必要があります。サーバーは、指定された間隔でイベント表を読み取り、変更されたデータを探します。データベース表が変更されている場合は(たとえば、ロード処理時)、イベント表に行が追加されます。イベント表に行がある場合、基礎となるデータベースに変更されたデータがあります。変更された物理表に対応するキャッシュ・エントリが無効化され、イベント表から古い行が定期的に削除されます。次にイベント表を確認するときも、処理が繰り返されます。

注意:

クラスタ化されたOracle Business Intelligenceデプロイメントでは、1つのイベント・ポーリング表が、クラスタ内のすべてのOracle BIサーバー・ノードで共有されます。ただし、1つのイベント・ポーリング表を、複数のOracle BIサーバー・クラスタで共有することはできません。

Oracle BIサーバーに、イベント・ポーリング表(データベース内の他の表ではない)への書込み権限を与えるには、次のタスクを実行します。

  • 権限を持つ接続プールを使用して、管理ツールの物理レイヤーに、個別の物理データベースを作成します。

  • 削除権限を持つ接続プールにユーザーを割り当てます。

  • イベント表を使用して権限が必要なデータベースを移入します。

Oracle BIサーバーは、イベント・ポーリング表への書込み権限は持っていますが、ユーザー問合せに答えを返すために使用される表への書込み権限は持っていません。

イベント・ポーリング表のアクティブ化

物理データベースに表を作成したら、Oracle BIサーバーでその表をアクティブ化できます。これを行うには、最初に物理表をインポートし、表オブジェクトをイベント・ポーリング表としてマークします。

物理表をインポートするには:

  1. 管理ツールで、リポジトリを開き、物理データベースからメタデータをインポートします。これを行うには、「ファイル」を選択し、「メタデータのインポート」を選択します。

  2. ウィザードの手順に従います。「メタデータ型の選択」画面の「」オプションを選択して、表のメタデータをインポートします。

    メタデータのインポート・ウィザードの詳細は、Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイドを参照してください。

  3. イベント・ポーリング表が複数ある場合は、イベント表ごとにステップ1および2を繰り返します。イベント表用に指定されているデータソースが、イベント表に対して読取りと書込みの権限を持つことを確認します。リポジトリは、表の読取りと表の行の削除を両方行うため、書込み権限が必要です。イベント表が、ビジネス・モデルとマッピング・レイヤーで公開されている必要はありません。

表オブジェクトをイベント・ポーリング表としてマークするには:

  1. 「ツール」メニューから「ユーティリティ」を選択します。
  2. オプション・リストから「Oracle BIイベント表」オプションを選択します。
  3. 実行」をクリックします。
  4. イベント表として登録する表を選択し、「>>」ボタンをクリックします。
  5. ポーリング間隔を分単位で指定し、「OK」をクリックします。

    デフォルト値は60分です。10分未満のポーリング間隔は設定しないでください。非常に短いポーリング間隔が必要な場合は、表の一部またはすべてをキャッシュ不能とマークすることを検討します。

表がOracle BIサーバー・イベント表として登録されると、表のプロパティが変わります。イベント表として登録すると、イベント・ポーリング表から結果をキャッシュする理由がないため、表をキャッシュ可能とマークするオプションが削除されます。

Oracle BIサーバー・イベント・ポーリング表の移入

Oracle BIサーバーが、イベント・ポーリング表を移入することはありません。イベント表が更新されるたびに行を挿入することによって、イベント表が移入されます。

このプロセスは、通常、データベース管理者によって構成されます。一般には、データベース管理者が、表が変更されるたびにポーリング表に行を挿入するロード・プロセスを変更します。これは、(トリガーをサポートするデータベース内で)データベース・トリガーを使用するロード・スクリプト、アプリケーション、または手動で行うことができます。イベント表の移入のプロセスが正しく行われないと、サーバーでは、ポーリング表内の情報が正確で最新であるとみなされるため、Oracle BIサーバーのキャッシュのパージに影響します。

イベント・ポーリング表に関する問題のトラブルシューティング

イベント・ポーリング表に関する問題のトラブルシューティングは、アクティビティ・ログから開始できます。

キャッシュのポーリングに関して問題が発生した場合は、Oracle BIサーバー・アクティビティ・ログを検索して、サーバーとイベント表とのやり取りに関するエントリを確認できます。

  • nqserver.logファイルは、Oracle BIサーバーに関するアクティビティを自動的に記録します。ログ・エントリは自明であり、Fusion Middleware Controlまたはテキスト・エディタで表示できます。

  • Oracle BIサーバーがイベント表のポーリングを行うと、管理者アカウント(インストール時に設定)を使用して、nqquery.logファイルに問合せが記録されます。ただし、管理者アカウントのログ・レベルが0に設定されている場合を除きます。最も役立つレベルの情報を提供するためには、管理者アカウントのログ・レベルを2に設定します。

nqserver.logとnqquery.logは次の場所にあります。

BI_DOMAIN/servers/obisn/logs