問題
Apexの処理にてVisualforceをxls形式で出力。
「レスポンスサイズが組織の制限 15 MB を超えました。」と表示され処理が中断。
※xls形式のファイルに大量のレコード(行)を作成したため、ファイルの容量が15MBを超過した
①下記リンクの「Visualforce ページの最大応答サイズ 15 MB 未満」が妥当?
②また「Visualforce ページの最大応答サイズ」とは?
③また①の制限は緩和することは可能?
解決策
①認識の通り。制限に抵触した際に発生するエラー。
②回答
Visualforce の仕組みとして、誰かがページにアクセスすると、そのページで要求されたデータ処理がサーバで実行され、その実行結果がレスポンスとしてブラウザに返されることで表示されます。
このレスポンスのサイズが大きいほどサーバにかかる負荷が大きくなってしまうため、規定のレスポンスサイズを超える場合はエラーを発生させることで負荷を回避する仕組みとなっております。
このように、負荷を回避するため予めプラットフォームにて設定されているレスポンスサイズの上限が「Visualforce ページの最大応答サイズ」でございます。
例として、Visualforce ページに大量のレコードや文字・画像データなどが含まれている場合にレスポンスサイズが大きくなり、上記エラーに抵触する可能性が高くなります。
③制限緩和は不可。