ページの先頭行へ戻る
Linkexpress Replication option 説明書
FUJITSU Software

2.5.2 グループ単位のレプリケーションでのDBサービス定義

グループ単位のレプリケーションでは、以下の定義文が必要です。

グループ単位のレプリケーションでのDBサービス定義の方法を、以下の運用例に基づいて説明します。

なお、ここで説明するもの以外にもDBサービス定義の定義項目は存在します。詳細については、“6.34.1 lxgensvコマンド”ならびに“Linkexpress 運用ガイド”を参照してください。

レプリケーション運用例

  

2.5.2.1 REPLICAGROUP定義文

REPLICAGROUP定義文は、レプリケーショングループを定義する定義文です。グループ単位のレプリケーションを行う場合に必要です。

レプリケーション運用例でのREPLICAGROUP定義文の記述例を以下に示します。

詳細は、“6.34.1.3 REPLICAGROUP定義文”を参照してください。

REPLICAGROUP定義文の記述例

REPLICAGROUP
      NAME = SENDAI                                                      → 1
      MEMBER = (OUTORDER,OUTSTOCK)                                       → 2
      FILE = /home/work/indata                                           → 3
      INCODE = euc-s90                                                   → 4
      DATABASE = 受注管理データベース                                    → 5
      OUTCODE = euc-s90                                                  → 6

以下にREPLICAGROUP定義文のオペランドについて説明します。各オペランドの番号は、記述例の番号と対応します。

  1. NAMEオペランド(レプリケーショングループ名

    レプリケーショングループ名(格納グループ名ともいいます)を指定します。

  2. MEMBERオペランド(レプリケーショングループに属するDBサービス定義の識別名

    1つのレプリケーショングループに属するDBサービス定義の識別名(OUTTABLE識別名、メンバDBサービス定義名ともいいます)を指定します。

    レプリケーショングループに属するDBサービス定義の識別名(OUTTABLE識別名)を1つ以上記述します。

  3. FILEオペランド(入力ファイル名

    入力ファイル名を指定します。本指定値は、一括差分複写の場合に有効となります。全複写の場合、INTABLE定義文のFILEオペランドの指定値を使用します。

  4. INCODEオペランド(入力データのコード系

    入力データのコード系を指定します。

    注意

    INCODEオペランドにunicodeを指定した場合には、IN_UNICODE_TYPEオペランドの指定が必要です。

  5. DATABASEオペランド(格納先データベース名

    複写先データベースのデータベース名を指定します。

  6. OUTCODEオペランド(出力データのコード系

    データベースへ反映するデータのコード系を指定します。

    注意

    OUTCODEオペランドにunicodeを指定した場合には、OUT_UNICODE_TYPEオペランドの指定が必要です。

2.5.2.2 INTABLE定義文

グループ単位のレプリケーションの運用例でのINTABLE定義文の記述例を以下に示します。

内容および形式の詳細については、“Linkexpress 運用ガイド”を参照してください。

INTABLE定義文の記述例

NTABLE
      NAME = INORDER                                                    → *
      DATATYPE = (local-member,non-attribute add null field)            → 1
      ITEM = ((@TRHEADER,char(8) except null field),
              (@DBOP,sint),
              (ITEM1,sint),
              (ITEM2,sint),
              (ITEM3,sint),
              (ITEM4,int),
              (ITEM5,nchar(5)))                                         → 2
      FILE = /home/work/order                                           → 3
INTABLE
      NAME = INSTOCK                                                    → *
      DATATYPE = (local-member,non-attribute add null field)            → 1
      ITEM = ((@TRHEADER,char(8) except null field),
              (@DBOP,sint),
              (ITEM1,sint),
              (ITEM2,nchar(10)),
              (ITEM3,int),
              (ITEM4,int))                                              → 2
      FILE = /home/work/stock                                           → 3

以下にINTABLE定義文のオペランドについて説明します。各オペランドの番号は、記述例の番号と対応します。

なお、*印として表したオペランドは、表単位のレプリケーションの場合と同じです。“2.5.1 表単位のレプリケーションでのDBサービス定義”を参照してください。

  1. DATATYPEオペランド(入力データの種別および形式

    グループ単位のレプリケーションの場合は、入力データの種別に“local-member”を指定してください。

  2. ITEMオペランド(入力データ項目名および形式

    抽出される差分データの形式に従ってください。

    以下に複写元システムで抽出される差分データのレコード形式とITEMオペランドでの指定形式について説明します。

    • 抽出レコード形式

      レコードの形式にはナル表示域あり(抽出定義でNULLIND = YESを指定)と、ナル表示域なし(抽出定義でNULLIND = NOを指定)の2種類があります。

      レコードの構成を以下に示します(コード系をEUCまたはシフトJIS(MS)、数値の表現形式を前進法で示します。)。

      1. レコード長(長さ:4バイト、属性:INTEGER)

        レコードの先頭から末尾までの長さが設定されます。

      2. 有効列数(長さ:2バイト、属性:SMALLINT)

        抽出される項目数だけでなく、抽出識別子および差分反映操作も個数に含まれます。コミットレコードの場合は差分反映操作だけの個数が設定されます。

      3. 抽出識別子(長さ:2バイト、属性:SMALLINT)

        抽出側のレプリケーショングループ内の表に対するユニークなIDが設定されます。全件抽出の場合はつねに0x0000が設定されます。

        コミットレコードの場合、本フィールドは存在しません。

      4. 差分反映操作のナル表示域(長さ:2バイト、属性:SMALLINT)

        つねに0x0000が設定されます。

      5. 差分反映操作(長さ:2バイト、属性:SMALLINT)

        0x0000:全件抽出

        0x0001:追加差分

        0x0002:更新差分

        0x0003:削除差分

        0xffff:抽出件数が0件の全件抽出

        0x8000:コミットレコード

      6. ナル表示域 (長さ:2バイト、属性:SMALLINT)

        0x0000:ナル値でない

        0xffff:ナル値

        抽出件数が0件の全件抽出の場合およびコミットレコードの場合、本フィールドは存在しません。

      7. データ項目 (長さ:データ型によって異なります)

        各項目のデータがバイナリ形式で抽出されます。

        詳細は、“付録B 抽出データ項目の形式”を参照してください。

        抽出件数が0件の全件抽出の場合およびコミットレコードの場合、本フィールドは存在しません。

    • ITEMオペランドでの指定形式

      • レコード長、有効列数および抽出識別子

        レコード長、有効列数および抽出識別子の3つを合わせて、8バイトのナル表示域なしの文字列として、“@TRHEADER,char(8) except null field”と指定します。

        DATATYPEオペランドの入力データの形式でナル表示域の有無に“except null field”を指定した場合、“@TRHEADER,char(8)”だけの指定も可能です。

      • 差分反映操作

        以下のように指定します。

        ナル表示域ありのレコードの場合:“@DBOP,sint add null field”

        ナル表示域なしのレコードの場合:“@DBOP,sint except null field”

        DATATYPEオペランドの入力データの形式でナル表示域の有無に差分反映操作と同じ値を指定した場合、“@DBOP,sint”だけの指定も可能です。

      • 各データ項目の属性

        付録B 抽出データ項目の形式”を参照してください。

      • 各データ項目のナル表示域の有無

        DATATYPEオペランドで入力データの形式を指定した場合はナル表示域の有無をITEMオペランドで指定する必要はありません。

        DATATYPEオペランドの入力データの形式を指定していない場合は、以下のように指定します。

        ナル表示域ありのレコードの場合:add null field

        ナル表示域なしのレコードの場合:except null field

  3. FILEオペランド(入力ファイル名

    グループ単位のレプリケーションの場合、本オペランドの指定値は全複写時に有効になります。一括差分複写の場合、REPLICAGROUP定義文のFILEオペランドの指定値が使用されます。

2.5.2.3 OUTTABLE定義文

グループ単位のレプリケーションの運用例でのOUTTABLE定義文の記述例を以下に示します。

内容および形式の詳細については、“Linkexpress 運用ガイド”を参照してください。

OUTTABLE定義文の記述例

OUTTABLE
      NAME = OUTORDER                                                   → *
      DATATYPE = (database-member,symfoware/rdb)                        → 1
      EXTRACT = EXTORDER                                                → *
      SCHEMA = 受注スキーマ                                             → *
      TABLE = 受注表                                                    → *
      ITEM = (@TRHEADER,@DBOP,受注番号,製品番号,数量,受注額,支店名)     → *
      LOADMODE = (difference,load)                                      → 2
OUTTABLE
    NAME = OUTSTOCK                                            → *
    DATATYPE = (database-member,symfoware/rdb)                 → 1
    EXTRACT = EXTSTOCK                                         → *
    SCHEMA = 受注スキーマ                                      → *
    TABLE = 在庫表                                             → *
    ITEM = (@TRHEADER,@DBOP,製品番号,製品名,単価,在庫量)       → *
    LOADMODE = (difference,load)                               → 2

以下にOUTTABLE定義文のオペランドについて説明します。各オペランドの番号は、記述例の番号と対応します。

なお、*印として表したオペランドは、表単位のレプリケーションの場合と同じです。“2.5.1 表単位のレプリケーションでのDBサービス定義”を参照してください。

  1. DATATYPEオペランド(出力データの出力先およびデータベース・システムの種類

    グループ単位のレプリケーションの場合は、出力データの出力先に“database-member”を指定してください。

    Symfoware/RDB間のレプリケーションでは、データベース・システムの種類に“symfoware/rdb”を指定してください。

  2. LOADMODEオペランド(格納方式および格納方法

    全複写、一括差分複写を問わず、格納方式に“difference”を指定してください。

    全複写、一括差分複写を問わず、格納方法に“load”を指定してください。

2.5.2.4 EXTRACT定義文

グループ単位のレプリケーションの運用例でのEXTRACT定義文の記述例を以下に示します。

内容および形式の詳細については、“Linkexpress 運用ガイド”を参照してください。

EXTRACT定義文の記述例

EXTRACT
      NAME = EXTORDER
      INTABLE = INORDER
      CONVERT = on
      SELECT = *
EXTRACT
      NAME = EXTSTOCK
      INTABLE = INSTOCK
      CONVERT = on
      SELECT = *

オペランドについての説明は、表単位のレプリケーションの場合と同じです。“2.5.1 表単位のレプリケーションでのDBサービス定義”を参照してください。