デフォルトでは、PostはDDLエラーの発生時に停止します。エラーは通常、ソースシステムでDDLが実行されたデータベースコンポーネントがターゲットデータベースにないことを示します。SP_OPO_STOP_ON_DDL_ERRパラメーターのデフォルト設定では、DDLエラー発生時にPostが停止し、そのオブジェクトに対する後続のDMLが失敗しないようにします。これにより問題を修正し、データベースの同期を保つことができます。このパラメーターの詳細については、『SharePlexリファレンスガイド』を参照してください。
Postは、失敗した操作のうち、再試行すれば成功する可能性があるものを再試行します。Postが再試行する主な操作は、TNSの書き込みの失敗、接続の失敗、またはPostがTRUNCATEを適用する必要があるテーブルのロックです。
失敗した操作が成功する可能性を高めるには、SP_OPO_RETRIES_MAXパラメーターの値を大きくして、Postが試行できる操作の回数を増やします。同時に、SP_OPO_RETRY_DELAY_TIMEパラメーターの値を大きくして、試行間隔を長くします。その結果、試行と次の試行の間にロックやその他のブロック操作を解決するのに十分な時間を確保できます。
Postプロセスがエラー発生時に続行するように設定されている場合(SP_SYS_SUSPEND_ON_ERROR=0)、またはエラーメッセージがoramsglistファイルに記載されている場合、Postはキュー内の次のトランザクションに移ります。それ以外のすべての場合では、最大試行回数に達するとPostは停止します。
重要: このパラメーターの値を小さくすると、キューにデータが蓄積され、利用可能なディスク容量を超える可能性があります。
詳細については、『SharePlexリファレンスガイド』のSP_OPO_RETRIES_MAXを参照してください。
非同期の状態を処理するようにPostを設定することができます。デフォルトと代替の動作について以下に説明します。
トランザクションに非同期の操作が含まれる場合のPostのデフォルトの動作は、トランザクション内の他の有効な操作の処理を継続し、レイテンシを最小限に抑え、ターゲットを可能な限り最新の状態に保つことです。レイテンシとは、ソースでトランザクションが発生してから、それがターゲットに適用されるまでの時間のことです。きわめて量の多いトランザクションやネットワークトラフィックの中断など、さまざまな要因がレプリケーションのレイテンシの大きさに影響を与えます。
Postは、SQLステートメントと非同期の操作のデータをID_errlog.sqlログファイルに記録します。ここで、IDはデータベース識別子です。このファイルは、ターゲットシステムの変数データディレクトリのlogサブディレクトリにあります。
以下のパラメーターを1に設定することで、Postが非同期状態を見付けたときに停止するように設定できます。
この機能を使用する場合は、必ずレプリケーションを頻繁に監視してください。Postが停止すると、待ち時間が増加し、キューにデータが蓄積されます。詳細については、『SharePlexリファレンスガイド』のパラメーターのドキュメントを参照してください。
Postでは、トランザクション内のいずれかの操作で非同期エラーが発生した場合に、トランザクションをロールバックして破棄するように設定できます。トランザクション全体がSQLファイルに記録されますが、ターゲットには適用されません。SQLファイルを編集して無効なDMLを修正し、SQLファイルを実行してトランザクションを適用することができます。この機能は、SP_OPO_SAVE_OOS_TRANSACTIONを1に設定することで有効になります。
詳細については、『SharePlexリファレンスガイド』のパラメーターのドキュメントを参照してください。
このトピックでは、SharePlexのトランスフォーメーション機能の使用方法を説明します。トランスフォーメーションによって、SharePlexはターゲットにポストする前に、またはターゲットのポストの代わりにデータを操作することができます。
© ALL RIGHTS RESERVED. 利用規約 プライバシー Cookie Preference Center