ArcGIS Pro 内の [変更の同期 (Synchronize Changes)] ジオプロセシング ツールを使用して、2 つのレプリカ ジオデータベース間の更新をユーザー指定の方向に同期することができます。このトピックでは、このツールの入力パラメーターについて説明し、理解すべき重要な複数のオプションを確認します。
[変更の同期 (Synchronize Changes)] ツールには、次のオプションがあります。
入力ジオデータベースとレプリカ
- ジオデータベース 1 - 同期するレプリカをホストしているジオデータベース。このジオデータベースはローカルの場合と、ユーザーの ArcGIS Server 上のジオデータ サービスを参照する場合があります。[変更の同期 (Synchronize Changes)] ツールは、デフォルト設定とレプリカに保存された情報に基づいて、パラメーターを自動入力しようとします。[変更の同期 (Synchronize Changes)] ツールを [レプリカの管理] ウィンドウの [メニュー] ボタン または [分散ジオデータベース] ショートカット メニューから起動した場合、ジオデータベース 1 には現在のワークスペースからの接続情報が含まれます。レプリカ パラメーターにはワークスペースで見つかった最初のレプリカが入力されます。[変更の同期 (Synchronize Changes)] をカードから起動した場合、レプリカ パラメーターはそのカードのレプリカの名前を取得します。
メモ:
ジオデータベースは ArcMap からのみ、ジオデータ サービスとして ArcGIS Server に公開できます。これらのジオデータ サービスは、ArcGIS Pro のレプリケーションで、ジオデータベース パラメーターとして使用できます。
- レプリカ - 入力ジオデータベースとして、親レプリカおよび子レプリカが含まれている有効なレプリカ。
- ジオデータベース 2 - 相対レプリカをホストしているジオデータベース。このジオデータベースはローカルの場合と、ユーザーの ArcGIS Server 上のジオデータ サービスを参照する場合があります。さらに、ジオデータベース 2 に対しては、相対レプリカの接続情報が現在のレプリカのレプリカ プロパティに保存されている場合、ツールが一致する接続ファイルを検索するか、レプリカに保存された情報に基づいて一時的な接続ファイルを構築します。ジオデータベース 2 にはこの情報が入力され、その後、アクセス可能かどうか接続が検証されます。アクセスできない場合、ジオデータベース 2 は無効になり、ユーザーは情報を修正する必要が生じます。
方向
変更を同期する際は、変更内容の送信方向を選択することができます。
双方向レプリカの場合は、相対レプリカに変更を送信するか、相対レプリカから変更を受信するか、変更を双方向で同期するという 3 つの選択肢があります。双方向レプリカの場合では、同期方向に [双方向] を選択した場合、変更内容はまず一方向に送信され、次に逆方向に送信されますが、これらはすべて 1 つの操作として実行されます。
一方向レプリカの場合は、親から子または子から親の一方向のみ変更を送信できます。チェックアウト/チェックイン レプリカの場合は、子レプリカから親レプリカに変更を送信するオプションのみ使用できます。
- 双方向 - 変更内容は、双方向で同期されます。これは、双方向レプリカに対するデフォルトです。
- ジオデータベース 1 → ジオデータベース 2 - 変更内容は、ジオデータベース 1 からジオデータベース 2 に同期されます。
- ジオデータベース 2 → ジオデータベース 1 - 変更内容は、ジオデータベース 2 からジオデータベース 1 に同期されます。
競合解決ポリシー
同期の際には、同期バージョンとレプリカ バージョンの間でリコンサイルとポストが実行されます。このリコンサイルの際、競合が発生することがあります。これらの競合が発生した場合の処理方法を定義するために、リコンサイル ポリシーを選択することができます。同期バージョンとレプリカ バージョンの詳細、およびリコンサイルが実行される場合の詳細については、「同期とバージョニング」をご参照ください。
競合解決ポリシーには、次のものがあります。
- 手動で解決 - このポリシーでは、リコンサイルの過程で競合が発生した場合、リコンサイルは中断され、レプリカは競合状態 としてマークされます。これにより、後から手動で、または何らかのカスタム リコンサイル コードを実行して、リコンサイルを実行することができます。リコンサイルを実行して、変更をレプリカ バージョンにポストすると、レプリカは競合のない状態になります。レプリカが競合状態の場合、変更の受信を続けることは可能ですが、変更を送信することはできません。詳細については、「手動による同期の競合の解決」をご参照ください。
- ジオデータベース 1 を優先して解決 - ジオデータベース 1 を優先して競合が解決されます。この場合は、競合が生じると、ジオデータベース 2 の状態ではなく、ジオデータベース 1 の状態が自動的に使用されます。競合は自動的に解決されるため、このポリシーを使用して同期した後に、レプリカが競合状態になることはありません。
- ジオデータベース 2 を優先して解決 - ジオデータベース 2 を優先して競合が解決されます。この場合は、競合が生じると、ジオデータベース 1 の状態ではなく、ジオデータベース 2 の状態が自動的に使用されます。競合は自動的に解決されるため、このポリシーを使用して同期した後に、レプリカが競合状態になることはありません。
メモ:
デフォルトのポリシーでは、親レプリカの状態が優先して使用されます。ジオデータベース 1 とジオデータベース 2 のどちらに親レプリカが含まれているかに応じて、どちらかが優先されます。
双方向レプリカでは、同期方向に [双方向] を選択した場合、手動のリコンサイル ポリシーは選択できません。
競合の定義
- 行 (オブジェクト) 単位の競合 - オブジェクト レベルで競合が検出されます。
- 列 (属性) 単位の競合 - 属性レベルで競合が検出されます。
親バージョンとのリコンサイル
このオプションは、チェックアウト/チェックイン レプリカでのみ使用可能で、データの変更が親レプリカに送信された際に、競合が存在しない場合は親レプリカに自動的に変更をリコンサイルするかどうかを示します。
- リコンサイルしない - リコンサイルしません。これがデフォルトです。
- リコンサイル - 自動的にリコンサイルします。
バージョンのリコンサイルの詳細
メモ:
同期プロセスのインポート フェーズはトランザクション内で実行されます。同期の第 2 フェーズで行われるリコンサイルも同じく単一のトランザクション内で発生します。必要なリソース (UNDO 領域や論理ログ ファイルなど) は、同期する変更の数によって異なります。インポート フェーズが完了してリコンサイル フェーズがエラーになる場合、レプリカは競合状態 と同じ状態となるため、後で手動でリコンサイルを完了する必要があります。
エラー処理
同期中にエラーが発生した場合、操作はロールバックされます。適用されたすべての変更内容は削除され、システムは同期前の状態に戻されます。
このルールの唯一の例外は、双方向で同期するときに起こる可能性があります。ここでは、一方向の変更を適用するプロセスの完了後にエラーが発生した場合、これらの変更はコミットされますが、システムは一貫性のある状態のままで、それ以上の同期は反映されません。