PDF一括出力時の処理中断とHTTP 504エラーの原因調査

質問

🕓 事例公開日 : 2026-07-14

【背景】

開発環境でPDFDesignerを使った一括出力機能を実装している。数十件程度なら問題なく動作するが、100件規模になると処理が途中で止まってしまう。この時、APサーバーのCPU使用率がほぼ100%に達していた。また、100件分をまとめると1つのZIPファイルが500MBを超える容量になる。セッションタイムアウトやDBコネクションプールはデフォルト設定のままで運用している。



Q1. CPU使用率が100%に達するとエラーログなしで処理が終わることはあるのか

APサーバーのCPU使用率が100%近くまで上がると、エラーメッセージが一切出力されずに処理が停止する現象は発生するのか。また、他に考えられる原因があれば教えてほしい。

Q2. ダウンロード容量やメモリ処理の制限について

複数のPDFを1つのZIPにまとめてダウンロードする際、ファイル容量やメモリ処理に関する制限値は設定されているか。

回答

A1. ロードバランサーのタイムアウトが原因です

ChromeのDevToolsで確認されたHTTP 504 Gateway Timeoutエラーは、Accel-Mart Plusのロードバランサーに設定されているアイドルタイムアウト(600秒=10分)が原因です。リクエスト処理がこの時間を超えると、ロードバランサーがバックエンドサーバーからの応答を待たずにHTTP 504をクライアントに返却します。この時点ではバックエンド側で処理が継続中のため、サーバーログにエラーが記録されません。そのため、ブラウザ上では処理が中断したように見える事象が発生します。

実際のログを確認したところ、5月27日の事象では処理時間が50分を超えており、ロードバランサーのタイムアウト設定を大幅に超過していました。これが今回の事象の直接的な原因です。

以下のいずれかの方法で回避をご検討ください。

  • 処理を10分以内で完了するよう最適化する
  • 時間のかかる処理を非同期処理またはジョブネットで実装し、ロジックフローから呼び出す形に変更する
  • ロードバランサーのアイドルタイムアウト値を10分以上に延長する(標準サービス範囲外のため、Accel-Mart Plusマネージドサービスでの対応となります。詳細は弊社営業担当までご相談ください)

非同期処理やジョブスケジューラの実装については、以下のドキュメントをご参照ください。




A2. 容量制限ではなく処理時間の制限です

ファイル容量自体に直接的な制限はありませんが、前述のとおり処理時間が10分を超えるとロードバランサーのタイムアウトにより処理が中断されます。100件分のPDFをZIPにまとめる処理が10分を超える場合は、A1でご案内した回避方法をご検討ください。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk