5.4.3 オペランドの説明
-
〜〈16進数字〉((00〜FF))《00》
データ連動の相手システムの識別子を指定します。
相手システムが反映側Datareplicatorのときは,反映側Datareplicator識別子を指定します。
相手システムがXDM/DSのときは,反映XDM/DS識別子をEBCDIKで16進変換した値を指定します。
-
〜〈1〜64文字の識別子〉《hirdbds》
抽出側Datareplicatorの通信エントリをservicesファイルに追加するときに指定したサービス名を指定します。
- 運用例
-
反映側システムが2台のサーバマシンで構築されている場合について説明します。
この場合,それぞれのサーバマシンに対して,送信環境定義を定義してください。サービス名には,抽出側システムの通信環境の設定時に指定したサービス名を指定します。このとき,ポート番号が反映側のサーバマシンと同じ番号であることを確認してください。抽出側システムと反映側システムの間にファイアウォールを設置している場合,抽出側から反映側への通信方向に対して,このオペランドに指定したポート番号を通過する指定を行ってください。
なお,反映側のサーバマシンの送信先ホスト名がそれぞれ異なる場合,サービス名が同じ名称でも問題ありません。
反映側システムが2台のサーバマシンで構築されている場合の,送信環境定義の指定例を次の図に示します。
-
〜〈1〜255文字の識別子〉《hdehost》
hostsファイル又はDNSに対して接続先エントリを追加するときに指定したホスト名を指定します。ホスト名は,先頭が英字で始まる英数字,又は「−」,「_」,「.」を指定してください。
-
反映側システムとのプロトコルを指定します。
- tcp
-
TCP/IPプロトコルで通信を実行します。
- osi
-
OSIプロトコルで通信を実行します。ただし,抽出システム定義のsendcontrolにsendmstを指定した場合は,通信プロトコルにOSIは指定できません。
このオペランドは,HP-UX版Datareplicator(IPF版は除きます)だけで有効です。
-
〜〈2〜64けたで偶数けたの16進数字〉《00》
接続先の反映側Datareplicatorの受信プロセスと同じTセレクタを指定します。また,OSIプロトコルで通信を実行する場合に指定します。ただし,このオペランドはHP-UX版Datareplicator(IPF版は除きます)だけで有効です。
-
〜〈2〜40けたで偶数けたの16進数字〉《00》
接続先の反映側Datareplicatorが動作するマシンのNSAPアドレスを指定します。また,OSIプロトコルで通信を実行する場合に指定します。ただし,このオペランドはHP-UX版Datareplicator(IPF版は除きます)だけで有効です。
-
送信データUOCを使うかどうかを指定します。
- use
-
送信データUOCを使います。
UNIX版DatareplicatorでSHLIB_PATHの下にlibsenduoc.slがない場合は,nouseを仮定して動作します。Windows版DatareplicatorでPATHの下にsenduoc.dllがない場合は,DLLのローディングエラーになって送信が停止します。
- nouse
-
送信データUOCを使いません。
-
〜〈符号なし整数〉((0〜1440))《5》
抽出した更新情報を反映側システムに送信するときの送信間隔を指定します。
送信間隔の単位はsendintvl_scaleオペランドで指定します。
0を指定すると,トランザクション単位で更新情報を送信します。ただし,反映までの時間を短くしたい場合は,1秒からチューニングを始めてください。0を指定すると送信処理が遅くなる場合があります。
- WITHOUT ROLLBACKオプションを指定している表をデータ連動する場合
-
WITHOUT ROLLBACKオプションを指定している表は,1回の更新を1トランザクションとして扱うため,このオペランドに0を指定すると,WITHOUT ROLLBACKオプションを指定している表を更新するたびに送信処理が発生して,送信処理のオーバヘッドが大きくなります。このため,WITHOUT ROLLBACKオプションを指定している表をデータ連動する場合は,このオペランドに0以外を指定することをお勧めします。
-
sendintvl_scale= minute|second
sendintvlオペランドの指定値の単位を指定します。
- minute
-
sendintvlオペランドの指定値の単位を分にします。
- second
-
sendintvlオペランドの指定値の単位を秒にします。
このオペランドは,sendintvlオペランドを指定した場合に有効です。
個別定義部でこのオペランドを指定する場合は,同じbesdef内で再度sendintvlオペランドを指定する必要があります。sendintvlオペランドを省略すると,このオペランドは無視されます。
sendintvlオペランド及びsendintvl_scaleオペランドの組み合わせと,有効となる値との関係を次に示します。
個別定義部の指定
共通定義部の指定
sendintvl指定あり
sendintvl指定なし
(sendintvl_scaleは無視される)
sendintvl_scale
指定あり
sendintvl_scale
指定なし
sendintvl指定あり
sendintvl_scale指定あり
時間:個別定義部の指定が有効となる
単位:個別定義部の指定が有効となる
時間:個別定義部の指定が有効となる
単位:個別定義部の指定が有効となる
時間:個別定義部の指定が有効となる
単位:個別定義部の指定が有効となる
sendintvl_scale指定なし
時間:個別定義部の指定が有効となる
単位:分が仮定される
時間:個別定義部の指定が有効となる
単位:分が仮定される
時間:個別定義部の指定が有効となる
単位:分が仮定される
sendintvl指定なし
(sendintvl_scaleは無視される)
時間:共通定義部の指定が有効となる
単位:共通定義部の指定が有効となる
時間:共通定義部の指定が有効となる
単位:分が仮定される
時間:5が仮定される
単位:分が仮定される
-
nsndid001=送信抑止受信元識別子〔 …〔 nsndid256=送信抑止受信元識別子 〕〕
〜〈16進数字〉((00〜FF))
nsndidxxxには,更新情報の送信を抑止する受信元の識別子を指定します。一つのシステムに抽出側と反映側の両方が存在するシステムを複数組み合わせたデータ連動システムで,ループバックを発生させないために指定します。
送信抑止受信元識別子には,この抽出側HiRDB下で稼働している反映側Datareplicatorが受信した更新情報の,受信元のシステム(この反映側システムへ送信した抽出側システム)での抽出側Datareplicator識別子を指定します。ループバックの抑止については,「4.5 データ連動システムの形態の設計」を参照してください。
nsndid001〜nsndid256オペランドに指定する001〜256の数字は,001から昇順に連続して指定してください。昇順に連続して指定していない場合は,正しい順序で指定されているオペランドまでが有効になります。
nsndidオペランドの指定がない場合には,sendhdsidオペランドで指定した相手システムに対して,該当する更新情報をすべて送信します。
-
ソケットにキープアライブオプションを設定するかどうかを指定します。
- true
-
キープアライブオプションを設定します。
- false
-
キープアライブオプションを設定しません。
-
〜〈符号なし整数〉((0〜256))《0》
送信処理で反映側システムとの通信接続に失敗したときのリトライ回数を指定します。送信処理では,通信接続に失敗した反映側システムに対して,指定した回数まで再接続を試みます。0を指定した場合,通信接続に成功するまで,又は停止要求を受け付けるまで,再接続を試みます。
再接続の間隔は,sendcontrolオペランドの指定値によって異なります。再接続の間隔を次の表に示します。
sendcontrolオペランドの指定値
再接続の間隔
nodemst
コネクションリトライ時のリトライ間隔(retry_intervalオペランドの指定値)
sendmst
送信間隔(smt_sendintvlオペランドの指定値)
-
retry_interval=コネクションリトライ時のリトライ間隔
〜〈符号なし整数〉((1〜60))《60》(単位:秒)
反映側システムで系切り替えが発生した場合,早急に再接続したいときコネクションリトライ時のリトライ間隔を指定します。このオペランドはsendcontrolオペランドにnodemstを指定した場合だけ有効です。
また,反映情報キューファイルが満杯になり接続が切断された場合も,このオペランドに指定した間隔でコネクションリトライします。このため,極端に小さい値を指定した場合,反映情報キューファイルが満杯になると,反映情報キューファイルが満杯であることを知らせるメッセージが,リトライ間隔ごとに出力されるので注意してください。
-
抽出情報キューファイルの満杯時に,sendhdsidで指定した相手システムに対する送信処理を縮退して,抽出情報キューファイルの満杯を回避するかどうかを指定します。
送信環境定義のreflect_modeオペランドにuapを指定している場合は,falseを指定してください。false以外を指定すると,KFRB00847-Eメッセージが出力されます。
- true
-
相手システムに対する送信処理を,縮退の対象にします。true指定時,抽出情報キューファイルの満杯が発生した時点で,該当する送信処理は中止され,抽出情報キューファイルから送信対象の更新情報は破棄されます。この場合,該当する送信処理の送信先の反映側システムでは,抽出側DBと反映側DBとの不整合が発生するため,反映側DBの再作成が必要です。
- false
-
相手システムに対する送信処理を,縮退の対象にしません。
-
overwrite_continue= true|false
overwriteオペランドで指定した縮退状態を,次回の送信処理再開始時に引き継ぐかどうかを指定します。
- true
-
縮退状態で送信処理を再開始した場合,送信プロセス起動エラーとすることで,縮退状態を継続します。
- false
-
縮退状態で送信処理を再開始した場合,縮退状態を解除して,再開始以降に抽出したトランザクションから送信処理を再開始します。
-
〜〈符号なし整数〉((5〜17800000))《100》
更新情報の編集,送信時に使うトランザクション管理情報バッファの初期値を算出するために,同時に実行されるトランザクション数を指定します。トランザクション管理情報バッファの初期値は,maxtranオペランドで指定する同時実行最大トランザクション数とmaxtrandataオペランドで指定するトランザクション内最大更新情報数の積で内部的に算出します。maxtranオペランドの指定値とmaxtrandataの指定値の積が89000000以内になるように指定してください。
トランザクション管理情報バッファのサイズについては,「4.6.4 送信方法の設計」を参照してください。
-
〜〈符号なし整数〉((5〜17800000))《500》
更新情報の編集,送信時に使うトランザクション管理情報バッファの初期値を算出するために,一つのトランザクション内で発生する更新情報の最大数を指定します。ただし,抽出定義のextract文にukey句を指定したときは,更新前データを格納する更新情報数を考慮して,2倍にして計算してください。
トランザクション管理情報バッファの初期値は,maxtranオペランドで指定する同時実行最大トランザクション数とmaxtrandataオペランドで指定するトランザクション内最大更新情報数の積で内部的に算出します。maxtranオペランドの指定値とmaxtrandataの指定値の積が89000000以内になるように指定してください。トランザクション管理情報バッファのサイズについては,「4.6.4 送信方法の設計」を参照してください。
-
readbufnum=送信用の抽出情報キューI/Oバッファ数
〜〈符号なし整数〉((1〜255))《1》
更新情報の送信時に,更新情報を抽出情報キューファイルから読み込むときに使う,送信用の抽出情報キューI/Oバッファの数を指定します。送信用の抽出情報キューI/Oバッファのサイズは,抽出環境定義のquiosizeで指定します。送信用の抽出情報キューI/Oバッファについては,「4.6.4 送信方法の設計」を参照してください。
-
〜〈符号なし整数〉((1〜2097151))《300》(単位:KB)
抽出情報キューファイルから読み出した更新情報を,反映側システムが受信できる送信形式に編集するために使う更新情報編集バッファのサイズを指定します。
更新情報編集バッファのサイズについては,「4.6.4 送信方法の設計」を参照してください。
なお,このオペランドの指定値を大きくすると通信回数を削減できます。sendintvlオペランドで指定した時間内に抽出情報キューファイルに書き込まれるデータ量(更新情報量)より大きい値を指定することを推奨します。
抽出情報キューファイルに書き込まれるデータ量を計算する場合は,hdestateコマンドを定期的に実行し,Queue write positionが示すオフセット情報の増加量を計測してください。
-
〜〈符号なし整数〉((0〜255))
送信プロセスが複数のBESにわたる分割表に対するPURGE TABLEの更新情報を検知したときに,反映側システムに送信するイベントのイベント番号を指定します。指定するイベント番号によって,送信プロセスの動作が異なります。イベント番号と送信プロセスの動作を次に示します。
指定するイベント番号
送信プロセスの動作
指定なし
該当するPURGE TABLEを無視して,送信処理を続けます。
0
反映側システムに正常停止ログを送信した後,送信処理を終了します(送信プロセス停止)。
上記以外
反映側システムにprg_eventnoオペランドに指定した番号のイベントを送信します。イベントを送信した後は,送信処理を続けます。
-
このノード上(共通定義部 commondefのとき)又はバックエンドサーバ上(個別定義部 besdefのとき)の送信プロセスについての稼働トレースを取得するかどうかを指定します。
- true
-
送信プロセスごとの稼働トレースを取得します。
- false
-
送信プロセスごとの稼働トレースを取得しません。
このオペランドは,抽出システム定義のint_trc_lvlオペランドの第2パラメタにncを指定したときだけ有効になります。
-
queue_read_wait_interval=送信プロセスの抽出情報キューファイル読み込み間隔
〜〈符号なし整数〉((100〜60000))《2000》(単位:ミリ秒)
送信プロセスによる送信制御時に,抽出情報キューファイルの終端を検知してから次回の読み込みを再開するまでの間隔を指定します。
このオペランドの値を小さくすれば,抽出情報キューファイルの終端を検知した後の待ち時間が短くなるので,送信処理の即時性を向上させることができます。
ただし,値を小さくするとCPUの利用率が高くなるため,逆に性能が悪くなる可能性があります。このため,更新処理の発生頻度やCPUの性能を考慮した上で値を指定する必要があります。
-
〜〈符号なし整数〉((1〜35791394))《10》(単位:分)
抽出−反映間の回線監視時間を指定します。このオペランドに指定した時間内に応答がない場合,回線をクローズし,コネクション確立をリトライします。
このオペランドの指定値を小さくすると,回線障害を早期に検出できるようになります。しかし,指定値を小さくし過ぎると次のような場合に,不要に回線の切断及び再接続を行うことになるため,設定値を調節する必要があります。
-
反映システムの負荷が高く,送信データを反映情報キューファイルに格納するのに時間が掛かる場合
-
送信環境定義内のeditbufsizeオペランドの指定値が大きく,反映情報キューファイルに対する1回の書き込み量が大きい場合
-
通信回線の負荷が高く,反映側からの応答に時間が掛かる場合
-
-
send_delay_limit_time=送信滞留時間しきい値
〜〈符号なし整数〉((0〜86400))《0》(単位:秒)
更新情報がシステムログファイルに格納された時刻と,更新データが送信されて反映側DBMSで受信が完了した時刻との差(送信滞留時間)のしきい値を指定します。送信滞留時間が,ここで指定したしきい値よりも大きくなった場合,警告メッセージが出力されます。
送信環境定義のqueue_read_wait_intervalオペランドやsendintvlオペランドの指定値も,滞留時間に考慮する必要があります。なお,0を指定した場合,送信プロセスでの滞留監視機能は無効になります。
- 注意
-
このオペランドは,レプリケーション対象となる更新量や,送信間隔,反映間隔などを考慮した上で,値を調整してください。初めは,15分(900秒)を目安に設定することをお勧めします。
- 運用例
-
送信処理を遅らせて開始する場合の運用例を次の図に示します。
図5‒6 送信処理を遅らせて開始する場合の運用例 例では,8時〜17時まで抽出処理だけを実行し,17時以降から送信処理を開始しています。このような運用環境下で送信滞留時間を監視する場合,更新データが反映システムに9時間送信されないで,滞留したままとなるため,送信滞留時間しきい値に9時間分を足す必要があります。
-
送信先の反映側Datareplicatorで,反映トランザクション同期機能を使用するかどうかを指定します。
- server
-
反映トランザクション同期機能を使用しない場合に指定します。
- uap
-
反映トランザクション同期機能を使用する場合に指定します。
このオペランドにuapを指定する場合,eventsyncオペランドを指定する必要があります。また,overwriteオペランドにfalseを指定する必要があります。
-
〜〈符号なし整数〉((1〜128))
同期イベントのイベントコードを指定します。
このオペランドを指定する場合,reflect_modeオペランドにuapを指定する必要があります。
このオペランドには,eventcntresetオペランド及びprg_eventnoオペランドに指定するイベントコードとは異なる値を指定してください。同じ値を指定するとエラーになります。
-
eventcntreset=送信データ件数リセットイベントコード
〜〈符号なし整数〉((1〜128))
送信データ件数をリセットするためのイベントコードを指定します。抽出側Datareplicatorと反映側Datareplicatorでリセットを同期させる場合,反映環境定義のeventcntresetオペランドと同じ値にする必要があります。