Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

SQLException エラー「User requested cancel of current operation」

公開日: Oct 13, 2022
説明
"ABC" バッチジョブ実行中に「First error: SQLException [java.sql.SQLException: ORA-01013: user requested cancel of current operation] thrown but connection was canceled」(「最初のエラー: SQLException [java.sql.SQLException: ORA-01013: ユーザによって現行操作の取り消しが要求されました]がスローされましたが接続がキャンセルされました」)エラーが発生し、ジョブが中止されることがあります。これはクエリが 2 分以上かかる場合に発生します。クエリプランツールを使用して、SOQL クエリが選択的であるかどうかを確認してください。
解決策
「ORA-01013: user requested cancel of current operation」はさまざまな理由で発生します。理由の 1 つに、Apex の一括処理がありますが、インデックスの問題でも発生することがあります。

もっと分かりやすいエラーメッセージが代わりに表示されるべきですが、これはクエリが完了するのに 2 分以上かかったため中断されたことを表しています。  

より長くクエリを実行するために、コードを変更する必要はありません。実際、同じクエリが他の組織では動作する場合もあります。重要なのはデータ分布であるためです。言い換えると、同じクエリが、論理削除されたものを含むレコード数が X である Sandbox では問題なく実行されるのに、レコード数が Y である本番組織では、Y が X よりも大きい場合にタイムアウトする可能性があります。

その理由は、クエリが選択的である場合はインデックスに基づいており実行が高速であり、クエリが非選択的な場合はインデックスに基づいておらずテーブル全体のスキャンが必要になるためレコードの量に応じた時間が必要になるためです。

フィルタが 10% 以下のレコードを返し、かつインデックス項目に基づいている場合、クエリは選択的です。標準のインデックス項目 (たとえば、ルックアップ、主従関係、ユニーク、外部 ID および監査などの項目) とカスタムインデックス項目 (Salesforce によるインデックス) があります。

 クエリプランツールを使用して、SOQL クエリが選択的であるかどうかを判定することができます。
ナレッジ記事番号

000385898

 
読み込み中
Salesforce Help | Article