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

13.6.3 ジャーナル取得業務のアプリケーション

ジャーナル取得業務のアプリケーションは、取得定義で指定したSQL Serverのテーブルを更新するアプリケーションです。
ここでは、ジャーナル取得業務のアプリケーションについて説明します。

13.6.3.1 ジャーナルの取得契機

ジャーナル取得機能を起動してから開始したトランザクションが、ジャーナルの取得対象となります。トランザクションがCOMMITした時点で、ジャーナルがジャーナル取得ファイルに格納されます。

以下の場合は、トランザクション内で更新されたジャーナル取得対象のテーブルに対するジャーナルは一切取得されません。

また、以下の場合についてもジャーナルは一切取得されません。

"図13.21 ジャーナル取得契機"にジャーナル取得契機を示します。

図13.21 ジャーナル取得契機

この例で示すアプリケーションにおけるテーブルの更新に対するジャーナルの取得結果は、以下のようになります。

13.6.3.2 ジャーナルの取得順序

TJNLではジャーナルデータに取得順序情報を付加し、トランザクション単位にまとめてジャーナル取得ファイルに格納します。取得順序情報は各トランザクションの最終更新SQLの実行順序を示す情報です。
ジャーナルを取得する契機は"13.6.3.1 ジャーナルの取得契機"で説明したようにトランザクションがCOMMITされた時点です。
ジャーナル配付機能は、ジャーナル取得ファイルに格納されたジャーナルの中から取得順序情報の小さい順にトランザクションのジャーナルを取り出し、利用ジャーナルとしてメッセージキューに配付します。
ジャーナルの取得順序について、"図13.22 SQL Server連携時における利用ジャーナルの取得順序"に示します。

図13.22 SQL Server連携時における利用ジャーナルの取得順序

この図では、トランザクションを先にCOMMITしたのはAPL1、最終更新SQLを先に実行したのはAPL2です。従って、取得順序情報はAPL2のトランザクション→APL1のトランザクションの順に昇順で設定されます。
一方、ジャーナル取得ファイルにジャーナルを取得するタイミングはAPL1のトランザクションが先になります。これら2つのジャーナルを取得した後でジャーナル配付機能を起動した場合には、利用ジャーナルは取得順序情報の昇順、すなわちAPL2のトランザクション→APL1のトランザクションの順にメッセージキューに格納されます。(つまり、トランザクションのCOMMIT順に配付されるわけではありません。)
ただし、あらかじめジャーナル配付機能を起動した状態でこれら2つのジャーナルを取得した場合には、トランザクションがCOMMITされた順、すなわちAPL1のトランザクション→APL2のトランザクションの順にメッセージキューに格納される可能性があります。(各機能の動作タイミングによっては取得順序情報の昇順にメッセージキューに格納されることもあります。)

13.6.3.3 SQL文の処理結果

ジャーナル取得時に異常が発生した場合は、発行したSQL文が異常終了します。TJNLに起因する異常が発生した場合のエラー番号、SQL Serverのエラーメッセージおよび対処を"表13.30 TJNLに起因するSQL文の異常終了"に示します。
"表13.30 TJNLに起因するSQL文の異常終了"にないエラーが発生した場合には、通常のデータベース更新アプリケーションと同様に対処してください。

表13.30 TJNLに起因するSQL文の異常終了

エラー番号

SQL Serverのエラーメッセージ

対処

TJNL環境定義の[TJNLDefinition]セクションのExCodeで指定した値、または50001

An error occurred in TJNL

イベントログにTJNLのエラーメッセージが出力されています。イベントビューアのアプリケーションログを参照の上、対処してください。

13.6.3.4 UPDATE文のジャーナル形式

SQLのUPDATE文によって発生するジャーナルの取得方法を選択することができます。UPDATE文によって発生するジャーナルの取得方法には、以下の2種類があります。

DELETEとINSERTの情報として配付する

DELETEとINSERTの情報として配付する方法では、1件の更新で2件のジャーナルが取得されます。この形式は、更新前の情報と更新後の情報の両方が必要な場合に使用します。

UPDATEの情報として配付する

UPDATEの情報として配付する方法では、更新後の情報だけが取得されます。この形式は、キーとなる項目がジャーナル取得対象となっていて、更新後の情報だけでジャーナル利用側業務が行える場合に使用します。

UPDATE文によって発生するジャーナルの取得方法の指定は、環境作成時や動作環境変更時に行います。環境作成で指定する方法は"13.4.4 環境定義の記述"を、動作環境変更で指定する方法は"13.9.1.3 動作環境変更定義の記述"を参照してください。

13.6.3.5 NCHAR型およびNVARCHAR型の列をジャーナル取得対象とする場合

NCHAR型(各国語固定長文字列)およびNVARCHAR型(各国語可変長文字列)の列をジャーナル取得対象とする場合、その列は各国語文字(全角文字)で更新するようにしてください。半角英数字で更新すると、不正な値が利用ジャーナルとして配付されます。