イベント表には、アプリケーション表に対する変更についての情報が保管されます。
イベント表は、通常はイベント保管の対象となるアプリケーション表と同じスキーマ内に、ユーザーによって作成されるデータベース表です。 イベント表は、アプリケーション表に対して実施された変更のタイプについて記述し、変更された行の ID も含んでいます。
イベント表に値を取り込むには、1 つ以上のトリガー を作成する必要があります。 トリガーは、事前定義されたアクションが生じたときに SQL スクリプトを実行できるデータベース構成体です。 例えば、トリガーはアプリケーション表での更新が生じたときにイベント表に行を挿入できます。
トリガーおよびイベント表の例については、DatabaseInput ノード サンプルを参照してください。 サンプルに関する情報は、WebSphere® Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
次の表は、イベント表内の典型的な列、およびそれらを含める理由を示しています。
列名 | 列の機能 | 値の例 |
---|---|---|
EVENT_ID | 必須。 処理中のイベントを識別する 1 次キー。 | 1 |
OBJECT_KEY | 必須。 アプリケーション表内で変更された行を識別するエレメント。 通常は、1 次キー列内の行のエレメントです。 | cust1 |
OBJECT_VERB | オプション。 実施された変更。通常は、CREATE、UPDATE、または DELETE のいずれかです。 このイベントは、フローのメッセージが作成されるときにアプリケーション表には取り出す行がない、DELETE イベントを識別するために使用されます。 | CREATE |
OBJECT_NAME | オプション。 変更されたアプリケーション表の名前。 この列は、複数のアプリケーション表に対する更新をサポートするために DatabaseInput ノードが使用されている場合に必要です。 | customer |
EVENT_PRIORITY | オプション。 イベントの優先度。 例えば、値の高いトランザクションが最初に計算されるようにすることができます。 | 1 |
EVENT_TIME | オプション。 操作が実行された時刻。 通常、フローのロギングまたはパフォーマンス・モニターのために使用されます。 | 2010-10-19T17:10:00 |
EVENT_STATUS | オプション。 イベントが既に処理されたかどうかを判別するために使用されます。 処理の後にイベントを削除またはアーカイブしない場合に必要です。 | 0 |
EVENT_COMMENT | オプション。 フリー・フォームのフィールド。 例えば、処理の後にイベントが削除されない場合に、メッセージ処理の出力を保管するために使用されます。 | 処理されて例外が発生しました |
この列名は、単なる例です。 他の名前も使用できます。 スループットの高いアプリケーション表がある場合、単一の行が、イベント表からイベントを取り出す間に複数回変更されることがあります。 この場合、最新の変更に関する詳細だけがフローによって選出されます。 中間変更の記録が必要な場合、より多くの詳細をイベント表に含めてください。 また、DELETE 操作で生成されたイベントに関する情報がイベント表に十分に含まれていることを確認します。 ここで、アプリケーション表には行が存在しなくなっているので、イベントの正常な処理に必要なすべての情報はイベント表に存在する必要があります。
例えば、1 次キー cust1 の新しい顧客がアプリケーション表に作成される場合、次のようにイベント表に行が追加されます。
EVENT_ID | OBJECT_KEY | OBJECT_VERB |
---|---|---|
1 | cust1 | Create |
DatabaseInput ノードが変更に反応して、 メッセージ・フロー内の新しい行を処理します。
メッセージ・フローがイベントを処理したとき、 フローは以下の方法でイベントを扱うことができます。