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

レコードレベルのロック

多くのお客様は大量のデータを定期的にサービスにアップロードし、スケジュール設定されたバッチ単位、またはリアルタイムで継続的にデータを更新する他のシステムとの統合を維持しています。他のトランザクションシステムと同様に、Lightning Platform ではレコードレベルのデータベースロック機能を使用することで、これらの更新中にデータの整合性が保たれています。ロックが掛けられるのは非常に短時間であるため、他の一部の組織ロックと同じようなパフォーマンスに関するリスクが生じることはありません。しかし、更新が失敗する可能性は依然としてあるため、お客様は複数のスレッドで同じレコードのコレクションに対して更新を実行しないように注意する必要があります。

この基本的な予防措置を講じるほかに、システムの開発者と管理者は Salesforce で子レコードを更新するとき、別のスレッドで親が削除されたばかりの子レコードの更新などの不整合を回避するために、親子リレーションのあるレコードをシステムがロックすることを把握しておく必要があります。処理対象のオブジェクトに親と子のリレーションがある場合、特に次の 2 つの状況でロックエラーが生じるリスクがあります。

  • 親レコードとそれらの子に対する更新が、別個のスレッドで同時に行われている。
  • 同じ親レコードを持つ複数の子レコードに対する更新が、別個のスレッドで同時に行われている。

Salesforce でこれらのロックが保持される時間は非常に短いため、少数のロックエラーを生じているお客様はインテグレーションコードに再試行のロジックを追加することで、この問題に対処できる可能性があります。インテグレーションと一括更新でロックが頻繁に発生するお客様は、複数のスレッドで同時に同じレコードが更新されないようにバッチを順序付ける必要があります。