利用者プログラムの設計について説明します。
RLPを作成しているロググループに属するDSIまたは順序に対して、利用者プログラムから複写先データベースに対し更新操作を行った場合、実行抑止によりエラーとなります。
詳細は、“6.1.2 Symfoware Serverの操作に対する実行抑止”を参照してください。
以下の条件を満たすUPDATE文:探索を実行することができません。実行した場合、利用者プログラムがエラーとなることがあります。
[条件]
設定句の列名に、一意性制約の構成列を指定している。かつ、
更新の結果、一意性制約を指定した列の値が、一時的に同じ値になる行が存在する。
[出力されるエラー]
SQLSTATE | SQLMSG | メッセージログファイル |
---|---|---|
71400 | JYP2903E:バックアッ プセンタ運用でサポー トされていない機能が 利用されました. | rdb: ERROR: qdg20001u:バックアップセンタ運用でサポートされて いない機能が利用されました 原因コード=3 ロググループ名='ロググ ループ名' RLP名='RLP名' |
[対処例]
以下のような処理に変更すると、一時的に同じ値にならずに更新できます。
UPDATE文:位置付けでカーソルによって位置づけられた1行を更新する方式に変更
UPDATE文:探索で1行を更新するように、WHERE句に一意性制約の全構成列を指定
複写先システムでの参照業務の目的から、RERUNログ反映のコミット順序の保証単位(REF_APPLY_MODE)に“LOGGROUP”を選択した場合、複写先システムでのRERUNログ反映性能は、複写元システムでの利用者プログラムを1多重で実行した場合のデータベース更新性能と同等になります。
それ以上の更新が想定されるシステムでは、 “DSI”を選択することを検討してください。
なお、1つの目安として、列のデータ長 の合計が2キロバイト程度のレコードを表に挿入するようなオンライン・トランザクションモデルの場合、1秒間に最大100件程度の処理が想定される範囲での利用となります。