コネクターがイベント・デリバリーを処理できるようにするには、データベース内にイベント通知機構をセットアップする必要があります。このためには、以下の作業を行う必要があります。
以後の各セクションでは、イベント表およびアーカイブ表の作成と構成に関する情報を提供します。
コネクターは、イベント表に基づいて、処理対象のイベントをキューに入れます。ArchiveProcessed プロパティーが true または値なしに設定されている場合、コネクターは、イベント表でイベントの状況を更新した後、アーカイブ表を使用してそのイベントを保管します。
各イベントについて、コネクターはイベント表からビジネス・オブジェクトの名前、動詞、およびキーを取得します。また、この情報を使用してアプリケーションからエンティティー全体を取り出します。イベントが最初にログに記録された後でエンティティーが変更されると、コネクターは初期イベントとその後のすべての変更を取得します。つまり、コネクターがイベント表からエンティティーを取得する前にエンティティーが変更および更新されると、コネクターは 1 回の取り出しで両方のデータ変更を取得します。
コネクターによって処理されるどのイベントについても、以下の 3 通りの結果が考えられます。
コネクターがイベントを取り出した後でイベント表からイベントが削除されないと、不必要なスペースを占有することになります。しかし、そのようなイベントが削除される場合には、未処理のイベントもすべて失われ、イベント処理の監査を実行できなくなります。そのため、この場合にはアーカイブ表も作成し、ArchiveProcessed プロパティーを true に設定したままにしておくことをお勧めします。このようにすると、イベント表からイベントが削除されるたびに、コネクターがそのイベントをアーカイブ表に挿入します。
イベント処理とアーカイブ処理を構成するには、構成プロパティーを使用して以下の情報を指定する必要があります。
また、EventOrderBy プロパティーの値を指定して、イベントの処理順序を指定することもできます。上記およびその他の構成プロパティーについては、付録 A, コネクターの標準構成プロパティーおよび表 7 を参照してください。
デフォルトでは、イベント・キュー表の名前は xworlds_events、アーカイブ・キュー表の名前は xworlds_archive_events です。
コネクターを要求処理のみに使用するには、コネクターを始動するときに -fno オプションを指定し、さらに EventTableName の値を null (ストリング) に設定します。
ご使用のドライバーが Java クラス DatabaseMetaData をサポートしておらず、コネクターでイベント表とアーカイブ表の有無の検査が行われないようにする必要がある場合には、CheckForEventTableInInit の値を false に設定して、このプロパティーを使用不可にします。デフォルトでは、true です。この値は、false に設定しないことをお勧めします。
Oracle データベース用のイベント表、アーカイブ表、および固有 ID 表をインストールするスクリプトは、以下のスクリプトです。
これらのファイルは、以下のディレクトリーにあります。
Windows の場合
connectors¥OracleApps¥dependencies¥
Linux:
connectors/OracleApps/dependencies/
OS/400:
connectors/OracleApps/dependencies/
DBA やコネクターの実装を担当する方には、独自のインストール要件や照会最適化のための要件を満たすことができるようにこれらのスクリプトを変更することをお勧めします。例えば、これらのスクリプトはテーブルの索引を作成しません。索引を作成して照会最適化プログラムのパフォーマンスを高める作業は、コネクター実装の担当者が行うべき作業です。
表 5 に、イベント表とアーカイブ表の列を示します。
名前 | 説明 | 型 | 制約 |
---|---|---|---|
event_id | イベントの内部 ID | INTEGER | 基本キー |
connector_id | イベントの宛先のコネクターの固有な ID。この値は、複数のコネクターが同じ表をポーリングする場合には重要です。 | VARCHAR |
|
object_key | ビジネス・オブジェクトの基本キー。このオブジェクト・キーは、名前と値のペアとして表現するか、コロンまたは他の構成可能な区切り文字で区切られたキーのセットによって表現します (1000065:10056:2333 など)。
詳細については、EventKeyDelプロパティーを参照してください。 | VARCHAR | 非ヌル |
object_name | ビジネス・オブジェクトの名前 | VARCHAR | 非ヌル |
object_verb | イベントに関連した動詞 | VARCHAR | 非ヌル |
event_priority | イベント優先順位 (0 が最高、n が最低) で、コネクターが優先順位に基づいてイベントを取得するために使用します。コネクターが優先順位の変更のためにこの値を使用することはありません。 | INTEGER | 非ヌル |
event_time | イベントが発生した日時 | DATETIME | デフォルトの現在日付/時刻 (アーカイブ表の場合、実際のイベントの時間) |
archive_time | イベントがアーカイブされた日時 (アーカイブ表でのみ使用されます) | DATETIME | アーカイブの日付/時刻 |
event_status | -2 (統合ブローカーへのイベントの送信エラー) | INTEGER | 非ヌル |
| -1 (イベント処理エラー) |
|
|
| 0 (ポーリング開始可能) |
|
|
| 1 (統合ブローカーに送信済み) |
|
|
| 2 (ビジネス・オブジェクトのサブスクリプションなし) |
|
|
| 3 (処理中)。この状況は、イベント表にのみ使用され、アーカイブ表には使用されません。 |
|
|
event_comment | イベントまたはエラー・ストリングの説明 | VARCHAR |
|