運用時に再設定する可能性があるパラメータ一覧

最終更新日: 2023年5月24日

Webフォームから送信する値が多い場合

Webフォームに多くの項目が含まれるような画面では、Tomcatが一度に送信する各種パラメータを調整する必要があります。

パラメータ名設定ファイル説明
maxHttpHeaderSize conf/server.xml ブラウザからTomcatへ送られるHTTPヘッダの最大値。デフォルトは8192バイト。"1048576" とすると1MBになる。ログに "java.lang.IllegalArgumentException: リクエストヘッダが長すぎます" と出力されている場合に変更するとよい。R9.2.0よりDesignerで設定できる。
maxParameterCount conf/server.xml ブラウザからTomcatへ送られるリクエストパラメータの上限数。デフォルトは20000。ログに "単独のリクエス ト ([20,000]) のリクエストパラメーター (GET および POST) の数が上限値を 超えています。" と出力されている場合に変更するとよい。R9.2.0よりDesignerで設定できる。
maxPostSize conf/server.xml ブラウザからTomcatへ送られるPOST時の上限値。デフォルトは2MB。上の maxParameterCount 変更時、あわせて Connector 要素に指定するとよい。0 よりも大きな値を指定すること。R9.2.0よりDesignerで設定できる。

R8およびR9.0.0〜R9.1.xでは、これらのパラメータを変更した場合、customize/tomcat/conf フォルダに修正した server.xml を保存する。ビルド時はこのファイルが使われるようになる。

R9.2.0以降は、Designerで設定できるようになった。

キャッシュサイズ

wagbyapp起動時に、Tomcatが次のような警告を出すことがあります。

警告 [main] org.apache.catalina.webresources.Cache.getResource 有効期限切れの項目を破棄しても利用可能な領域が不足するため、Web アプリケーション [/wagby] のキャッシュにリソース XXX を追加できません。最大キャッシュサイズの増加を検討してください。

Tomcatの標準のキャッシュサイズは10M(bytes)です。このサイズを超える html, css, javascript, 画像ファイルを検出したとき、警告が表示されます。

対応

wagbyapp/webapps/${プロジェクト識別子}/META-INF/context.xml ファイルを修正します。Resources 要素でキャッシュサイズを明示的に指定してください。例を示します。


<Context path="/wagby"
         privileged="true" useHttpOnly="true">
  <Manager className="org.apache.catalina.session.StandardManager" pathname=""/>
  <Resource name="jdbc/jfc" auth="Container"
            type="javax.sql.DataSource"
            driverClassName="${WAGBY_DATASOURCE_DRIVERCLASSNAME}"
            url="${WAGBY_DATASOURCE_URL}"
            username="${WAGBY_DATASOURCE_USERNAME}"
            password="${WAGBY_DATASOURCE_PASSWORD}"
            maxTotal="${WAGBY_DATASOURCE_MAXTOTAL}"
            maxIdle="${WAGBY_DATASOURCE_MAXIDLE}"
            maxWaitMillis="${WAGBY_DATASOURCE_MAXWAITMILLIS}"
            defaultAutoCommit="false"
	    />
  <Resources cacheMaxSize="20480" />
  <ResourceLink name="jdbc/jfc"
                global="jdbc/jfc"
                type="javax.sql.DataSource"/>
  ...

cacheMaxSize の単位はキロバイトです。ここではデフォルト値の倍を指定していますが、運用環境で警告が生じない数値とするようにしてください。(計算式はないため、何回か数値を指定し、妥当な値を見つけるようにしてください。)