MENU
Abo
某SIer勤務。
ITエンジニアです。
日々の学びをつらつらと書いています。
保有資格:
Salesforce認定アドミニストレーター  
Salesforce認定Platformデベロッパー
Salesforce認定上級Platformデベロッパー
カテゴリー
アーカイブ

Apexでエラーを起こしてガバナ制限を確認してみた時の話。

Apexで開発をしていると意図せずガバナ制限にかかってしまうことがあるのですが、なーんかガバナ制限って自分の中でぼんやりしていた時期があったんですね。

そんな時に実際にガバナ制限エラーを起こして確認したことがありましたので、その時に話。

目次

「Apex CPU time limit exceeded」を起こす

まずは、処理に時間がかかりすぎて発生する「Apex CPU time limit exceede」を意図的に起こしてみます。

とにかく処理に時間をかけてガバナ制限に設定されている時間を超過すればよいので、以下のような無限ループを処理内に設置すればOKです。

Integer i = 0;
While(True){
    i = i + 1;
}

ちなみにCPU時間の制限は下表の通りです。

説明 同期処理 非同期処理
Salesforce サーバの最大 CPU 時間10,000 ミリ秒60,000 ミリ秒
参照元:「実行ガバナと制限」

「Too many SOQL queries」を起こす

続いて、発行される SOQL クエリの合計数が上限を超えることで発生する「Too many SOQL queries」を起こしていきます。

SOQL クエリの合計数の上限はこんな感じ↓

説明 同期処理 非同期処理
発行される SOQL クエリの合計数100200
参照元:「実行ガバナと制限」

同期処理では一度の処理で100回までSOQLを発行できるので、どんなクエリでもいいので101回発行すればエラーになりますね。

for(Integer i = 0; i < 101; i++){
             List<Account> accLists = [Select Id From Account];
}

まとめ

やはり実際に自分で確認してみるのがいいですね。

理解しやすいし頭に残りやすい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某SIer勤務。
Salesforceエンジニアです。
日々の学びをつらつらと書いています。
Certified Administrator
Certified Platform DeveloperⅠ
Certified Platform DeveloperⅡ
Certified Sales Cloud Consultant

コメント

コメントする

CAPTCHA


目次