ジャーナルを取得する対象となるデータベースは取得定義で指定します。ジャーナルの取得対象として、以下の指定が行えます。
列単位での指定
DSI単位での指定
複数テーブルの指定
なお、ジャーナルの取得対象となるSQL文は、更新系SQL文(INSERT、UPDATE、DELETE)です。
ジャーナル取得対象の指定方法
ジャーナルの取得対象を列単位で指定できます。これにより、更新データが必要な列のジャーナルだけをテーブルの更新データから容易に抽出できます。
ただし、BLOB型の列は取得対象として指定できません。
ジャーナルの取得対象の指定は、列単位での指定に加えDSI単位でも行えます。これにより、取得したジャーナルを更新データが格納されたDSIごとに異なるメッセージキューに配付できます。
ただし、インデックスのDSIはジャーナル取得対象として指定できません。
1つの取得定義に複数の異なるテーブルの列を指定することができます。これにより、異なるテーブルの更新情報を容易に1つの利用ジャーナルとしてまとめられます。
ジャーナルの取得対象の指定例を"図11.2 ジャーナル取得対象の指定例"に示します。
この例では、個人受注データベースおよび製品受注データベースからジャーナルを取得する列を選択し、1つの利用ジャーナルとなるように定義しています。さらに、東京DSIに格納されたジャーナルをメッセージキュー1へ、大阪DSIに格納されたジャーナルをメッセージキュー2へそれぞれ格納するように定義しています。
取得したジャーナルに対して、更新時間やトランザクション状態などの更新データ以外の情報を取得できます。これらの情報は、システム取得項目と呼び、TJNLが自動的に取得します。システム取得項目は、取得定義で指定し、必要に応じた項目を選択できます。システム取得項目の詳細は、"14.1.2.5 システム取得項目"を参照してください。
取得定義によって、ジャーナルの取得対象を更新したデータと利用ジャーナルの関係が決まります。これらの関係を、"図11.3 更新データと利用ジャーナルの関係"に示します。
この図では、1つのトランザクションの処理でデータベース内の異なるテーブルを更新する場合を例にしています。ここでは、同じ形式で内容の異なるジャーナルが、1つのトランザクションの処理で合計3回取得されます。
ジャーナル取得機能の運用を開始した後にデータベースに接続することでジャーナルを取得できます。ジャーナルは、データベースを更新するトランザクションが正常終了したときにジャーナル取得ファイルに格納されます。
ジャーナル取得業務のアプリケーションは、ジャーナル取得機能の運用を開始してからデータベースに接続します。ジャーナル取得機能の運用を開始する前にデータベースに接続した場合は、ジャーナル取得機能の運用を開始してもジャーナルは取得されません。