設問
Universal Containers (UC) は、多数の Apex クラス、トリガ、可能な場合はレコードを変更する自動プロセスを備えた複雑な Salesforce 組織を所有しています。UC は、現在の開発状態では、同じレコードで発生した競合状態の変更を実行していることを確認しました。レコードが同時に更新されないことを保証するには、データアーキテクトは何を推奨する必要がありますか?
選択肢
A. SOQL ステートメントの後にキーワード FOR UPDATE を埋め込みます。
B. 同じレコードを取得する可能性のあるクラスまたはトリガーを無効にします。
C. プログラム ロジックをプロセスとフローに移行します。
D. クラスとトリガーをリファクタリングまたは最適化し、CPU パフォーマンスを最大化します。
解答
A. SOQL ステートメントの後にキーワード FOR UPDATE を埋め込みます。
解説
A. SOQL ステートメントの後にキーワード FOR UPDATE を埋め込みます
正解です。このオプションは、レコードがクエリされた時点でロックをかけるため、他のトランザクションが同時にそのレコードを変更するのを防ぎ、競合状態を回避します。
B. 同じレコードを取得する可能性のあるクラスまたはトリガーを無効にします
不正解です。クラスやトリガーを無効にすると、競合状態の防止にはなりません。また、システムの機能が損なわれる可能性があります。
C. プログラム ロジックをプロセスとフローに移行します
不正解です。プロセスとフローに移行しても、競合状態を防止する仕組みが提供されるわけではありません。プログラムのロジックを移行するだけでは問題は解決しません。
D. クラスとトリガーをリファクタリングまたは最適化し、CPU パフォーマンスを最大化します
不正解です。CPUパフォーマンスを最適化することはシステムの効率化には役立ちますが、競合状態を防ぐための具体的な手段ではありません。
第39問
こちらをクリック