非接続環境のレプリカの同期

Standard または Advancedのライセンスで利用可能。

非接続環境での同期とは、非接続環境でレプリカを手動で同期してデータを転送するプロセスのことです。 メッセージ交換のこの手動プロセスでは、一方のレプリカからファイルにメッセージをエクスポートし、ファイルから相対レプリカにメッセージをインポートします。

非接続環境での同期の概要
非接続環境での同期のワークフローをご参照ください

注意:

メッセージを含むファイルをレプリカ ペア間で交換することで、非接続環境でのレプリケーションと同期に関するあらゆる操作を実行できます。 これらのメッセージを使ってさまざまなタスクを実行したり、ファイル ジオデータベース (.gdb) 形式または XML ファイル (.xml) 形式を使用して交換したりできます。

  • レプリカの作成 (.gdb または .xml)
  • データ変更 (同期) メッセージ (.gdb または .xml)
  • 承認メッセージ (.xml)

非接続環境では、.gdb ファイルか .xml ファイルを外部ストレージデバイス (USB ドライブ、SD カードとメモリ カード、外付けハード ディスク、CD、DVD など) などのメディアに転送するか、郵送、宅配便業者、小荷物配達サービスなどの配送業者を利用して送付できます。

いつでもレプリカをデータの送信側と受信側のいずれかにすることができます。 データ送信側は、相対レプリカに適用される変更を含むデルタ ファイルにデータ変更メッセージをエクスポートします。 データ受信側はデータ変更メッセージをインポートし、何を受信したかを確認するために承認ファイルに承認メッセージをエクスポートします。 [レプリカの管理] ウィンドウのレプリカ カードにあるレプリカ ステータスを確認することで、レプリカがデータの送信側と受信側のどちらになっているかがわかります。 [レプリカの管理] ウィンドウの概要については、「レプリカの管理 ウィンドウへのアクセス」をご参照ください。

非接続環境での同期のワークフロー

非接続環境のレプリカの場合、レプリカ間でメッセージを手動で交換することで同期を実行します。 メッセージ交換のこの手動プロセスでは、複数のジオプロセシング ツールを組み合わせて使用し、以下で説明および図解している、非接続環境における同期の基本的なワークフロー パターンに従います。

  1. 編集が完了しました。

    編集が完了し、ジオデータベース (Geodatabase 1) に保存されます。

    非接続環境の同期ワークフローのステップ 1 では、編集が親レプリカ (データ送信側) で行われます。

  2. データの送信側からデータ変更をエクスポートします。

    このワークフロー サンプルでは、オレンジの三角形 (デルタとも言います) を使ってデータ変更または差異を表しています。

    非接続環境の同期ワークフローのステップ 2 では、データ変更が親レプリカ (データ送信側) からエクスポートされます。

    データ送信側では、[データ変更メッセージのエクスポート (Export Data Change Message)] ジオプロセシング ツールを使って、ファイル ジオデータベース (.gdb) または XML ファイル (.xml) 形式で保存できるデータ変更メッセージ データ変更メッセージ に親レプリカからすべての新しいデータ編集をエクスポートします。

    注意:

    非接続環境では、.gdb ファイルか .xml ファイルを外部ストレージデバイス (USB ドライブ、SD カードとメモリ カード、外付けハード ディスク、CD、DVD など) などのメディアに転送するか、配送業者を利用して送付できます。

    このツールの使用方法の詳細については、「データ変更メッセージのエクスポート」をご参照ください。

  3. データ受信側でデータ変更メッセージをインポートします。

    データ受信側ではメッセージのインポート (Import Message) ジオプロセシング ツールを使って、ファイル ジオデータベース (.gdb) または XML ファイル (.xml) 形式で保存されるデータ変更メッセージ ファイル データ変更メッセージ をデータ受信側レプリカ (Geodatabase 2) にインポートします。

    非接続環境の同期ワークフローのステップ 3 では、データ変更が子レプリカ (データ受信側) にインポートされます。

    このツールの使用方法の詳細については、「データ変更メッセージのインポート」をご参照ください。

    データ変更のインポートは相対レプリカのデータ変更に適用され、レプリカのメタデータも更新されます。
  4. 承認メッセージをエクスポートします。

    データ受信側でデータ変更メッセージをインポートしたら、データ受信側では 承認メッセージのエクスポート (Export Acknowledgment Message) ジオプロセシング ツールを使って、承認メッセージをデータ送信側 (Geodatabase 1) に送り返します。

    非接続環境の同期ワークフローのステップ 4 では、データ受信側が承認メッセージを送信します。

    注意:

    データ送信側はデータ受信側と接続された環境にないため、データ受信側でデータ変更が受信され、インポートされたことがデータ送信側ではわかりません。 そのため、データ受信側でできるだけ頻繁に承認メッセージをエクスポートおよび送信することが重要になります。 承認メッセージが受信されない場合、データ送信側はデフォルトで変更を再送し、相対レプリカでこれらの変更を受信したことを示す承認を受け取るまで、変更の再送に必要な情報を保持します。 その結果、データ送信側のジオデータベースだけでなく、後続のデータ変更メッセージも大きくなる場合があります。

    必須ではありませんが、各データ変更メッセージを受信した後に、データ受信側から承認メッセージを送信するのが理想的です。 1 つの承認メッセージですべてのデータ変更メッセージを承認できる点に注意することも重要です。 たとえば、3 つのデータ変更メッセージをレプリカが受信してそれぞれをインポートする場合、3 つすべてを承認する 1 つの承認メッセージを送信できます。

    このツールの使用方法の詳細については、「承認メッセージのエクスポート」をご参照ください。

  5. 承認メッセージをインポートします。

    データ送信側では、メッセージのインポート (Import Message) ジオプロセシング ツールを使って承認 XML メッセージをインポートし、データ送信側レプリカ (Geodatabase 1) のメタデータを更新することで、次のエクスポートに含める変更を把握します。

    非接続環境の同期ワークフローのステップ 5 では、データ送信側が承認メッセージをインポートします。

    このツールの使用方法の詳細については、「データ変更メッセージのインポート」をご参照ください。

ヒント:

[レプリカ プロパティ] ダイアログ ボックスの [高度な設定] タブにある世代情報を使用して、メッセージが関連するレプリカにエクスポートおよびインポートされたかどうか判別します。

ここまで、このトピックでは、親レプリカと子レプリカの間でメッセージの送受信を行う、非接続環境での基本的な同期ワークフロー パターンについて説明してきました。 このパターンで続行した場合、システムは効率的に機能し、メッセージが失われた場合でも自己修正します。

一方で、以降のセクションで説明している、特定のメッセージ交換シナリオに従うことも検討してみてください。

ロールの切り替え

双方向レプリカでは、データの送信側と受信側でロールを切り替えることができます。 ロール切り替え指示を含むデータ変更メッセージをデータ送信側が送信する際に、データ送信側で切り替えを開始します。 データ受信側がメッセージをインポートしたらロールが切り替わり、システムで逆方向にデータを送信できるようになります。

ただし、編集とデータ変更は一方向に対してのみ行われるため、一方向レプリカではロールを切り替えることができません。 親レプリカから子レプリカへの一方向レプリカの場合、常に親レプリカがデータ送信側になります。 子レプリカから親レプリカへの一方向レプリカの場合、常に子レプリカがデータ送信側になります。 どちらの場合でも、データ送信側から承認メッセージを送信することが変わらず重要です。 チェックアウト レプリカの場合、常に子レプリカがデータの送信側となり、承認メッセージは不要です。 さまざまなレプリカのタイプの詳細については、「レプリケーションの種類」をご参照ください。

次の手順と図は、相対レプリカのロールをデータ送信側に切り替える指示を含むデータ変更メッセージを親レプリカが送信している様子を示したものです。

  1. 双方向レプリカに接続していることを確認します。
    レプリカのロール変更のステップ 1
  2. ロールを切り替えるには、データ送信側が [データ変更メッセージのエクスポート (Export Data Change Message)] ジオプロセシング ツールを使用して、[メッセージのエクスポート後に受信側に切り替え] オプションをオンにした状態でデータ変更メッセージをエクスポートします。

    これらのロール切り替え指示を含むデータ変更メッセージを親レプリカがエクスポートすると、親レプリカがデータ受信側になります。

    レプリカのロール変更のステップ 2

    注意:

    [データ変更メッセージのエクスポート (Export Data Change Message)] ツールを使ってロールを切り替える場合、[データ変更メッセージを一切含めない] という、チェックボックス形式のオプションも利用できます。データを送信せずに、メッセージを送信して役割を切り替える場合にこのオプションが便利です。 このオプションの詳細については、「データ変更を送信せずにロールを切り替え」をご参照ください。

  3. データ受信側では [メッセージのインポート (Import Message)] ジオプロセシング ツールを使って、ロールを切り替えるための指示を含むデータ変更メッセージをインポートします。

    インポートが完了すると、受信側がデータの送信側になります。

    レプリカのロール変更のステップ 3

データ変更を送信せずにロールを切り替え

データ変更を送信せずに、ロール切り替え指示を含むデータ変更メッセージを送信できます。 データ受信側から変更を取得する必要があるものの、データ変更を送信する準備ができていない場合に、データ送信側でこれを行うことができます。 データを送信せずにメッセージを送信してロールを切り替える方法の詳細については、「データ変更メッセージのエクスポート」をご参照ください。

ロール切り替え後の変更の承認

双方向レプリカでロールを切り替えた後は、新しいデータ送信側がロールを切り替えるメッセージを承認するための 2 つのオプションを利用できます。

  • 新しいデータ送信側は承認メッセージをエクスポート可能 - 以下の図では、ロールを切り替えるデータ変更メッセージを親レプリカが送信しています。 子レプリカがメッセージを受信し、子レプリカがデータ送信側になっています。ただし、ロールが切り替わったばかりであるため、システムでは引き続き、子レプリカが [承認メッセージのエクスポート (Export Acknowledgment Message)] ジオプロセシング ツールを使って承認メッセージを送信できます。
    ロール切り替え後に [承認メッセージのエクスポート (Export Acknowledgment Message)] ジオプロセシング ツールを使って変更を承認します。
  • 新しいデータ送信側はデータ変更メッセージを送信可能 - 以下の図では、ロールを切り替えるデータ変更メッセージを親レプリカが送信しています。 子レプリカがメッセージを受信し、子レプリカがデータ送信側になっています。 [データ変更メッセージのエクスポート (Export Data Change Message)] ジオプロセシング ツールを使用することで、子レプリカはデータ変更メッセージを送信できます。このメッセージは、親レプリカからの前のデータ変更メッセージを暗黙的に承認します。 近いうちにデータ変更メッセージを送信する予定がない場合は、承認メッセージを送信する必要があります。
    ロール切り替え後に [データ変更メッセージのエクスポート (Export Data Change Message)] ジオプロセシング ツールを使って変更を承認します。

非承認データ変更メッセージの再エクスポート

システムではレプリカから非承認データ変更を再送信できます。 データ受信側がデータ変更メッセージをインポートしなかったり、転送中に失われたり、再送信する必要がある場合にデータ送信側でこれを実行できます。 デフォルトでは新しい変更と非承認の変更の両方がデータ変更に含まれるため、次回データ変更を送信するまで待つという選択肢もあります。

以下の図は、非承認データ変更メッセージを再エクスポートする必要があるケースを示したものです。 ここでは、親レプリカがデータ変更メッセージを送信し、送信側から受信側に切り替わっています。 しかし、メッセージが失われたため、親レプリカと子レプリカ両方がデータ受信側のままになっています。 この問題を解決するには、直前にロールを切り替えたデータ受信側が [非承認メッセージの再エクスポート (Re-Export Unacknowledged Messages)] ジオプロセシング ツールを使用します。 この場合、親レプリカでは非承認データ変更メッセージを再送信するとともに、ロールを子レプリカに切り替えることができます。

変更が承認されていないか失われている場合、データ送信側では

承認メッセージ ファイルのバイパス

データ変更を送信する場合、デフォルトでは新しいデータ変更と非承認データ変更がすべて送信されます。 新しい変更とは、前回データ変更メッセージがエクスポートされて以降レプリカ バージョンに適用された挿入、更新、削除のことです。 非承認データ変更には、承認を受けていない、以前にエクスポートした変更が含まれます。 承認を受け取っていないデータ変更メッセージを複数送信した場合、データ変更ファイルのサイズが大きくなることがあります。

この場合、データ受信側から承認メッセージ ファイルを送信するのが最善策です。 ただし、通信システムによっては、常にこれを実行できるとは限りません。 たとえば、レプリカが非接続環境にあり、ファイルを交換するには承認ファイルをメディアで送付する必要がある場合、データ送信側レプリカの管理担当者に、データ変更を受信してインポートしたという内容のメールを送信することもできます。

ただし、承認メッセージ ファイルをバイパスすると、同期の管理が複雑になる点に注意が必要です。

  • レプリカの変更を再送信するのに必要なシステム バージョンに下げるためにシステムで行うことができる唯一の方法が、承認メッセージをインポートすることです。 バージョンを下げていないシステムでは、時間の経過とともに圧縮が遅くなって、送信側のジオデータベースが大きくなる場合があり、ジオデータベースのパフォーマンスが遅くなることもあります。 そのため、少なくとも定期的に承認メッセージを使用することが引き続き重要になります。
  • 承認メッセージ ファイルをバイパスすると、データ送信側レプリカとデータ受信側の人間による管理でより多くの手動作業が必要になります。

    [レプリカの管理] ウィンドウの [ジオデータベース レプリカ] タブを使って、レプリカが送受信した変更を把握できます。 不必要にサイズの大きいデータ変更メッセージが送信されないようにするには、データ変更が次回送信される際にデータ送信側で [非承認のデータ変更を含める] オプションをオフにします。

  • 承認メッセージ ファイルの使用をバイパスすると、同期ワークフローでエラーが発生しやすくなります。

    前の変更がインポートされている場合のみ、データ受信側で新しい変更をインポートできます。 以前に送信された変更がインポートされていないことをシステムが検出すると、エラーが返されて変更の現在のセットをインポートできなくなります。 複数のデータ変更メッセージを同時に送信する場合は、正しい順序でインポートする必要があります。 間違った順序でインポートしようとすると、システムからエラーが返されます。 エラーが発生した場合はエラー メッセージが表示されます。 ただし、自動化されたシステムを使用している場合はエラーが表示されない場合があります。 この場合、レプリカ アクティビティ ログを使って、同期中にエラーが発生したかどうかを確認できます。