競合の防止

Location Referencing ライセンスで利用可能です。

競合の防止は、エンタープライズ ジオデータベース リニア リファレンス システム (LRS) のルート編集とイベント編集を調整することで、マルチユーザー編集のサポートを改善します。 ArcGIS Location Referencing では、編集者がルートまたはイベントを編集する前にロックを取得することを要求する一連の条件および振舞いを適用することで、編集を調整します。

あるバージョンで編集者によってルートまたはイベントが編集用にロックされた場合、そのルートまたはイベントを別のバージョンの同じユーザーや、任意のバージョンの他のユーザーが編集することはできません。 これが、Location Referencing の競合防止の主な原理です。

競合の防止の有効化

競合の防止は、ブランチ バージョン対応の LRS データセットでのみサポートされています。

データセットをブランチ バージョン対応登録したら、[競合の防止] パラメーターを [有効] に設定した [LRS の変更 (Modify LRS)] ツールを実行します。

競合の防止を有効にした LRS の変更ツール

競合の防止を有効にすると、各編集ツールは、ロックを取得できる場合は自動的にロックを取得し、ロックを取得できない場合は警告を表示します。

競合を防止するためのルートの編集とロックの作成

次の競合を防止するためのワークフローの例では、ルートの廃止ツールを使用します。 RouteX、RouteY、RouteZ は、LineXYZ の一部です。 RouteX は廃止されます。

競合の防止とルートの廃止
ルートは LineXYZ の一部です。

  1. [Location Referencing] タブの [ツール] グループで、[ルートの特定] ルートの特定 をクリックして [RouteX] をクリックします。

    [ルートの特定] ポップアップが表示されます。

    ルートの特定ポップアップ
    ルートの特定ポップアップは、ロックが存在しないことを示しています。

  2. 選択したルートまたはラインにロックが存在していないことを確認します。

    前の例は、RouteX にロックが存在しないことを示しています。

  3. [Location Referencing] タブの [ルート] グループで、[廃止] 廃止 をクリックします。

    [ルートの廃止] ウィンドウが表示されます。

  4. [マップからルートを選択] マップからルートを選択 をクリックして、廃止するルートをクリックします。

    ルート名を選択すると、ウィンドウの上部にロック取得メッセージが表示されます。

    ルートの廃止ウィンドウ、ロック取得済み
    取得したルートはルートの廃止ウィンドウで確認できます。

    ロック取得メッセージには、次の情報が含まれています。

    • LineXYZ でロックが取得されました。
      注意:

      RouteX は LineXYZ の一部です。

      RouteY と RouteZ は LineXYZ の一部であるため、これらも編集用にロックされます。

    • ロックは、ポータル ユーザー User11 によって取得されました。
    • 名前付きバージョン Version1 の LineXYZ のロックが User11 によって取得されました。
    注意:

    次のすべての条件を満たす場合、既存のルートまたはラインのロックが別のユーザーから自動的に転送されます。

    • 別のユーザーが所有しているバージョンが公開されている。
    • 他のユーザーがロックを取得しているバージョンと同じバージョンでリクエストを発行している。
    • ロック バージョンが名前付きバージョンの場合、ロックの所有者が現在そのバージョンで編集セッションを開いていない。 ロック バージョンがデフォルト バージョンの場合、ロックの所有者が現在デフォルト バージョンで読み取りセッションを開いていない。

  5. ロックが存在することを確認するには、[ルートの特定] ルートの特定 をクリックし、再度 [RouteX] をクリックします。
    ルートの特定ポップアップ、LRS ロック セクション
    ルートの特定ポップアップは、ルートがロックされたことを示しています。

    [自分によってロック済み] アイコン 自分によってロック済み でも、特定したルートのロックが取得され、そのルートを編集できることを確認できます。

  6. 必要に応じて、[Location Referencing][競合の防止] グループで、[LRS ロック] ボタン LRS ロック テーブル を使用し、既存のロックを特定します。

    [LRS ロック] テーブルが表示されます。

    LRS ロック テーブル
    ロック テーブルには、最近取得されたロックの存在が表示されます。

競合の防止

上記で述べたように、競合の防止ロジックにより、1 人のユーザーだけが一度に 1 つのバージョンでルートまたはラインとイベントを編集できます。

たとえば、User22 が RouteX を廃止しようとした場合、同じ RouteX が User11 によりロックされていると、次のメッセージが表示されます。

ルートの廃止ウィンドウ、ロック未取得
User11 がロックを所有しているとき、User22 はルートを編集できません。

メッセージには、次の情報が含まれています。

  • ロックが他のユーザーに属しているため、LineXYZ は編集できません。
    注意:

    RouteX は LineXYZ の一部です。

  • ロックは、ポータル ユーザー User11 によってすでに取得されています。
  • 名前付きバージョン Version1 の LineXYZ のロックは User11 によってすでに取得されています。

ルートの特定ポップアップは、次の結果を表示します。

ルートの特定ポップアップ、既存のロック
既存のロックのため、ルートは編集できません。

[LRS ロック] テーブルに、ロックが表示されます。

[LRS ロック] テーブル
LRS ロック テーブルに、ロックが表示されます。

最新バージョンのデータセットが編集されたことを確認

最新バージョンを編集し、データへの最新の変更内容がすべて編集中のバージョンに存在するようにします。 最新バージョンを編集していることを確認するため、Location Referencing はロックを取得する前にデフォルト バージョンとのリコンサイルが必要かどうかを確認します。 名前付きバージョンをデフォルト バージョンとリコンサイルする必要がある場合、次のメッセージが表示されます。

[ロックの取得] ダイアログ ボックス
デフォルト バージョンとリコンサイルします。

[ロックの取得] が表示されている際に [はい] をクリックすると、名前付きバージョンがデフォルト バージョンとリコンサイルされます。

注意:

ルートまたはイベントを編集する前に、デフォルト バージョンとの競合がリコンサイルされていることを確認します。

ブランチ バージョンへの編集内容のリコンサイルおよび投稿、競合の解決、および変更内容の投稿の詳細

ロックを取得する前に自動的にリコンサイルできます。 自動リコンサイルを有効にすると、リコンサイル中に競合が検出されない限り、リコンサイルしないでロックを取得できます。

次のチャートに、ルート編集時に競合を防止する全体的なロジックを示します。

競合の防止フローチャート

ロックのタイプ

Location Referencing での競合の防止には、次のロックの種類があります。

  • ルート ロックおよびライン ロック
  • イベント ロック

ルート ロックおよびライン ロック

ルート ロックおよびライン ロックは、ルート編集中に、そのルートおよびルート上のイベントが他のユーザーによって編集されないようにします。

ルート ロックおよびライン ロックには、次の特性があります。

  • 連続的なネットワークのルートを編集する場合のロックは、ルート ロックと呼ばれます。
  • ライン ロックは、ラインをサポートするエンジニアリング ネットワークのルートを編集する際に取得されます。 完全なラインとそのすべてのルートがロックされます。 ライン ロックでは、あるユーザーがラインを構成する複数のルートのいずれかを編集している場合に、他のユーザーはそのラインの他のルートを編集できません。
  • ロックされたルートでは、ロックの転送条件が満たされない限り、ロックを取得したユーザーだけが、ロックを取得したバージョンのルートとそのイベントを編集できます。

イベント ロック

イベント ロックは、特定のルートのイベント レイヤーが他のユーザーによって編集されないようにします。 イベント ロックは、ルートまたはラインのイベント レイヤー用に取得されます。

User1 が Version1 にある Route1 の Event Layer1 をロックした場合、次の条件が適用されます。

  • 他のユーザーは、すべてのバージョンで Route1 の Event Layer1 を編集できません。
  • User1 は、Version1 以外のすべてのバージョンで、Route1 の Event Layer1 を編集できません。
  • 他のユーザーは、そのルートに対してルート ロックが存在しない限り、Route1 または他のルートの他のイベント レイヤー (Event Layer1 以外) のロックを取得できます。
  • 複数のユーザーがそのルートのイベント ロックを取得している場合、どのユーザーもルート ロックを取得できません。
  • 他のユーザーは、ロックを取得できるすべてのルートの Event Layer1 のロックを取得できます。
  • ラインをサポートしているネットワークに登録されているイベント (ポイントまたはライン) を編集すると、ラインのイベント ロックが取得されます。
  • ラインをサポートしていないネットワークに登録されているイベント (ポイントまたはライン) を編集すると、ルートのイベント ロックが取得されます。
注意:
  • ルートまたはイベントのタイム スライスが複数存在する場合、取得したロックはすべてのタイム スライスに対して有効です。
  • 必要に応じて、ロックはジオプロセシング ツールによって取得されます。

次のチャートに、イベントがルートに存在する場合に競合を防止するロジックを示します。

ルート上のイベントの競合の防止

中心線を編集する際の競合の防止

並列ルートが存在する場合、共通の中心線に基づいてルートがロックされます。 以下の図に、この概念を示します。

競合の防止と中心線の編集
並行ルートのロックを示しています。

  • ルート X が編集されている場合、ルート X でロックが取得され、ルート X とルート Y は中心線 C2 を共有しているため、他のユーザーはルート Y のロックを取得できません。
  • ルート Y が編集されている場合、ルート Y でロックが取得され、ルート X とルート Y は中心線 C2 を共有しているため、他のユーザーはルート X のロックを取得できません。
  • 中心線 C1 が編集されている場合 (カートグラフィックの再配置または中心線の分割)、ルート X のみがロックされます。
  • 中心線 C3 が編集されている場合、ルート Y のみがロックされます。
  • 中心線 C2 が編集されている場合、C2 はルート X とルート Y の間で共有されている中心線であるため、両方のルートがロックされます。

ロックの解除

次の場合、ロックは自動的に解除されます。

  • ロックを含むバージョンをデフォルト バージョンに投稿した場合。
  • ロックを含むバージョンが削除された場合。
  • ルート編集ツール、中心線編集ツール、ジオプロセシング ツールを使用すると、デフォルト バージョンで取得したロックはプロセスが完了した後に解除されます。

解除可能なステータスに基づいて、ロックを手動で解放することができます。

解除可能ステータス値が Yes の場合、次の手順を実行してロックを解除できます。

解除可能ステータス値が No の場合、ロックを解除することはできません。

解除可能ステータス値が On Post の場合、デフォルト バージョンへの投稿後にのみロックを解除できます。

注意:

次の条件をすべて満たす場合、既存のルートのロックが別のユーザーから自動的に転送されます。

  • 別のユーザーが所有しているバージョンが公開されている。
  • 他のユーザーがロックを取得しているバージョンと同じバージョンでリクエストを発行している。
  • ロック バージョンが名前付きバージョンの場合、ロックの所有者が現在そのバージョンで編集セッションを開いていない。 ロック バージョンがデフォルト バージョンの場合、ロックの所有者が現在デフォルト バージョンで読み取りセッションを開いていない。

競合の防止ルールの概要

競合の防止が有効な場合、次の条件でルートのロックを取得した後にルートを編集することができます。

  • すべてのバージョンで、そのルートのロックが取得されていない。
  • 同じユーザーが、同じバージョンに存在するそのルートに対するルート ロックをすでに取得している。

競合の防止が有効で、ロックの転送条件が満たされていない場合、次の条件ではルートを編集することができません。

  • デフォルト バージョンとのリコンサイルが実行されていない。
  • 現在のバージョンでジオデータベースの競合が存在している。
  • ルートが別のユーザーによりすでにロックされている。
  • 同じユーザーが、別のバージョンでそのルートに対するルート ロックをすでに取得している。
  • 別のユーザーがそのルートに対するイベント ロックを取得している (ロックの転送条件が満たされていない場合)。
  • 同じユーザーが、別のバージョンでそのルートに対するイベント ロックを取得している。

競合の防止が有効な場合、次の条件でイベント レイヤーのロックを取得した後にイベントを編集することができます。

  • すべてのバージョンで、そのイベントがあるルートの当該イベント レイヤーのロックが取得されていない (ロックの転送条件が満たされていない場合)。
  • 同じユーザーが、現在操作しているのと同じバージョンで、(イベントがあるルートの) イベント ロックをすでに取得している。
  • 同じユーザーが、同じバージョンで (イベントがあるルートまたはラインの) ルート ロックまたはライン ロックをすでに取得している。

競合の防止が有効な場合、次の条件ではイベントを編集することができません。

  • デフォルト バージョンとのリコンサイルが実行されていない。
  • 現在のバージョンでジオデータベースの競合が存在している。
  • イベントがあるルートのイベント レイヤーが、別のユーザーによってすでにロックされている (ロックの転送条件が満たされていない場合)。
  • イベントがあるルートの別のバージョンのイベント レイヤーが、同じユーザーによってすでにロックされている。
  • イベントがあるルートが、別のユーザーによってすでにロックされている (ロックの転送条件を満たしていない場合)。
  • イベントがあるルートの別のバージョンが、同じユーザーによってすでにロックされている。