ページの先頭行へ戻る
Linkexpress Transactional Replication option V5.0L60 説明書
FUJITSU Software

11.1.3 ジャーナル取得機能

ジャーナル取得機能は、アプリケーションがSymfoware/RDBのデータベースを更新したデータをジャーナルとしてジャーナル取得ファイルに取得する機能です。

ジャーナルはデータベース更新時にトランザクション単位に取得され、時系列が保証されています。ジャーナルの取得対象と利用ジャーナルのデータ形式は取得定義で指定します。

11.1.3.1 ジャーナル取得対象の指定

ジャーナルを取得する対象となるデータベースは取得定義で指定します。ジャーナルの取得対象として、以下の指定が行えます。

なお、ジャーナルの取得対象となるSQL文は、更新系SQL文(INSERT、UPDATE、DELETE)です。

ジャーナル取得対象の指定方法

列単位での指定

ジャーナルの取得対象を列単位で指定できます。これにより、更新データが必要な列のジャーナルだけをテーブルの更新データから容易に抽出できます。
ただし、BLOB型の列は取得対象として指定できません。

DSI単位での指定

ジャーナルの取得対象の指定は、列単位での指定に加えDSI単位でも行えます。これにより、取得したジャーナルを更新データが格納されたDSIごとに異なるメッセージキューに配付できます。
ただし、インデックスのDSIはジャーナル取得対象として指定できません。

複数テーブルの指定

1つの取得定義に複数の異なるテーブルの列を指定することができます。これにより、異なるテーブルの更新情報を容易に1つの利用ジャーナルとしてまとめられます。

ジャーナルの取得対象の指定例を"図11.2 ジャーナル取得対象の指定例"に示します。

図11.2 ジャーナル取得対象の指定例

この例では、個人受注データベースおよび製品受注データベースからジャーナルを取得する列を選択し、1つの利用ジャーナルとなるように定義しています。さらに、東京DSIに格納されたジャーナルをメッセージキュー1へ、大阪DSIに格納されたジャーナルをメッセージキュー2へそれぞれ格納するように定義しています。

UPDATE時の注意事項

主キーとなる列を含む集合更新をしないでください。このような集合更新を行うと複数行分のジャーナルが取得されるため、ジャーナル利用側業務にて、データベースに正しく反映されないことがあります。
また、複数の取得定義で同一の表の異なる列を取得対象とする場合、別の取得定義で指定された列を更新するとジャーナルが取得されます。

11.1.3.2 システム取得項目の指定

取得したジャーナルに対して、更新時間やトランザクション状態などの更新データ以外の情報を取得できます。これらの情報は、システム取得項目と呼び、TJNLが自動的に取得します。システム取得項目は、取得定義で指定し、必要に応じた項目を選択できます。システム取得項目の詳細は、"14.1.2.5 システム取得項目"を参照してください。

11.1.3.3 更新データと利用ジャーナルの関係

取得定義によって、ジャーナルの取得対象を更新したデータと利用ジャーナルの関係が決まります。これらの関係を、"図11.3 更新データと利用ジャーナルの関係"に示します。

図11.3 更新データと利用ジャーナルの関係

この図では、1つのトランザクションの処理でデータベース内の異なるテーブルを更新する場合を例にしています。ここでは、同じ形式で内容の異なるジャーナルが、1つのトランザクションの処理で合計3回取得されます。

11.1.3.4 ジャーナルの取得契機

ジャーナル取得機能の運用を開始した後にデータベースに接続することでジャーナルを取得できます。ジャーナルは、データベースを更新するトランザクションが正常終了したときにジャーナル取得ファイルに格納されます。

ジャーナル取得業務のアプリケーションは、ジャーナル取得機能の運用を開始してからデータベースに接続します。ジャーナル取得機能の運用を開始する前にデータベースに接続した場合は、ジャーナル取得機能の運用を開始してもジャーナルは取得されません。