質問
🕓 事例公開日 : 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マネージドサービスでの対応となります。詳細は弊社営業担当までご相談ください)
非同期処理やジョブスケジューラの実装については、以下のドキュメントをご参照ください。
- intra-mart Accel Platform 非同期仕様書
https://document.intra-mart.jp/library/iap/public/im_asynchronous/im_asynchronous_specification/index.html - intra-mart Accel Platform 非同期プログラミングガイド
https://document.intra-mart.jp/library/iap/public/im_asynchronous/im_asynchronous_programming_guide/index.html - intra-mart Accel Platform ジョブスケジューラ仕様書
https://document.intra-mart.jp/library/iap/public/im_job_scheduler/im_job_scheduler_specification/index.html - intra-mart Accel Platform SAStruts+S2JDBC プログラミングガイド - ジョブスケジューラ
https://document.intra-mart.jp/library/iap/public/development/sastruts_s2jdbc_programming_guide/texts/application/jobscheduler/index.html - intra-mart Accel Platform スクリプト開発モデル プログラミングガイド - ジョブスケジューラ
https://document.intra-mart.jp/library/iap/public/development/script_programming_guide/texts/application/jobscheduler/index.html