デッドロックの回避
複数のデータベーステーブルや行の更新を行う他の手続き型ロジック言語と同様に、Apex はデッドロックが発生する可能性があります。デッドロックを回避するため、Apex ランタイムエンジンでは、次の処理が行われます。
- sObject の親レコードをロックしてから子レコードをロックします。
- 同じ型の複数のレコードを編集している場合は、ID 順に sObject レコードをロックします。
開発者はデッドロックが引き起こされないように行をロックする場合、慎重に行ってください。アプリケーション内のあらゆる場所から同じ順序でテーブルと行にアクセスして、標準のデッドロック回避手法が使用されていることを確認してください。