DBサービス定義では、一部のオペランドおよび指定値について短縮記述が可能です。
以下に、グループ単位のレプリケーションで追加になった短縮記述形式を示します。
オペランドの短縮記述形式
標準記述形式 | 短縮記述形式 |
---|---|
INBYTEORDER | IBORDER |
OUTDATATYPE | ODTYPE |
指定値の短縮記述形式
標準記述形式 | 短縮記述形式 |
---|---|
local-member | local-m |
database-member | db-m |
DBサービス定義は、次の定義文によって入出力の属性や編集操作を定義します。
INTABLE定義文:入力データの定義を行います。
OUTTABLE定義文:出力データの定義を行います。
EXTRACT定義文:データ編集に関する定義を行います。
グループ単位のレプリケーションは、これらのDBサービスを1つのトランザクションで格納される資源(表やDSI)の数だけ定義し、以下の定義文でレプリケーショングループとしてグループ化することで実現されます。
REPLICAGROUP定義文:レプリケーショングループの定義を行います。
[説明]
REPLICAGROUP定義文は、グループ単位のレプリケーションの場合にレプリケーショングループの定義を行う定義文です。
[記述形式]
REPLICAGROUP NAME=レプリケーショングループ名 MEMBER=(OUTTABLE識別名 [,OUTTABLE識別名] ...) FILE=入力ファイル名 [TEMPDIR=作業用ディレクトリ] [INCODE=入力データのコード系] [IN_UNICODE_TYPE=入力データのコード系がUNICODEの場合のデータ形式] [INBYTEORDER=入力データの数値表現形式] DATABASE=データベース名 [OUTCODE=出力データのコード系] [OUT_UNICODE_TYPE=出力データのコード系がUNICODEの場合のデータ形式] [ENVFILE=DB動作環境定義ファイル名] [LOGTYPE=差分データ形式]
レプリケーショングループ名を指定します。
指定値については、以下に示す規約に沿って指定してください。
使用可能な文字は、半角の“#”、“@”、英大文字および数字です。
先頭の文字に数字は使用できません。
指定できるグループ名は最大8文字です。
1つのレプリケーショングループに属するDBサービス定義の識別名(OUTTABLE識別名)を指定します。
レプリケーショングループに属するDBサービス定義の識別名(OUTTABLE識別名)を記述します。OUTTABLE識別名の指定には以下の制約があります。
OUTTABLE識別名の並びは、抽出定義のレプリケーショングループと同じ順番で指定する必要があります。
1つのOUTTABLE識別名は同時に複数のレプリケーショングループに属することはできません。
1つのレプリケーショングループに同じOUTTABLE識別名を重複して指定することはできません。
指定できるOUTTABLE識別名の数は、複写先データベースのSymfoware/RDBのバージョンに依存します。詳細は、“1.7.2 関連製品との組合せ”の“グループ単位レプリケーションのメンバ数拡張”を参照してください。
指定に当たっては、Symfoware/RDBの動作環境ファイルに“MAX_SQL”を指定する必要があります。詳細は、“6.34.2 lxstrdbコマンド”を参照してください。
入力ファイル名を指定します。本指定値は、一括差分複写時に有効となります。全複写の場合、INTABLE定義文のFILEオペランドの指定値を使用します。
以下の形式で指定してください。
Windowsの場合
入力ファイル名を128バイト以内の絶対パスで指定してください。
Solaris、Linuxの場合
入力ファイル名を255バイト以内の絶対パスで指定してください。
作業用ディレクトリ名を指定します。本オペランドを省略した場合、以下のディレクトリを作業用ディレクトリとして使用します。
Windowsの場合
Linkexpressのインストールディレクトリ\dbtemp\db
Solaris、Linuxの場合
/tmp
128バイト以内の絶対パスで指定してください。
Windowsの場合は、パスの終端に“\”をつけないでください。
指定したディレクトリの配下に利用者の資産(ディレクトリおよびファイル)を配置しないでください。
作業用ディレクトリの見積もりは、OUTTABLE定義のTEMPDIRオペランドと同じ考えです。見積もりの詳細は、“Linkexpress 導入ガイド”を参照してください。
なお、見積もりの概算におけるレコード長は、LOGTYPEオペランドにlittleを指定した場合も、標準形式の差分ログ形式で計算します。
入力データのコード系を指定します。本オペランドを省略した場合、以下の値が採用されます。
Windowsの場合
シフトJIS(MS)系が採用されます。
Solaris、Linuxの場合
Linkexpressインストール時に指定したコード系(EUC、シフトJIS(MS)またはUTF8)を採用します。
指定可能な値は以下のとおりです。
INCODEオペランド | 意味 |
---|---|
sjis-ms | 入力データのコード系はシフトJIS(MS)です。 |
euc-s90 | 入力データのコード系はEUC(S90)です。 |
euc-u90 | 入力データのコード系はEUC(U90)です。 |
unicode | 入力データのコード系がUNICODEです。 |
入力データのコード系がUNICODEの場合のデータ形式を指定します。本オペランドは、入力データのコード系として(INCODEオペランド)、“unicode”を指定した場合に指定します。
本オペランドが省略された場合、“ucs2”が採用されます。
指定可能な値は以下のとおりです。
IN_UNICODE_TYPEオペランド | 意味 |
---|---|
ucs2 | データ形式はUCS-2です。 |
utf8 | データ形式はUTF-8です。 |
ucs2-ms | データ形式はMicrosoft独自形式のUCS-2です。 |
confused | データ形式はSymfoware/RDBのUNICODEデータベースから編集しないで抽出したデータ形式です。CHARACTER型がUTF-8で、NATIONAL CHARACTER型がUCS-2で表現された混在型データ形式です。 |
confused-ms | データ形式がSymfoware/RDBのUNICODEデータベースからCOBOLアプリケーションを使用して抽出したデータ形式です。CHARACTER型がUTF-8で、NATIONAL CHARACTER型がMicrosoft独自形式のUCS-2で表現された混在型データ形式です。 |
入力データに含まれる数値の表現形式を指定します。なお、OSがSolarisであり、INCODEオペランドが、“sjis-ms”または“unicode”以外の場合、本オペランドを省略してください。
本オペランドで指定する値は以下のとおりです。本オペランドを省略した場合、“big”が採用されます。
big:前進法です。
little:後退法です。
格納先のデータベース名を指定します。
18文字以内の日本語文字列、半角英数字文字列(注)、または日本語文字と半角英数字文字の混在文字列で指定してください。各データベース・システムで使用可能な文字は、各データベース・システムのマニュアルを参照してください。
Symfoware Serverの場合
格納先データベース名を指定してください。
Oracleの場合
Oracleインスタンス識別子を指定してください。
対応可能なデータベース・システムの種別は、動作するシステムによって変化します。詳細は、利用可能なデータベース種別の説明を参照してください。
データベース名に半角英数字文字列36文字まで指定する場合は、組み合わせるLinkexpressがサポートしている必要があります。詳細は、“1.7 リリース情報”を参照してください。
データベースへ反映するデータのコード系を指定します。本オペランドを省略した場合、以下の値が採用されます。
Windowsの場合
シフトJIS(MS)系が採用されます。
Solaris、Linuxの場合
Linkexpressインストール時に指定したコード系(EUC、シフトJIS(MS)またはUTF8)を採用します。
指定可能な値は以下のとおりです。
OUTCODEオペランド | 意味 |
---|---|
sjis-ms | 出力データのコード系はシフトJIS(MS)です。 |
euc-s90 | 出力データのコード系はEUC(S90)です。 |
euc-u90 | 出力データのコード系はEUC(U90)です。 |
unicode | 出力データのコード系がUNICODEです。 |
各データベース・システムで扱えるデータのコード系は、各データベースシステムのマニュアルを参照してください。
JIS2004のデータのコード変換はサポートしていません。JIS2004のデータは、以下に示す組合せでのみレプリケーションすることができます。
| 複写元システム | 複写先システム |
---|---|---|
OS | Windows | Windows |
データベース | Symfoware/RDB | Symfoware/RDB |
データベースの文字コード系 | UNICODE | UNICODE |
出力データのコード系がUNICODEの場合のデータ形式を指定します。本オペランドは、出力データのコード系として(OUTCODEオペランド)、“unicode”を指定した場合に指定します。
本オペランドが省略された場合、“ucs2”が採用されます。
指定可能な値は以下のとおりです。
OUT_UNICODE_TYPEオペランド | 意味 |
---|---|
ucs2 | データ形式はUCS-2です。 |
utf8 | データ形式はUTF-8です。 |
ucs2-ms | データ形式はMicrosoft独自形式のUCS-2です。 |
confused | データ形式はSymfoware/RDBのUNICODEデータベースから編集しないで抽出したデータ形式です。CHARACTER型がUTF-8で、NATIONAL CHARACTER型がUCS-2で表現された混在型データ形式です。 |
confused-ms | データ形式がSymfoware/RDBのUNICODEデータベースからCOBOLアプリケーションを使用して抽出したデータ形式です。CHARACTER型がUTF-8で、NATIONAL CHARACTER型がMicrosoft独自形式のUCS-2で表現された混在型データ形式です。 |
コマンド実行時に参照するDB動作環境定義のファイル名を指定します。
Windowsの場合
DB動作環境定義のファイル名を128バイト以内の絶対パス、またはファイル名だけで指定します。ファイル名だけを指定した場合は、DB動作環境定義として“Linkexpressのインストールディレクトリ\manager\db\_gen\DBサービスグループ名\本オペランドのファイル名”が採用されます。
なお、DBサービスグループの登録抹消を行う場合は、“Linkexpressのインストールディレクトリ\manager\db\_gen\DBサービスグループ名\本オペランドのファイル名”のDB動作環境定義が削除されます。
本オペランド省略時は、環境変数“LXDBENV”の指定値が採用されます。このファイル名を持つDB動作環境定義は事前に用意する必要があります。ファイルが存在しない場合、コマンドは異常終了します。
Solaris、Linuxの場合
DB動作環境定義のファイル名を255バイト以内の絶対パス、またはファイル名だけで指定します。ファイル名だけを指定した場合は、DB動作環境定義として“Linkexpressのインストールディレクトリ/MANAGER/DB/_GEN/DBサービスグループ名/本オペランドのファイル名”が採用されます。
なお、DBサービスグループの登録抹消を行う場合は、“Linkexpressのインストールディレクトリ/MANAGER/DB/_GEN/DBサービスグループ名/本オペランドのファイル名”のDB動作環境定義が削除されます。
本オペランド省略時は、環境変数“LXDBENV”の指定値が採用されます。このファイル名を持つDB動作環境定義は事前に用意する必要があります。ファイルが存在しない場合、コマンドは異常終了します。
DB動作環境定義の各指定方法による関係を以下に示します。
優先 | 種別 | 指定の有無 | |
---|---|---|---|
指定あり | 指定なし(省略) | ||
1 | lxextdbの-dオプション | 有効 | REPLICAGROUP定義文の |
2 | REPLICAGROUP定義文の | 有効 | 環境変数:LXDBENV |
3 | 環境変数:LXDBENV | 有効 | デフォルトの |
4 | デフォルトの | 有効 | エラー |
差分ログの形式を指定します。
複写元システムの抽出定義に指定した差分ログ形式(LOGTYPE)に合わせて指定します。
指定可能な値は以下のとおりです。本オペランド省略時は、normalを指定したとみなされます。
normal:差分ログ形式は、標準形式です。
little:差分ログ形式は、可変長ログ形式です。
ここでは、INTABLE定義文で追加、変更になったオペランドについて、以下の2つの場合に分けて説明します。
表単位のレプリケーション
グループ単位のレプリケーション
表単位のレプリケーションを行う場合、INTABLE定義文は以下の形式になります。
ここでは、表単位レプリケーションで追加になったオペランドについて説明します。ここで説明していないオペランドについては、“Linkexpress 運用ガイド”を参照してください。
INTABLE NAME=INTABLE識別名 DATATYPE=(入力データの種別[,入力データの形式]) [CODE=入力コード系] [UNICODE_TYPE=Unicode系のデータ形式] [ENVFILE=DB動作環境定義ファイル名] [BYTEORDER=数値の表現形式] ITEM=(([入力データ項目名],入力データ項目の形式) [,([入力データ項目名],入力データ項目の形式)]…) FILE=ファイル名 [LOGTYPE=差分データ形式]
差分反映操作を指定します。
ITEMオペランド先頭に指定します。
差分反映操作の詳細および他の入力データ項目と形式については、“Linkexpress 運用ガイド”を参照してください。
表単位のレプリケーションの場合、無条件にITEMオペランドの先頭に指定します。
“@DBOP,sint except null field”:差分反映操作
DATATYPEオペランドの入力データの形式でナル表示域の有無に“except null field”を指定した場合、“@DBOP,sint”だけの指定も可能です。
差分データ形式を指定します。
複写元システムの抽出定義に指定した差分データ形式(LOGTYPE)に合わせて指定します。
表単位のレプリケーションで、可変長ログ形式を指定している場合、ITEMオペランドに、抽出データの先頭に付加されたレコード長(4バイト)に対する入力データ項目名、入力データ項目の形式を指定する必要はありません。
各データ項目のナル表示域の有無は、抽出定義のNULLINDオペランドの指定値に合わせます。
ナル表示域あり:抽出定義でNULLIND=YESを指定
ナル表示域なし:抽出定義でNULLIND=NOを指定
差分反映操作“@DBOP”のナル表示域の指定は、グループ単位レプリケーションの場合と異なります。
グループ単位のレプリケーションを行う場合、INTABLE定義文は以下の形式になります。
ここでは、グループ単位のレプリケーションで追加、変更になったオペランドについて説明します。ここで説明していないオペランドについては、“Linkexpress 運用ガイド”を参照してください。
INTABLE NAME=INTABLE識別名 DATATYPE=(入力データの種別[,入力データの形式]) ITEM=(([入力データ項目名],入力データ項目の形式) [,([入力データ項目名],入力データ項目の形式)]…) FILE=ファイル名
特殊項目として指定する差分反映情報項目に以下の指定値が追加になります。
“@TRHEADER,char(8) except null field”:グループ単位のレプリケーション用ヘッダ(属性 char(8))
グループ単位のレプリケーションの抽出データのうち、レコード長、有効列数ならびに抽出識別子を含む項目です。グループ単位のレプリケーションの場合、無条件にITEMオペランドの先頭に指定します。
DATATYPEオペランドの入力データの形式でナル表示域の有無に“except null field”を指定した場合、“@TRHEADER,char(8)”だけの指定も可能です。
差分反映操作である“@DBOP”は、この差分反映情報項目の次の入力データ項目として指定します。
ナル表示域ありのレコードの場合:“@DBOP,sint add null field”
ナル表示域なしのレコードの場合:“@DBOP,sint except null field”
INTABLE定義文が関連するOUTTABLE定義文がレプリケーショングループに属する場合、当オペランドの指定値は全複写時に有効になります。一括差分複写の場合、REPLICAGROUP定義文のFILEオペランドの指定値を使用します。
グループ単位レプリケーションの場合、INTABLE定義文に差分ログ形式(LOGTYPE)は指定できません。REPLICAGROUP定義文に指定してください。
各データ項目のナル表示域の有無は、抽出定義のNULLINDオペランドの指定値に合わせます。
ナル表示域あり:抽出定義でNULLIND=YESを指定
ナル表示域なし:抽出定義でNULLIND=NOを指定
差分反映操作“@DBOP”のナル表示域の指定は、表単位レプリケーションの場合と異なります。
ここでは、OUTTABLE定義文で追加、変更になったオペランドについて、以下の2つの場合に分けて説明します。
表単位のレプリケーション
グループ単位のレプリケーション
表単位のレプリケーションを行う場合、OUTTABLE定義文は以下の形式になります。
ここでは、表単位レプリケーションで注意すべきオペランドについて説明します。ここで説明していないオペランドについては、“Linkexpress 運用ガイド”を参照してください。
OUTTABLE NAME = OUTTABLE識別名 DATATYPE = (出力データ種別[,出力データ形式]) EXTRACT = EXTRACT識別名 [CODE = 出力コード系] [UNICODE_TYPE = Unicode系のデータ形式] [BYTEORDER = 数値の表現形式] [TEMPDIR = 作業用ディレクトリ名] DATABASE = データベース名 SCHEMA = スキーマ名 TABLE = 表名 [ITEM = ([列名][,[列名]]…[,[列名]])] LOADMODE = ([格納方式][,格納方法]) [DSI = (DSI名[,DSI名…])]
格納方式には、全複写、一括差分複写を問わず、“difference”を指定してください。
格納方法には、“load”または“insert”を指定してください。ただし、DSIオペランド(または環境変数“LXDBTARGET”)を指定する場合、LOADMODEオペランドの格納方式に“difference”、格納方法には“load”を指定してください。
抽出定義で項目指定(SELECT)を指定している場合は、抽出定義の項目指定(SELECT)に指定した列名から構成された表を指定してください。
また、DSIオペランドを省略し、抽出定義で条件指定(WHERE)を指定している場合は、抽出定義の条件指定(WHERE)に該当するデータのみを格納する表を指定してください。
複写元データベースの表をDSI分割し、全複写をDSI単位に行う場合は、OUTTABLE定義文のDSIオペランドに格納先DSI名を指定し、一括差分複写とは別のDBサービス定義を全複写用として用意します。
抽出定義で条件指定(WHERE)を指定している場合は、抽出定義の条件指定(WHERE)に該当するデータのみを格納するDSIを指定してください。
JIS2004のデータのコード変換はサポートしていません。JIS2004のデータは、以下に示す組合せでのみレプリケーションすることができます。
| 複写元システム | 複写先システム |
---|---|---|
OS | Windows | Windows |
データベース | Symfoware/RDB | Symfoware/RDB |
データベースの文字コード系 | UNICODE | UNICODE |
グループ単位のレプリケーションを行う場合、OUTTABLE定義文は以下の形式になります。
ここでは、グループ単位のレプリケーションで追加、変更になったオペランドについて説明します。ここで説明していないオペランドについては、“Linkexpress 運用ガイド”を参照してください。
OUTTABLE NAME = OUTTABLE識別名 DATATYPE = (出力データの出力先[,データベース・システムの種類]) EXTRACT = EXTRACT識別名 SCHEMA = スキーマ名 TABLE = 表名 [DSI = (DSI名[,DSI名…])] [ITEM = ([列名][,[列名]…]) LOADMODE = ([格納方式][,格納方法])
DATATYPEオペランドの出力データの出力先に“database-member”を指定した場合、以下のように扱われます。
レプリケーショングループに属するための識別子として扱われます。さらにTABLEオペランドが省略されている場合は、格納先データベースでの表名となります。
出力データの出力先に以下の指定値が追加になります。
database-member:出力データの出力先はデータベースシステムです。グループ単位のレプリケーションを使用する場合に指定します。
また、出力データの出力先に“database-member”を指定した場合、データベースの種類に指定可能な値は以下となります。
なお、1つのレプリケーショングループに含まれるすべてのDBサービス定義は、同じデータベース・システムの種類を指定する必要があります。詳細は、“Linkexpress 運用ガイド”を参照してください。
Symfoware/rdb:Symfoware/RDBです。
oracle8i:Oracle8iです。
oracle:Oracle8i、Oracle9i、Oracle10gまたはOracle11gです。本指定は、SolarisおよびLinuxのLinkexpressの場合に使用できます。
TABLEオペランド指定時の注意点は、表単位のレプリケーションの場合と同じです。
DSI単位の格納についての注意点およびDSIオペランド指定時の注意点は、表単位のレプリケーションの場合と同じです。
Solaris、LinuxのLinkexpressでは、複写先データベースをOracleとする場合、あらかじめ使用するOracleのバージョン・レベルをLinkexpressの機能で設定する必要があります。
詳細は、Linkexpressのソフトウェア説明書を参照してください。
DATATYPEオペランドのoracle8iは、Linkexpress for Windows NT V2.1L20相当以前のサーバとの互換用です。
詳細は、“Linkexpress 運用ガイド”を参照してください。
変更はありません。
詳細は、“Linkexpress 運用ガイド”を参照してください。