4.4 実行例

HiRDB Dataextractorの実行例について説明します。

実行例のシステム構成を次の図に示します。

図4-6 実行例のシステム構成

[図データ]

<この節の構成>
(1) 実行例の環境
(2) 実行例

(1) 実行例の環境

(a) データの抽出側(HOST1)の環境
表の定義
・認可識別子user01の表の定義

CREATE TABLE T01(C01 CHAR(10),C02 CHAR(40),C03 INT)
CREATE TABLE T02(C01 CHAR(10),C02 CHAR(40),C03 INT,C04 INT)
CREATE FIX TABLE T03(C01 CHAR(10), C02 CHAR(40),C03 INT)
CREATE TABLE T04
(C01 INT,
 C02 MVARCHAR(32),
 C03 SGMLTEXT ALLOCATE (SGMLTEXT IN RDLOB01)
  PLUGIN '<TEXTTYPE>SGML</TEXTTYPE><DTD>文書定義</DTD>',
 C04 DATE)
CREATE INDEX TEXT_IDX USING TYPE NGRAM
 ON T04(C03) IN RDLOB02

環境変数の設定

$PDDIR       /HiRDB1
$PDCONFPATH  /HiRDB1/conf
$PDUSER      "user01"/"user01"
$PDNAMEPORT  20000
$SHLIB_PATH  /HiRDB1/lib: /HiRDB1/client/lib
$PATH        /opt/HIRDBXT/bin
$LANG        ja_JP.SJIS
$XTHOST      HOST2
$XTPORTNO    20052

/etc/hostsでの反映先ホストの設定

       :
       :
160.16.150.120  HOST2
160.16.150.121  HOST3
       :
       :

(b) データの反映側(HOST2)の環境
表の定義
・認可識別子user01の表の定義

CREATE TABLE T01(C01 CHAR(10),C02 CHAR(40),C03 INT)
CREATE TABLE T02(C01 CHAR(10),C02 CHAR(40),C03 INT,C04 INT)
CREATE TABLE T04
(C01 INT,
 C02 MVARCHAR(32),
 C03 SGMLTEXT ALLOCATE (SGMLTEXT IN RDLOB01)
  PLUGIN '<TEXTTYPE>SGML</TEXTTYPE><DTD>文書定義</DTD>',
 C04 DATE)
CREATE INDEX TEXT_IDX USING TYPE NGRAM
 ON T04(C03) IN RDLOB02

・認可識別子user02の表の定義

CREATE FIX TABLE T03(C01 CHAR(10),C02 CHAR(40),C03 INT)

/etc/servicesでのポートの定義

                     :
                     :
hirdbxt1 20052/tcp    # HiRDB Dataextractor
hirdbxt2 50000/tcp    # HiRDB Dataextractor
                     :
                     :

/etc/inetd.confでのHiRDB Dataextractor起動のための定義

                     :
                     :
hirdbxt1 stream tcp nowait user01
/opt/HIRDBXT/bin/pxtcntl pxtcntl /usr/home/user01/xtenv1
hirdbxt2 stream tcp nowait user02
/opt/HIRDBXT/bin/pxtcntl pxtcntl /usr/home/user02/xtenv2
                     :
                     :

環境変数情報設定ファイルでの環境変数の設定
・サービス名hirdbxt1,ポート番号20052の環境変数情報設定ファイル

(/usr/home/user01/xtenv1)
 
set PDDIR=/HiRDB2
set PDCONFPATH=/HiRDB2/conf
set PDUSER="user01"/"user01"
set LANG=ja_JP.SJIS

・サービス名hirdbxt2,ポート番号50000の環境変数情報設定ファイル
(/usr/home/user02/xtenv2)

set PDDIR=/HiRDB2
set PDCONFPATH=/HiRDB2/conf
set PDUSER="user02"/"user02"
set LANG=ja_JP.SJIS

(c) ファイル作成側(HOST3)の環境
/etc/servicesでのポートの定義

                    :
                    :
hirdbxt 20052/tcp    # HiRDB Dataextractor
                    :
                    :

/etc/inetd.confでのHiRDB Dataextractor起動のための定義

                    :
                    :
hirdbxt stream tcp nowait user01
/opt/HIRDBXT/bin/pxtcntl pxtcntl /usr/home/user01/xtenv
                    :
                    :

環境変数情報設定ファイルでの環境変数の設定
・サービス名hirdbxt,ポート番号20052の環境変数情報設定ファイル
(/usr/home/user01/xtenv)

set XTTMPDIR=/usr/home/user01/data
set LANG=ja_JP.SJIS

(2) 実行例

データの抽出側で,xtrepコマンドを指定します。

(a) 例1

表user01.T01をHOST2の表T01に複写します。

指定するオプションは次のとおりです。

コマンド指定例

xtrep T01

(b) 例2

表user01.T01をHOST2の表T02に複写します。

指定するオプションは次のとおりです。

コマンド指定例

xtrep -r T02 -d -l n -n 255 -m 100 -g -s /usr/home/user01/clm
-v /usr/home/user01/null -w /usr/home/user01/whr T01

/usr/home/user01/clmの内容

C01,C02,C03,0

/usr/home/user01/whrの内容

WHERE C01<='0000010000'

/usr/home/user01/nullの内容

C01=('FFFFFFFFFF')

(c) 例3

表user01.T03をHOST2の表T03に複写します。

指定するオプションは次のとおりです。

コマンド指定例

xtrep -d -n 40 -p 50000 -e /tmp/xtrep_log -s /usr/home/user01/clm T03

/usr/home/user01/clmの内容

ROW

(d) 例4

表user01.T03をHOST3のファイルに出力します。

指定するオプションは次のとおりです。

コマンド指定例

xtrep -R dat -o T03 -h HOST3 T03

(e) 例5

表user01.T01をHOST3のファイルに出力します。

指定するオプションは次のとおりです。

コマンド指定例

xtrep -R dat -o T01 -h HOST3 -m 50 -s /usr/home/user01/clm
-w /usr/home/user01/whr T01

/usr/home/user01/clmの内容

C01,C02,C03,0

/usr/home/user01/whrの内容

WHERE C01<='0000010000'

(f) 例6

SGMLTEXT型の列を含む表user01.T04を,HOST2の表T04に複写します。

シェルを作成してxtrepコマンドを実行します。

シェル作成例

  #!/bin/csh -f
  #--------------------------------------------------------------
  #SGMLTEXT列のMAXサイズ取得
 
1. echo 'max(length(extracts(C03)))' > xt_clm
2. xtrep -R dat -o size -s xt_clm -h `hostname` T04
  rm -f xt_clm
 
  #--------------------------------------------------------------
  #xtrepパラメタ,コマンド作成
 
3. echo 'C01,C02,extracts(C03),C04' > xt_clm
 
  echo '#! /bin/csh -f'                              > xt_exec
4. echo 'setenv XTERRLEVEL 1'                         >> xt_exec
  echo 'setenv XTHOST HOST2'                         >> xt_exec
  echo 'setenv XTFILESIZE 10000000'                  >> xt_exec
5. echo 'setenv XTLOBBUFSIZE ¥c'                      >> xt_exec
  cat  /opt/HIRDBXT/spool/size | cut -c2-11          >> xt_exec
  echo 'xtrep -d -o xt_file1,xt_file2 -s xt_clm T04' >> xt_exec
  chmod 777 xt_exec
 
  #--------------------------------------------------------------
  #xtrepの実行
 
6. xt_exec
 
  rm -f /opt/HIRDBXT/spool/size
  rm -f xt_clm
  rm -f xt_exec

説明
  1. 抽出表user01.T04のSGMLTEXT型の列(C03)の実データの最大長を求めるために,列名記述ファイルxt_clmを作成します。
  2. xtrepコマンドに「1.」で作成した列名記述ファイルxt_clmを指定して実行し,抽出表user01.T04のSGMLTEXT型の列(C03)の実データの最大長を,HOST1の/opt/HIRDBXT/spool/sizeに出力します。
  3. 抽出表user01.T04の抽出をするために,列名記述ファイルxt_clmを作成します。
  4. xtrepコマンドが使用する環境変数,コマンドラインをxt_execに出力します。
  5. 環境変数XTLOBBUFSIZEに,/opt/HIRDBXT/spool/sizeに出力した実データの最大長を設定します。
  6. xtrepコマンドに「3.」で作成した列名記述ファイルxt_clmを指定して実行し,抽出表user01.T04を反映表T04に反映します。