XLA MapMessageの内容
MapMessageには、C構造体ttXlaUpdateDesc_tとしてパブリッシュされた、XLA更新ヘッダー内のフィールドに対応する一連の名前/値ペアが含まれています。MapMessageに含まれるフィールドは、更新タイプによって異なります。
更新タイプ
JMS/XLA APIで返される各MapMessageには、整数値としてメッセージ内に記述されている更新タイプを示す__TYPE (アンダースコア2つ)という名前/値ペアが1つ以上含まれています。タイプは、整数値として指定されています。整数タイプと比較するために、com.timesten.dataserver.jmsxla.XlaConstantsに定義されている定数を使用します。次の表に、サポートされているタイプを示します。
| タイプ
|
説明
|
|
ADD_COLUMNS
| 列が追加されたことを示します。 |
|
COMMIT_FIELD
| コミットを含むメッセージ内のフィールドの名前。 |
|
COMMIT_ONLY
| コミットが発生したことを示します。 |
|
CONTEXT_FIELD
| バイト配列としてttApplicationContextに渡されたコンテキスト値を含むメッセージ内のフィールドの名前。 |
|
CREATE_INDEX
| 索引が作成されたことを示します。 |
|
CREATE_SEQ
| 順序が作成されたことを示します。 |
|
CREATE_TABLE
| 表が作成されたことを示します。 |
|
CREATE_VIEW
| ビューが作成されたことを示します。 |
|
DELETE
| 行が削除されたことを示します。 |
|
DROP_COLUMNS
| 列が削除されたことを示します。 |
|
DROP_INDEX
| 索引が削除されたことを示します。 |
|
DROP_SEQ
| 順序が削除されたことを示します。 |
|
DROP_TABLE
| 表が削除されたことを示します。 |
|
DROP_VIEW
| ビューが削除されたことを示します。 |
|
FIRST_FIELD
| トランザクションの最初のレコードを示すフラグを含むフィールドの名前。 |
|
INSERT
| 行が挿入されたことを示します。 |
|
MTYP_FIELD
| タイプ情報を含むメッセージ内のフィールドの名前。 |
|
MVER_FIELD
| XLAレコードのログ・ファイル数を含むメッセージ内のフィールドの名前。 |
|
NULLS_FIELD
| NULL値を持つフィールドのリストを含むメッセージ内のフィールドの名前。 |
|
REPL_FIELD
| レプリケーションで更新が適用されたことを示すフラグを含むメッセージ内のフィールドの名前。 |
|
TBLNAME_FIELD
| 表の名前を含むメッセージ内のフィールドの名前。 |
|
TBLOWNER_FIELD
| 表の所有者を指定するメッセージ内のフィールドの名前。 |
|
TRUNCATE
| 表が切り捨てられたことを示します。 |
|
TYPE_FIELD
| メッセージ・タイプを指定するメッセージ内のフィールドの名前。 |
|
UPDATE
| 行が更新されたことを示します。 |
|
UPDATE_DESCRIPTOR_FIELD
| バイト配列としてttXlaUpdateDesc_tを返すフィールドの名前。 |
|
UPDATED_COLUMNS_FIELD
| 更新された列のリストを含むメッセージ内のフィールドの名前。 |
XLAフラグ
すべての更新タイプに対して、MapMessageには次のことを示す名前/値ペアが含まれています。
- トランザクションの最初のレコードであるかどうか
- トランザクションの最後のレコードであるかどうか
- 更新がレプリケーションによって実行されたかどうか
- どの表が更新されたか
- 更新された表の所有者
表6.1に、これらのXLAフラグを含む名前/値ペアを示します。各名前の先頭には、2つのアンダースコアが付いています。
表6.1 XLAフラグ
| 名前
|
説明
|
対応するttXlaTblDesc_tフィールド
|
| __COMMIT | トランザクション内の最終レコードであり、この操作の後にコミットが実行されたことを示します。UPDCOMMITがオンの場合にのみ、MapMessageに含まれます。 | TT_UPDCOMMIT |
| __FIRST | 新規トランザクション内の最初のレコードであることを示します。 UPDFIRSTがオンの場合にのみ、MapMessageに含まれます。 | TT_UPDFIRST |
| __REPL | レプリケーションによってこの変更がデータベースに適用されたことを示します。UPDREPLがオンの場合にのみ、MapMessageに含まれます。 | TT_UPDREPL |
| __UPDCOLS | UPDATETUPレコードに対してのみ使用されます。このフラグは、操作で実際に変更された列のリストがXLA更新記述子に含まれていることを示します。セミコロンで区切られた列名のリストを含む文字列として指定されています。UPDCOLSがオンの場合にのみ、MapMessageに含まれます。 | TT_UPDCOLS |