ジオデータベースのロックの管理

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

ロックは、データの整合性を保証するためにジオデータベース オブジェクトに適用されます。 たとえば、あるユーザーがテーブル内のデータを編集している場合、スキーマ ロックがテーブルに配置され、そのユーザーがデータを編集している間は所有者がテーブルのスキーマを変更できなくなります。 同様に、あるユーザーがブランチ バージョン内のフィーチャ レイヤーを編集している場合、複数の編集者が同じ名前付きバージョンで同時に編集を行わないように、そのバージョンにロックが配置されます。

ArcGIS Pro クライアントに表示できるロックは、データセットまたはバージョンの所有者であるのか、それともジオデータベース管理者であるのかによって異なります。 データセットおよびバージョンの所有者は、自分が所有しているアイテムのロックを表示できます。ジオデータベース管理者は、すべてのロックを表示し、必要に応じて、ロックを保持しているユーザーを切断できます。

[ロック] ビュー

[ロック] ビューを使用すると、自分がデータセット所有者、バージョン所有者、またはジオデータベース管理者になっているエンタープライズ ジオデータベース オブジェクトに適用されたロックを表示することができます。 これらのジオデータベース オブジェクトの列には、取得した各ロックのプロパティが反映されます。

[ジオデータベース管理] ダイアログ ボックスの [ロック] ビュー

これらのロック プロパティとして、次のものがあります。

  • Object Name- ロックされているオブジェクトの名前。
  • Object Type- ロックされているオブジェクトのタイプ (テーブル、フィーチャクラス、バージョンなど)。
  • Lock Type- ロック タイプ。データを保護しながら同時にデータにアクセスできるようにするために使用されます。 データセットの登録タイプと操作に応じて、次のロック タイプを適用できます。
    • Schema ロック - オブジェクトのスキーマに依存した操作を実行する際に使用されます。 たとえば、ArcGIS Pro でデータセットが開いている間はいつでも、共有スキーマ ロックが取得されます。 デフォルトで、スキーマ ロックは、サービスの実行中にソース データセット スキーマに変更が加えられないようにサービスでロックされたオブジェクトに対して有効になります。
    • State ロック - ステート ロックは、クライアント アプリケーションがステートにアクセスしている間またはステートを使用している間にステートが削除されたり変更されたりしないように、トラディショナル バージョン対応登録されたデータセットにアクセスする際にエンタープライズ ジオデータベースで管理されます。
    • Version ロック - version ロック タイプは、データベース接続からトラディショナル バージョン対応登録されたデータセットを編集するか、サービスからブランチ バージョン対応登録されたデータセットを表示または編集すると取得されます。
      注意:

      ブランチ バージョン対応登録されたサービスを表示または編集して取得された Version ロックに限り、ExpirationTimeService Name、および Session ID 列に値が入力されます。

    • OID Reservation ロック - OID Reservation ロックは、ブランチ バージョン対応登録されたデータセットを編集する際に取得されます。
      注意:

      OID Reservation このロック タイプでは、Lock ModeTime Acquired、および ExpirationTime 列に値が入力されません。

  • Lock Owner- ロックを生成するオブジェクトにアクセスしているか、そのオブジェクトを変更しているユーザー。
  • Lock Mode- ロック モード。ロック所有者とロックされたオブジェクトの同時ユーザーにどのアクセス タイプを許可するかを決定します。 ロック モードは、実行される操作とデータセットのバージョニング タイプによって異なります。 次のロック モードをジオデータベースで使用することができます。
    • Shared ロック - 複数のユーザーにオブジェクトへのアクセスまたはオブジェクトの読み取りを許可する操作には、共有ロックが必要となります。 共有ロックを適用すると、他の操作で排他ロックを取得することができなくなります。
    • Exclusive ロック - オブジェクトを変更する操作 (INSERT、UPDATE、DELETE など) と同時ユーザーがオブジェクトにアクセスしたりオブジェクトを更新したりできないようにする操作には、排他ロックが必要となります。 排他ロックを適用すると、排他ロックが解除されるまで、他の操作で該当するオブジェクトに対してロックを取得することができなくなります。
  • Time Acquired- オブジェクトに対してロックが取得された日付と時刻。
  • Service Name- ロックが取得される原因となったサービスの名前。 上記のとおり、ブランチ バージョン対応登録されたサービスに限り、このフィールドに値が入力されます。 他の Web サービスの場合、ジオデータベース オブジェクトに対するロックは取得されますが、このインターフェイスにサービス名が表示されません。
  • ExpirationTime- ロックの有効期限が切れる日付と時刻。 ロックの有効期限が切れても、そのロックのエントリがデータベース内にまだ存在することがありますが、これは別のロックを取得できなくなっている状態ではありません。 そのロックは、該当するバージョンに対して有効な別のロックが取得された時点でデータベースから削除されます。 セッションがまだアクティブになっている間は、ロックの有効期限が延長されます。
  • Session ID- クライアントで生成された sessionID。該当するバージョンに対してセッションの実行中に設定された GUID 値であり、そのバージョンのロックに使用されるトークンを意味します。
    ヒント:

    ArcGIS Server には、独自のトークンベースの認証メカニズムがあり、ユーザーはユーザー名とパスワードの代わりにトークンを指定して、自身を認証することができます。 ArcGIS トークンは、ユーザー名、トークンの有効期限、およびいくつかの独自情報を含む暗号化された情報の文字列です。

    ArcGIS トークンの詳細

データセットに対するロックの表示

所有しているデータセットのスキーマを変更できないようにするロックを保持しているユーザーを確認する必要がある場合、[ジオデータベース管理] ダイアログ ボックスで、データセットに対して保持されているロックのリストを表示できます。

  1. ArcGIS Pro を起動し、データセットの所有者でジオデータベースに接続します。
  2. [カタログ] ウィンドウでデータセットを右クリックし、[ロック] をクリックします。

    データセットが [オブジェクト名] フィールドに一覧表示され、データセットに対する接続がその下に表示されます。

  3. ロックを解除する必要がある場合、リスト内で識別されたユーザーに連絡し、データセットへの接続を閉じるように要求するか、ジオデータベース管理者に連絡します。

バージョンに対するロックの表示

所有しているバージョンを管理できないようにするロックを保持しているユーザーを確認する必要がある場合、[ジオデータベース管理] ダイアログ ボックスで、それらのロックのリストを表示できます。

  1. ArcGIS Pro を起動し、バージョンの所有者でジオデータベースに接続します。
  2. [カタログ] ウィンドウでデータベース接続を右クリックし、[ロック] をクリックします。

    [ジオデータベース管理] ダイアログ ボックスの [ロック] リストが開き、所有しているデータセットまたはバージョンに対するロックを確認できます。

  3. ロックを解除する必要がある場合、リスト内で識別されたユーザーに連絡し、バージョンへの接続を閉じるように要求するか、ジオデータベース管理者に連絡します。

ジオデータベースのロックの管理

ジオデータベース管理者は、[ジオデータベース管理] ダイアログ ボックスの [ロック] タブを使用して、ジオデータベース内のすべてのアイテムのスキーマ ロック、バージョン ロック、およびステート ロックを保持しているユーザーを確認できます。 ジオデータベース管理者は、ロックを保持している接続を削除して、リソースを使用できるように解放することもできます。

注意:

個々のロックを削除することはできません。ユーザーを切断することによって、そのユーザーが保持しているすべてのロックを削除することだけが可能です。

  1. ArcGIS Pro を起動し、ジオデータベース管理者でジオデータベースに接続します。
  2. [カタログ] ウィンドウでデータベース接続を右クリックして、[管理] > [ロック] の順にクリックします。

    [ジオデータベース管理] ダイアログ ボックスの [ロック] リストが開きます。

  3. 上部にあるドロップダウン メニューを使用して、オブジェクト タイプ、オブジェクト名、ロック タイプ、またはロック所有者でロックをフィルタリングします。
  4. 解除する必要のあるロックを保持しているユーザーに連絡し、トランザクションを終了してジオデータベースから切断するように要求します。 ロックを保持しているユーザーが退社した後に、ロックをすぐに解除する必要がある場合は、そのユーザーの接続を切断できます。
    注意:

    ユーザーを切断する場合は注意が必要です。 Esri では、特に接続ユーザーが編集中である場合は、アクティブなセッションを切断しないことをお勧めします。 ユーザーを切断してロックを破棄するのは、セッションが開いたまま (たとえば、週末を通じて) 使用されていない場合、オブジェクトをロックしている接続を残してセッションが強制終了した場合、またはデッドロックが発生した場合のみにしてください。

  5. 必要に応じて、ロックを右クリックして [ユーザーの切断] をクリックします。

    ジオデータベース管理者には、ユーザーを切断するために高い権限が必要です。

    • PostgreSQL で、sde ユーザーが、データベース クラスター内でスーパーユーザー ステータスを持つ必要があります。
    • SQL Server のジオデータベースが sde ユーザーのスキーマ内に存在する場合、ユーザーを切断するには、sde ユーザーが高い権限を持っている必要があります。 特定の権限については、「SQL Server でのジオデータベースの権限」をご参照ください。
    • Oracle で必要な特定の権限については、「Oracle でのジオデータベースの権限」をご参照ください。
    • SAP HANA で、sde ユーザーには追加のデータベース権限が必要です。 詳細については、「SAP HANA でのジオデータベースの権限」をご参照ください。