HiRDB データ連動機能 HiRDB Datareplicator Version 8
複数システム間でのデータ連動システムの注意について説明します。
複数の抽出側システムで同一の反映対象表に対する更新が発生する場合,最終的にどのシステムで更新されたデータであるかが特定できなくなります。例えば,複数の抽出側システムで同一の表に対する全件UPDATEが発生した場合,最終的にどのシステムで更新されたデータであるかが特定できなくなります。
これを防ぐためには,反映対象表に対してキーレンジ分割をして,各抽出側システムからの更新範囲を限定します。
一つの抽出側システムから複数の反映側システムへのデータ連動を実行している場合,各反映側システムでの反映処理の順序性は,各反映側システムの処理速度,負荷などに依存するため,不定になります(ただし,抽出側システムのトランザクションの順序性は保証されます)。
複数システム間でのデータ連動で順序付ける場合には,複数のシステムを一つの線でつないだシステムにしてください。例えば,システムA,システムB,及びシステムCの三つのシステムをデータ連動する場合,システムAとシステムBをデータ連動し,同じくシステムBとシステムCをデータ連動することで,システムAからシステムCまでを一つの線でつないだ構成にできます。
複数のシステムを一つの線でつないだシステムの例を次の図に示します。
図4-26 複数のシステムを一つの線でつないだシステムの例
双方向更新システムでは,複数のシステム間で更新情報を送受信します。このため,送信されてきた更新情報を反映した後,再抽出して送信元に送信し返すことで,複数のシステム間で同一の更新情報が無限に抽出,反映を繰り返す可能性があります。これをループバックといいます。
このループバックを抑止するには,送信先識別子ごとに送信環境定義のnsndidxxx(xxxは001〜256の整数)オペランドで,送信を抑止する更新情報の受信元の識別子(送信抑止受信元識別子)を指定します。送信抑止受信元識別子には,抑止の対象とするデータ連動システムの,抽出側Datareplicator識別子を指定します。例えば,データ連動システムA(hdeid=01,hdsid=02)で,データ連動システムB(hdeid=11,hdsid=12)から送信されてくる更新情報を抑止の対象とする場合には,データ連動システムAの送信環境定義で,nsndid001=11と指定します。
送信抑止の指定をしているときは,UAP名にhdssqleで始まる名称は使わないでください。送信抑止の指定をしていると,hdssqleで始まるUAP名の更新情報の送信が抑止されることがあります。
ループバックを抑止する双方向更新システムの形態の例を次の図に示します。
図4-27 ループバックを抑止する双方向更新システムの形態の例
図4-27で実行されるDatareplicatorの処理は次のとおりです。
三つ以上のシステムの間で双方向更新をするの例を次の図に示します。
図4-28 三つ以上のシステムの間で双方向更新をする例
図4-28で実行されるDatareplicatorの処理は次のとおりです。
XDM/DSから送信された更新情報に対する対応を次に示します。
| XDM/DSの バージョン |
XDM/DSから送信された更新情報に対する対応 | |
|---|---|---|
| ループバックの制御をするとき | UOCで反映するとき | |
| 07-00以前 | 送信環境定義のnsndidxxxオペランドには「00」を設定してください。設定しないと,その更新情報を他システムへ送信します。 | インタフェースブロック(UINTERFACE_BLK)の抽出側Datareplicator識別子には「00」が設定されます。 |
| 07-01以降 | 送信環境定義のnsndidxxxオペランドにはXDM/DS起動定義のXDM/DS識別子句へ指定した文字コード(EBCDIK)を設定してください。設定しないと,その更新情報を他システムへ送信します。 | インタフェースブロック(UINTERFACE_BLK)の抽出側Datareplicator識別子にはXDM/DS起動定義のXDM/DS識別子句へ指定した文字コード(EBCDIK)が設定されます。 |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.