この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

グループメンバーシップのロック

インテグレーションまたは管理コンソールによってロール階層またはグループメンバーシップを更新すると、ユーザーに「ロックを取得できない」というエラーが表示され、再操作が必要になることがあります。このエラーは、更新中にグループメンバーシップ情報を保持するテーブルが共有システムによってロックされるために発生します。これは、互換性のない更新が同時に行われたり、タイミングの問題が発生したりするのを防止するためで、どちらの場合も、ユーザーのアクセス権に関するデータが不正確になるおそれがあります。通常、こうしたロックはごく短時間のみ保持され、ユーザーにロック競合エラーが表示されることはほとんどありません。ロールの変更によって共有ルールの再適用が起動された場合など、状況によっては、ロック保持時間が長くなり、競合が発生する可能性があります。

このようなロックエラーが発生するのは、通常、ユーザーが大規模なデータ読み込みを実行している場合や、他の内部システムとのインテグレーションを実行していて、ロールとグループ構造、ロールやグループへのユーザー割り当て、またはその両方が変更される場合です。これらのプロセスが実行されているときにシステム管理者がユーザーのロールを変更しようとしたり、ユーザーが新しい外部ユーザーをプロビジョンしようとすると、こうした同時操作のいずれかで、必要なロックを確保できなくなることがあります。このエラーが最も発生する可能性が高いのは、多くの取引先の割り当てやユーザーロールが変更される年度末処理や四半期末処理のような定期的な組織の再配置イベントの間です。

ユーザーは、ロックエラーの発生確率を次の方法で下げることができます。
  • 各グループメンテナンスプロセスが重ならないように慎重にスケジュールする
  • インテグレーションやその他の自動化されたグループメンテナンスプロセスに再試行ロジックを実装して、エラーから回復してロックを取得できるようにする

ロール階層またはグループメンバーシップを更新しているときに、グループメンバーシップ情報を更新する別のリリースまたはグループメンバーシップ情報を更新する Apex テストを持つ別のリリースを実行すると、ロックエラーが発生します。ロックエラーが発生した場合は、リリース操作または Apex テストが終了するまで待ちます。

メモ

デフォルトでは、詳細なロックが有効になっており、更新に関係するロールまたはグループ間で階層関係または他の関係がなければ、一部のグループメンテナンス操作を同時進行できます。システム管理者は、メンテナンスプロセスおよびインテグレーションコードを調整してこの制限付きの同時実行を利用することにより、ロッ��エラーを回避しながら、大規模な更新をより速く処理できます。

詳細なロックの主な利点は、次のとおりです。
  • 異なる階層にあるグループを同時に操作できます。
  • テリトリーを含まない公開グループと公開ロールが、テリトリー操作によってブロックされなくなります。
  • テリトリーおよび公開グループにユーザーを同時に追加できます。
  • ユーザーのプロビジョニングを並列実行できます。
    • 外部ユーザーの作成にロックが必要なのは、新しい外部ロールが作成される場合のみ。
    • 既存の取引先で、新しい外部ユーザーのプロビジョニングが同時に処理される。
  • ロールの削除などの長時間を要する単一処理で、操作のごく一部のサブセットしかブロックされません。

次の表に、並列実行できるすべての操作を示します。親の変更 (ロール階層内でのロールの移動) などの特定の操作では、引き続き、他のほとんどすべてのグループ更新がブロックされます。

グループ操作 同時実行できる操作
ロールの作成
  • ユーザーロールの変更1
  • テリトリーの親の変更
  • テリトリーの削除
  • テリトリーの作成
  • テリトリーからのユーザーの削除
  • テリトリーへのユーザーの追加
  • ユーザーのプロビジョニング2
ロールの削除
  • テリトリーの親の変更
  • テリトリーの削除
  • テリトリーの挿入
  • テリトリーからのユーザーの削除
  • テリトリーへのユーザーの追加
ロールの親の変更 (サイトまたはポータル取引先所有者の変更を含む) テリトリーの作成
テリトリーへのユーザーの追加
  • ロールの削除
  • ロールの挿入
  • テリトリーの作成
  • テリトリーへのユーザーの追加
  • ユーザーのプロビジョニング3
テリトリーからのユーザーの削除
  • ロールの削除
  • ロールの挿入
  • テリトリーの作成
  • ユーザーのプロビジョニング3
テリトリーの親の変更
  • ロールの削除
  • ロールの挿入
  • ユーザーのプロビジョニング3
テリトリーの削除
  • ロールの削除
  • ロールの挿入
  • ユーザーのプロビジョニング3
テリトリーの作成
  • ロールの親の変更
  • ロールの削除
  • ロールの挿入
  • ユーザーロールの変更1
  • テリトリーへのユーザーの追加
  • テリトリーからのユーザーの削除
  • ユーザーのプロビジョニング3
既存のロールを使用した内部ユーザーのプロビジョニング
  • ロールの挿入
  • ユーザーロールの変更1
  • テリトリーの親の変更
  • テリトリーの削除
  • テリトリーの作成
  • テリトリーからのユーザーの削除
  • テリトリーへのユーザーの追加
  • ユーザーのプロビジョニング3
ユーザーロールの変更 (ユーザーはサイトまたはポータル取引先を所有できない)。
  • ロールの挿入
  • テリトリーの挿入
  • ユーザーのプロビジョニング3
取引先での最初のサイトまたはポータルユーザーのプロビジョニング
  • ユーザーロールの変更1
  • テリトリーの親の変更
  • テリトリーの削除
  • テリトリーの作成
  • テリトリーからのユーザーの削除
  • テリトリーへのユーザーの追加
  • ユーザーのプロビジョニング2
取引先での 2 番目のサイトまたはポータルユーザーの作成
  • ロールの挿入
  • ユーザーロールの変更1
  • テリトリーの親の変更
  • テリトリーの削除
  • テリトリーの作成
  • テリトリーからのユーザーの削除
  • テリトリーへのユーザーの追加
  • ユーザーのプロビジョニング3
大規模 Experience Cloud サイトユーザーのプロビジョニング すべてのグループメンバーシップの操作
サイトまたはポータル取引先所有者の変更 テリトリーの作成
サイトまたはポータル取引先を所有するユーザーのロールの変更 テリトリーの作成

1 ユーザーは、サイトまたはポータル取引先またはカスタマーポータル取引先を所有できません。

2 既存のポータルロールでの標準ユーザーまたは外部ユーザーのプロビジョニング

3 取引先にある最初のサイトまたはポータルユーザーを含む、任意の標準ユーザーまたは外部ユーザーのプロビジョニング