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

14.1.2 利用ジャーナル

利用ジャーナルの形式について、以下の順に説明します。

利用ジャーナルに項目属性表示が付加されている場合

利用ジャーナルは、以下の要素で構成されます。

利用ジャーナルに項目属性表示が付加されている場合は、各項目の前に項目属性表示(3バイト)と項目有効表示(1バイト)が設定されます。

"図14.2 メッセージのデータ形式(利用ジャーナルに項目属性表示が付加されている場合)"に項目属性表示が付加されている利用ジャーナルのデータ形式を示します。

図14.2 メッセージのデータ形式(利用ジャーナルに項目属性表示が付加されている場合)

なお、ジャーナル・チェックポイントの情報もジャーナル項目として扱われ、取得定義でジャーナル・チェックポイントが定義されている場合だけ、利用ジャーナルにジャーナル・チェックポイントの項目が含まれます。

"図14.3 メッセージのデータ形式(ジャーナル・チェックポイント項目がある場合)"にジャーナル・チェックポイント項目がある利用ジャーナルのデータ形式を示します。

図14.3 メッセージのデータ形式(ジャーナル・チェックポイント項目がある場合)

利用ジャーナルに項目属性表示が付加されていない場合

利用ジャーナルは、以下の要素で構成されます。

利用ジャーナルに項目属性表示が付加されていない場合は、各項目の前に項目有効表示(2バイト)が設定されます。

"図14.4 メッセージのデータ形式(利用ジャーナルに項目属性表示が付加されていない場合)"に項目属性表示が付加されていない利用ジャーナルのデータ形式を示します。

図14.4 メッセージのデータ形式(利用ジャーナルに項目属性表示が付加されていない場合)

なお、ジャーナル・チェックポイントの情報もジャーナル項目として扱われ、取得定義でジャーナル・チェックポイントが定義されている場合だけ、利用ジャーナルにジャーナル・チェックポイントの項目が含まれます。

"図14.5 メッセージのデータ形式(ジャーナル・チェックポイント項目がある場合)"にジャーナル・チェックポイント項目がある利用ジャーナルのデータ形式を示します。

図14.5 メッセージのデータ形式(ジャーナル・チェックポイント項目がある場合)

14.1.2.1 レコード制御部

レコード制御部は、利用ジャーナルごとに利用ジャーナルの先頭に付加されます。レコード制御部は以下の要素で構成されます。

レコード長

利用ジャーナルの全体長が設定されます。

データ型はC言語の場合のlong、COBOL言語の場合のPIC 9(9) COMP-5に相当します。

レコード内有効項目数

利用ジャーナル内で項目有効表示が有効(X’0000’)である項目の数(システム取得項目の有効項目の数も含む)が設定されます。

データ型はC言語の場合のshort、COBOL言語の場合のPIC 9(4) COMP-5に相当します。

14.1.2.2 項目属性表示

ジャーナル項目の属性を表示するタグが、各項目の前に付加されます。

項目属性表示は、ジャーナルヘッダの属性付加情報に"項目属性表示が付加されている(X’01’)"が設定されている場合に利用ジャーナルに設定されます。

項目属性表示は、ジャーナル項目のデータ型を表す属性コードと、属性コードに対する属性情報(長さ、精度、位取り)で構成されます。"図14.6 項目属性表示のデータ形式"に項目属性表示のデータ形式を示します。

図14.6 項目属性表示のデータ形式

"表14.4 属性コードの設定値(ユーザデータ)"および"表14.5 属性コードの設定値(ジャーナル・チェックポイントおよびシステム取得項目)"に項目属性表示の属性コードに設定される値を示します。

表14.4 属性コードの設定値(ユーザデータ)

属性コード

属性

Symfoware/RDBの
列データ型

Oracleの
列データ型

SQL Serverの
列データ型

項目長
(バイト)

X’01’

文字列

CHARACTER(n)

CHAR(n)

CHAR(n)

n

X’02’

可変長文字列

CHARACTER VARYING(n)

VARCHAR2(n)

VARCHAR(n)
または
VARCHAR(MAX)( 注3)

n + 2

X’03’

各国語文字列

NATIONAL CHARACTER(n)

NCHAR(n)

NCHAR(n)

n × 2

X’04’

可変長各国語文字列

NATIONAL CHARACTER VARYING(n)

NVARCHAR2(n)

NVARCHAR(n)
または
NVARCHAR(MAX)(注3)

n × 2 + 2

X’11’

2進整数(2バイト)

SMALLINT

SMALLINT

2

X’12’

2進整数(4バイト)

INTEGER

NUMBER(p)

INT

4

X’13’

外部10進数

NUMERIC(p,q)

NUMBER(p,q)

NUMERIC(p,q)

p(注1)

X’14’

内部10進数

DECIMAL(p,q)

DECIMAL(p,q)

p ÷ 2 + 1(注2)

X’15’

単精度浮動小数点数

REAL
または
FLOAT(p)

REAL
または
FLOAT(p)

4

X’16’

倍精度浮動小数点数

DOUBLE PRECISION
または
FLOAT(p)

FLOAT(p)

8

X’22’

ユーザ定義バイナリ

BINARY(n) ‥ 取得定義の透過文字列型

BINARY(n) ‥ 取得定義の透過文字列型

BINARY(n) ‥ 取得定義の透過文字列型

n

X’23’

日時、時間隔

TIMESTAMP,
DATE,
TIME,
INTERVAL

DATE

DATE,
TIME,
DATETIME,
DATETIME2
SMALLDATETIME

"表14.6 日時、時間隔の属性コードの設定値"を参照してください。

注1)配付定義のOutCodeキーワードにGS_KANAまたはGS_ASCII以外を指定した場合は1加算

注2)小数点以下は切り捨て

注3)サイズは1~32000バイト

表14.5 属性コードの設定値(ジャーナル・チェックポイントおよびシステム取得項目)

属性コード

属性

データ

項目長
(バイト)

X’24’

ジャーナル・チェックポイント名

ジャーナル・チェックポイント名

32

X’81’~
X’87’

システム取得項目

システム取得項目
  TJNLTIME,
  TJNLTRNID,
  TJNLSTS,
  TJNLDBKIND,
  TJNLDBOP,
  TJNLSTORAGE,
  TJNLRESOURCE

"表14.7 システム取得項目の属性コードの設定値"を参照してください。

表14.6 日時、時間隔の属性コードの設定値

属性コード

属性

列データ型(注)

項目長
(バイト)

X’23’

日時

(文字列)

TIMESTAMP

19

DATETIME

19

DATETIME2

19

SMALLDATETIME

19

DATE

10(注1)

TIME

8

時間隔

(文字列)

INTERVAL YEAR(n) TO MONTH

n + 4(注2)

INTERVAL YEAR(n)

n + 1(注2)

INTERVAL MONTH(n)

n + 1(注2)

INTERVAL DAY(n) TO HOUR

n + 4(注2)

INTERVAL DAY(n) TO MINUTE

n + 7(注2)

INTERVAL DAY(n) TO SECOND

n + 10(注2)

INTERVAL DAY(n)

n + 1(注2)

INTERVAL HOUR(n) TO MINUTE

n + 4(注2)

INTERVAL HOUR(n) TO SECOND

n + 7(注2)

INTERVAL HOUR(n)

n + 1(注2)

INTERVAL MINUTE(n) TO SECOND

n + 4(注2)

INTERVAL MINUTE(n)

n + 1(注2)

INTERVAL SECOND(n)

n + 1(注2)

注1) OracleのDATE型を数値属性で扱う場合、サイズがOracleのものと異なります。詳細は付録B.2.2 Oracleと定義の対応関係 を参照してください。

注2) 時間隔先行フィールド精度(n)の指定できる範囲は1~9です。

表14.7 システム取得項目の属性コードの設定値

項目

属性コード

属性

項目長
(バイト)

TJNLTIME(時刻)

X’81’

文字列

16

TJNLTRNID(トランザクション識別子)

X’82’

2進整数(8バイト)

8

TJNLSTS(トランザクション状態)

X’83’

2進整数(2バイト)

2

TJNLDBKIND(DB種別)

X’84’

2進整数(2バイト)

2

TJNLDBOP(DB操作)

X’85’

2進整数(2バイト)

2

TJNLSTORAGE(格納構造名)

X’86’

文字列

38(注)

TJNLRESOURCE(更新資源名)

X’87’

文字列

38(注)

注) ジャーナルヘッダのコード種別がUNICODE(X'30')の場合は72バイトになります。

14.1.2.3 項目有効表示

ジャーナル項目の内容が有効であるか否かを表示するタグが、各項目の前に付加されます。

項目有効表示は、利用ジャーナルに項目属性表示が付加されている場合と付加されていない場合によりバイト数が異なります。

利用ジャーナルに項目属性表示が付加されている場合

利用ジャーナルに項目属性表示が付加されている場合の項目有効表示は1バイトで設定されます。設定値は以下のとおりです。

        X’00’:有効
        X’FF’:無効
        X’0F’:NULL値
        X’F0’:欠損データ

利用ジャーナルに項目属性表示が付加されていない場合

利用ジャーナルに項目属性表示が付加されていない場合の項目有効表示は2バイトで設定されます。設定値は以下のとおりです。

        X’0000’:有効
        X’FFFF’:無効
        X’00FF’:NULL値
        X’FF00’:欠損データ

有効項目表示が無効、NULL値や欠損データの場合、項目の内容は不定になるため使用しないでください。なお、欠損データは、コード変換が正常に行われなかった場合に通知されます。欠損データについての詳細は"14.3.2 欠損データ"を参照してください。

14.1.2.4 ジャーナル項目

ジャーナル取得対象として指定した列の更新データおよびジャーナル・チェックポイントの情報です。

取得定義にジャーナル・チェックポイントが定義されている場合は、ジャーナル項目の最後にジャーナル・チェックポイントの項目が付加されます。

利用ジャーナルがデータベースの更新情報である場合、更新されたテーブルの列にあたるジャーナル項目は、有効、NULL値、欠損データのいずれかの項目になります。また、更新されなかったテーブルの列にあたるジャーナル項目およびジャーナル・チェックポイントの情報は、無効項目となります。

利用ジャーナルがジャーナル・チェックポイントの場合、ジャーナル・チェックポイントの項目は有効項目となり、ジャーナル・チェックポイント名が左詰で設定されます。ジャーナル取得対象として指定した列の更新データの項目は、無効項目となります。

14.1.2.5 システム取得項目

取得した利用ジャーナルに関する更新時間やトランザクション状態などの情報をシステムが設定します。これらの項目をシステム取得項目と呼びます。システム取得項目はジャーナル項目と同様の形式で取得されます。したがって、利用ジャーナルに項目属性表示が付加されている場合は各項目ごとに項目属性表示と項目有効表示のタグが付加されます。また、利用ジャーナルに項目属性表示が付加されていない場合は各項目ごとに項目有効表示のタグが付加されます。

システム取得項目と設定値の一覧を"表14.8 システム取得項目の設定値"に、利用ジャーナルがジャーナル・チェックポイントの場合に設定されるシステム取得項目を"表14.9 ジャーナル・チェックポイントのシステム取得項目"に示します。

表14.8 システム取得項目の設定値

項目

データ型

通知内容および形式

C言語

COBOL言語

更新資源名

char[38]
(注2)

PIC X(38)
(注2)

[Symfoware/RDBのジャーナルの場合]
Symfoware/RDBのテーブル名
(左詰めで残りは空白)

[Oracleのジャーナルの場合]
Oracleのテーブル名
(左詰めで残りは空白)

[SQL Serverのジャーナルの場合]
取得定義で定義した更新資源名
(左詰めで残りは空白)

格納構造名

char[38]
(注2)

PIC X(38)
(注2)

[Symfoware/RDBのジャーナルの場合]
Symfoware/RDBのDSI名
(左詰めで残りは空白)

[Oracleのジャーナルの場合]
無効データ

[SQL Serverのジャーナルの場合]
無効データ

時刻

char[16]

PIC X(16)

データベース更新時刻
    YYYYMMDDHHMMSSSS
        年(西暦)月日時分秒(1/100秒まで)

トランザクション識別子

char[8]
(注1)

PIC X(8)
(注1)

トランザクションごとに割りふられる番号

トランザクション状態

short

PIC 9(2) COMP-5

トランザクション状態
  X’0001’:トランザクション内最初のレコード
  X’0002’:トランザクション内途中のレコード
  X’0004’:トランザクション内最後のレコード
  X’0005’:トランザクション内1レコード

DB種別

short

PIC 9(2) COMP-5

ジャーナルの取得対象のデータベース種別
  X’0001’:Symfoware/RDBのジャーナル
  X’0009’:Oracleのジャーナル
  X’000A’:SQL Serverのジャーナル

DB操作

short

PIC 9(2) COMP-5

UPDATE文に対するジャーナルの取得方法で、DELETEとINSERTの情報に分割して取得するように指定している場合
  X’0001’:INSERT文,UPDATE文の格納処理
  X’0003’:DELETE文,UPDATE文の削除処理

UPDATE文に対するジャーナルの取得方法で、UPDATEの情報として取得するように指定している場合
  X’0001’:INSERT文
  X’0002’:UPDATE文
  X’0003’:DELETE文

注1) トランザクション識別子に設定される値は文字列ではありませんので、コード変換を行わないでください。
注2) ジャーナルヘッダのコード種別がUNICODEの場合は72バイトになります。

表14.9 ジャーナル・チェックポイントのシステム取得項目

システム取得項目名

配付されるデータ

更新資源名

"JCKP" ジャーナル・チェックポイントを表す文字列
(左詰めで残りは空白)

格納構造名

無効データ

時刻

ジャーナル・チェックポイント取得時刻
    YYYYMMDDHHMMSSSS
        年(西暦)月日時分秒(1/100秒まで)

トランザクション識別子

無効データ

トランザクション状態

無効データ

DB種別

更新データの格納先データベースの種別
  X’0008’:ジャーナル・チェックポイント

DB操作

無効データ

システム取得項目は、取得定義に従って設定されます。ただし、配付定義で圧縮するように指定している場合は、以下のようになります。

圧縮についての詳細は、"14.2.2 圧縮"を参照してください。

なお、他システムで取得した利用ジャーナルに含まれるシステム取得項目に設定される値は、ジャーナル取得側のシステムのマニュアルを参照してください。