eMessage の場合のみ: デルタ処理のためのストアード・プロシージャー

IBM® eMessage レポートには、eMessage システム・テーブルに関連付けられたステージング・テーブルが必要です。システム・テーブルは、Campaign スキーマの一部です。eMessage レポートで使用するメッセージ応答データを処理するためのストアード・プロシージャーを、定期的に実行する必要があります。

スキーマの変更について詳しくは、「IBM eMessage System Tables and Data Dictionary」を参照してください。

eMessage ストアード・プロシージャーの初回セットアップは、以下のデータベース・スクリプトに依存しています。

  • acer_indexes_dbname.sql
  • acer_tables_dbname.sql
  • acer_scripts_dbname.sql

Oracle、IBM DB2®、および Microsoft SQL Server データベースの場合、データベース・スクリプトは Campaign_reportspack_home\cognos11\emessage-ddl ディレクトリー内にあります。

このスクリプトで、索引、テーブル、ビュー、およびストアード・プロシージャーがセットアップされます。ストアード・プロシージャーは、ステージング・テーブルにデータを設定するためにメッセージ・データをリフレッシュします。バッチ・プロシージャーを定期的に実行して、ステージング・テーブルにデータを設定する必要があります。このストアード・プロシージャーを実行する操作を、デルタ処理といいます。

eMessage ストアード・プロシージャーの初回の実行は、テーブルに入れられているデータの量によっては、完了までに長時間を要する可能性があります。後続のデルタ処理も、完了までに長時間を要する可能性があります。ストアード・プロシージャーによって処理されるメール配信インスタンス (コンテナー) の数を制限することにより、処理時間を大幅に削減することができます。

デフォルトでは、データは過去 90 日間について処理されます。ただし、eMessage 用の SQL スクリプトを実行する前または後に、デフォルト値を変更できます。

Oracle の場合の例

Oracle データベースを対象とした次の例は、処理を過去 30 日のみに制限するために acer_tables スクリプトに加えることができる変更を示しています。
注: この変更には、UARE_MAILING_MASTER ビューの変更も含まれます。

現行ビューの定義

CREATE VIEW UARE_MAILING_MASTER AS
(
(SELECT UCC_CONTAINER.CAMPAIGNID,UCC_CONTAINER.CONTAINERID,
substr(UCC_CONTAINERATTR.STRINGVALUE,1,100) AS CAMPAIGN_NAME,
UCC_CONTAINER.CONTAINERNAME AS MAILING_INST,
UCC_CONTAINER.CREATED AS MAILING_CREATED,
UCC_CONTAINER.CONTAINERTYPEID CONTAINERTYPEID,
UCC_CONTAINER.CONTCHANNELTYPEID CONTCHANNELTYPEID
FROM
UCC_CONTAINER,UCC_CONTAINERATTR
WHERE
UCC_CONTAINERATTR.CONTAINERID=UCC_CONTAINER.CONTAINERID AND
UCC_CONTAINERATTR.ATTRIBUTENAME='CampaignName' AND
UCC_CONTAINER.CREATED >= sysdate - 91
)

変更後のビューの定義

CREATE VIEW UARE_MAILING_MASTER AS 
(
SELECT UCC_CONTAINER.CAMPAIGNID, UCC_CONTAINER.CONTAINERID,
substr(UCC_CONTAINERATTR.STRINGVALUE,1,100) AS CAMPAIGN_NAME, 
UCC_CONTAINER.CONTAINERNAME AS MAILING_INST, UCC_CONTAINER.CREATED AS 
MAILING_CREATED FROM UCC_CONTAINER,UCC_CONTAINERATTR WHERE 
UCC_CONTAINERATTR.CONTAINERID=UCC_CONTAINER.CONTAINERID AND 
UCC_CONTAINERATTR.ATTRIBUTENAME='CampaignName' 
AND 
UCC_CONTAINER.CREATED >= sysdate - 30
)

使用可能なレポート・データをすべて表示するには、UARE_MAILING_MASTER ビューを変更してビューから日付フィルターを削除します。次に、Oracle または DB2 の具体化されたビューをすべてリフレッシュします。例えば、上記のビュー作成のサンプルの場合は、次の行を削除します。

UCC_CONTAINER.CREATED >= sysdate - 30