Linkexpress Replication optionが提供する業務定義ファイルおよび業務定義内の各イベントで実行されるバッチファイルまたはシェルスクリプトのサンプルは、“付録G サンプルファイル一覧”を参照してください。
レプリケーションで使用する業務定義は、基本的に以下に示すイベント構成となります。各イベントに該当する処理の内容については、“1.15.1 レプリケーション業務の各処理”を参照してください。
全複写業務の場合(押出し型業務)
一括差分複写業務の場合(押出し型業務:差分データなし時転送迂回型)
一括差分複写業務の場合(押出し型業務)
各ラインの色の意味は、以下のとおりです。これらは、Linkexpressクライアントの“業務定義ウィンドウ”で確認できます。
青ライン:正常系ルート(イベントが正常終了した場合に走行するルート)
赤ライン:異常系ルート(イベントが異常終了した場合に走行するルート)
黒ライン:正常・異常系ルート(イベントが正常または異常終了した場合に走行するルート)
取込み型業務の場合、押出し型業務と以下の点が異なります。
処理 | 押出し型業務の場合 | 取込み型業務の場合 |
---|---|---|
自側ジョブ起動イベント | 相手側ジョブ起動イベント | |
ファイル送信イベント | ファイル受信イベント | |
相手側ジョブ起動イベント | 自側ジョブ起動イベント | |
自側ジョブ起動イベント | 相手側ジョブ起動イベント |
各イベントでは、該当する処理をバッチファイルまたはシェルスクリプトで実行します(ファイル送信イベント、ファイル受信イベントを除きます)。
それぞれのバッチファイル、シェルスクリプトでは、処理の目的であるコマンドを実行し、その結果に従いジョブの完了通知をLinkexpressに通知します。
Linkexpressは、その完了通知に対応した色のラインに沿って、次のイベントに処理を移します。
Solaris版 Linkexpress Replication option 3.2以降、Linux版 LinkexpressReplication option V3.0L20以降およびWindows版 LinkexpressReplication option V4.0L20以降では、格納処理のためのシェルスクリプトは、“二重DBサービスの可否”に“許可(YES)”を指定した運用となっています。
“二重DBサービスの可否”に“拒否(NO)”を指定した運用を行う場合は、LinkexpressのDB動作環境定義のDUPLICATE_SERVICEにNOを指定し、バッチファイルまたはシェルスクリプトにDBサービスの運用開始コマンド(lxintsvコマンド)と、DBサービスの運用停止コマンド(lxtrmsvコマンド)を追加してください。
二重DBサービスについては、“Linkexpress 運用ガイド”を参照してください。
以下に“二重DBサービスの可否”に“拒否(NO)”を指定した運用における格納処理のバッチファイルまたはシェルスクリプトの構成を示します。
バッチファイルの場合(Windowsの場合)
# DBサービス運用開始 LXINTSV -s サービスグループ名 -mc IF %ERRORLEVEL% NEQ 0 GOTO ERR_RSPJOB_INT IF %ERRORLEVEL% EQU 0 GOTO STRDB :ERR_RSPJOB_INT rem LXINTSVが異常時のジョブ結果通知(復帰値は8としています) LXRSPJOB -n %2 -i %4 -c 8 IF %ERRORLEVEL% EQU 12 GOTO END IF %ERRORLEVEL% EQU 0 GOTO END rem LXRSPJOBが正常終了するまで最大5回リトライ FOR /L %%i IN (1,1,5) DO (LXRSPJOB -n %2 -i %4 -c 8) && (GOTO END) goto END :STRDB rem 格納処理 ~ 省略 ~ :EXIT rem DBサービス運用停止 rem 特に復帰値を判定する必要はありませんが、判定する場合は以下の考慮が必要です。 rem -格納処理(LXSTRDB)が正常復帰の場合。 rem 格納処理でLXRSPJOBは実行せずに、LXTRMSVの復帰値に合わせて、LXRSPJOBを実行します。 rem -格納処理(LXSTRDB)が異常復帰の場合。 rem 格納処理でLXRSPJOBを実行し、LXTRMSVを実行します。(LXTRMSVの復帰値判定は不要) rem また、LXTRMSVに対するLXRSPJOBは不要です。 rem LXTRMSV -s サービスグループ名 :END
シェルスクリプトの場合(Solaris、Linuxの場合)
# DBサービス運用開始 lxintsv -s サービスグループ名 -mc case $? in 0) ;; *) INDEX=1} while [ $INDEX -le 5 ]} do lxrspjob -n $2 -i $4 -c 8 STATUS=$? if [ $STATUS = 12 -o $STATUS = 0 ]; then break fi sleep 5 INDEX=`expr $INDEX + 1` done # lxintsv の復帰値が 0 以外の場合は、lxstrdb は実行しません。 exit 0 ;; esac # 格納処理 ~ 省略 ~ # DBサービス運用停止 # 特に復帰値を判定する必要はありませんが、判定する場合は以下の考慮が必要です。 # -格納処理(lxstrdb)が正常復帰の場合。 # 格納処理でlxrspjobは実行せずに、lxtrmsvの復帰値に合わせて、lxrspjobを実行します。 # -格納処理(lxstrdb)が異常復帰の場合。 # 格納処理でlxrspjobを実行し、lxtrmsvを実行します。(lxtrmsvの復帰値判定は不要) # また、lxtrmsvに対するlxrspjobは不要です。 # lxtrmsv -s サービスグループ名
バッチファイルまたはシェルスクリプト内での処理に必要な環境変数は、バッチファイルまたはシェルスクリプト内で事前に設定するようにしてください。
格納処理を行うためのサンプルは、バッチファイルまたはシェルスクリプトで提供されています。V1.1L20系以降のLinkexpressの場合で、表単位のレプリケーションを行う場合は、格納イベント(自側および相手側)によって格納処理を行うことができます。格納イベントの詳細については、“Linkexpress 運用ガイド”を参照してください。