ページの先頭行へ戻る
Linkexpress Replication optionV5.0L20 導入運用ガイド
FUJITSU Software

1.1.7 DBサービス定義

DBサービス定義は、複写元システムで抽出したデータを、複写先システムの表にどのように格納するかを定義するものです。

DBサービス定義はLinkexpressのDB連携機能の1機能です。以下の手順で実施します。詳細は、“Linkexpress 運用ガイド”を参照してください。

  1. 定義内容を記述したDBサービス定義ファイルを作成します。

  2. 作成したDBサービス定義ファイルを指定して、DBサービス定義コマンド(lxgensvコマンド)を実行します。

  3. DBサービスの運用を開始するために、DBサービス運用開始コマンド(lxintsvコマンド)を実行します。

また、Linkexpressクライアントの“業務定義ウィンドウ”で自側DB格納イベントまたは相手側DB格納イベントとしてGUIで定義することもできます。詳細は、“Linkexpress 運用ガイド”を参照してください。なお、グループ単位のレプリケーションの場合は、GUIによる定義を行うことはできません。

DBサービス定義は以下の4つの定義文により構成されています。

ここでは、Linkexpress Replication optionを使用する場合に、DBサービス定義の各定義文で注意する点について、以下の場合に分けて説明します。

なお、DBサービス定義ファイルのサンプルについては、“付録C サンプルファイル一覧”を参照してください。また、定義ファイル作成コマンド(lxrepmkdefコマンド)により、DBサービス定義ファイルの雛型を作成することができます。詳細は、“コマンドリファレンス”の“lxrepmkdefコマンド”を参照してください。

1.1.7.1 表単位のレプリケーションでのDBサービス定義

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

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

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

レプリケーション運用例

  

1.1.7.1.1 INTABLE定義文

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

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

INTABLE定義文の記述例

INTABLE
      NAME = INEMPLY                                                     → 1
      DATATYPE = (local,non-attribute add null field)                    → 2
      CODE = unicode                                                     → 3
      UNICODE_TYPE = utf8-4                                              → 3
      BYTEORDER =littele                                                 → 4
      ITEM = ((@DBOP,sint except null field),
              (ITEM1,sint),
              (ITEM2,vchar(40)),
              (ITEM3,vchar(20)))                                         → 5
      FILE = /home/work/indata                                           → 6

以下にINTABLE定義文のオペランドの指定時に注意すべき点を説明します。各オペランドの番号は、記述例の番号と対応します。

  1. NAMEオペランド(INTABLE識別名

    INTABLE識別名を指定してください。

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

    入力データの種別には、“local”を指定してください。

    入力データの形式には、複写元システムの抽出定義で指定したNULLINDオペランドの値に従って指定してください。

  3. CODEオペランド(入力データのコード系

    複写元システムで抽出したコード系を指定します。抽出定義のOUTCODEオペランドの値に従って指定してください。

    注意

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

  4. BYTEORDERオペランド(入力データの数値の表現形式)

    入力データに含まれる数値の表現形式を指定します。

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

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

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

    • 抽出レコード形式

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

      レコードの構成を以下に示します(コード系をUTF-8、数値の表現形式を後退法で示します。)。

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

        0x0000:全件抽出

        0x0001:追加差分

        0x0002:更新差分

        0x0003:削除差分

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

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

        0x0000:ナル値でない

        0xffff:ナル値

        ナル表示域なしのレコードの場合および抽出件数が0件の全件抽出の場合、本フィールドは存在しません。

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

        各項目のデータが抽出されます。

        詳細は、“システム設計ガイド”の“抽出データ項目の形式”を参照してください。

        抽出件数が0件の全件抽出の場合、本フィールドは存在しません。

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

      • 差分反映操作

        “@DBOP,sint except null field”と指定してください。

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

      • 各データ項目の属性

        “システム設計ガイド”の“抽出データ項目の形式”を参照してください。

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

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

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

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

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

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

    格納処理の入力ファイル名(受信ファイル名)を指定してください。

1.1.7.1.2 OUTTABLE定義文

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

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

OUTTABLE定義文の記述例

OUTTABLE
      NAME = OUTEMPLY                                                    → 1
      DATATYPE = (database,enterprise/pgs)                               → 2
      EXTRACT = EXTEMPLY                                                 → 3
      CODE = unicode                                                     → 4
      UNICODE_TYPE = utf8-4                                              → 4
      DATABASE = 社員管理データベース                                    → 5
      SCHEMA = 社員スキーマ                                              → 6
      TABLE = 社員表                                                     → 7
      ITEM = (@DBOP,社員番号,名前,支店名)                                → 8
      LOADMODE = (difference,load)                                       → 9

以下にOUTTABLE定義文のオペランドの指定時に注意すべき点を説明します。各オペランドの番号は、記述例の番号と対応します。

  1. NAMEオペランド(OUTTABLE識別名

    OUTTABLE識別名を指定してください。

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

    データの出力先には、“database”を指定してください。
    データベース・システムの種類は、複写先データベースに合わせ、以下のいずれかを指定してください。

    • Symfoware Server (Openインタフェース):symfoware/pgs

    • Symfoware Server (Postgres):enterprise/pgs

    • Enterprise Postgres:enterprise/pgs

  3. EXTRACTオペランド(EXTRACT識別名

    EXTRACT識別名を指定してください。

  4. CODEオペランド(出力データのコード系

    複写先データベースに格納するデータのコード系を指定してください。

    注意

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

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

    複写先データベースのデータベース名を指定してください。

  6. SCHEMAオペランド(格納先スキーマ名

    複写先データベースの格納先のスキーマ名を指定してください。

  7. TABLEオペランド(格納先表名

    複写先データベースの格納先の表名を指定してください。

  8. ITEMオペランド(格納先表の列名

    格納先の表の列名を指定してください。

    INTABLE定義文のITEMオペランドの入力データ項目名が複写先データベースの表の列名と同じ場合は、本オペランドを省略することができます。

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

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

    格納方法には、“load”を指定してください。

    複写元システムがグローバルサーバまたはPRIMEFORCEの場合は、“コマンドリファレンス”の“OUTTABLE定義文”を参照してください。

1.1.7.1.3 EXTRACT定義文

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

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

EXTRACT定義文の記述例

EXTRACT
      NAME = EXTEMPLY                                                    → 1
      INTABLE = INEMPLY                                                  → 2
      CONVERT = on                                                       → 3
      SELECT = *                                                         → 4

以下にEXTRACT定義文のオペランドの指定時に注意すべき点を説明します。各オペランドの番号は、記述例の番号と対応します。

  1. NAMEオペランド(EXTRACT識別名

    EXTRACT識別名を指定してください。

  2. INTABLEオペランド(INTABLE識別名

    INTABLE識別名を指定してください。

  3. CONVERTオペランド(データ編集の実施の有無

    “on”を指定してください。

  4. SELECTオペランド(抽出・編集するデータ項目の指定

    抽出・編集するデータ項目を指定してください。

    INTABLEオペランドで指定した全入力データ項目を選択する場合、“*”を指定するか、本オペランドを省略してください。

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

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

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

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

レプリケーション運用例

  

1.1.7.2.1 REPLICAGROUP定義文

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

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

詳細は、“コマンドリファレンス”の“lxgensvコマンド”の“REPLICAGROUP定義文”を参照してください。

REPLICAGROUP定義文の記述例

REPLICAGROUP
      NAME = SENDAI                                                      → 1
      MEMBER = (OUTORDER,OUTSTOCK)                                       → 2
      FILE = /home/work/indata                                           → 3
      INCODE = unicode                                                   → 4
      IN_UNICODE_TYPE = utf8-4                                           → 4
      DATABASE = 受注管理データベース                                    → 5
      OUTCODE = unicode                                                  → 6
      OUT_UNICODE_TYPE = utf8-4                                          → 6
      INBYTEORDER = little                                               → 7

以下に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オペランドの指定が必要です。

  7. INBYTEORDERオペランド(入力データの数値表現形式)

    入力データに含まれる数値の表現形式を指定します。

1.1.7.2.2 INTABLE定義文

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

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

INTABLE定義文の記述例

INTABLE
      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,vchar(20)))                                        → 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,vchar(40)),
              (ITEM3,int),
              (ITEM4,int))                                              → 2
      FILE = /home/work/stock                                           → 3

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

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

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

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

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

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

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

    • 抽出レコード形式

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

      レコードの構成を以下に示します(コード系をUTF-8、数値の表現形式を後退法で示します。)。

      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. データ項目 (長さ:データ型によって異なります)

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

        詳細は、“システム設計ガイド”の“抽出データ項目の形式”を参照してください。

        抽出件数が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”だけの指定も可能です。

      • 各データ項目の属性

        “システム設計ガイド”の“抽出データ項目の形式”を参照してください。

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

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

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

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

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

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

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

1.1.7.2.3 OUTTABLE定義文

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

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

OUTTABLE定義文の記述例

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

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

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

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

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

    データベース・システムの種類には、複写先データベースに合わせ、以下のいずれかを指定してください。

    • Symfoware Server (Openインタフェース):symfoware/pgs

    • Symfoware Server (Postgres):enterprise/pgs

    • Enterprise Postgres:enterprise/pgs

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

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

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

1.1.7.2.4 EXTRACT定義文

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

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

EXTRACT定義文の記述例

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

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