8.1.6 反映情報編集UOCを作成するときの注意
- 〈この項の構成〉
(1) シグナルの制限
反映情報編集UOCの関数の中では,シグナルの操作をしないでください。
(2) システムコールの制限
-
alarm(),pause()のシステムコールを発行しないでください。
-
fork(),exec()で子プロセスを生成する場合は,ユーザ側で後処理してください。
(3) 共用メモリの制限
反映側Datareplicator又はほかのシステムと同じ共用メモリを使わないでください。
(4) 同期点の制限
hds_uedit()で「COMMIT」を渡し,その戻り値が0又は4の場合,1個の同期点が完結されたものとみなされます。障害が発生して反映情報編集UOCのプロセスがアボートした場合,再開始のポイントは,前回の同期点の次から再実行されます。反映情報編集UOCの関数の中では,「COMMIT」が渡された場合に同期点処理をするとともに,途中で異常終了して再開始された場合に二重処理が発生しないように考慮した作りをしておく必要があります。
(5) データベースにアクセスするUOCを作成するときの注意
データベースにアクセスするUOCでは,編集終了関数hds_uend()でインタフェースブロック(UINTERFACE_BLK)の終了情報フラグ(stopinf)を参照してください。その終了情報が強制終了の場合は,データベースシステムに対してROLLBACKを実行した後にDISCONNECTするようにUOCを作成してください。この場合,ROLLBACKしないでDISCONNECTすると,強制停止までの更新がDISCONNECTの自動コミットによってコミットされます。そのため,次回のDatareplicator再開始時に,データベースに矛盾が起こってUOCがSQLエラーになります。
(6) 反映環境定義との関連
-
discintvl(disconnect発行間隔)は,UOCによる反映グループでは無効です。
-
反映対象表にトリガを定義して反映情報編集インタフェースの関数内でHiRDBにアクセスする場合,反映環境定義のcontrol_triggerパラメタは無効になります。
(7) 反映処理に関する監査証跡を取得しない場合の注意
反映情報編集UOCを新規に作成する場合は,ここで示す注意事項に従って,反映情報編集UOCを作成してください。
既存の反映情報編集UOCを使用する場合は,反映情報編集UOCの実行形式ファイルを再度リンケージしてください。その場合,既存の反映情報編集UOCがここで示す注意事項に反していないことを確認してください。リンケージ方法については「8.1 反映情報編集UOC」を参照してください。なお,リンケージを行わなかった場合は,監査証跡が取得されます。
-
次の規則に従って反映情報編集UOCを作成してください。
-
hds_ubegin関数内でHiRDBへのCONNECTを実行する
この規則に反した場合,KFRB03094-Wメッセージが出力されます。
その後の処理は,反映システム定義のhirdb_audit_trailオペランドの指定値に従います。
-
hds_ubegin関数内でCONNECT以外のSQLを実行しない
この規則に反した場合,hds_ubegin関数内で指定したCONNECT以外のSQLは,監査証跡が取得されます。なお,hds_ubegin関数内でトランザクションが終了していない場合は,そのトランザクションに関する監査証跡が取得される場合があります。
-
hds_uend関数内でHiRDBへのDISCONNECTを実行する
この規則に反した場合,DISCONNECT発行後の監査証跡は取得されます。
-
-
SQLを実行しない反映情報編集UOCの場合,実行形式ファイル作成時のリンケージコマンドにHiRDBのライブラリを指定しないでください。
この規則に反した場合,KFRB03094-Wメッセージが出力されます。
その後の処理は,反映システム定義のhirdb_audit_trailオペランドの指定値に従います。
-
反映情報編集UOCによって不正なアクセスが行われることを防ぐため,Datareplicator管理者は,次の点を必ず確認してください。
-
使用する反映情報編集UOCがDBに対して不正なアクセスをしないこと
-
使用する反映情報編集UOCが悪意を持った第三者に改竄されないこと
-
反映情報編集UOCファイルの所有者及びアクセス権が次のように設定されていること
表8‒21 反映情報編集UOCファイルの所有者及びアクセス権 所有者,アクセス権
設定する情報
所有者
ユーザID
HiRDB Datareplicator管理者
グループID
HiRDB管理者のグループID
アクセス権
所有者
r-x(read権限及び実行権限)
グループ
---(アクセス不可)
そのほか
---(アクセス不可)
-
(8) 参照制約が定義されている表をデータ連動するときの注意
反映情報編集UOCに,参照制約が定義されている表は指定できません。
(9) 拡張SYSLOG機能に関する注意事項
拡張SYSLOG機能を使用する場合,「8.1.2 反映情報編集UOCの作成手順(UNIX)」に記載されているリンケージ方法で再度リンケージをしてください。
リンケージしなかった場合,反映情報編集UOCで出力されるsyslogfileは,拡張SYSLOG機能の対象となりません。