サーバ

最終更新日: 2023年7月31日
R8 | R9

サーバの設定

「環境」メニューから「サーバ」を選択します。

サーバの設定

Tomcat

この説明は、ビルドするWebアプリケーション (wagbyappフォルダ) に反映されます。すなわち、運用するアプリケーションのための設定です。

JVM最大ヒープメモリサイズ(MB)

Java Virtual Machine(JVM)の最大ヒープメモリサイズを指定することができます。初期値は "512" です。単位は MB (メガバイト) です。

ワンポイント

大量のデータを扱う場合や、アプリケーションに同時にログオンする利用者が多い場合は、このメモリサイズを大きくする必要があります。

JVM初期ヒープメモリサイズ(MB)

Java Virtual Machine(JVM)の初期ヒープメモリサイズを指定することができます。初期値は "64" です。単位は MB (メガバイト) です。

JVM最大ヒープメモリパーセンテージ(%)

ビルドしたアプリケーションを Docker コンテナで運用する場合、コンテナで設定された最大メモリ量からパーセントで指定した割合をヒープサイズとして設定します。「JVM最大ヒープメモリサイズ」を空白とし、変わってこの欄を指定することを推奨します。小数一桁まで入力でき、最大値100を指定できます。

この設定は Java 8 u191以降で利用できます。

JVM初期ヒープメモリパーセンテージ(%)

ビルドしたアプリケーションを Docker コンテナで運用する場合、「JVM初期ヒープメモリサイズ」を空白とし、変わってこの欄を指定することを推奨します。小数一桁まで入力でき、最小値0、最大値100を指定できます。

この設定は Java 8 u191以降で利用できます。

ワンポイント

Docker コンテナ運用でも(パーセント指定ではなく)メモリのサイズを指定することは可能です。サイズとパーセントの両方が指定された場合はサイズが優先されます。コンテナ側のメモリ量がサイズで設定した値より大きくなるようにしてください。コンテナのメモリ量より大きな数字を指定した場合、アプリケーションの起動に失敗します。

HTTPポート番号

Tomcatが使用するHTTPポート番号を指定します。初期値は "8921" です。

ワンポイント

Wagbyでは、標準のポート番号として 8921 を使っています。この値を 80 に変えることで、Webブラウザのアドレスバーに入力するURLから ":8921" というポート番号表記をなくすことができます。ただしこの場合、お使いのマシンですでに別のWebサーバが動作していないことを確認してください。たとえばWindows Server系OSの場合、IISというWebサーバが起動していれば、すでに80番ポートを使用しています。この場合はIISを停止してください。

ワンポイント

IIS や Apache Web Server と(Wagbyが提供する)Tomcatを同じポート80番で共存させるような設定を行うこともできます。定義方法が複雑なため、本マニュアルでは割愛します。詳細についてはWagby販売パートナーへご相談ください。

AJP1.3ポート番号/パスワード

この設定は Apache Web Server と連携するときに使用します。初期値は空欄となっており、AJP1.3ポートは利用しないようになっています。設定する場合 "8009" が使われることが多いですが、任意です。

さらにポート番号指定時に "AJP1.3 パスワード" を設定することもできます。指定した場合は server.xml の Connector 要素の secret 属性に値が設定されます。接続元にも同じパスワードを設定してください。

参考資料

サーバポート番号/サーバシャットダウンパスワード9.1.0

Tomcatが使用するサーバポート番号を指定します。初期値は "18005" です。

この値を空白(または負の数)とすると、サーバポートを利用しなくなります。

R9.0.xまで、初期値は "8005" でした。

シャットダウンのパスワード

サーバポートは外部から shutdown 命令を受け付けることができます。このパスワードを設定します。未指定時の初期値は "SHUTDOWN" + Javaソースコードパッケージ名の最後の要素(すべて大文字)です。

Javaソースコードパッケージ名が "jp.jasminesoft.wagby" の場合、シャットダウンパスワードは "SHUTDOWNWAGBY" になります。

リダイレクトポート番号9.1.0

Tomcatが使用するリダイレクトポート番号を指定します。初期値は "18443" です。この設定は通常、変更する必要はありません。

R9.0.xまで、初期値は "8443" でした。

送信リクエストのセッションIDをチェックする(CSRF対応)

送信リクエストIDのチェックを行うかどうかを選択します。初期値は有効になっています。

この設定はセキュリティレベルを向上させるものです。具体的にはCSRF(Cross Site Request Forgeries)といったログオンユーザの権限を利用したサイト攻撃手法が行えなくなります。

HTTPヘッダの最大サイズ (byte)9.2.0

Tomcat 設定ファイル (server.xml) の maxHttpHeaderSize パラメータに反映されます。未指定の場合、デフォルト値 8192 (byte) となります。[詳細...]

リクエストパラメータの最大値9.2.0

Tomcat 設定ファイル (server.xml) の maxParameterCount パラメータに反映されます。未指定の場合、デフォルト値 20000 (byte) となります。[詳細...]

POSTの最大サイズ (byte)9.2.0

Tomcat 設定ファイル (server.xml) の maxPostSize パラメータに反映されます。未指定の場合、デフォルト値 2MB となります。0以上、4バイト整数の最大値 2,147,483,647 までの範囲で指定できます。負数を指定することはできません。[詳細...]

キャッシュの最大値9.2.2

画像などの静的リソースをキャッシュするバッファのサイズをキロバイト単位で指定します。Tomcat 設定ファイル (META-INF/context.xml) の Resources 要素にある cacheMaxSize パラメータに反映されます。未指定の場合、デフォルト値 10240(10MB) となります。[詳細...]

キャッシュを確認する間隔9.2.2

キャッシュされたファイルが変更されたかどうかをチェックする間隔をミリ秒単位で指定します。Tomcat 設定ファイル (META-INF/context.xml) の Resources 要素にある cacheTTL パラメータに反映されます。未指定の場合、デフォルト値 5000(5sec) となります。[詳細...]

ビルド

Javaのバージョン

自動生成されるJavaソースコードが、どのJavaでコンパイルできるかを指定します。

R9.2.0以降

  • Java 11 以降を利用できます。初期値は "11" (Java 11) になっています。 "1.8" (Java 8), "9", "10" を指定することはできません。

R9.0.0〜R9.1.x

  • Java 8から15までを利用できます。初期値は "1.8" (Java 8) になっています。Java 9 以降を利用する場合、この欄にJavaのバージョン (9,10,11,..,15) を指定します。
  • Java 17 を利用する場合は、"11" と記載してください。[詳細...]

Java 8より前のバージョンでは動作しません

"1.6" や "1.7" を指定することはできません。

重要

開発の途中でこのバージョンを変更した場合は、フルビルドを行ってください。スクリプトコードも再作成されます。

Wagbyのバージョンと、対応するJavaバージョンの対応表

こちらをご確認ください。

キャッシュ

Wagbyは一度データベースから読み込んだ値をメモリにキャッシュします。そのキャッシュサイズを指定することができます。単位はメガバイトとなっており、標準は100メガバイトとなっています。

キャッシュ機構の詳細は "Appendix > キャッシュ処理の詳細" をお読みください。

HTTPセッション

HttpSession オブジェクトを格納する場所を指定します。「マルチセッション」を利用する場合に設定します。

格納方式説明
HTTP Session マルチセッションを利用しません。選択肢が空白の場合、こちらになります。
Spring Session HashMap
(テスト用)
マルチセッションを利用します。HttpSession をメモリ内のハッシュマップで管理します。テスト用であり、本番運用を行うことはできません。
Spring Session Redis HttpSession を Redis データベースで管理します。マルチセッションを本番で利用する場合は、こちらを使ってください。

Spring Session HashMap の制約

"Spring Session HashMap" は開発中にマルチセッションを試すために用意されています。この方式はセッションタイムアウト(利用者が一定期間操作しなかった場合、自動的にログオフされる機構)に未対応のため、本番運用には用いないでください。(*1)

Spring Session Redis を利用する場合

Redis はキーバリュー型のデータストア製品で、オープンソースで提供されています。次のパラメータを指定することができます。

設定欄説明
Redisホスト名 Redisサーバのホスト名を指定します。
Redisパスワード Redisサーバに接続するパスワードを指定します。
Redisポート番号 Redisサーバに接続するポート番号を指定します。
Spring Session
ネームスペース
複数のWagbyアプリケーションが1つのRedisサーバを利用する場合、個々のWagbyアプリケーションを識別するためのネームスペースを指定することができます。空白時は "spring:session:" が暗黙的なネームスペースとして利用されます。例えばここに "wagbyapp1" と指定することで、"spring:session:" が自動的に付与された "spring:session:wagbyapp1" というネームスペースで利用されます。なお1つのWagbyアプリケーションで1つのRedisサーバを利用する場合は、本設定は空白でも問題ありません。本設定を行う場合は、(複数の)Wagbyアプリケーションをそれぞれ識別するための文字列を指定する、ということになります。

Wagby アプリケーションを起動する前に、Redis を起動しておく必要があります。 また Wagby アプリケーションを再起動する場合、Redis の保存内容を消去しておくようにしてください。詳細は Wagby Developer Network のページで説明します。

1. マルチセッションは Wagby が内部で利用している Spring framework の機能を使って実現しています。Spring Session HashMap はセッションを格納するデータベースが不要ですぐに動作を確認できる利点がありますが、開発元の Spring チームではこれをテスト用と位置づけており、セッションタイムアウト機構に対応させていません。

認証

認証方式(LDAP,ActiveDirectory,OpenID Connect)は「アカウント > Windows Active Directory/LDAP による認証」をお読みください。

同一ログオンアカウントでシステムにログオンできる最大数

同一アカウントでログオンできる最大数を指定することができます。標準値は3となっています。この値を -1 とすると、無制限になります。

ここで指定したログオン回数を超えたログオンを試みた時には、自動ログオフ機能(もっとも古い時刻のログオンセッションをログオフさせる)により、そのユーザをログオン可能にします。

自動ログオフ機能を無効にすることで、ログオンさせないようにすることもできます。

ジョブを実行するアカウントは、ジョブ実行時のみ、この設定は適用対象外となります。つまりジョブの実行は同時に複数行うことができます。

「ジョブ専用アカウント」プリンシパルを持つユーザーが多重ログオン無制限となるわけではありません。ジョブ実行時のみに限定されます。

最大接続ログオン数

アプリケーションへログオンできる最大数を指定します。この数を超えたログオンを行うことはできません。標準値は100となっています。この値を -1 とすると、無制限になります。

注意

ログオンできる最大数の調整は、お使いのハードウェアの性能(CPU速度、メモリ量)に依存します。最適値についての一般的な計算式はありません。この値のチューニング方法等については、Web サーバ設定の専門家またはWagby販売パートナーにご相談ください。

セッションタイムアウト

Webアプリケーションサーバのセッションタイムアウトの設定を行うことができます。単位は秒です。利用者がここで指定した時間、何もアクションをおこさなかった場合、自動的にログオフ処理を行います。標準値は「1,200秒(20分)」となっています。

参考情報 - application.properties

この設定は、ビルドしたアプリケーションの次のファイルに反映されます。
wagbyapp/webapps/(プロジェクト名)/WEB-INF/classes/application.properties

ビルドされた wagbyapp の上記ファイルを直接、編集して再起動することで(ビルド処理を行わずに)セッションタイムアウトを変更することができます。

server.servlet.context-parameters.session_timeout=1200

修正後、Webアプリケーションを再起動すると設定が有効になります。

注意

Tomcat 単体ではなく Apache などの Web サーバと連携している場合、Webサーバのタイムアウト設定もあわせて行なってください。(詳細は Web サーバのマニュアルをお読みください。)

参考情報 - session-timeout

wagbyapp/conf/web.xml に記載されている session-timeout は使っていません。

※ 正確には、web.xml の session-timeout 値は新規にセッションが作成された場合のデフォルト値として Tomcat が使うものですが、ユーザのログオン処理時に Wagby が application.properties に記載されている session_timeout の値で「上書き」しています。

Redis利用時の挙動

Redis 利用時かつオートスケールでない場合は「最後にアクセスした時間」ではなく「ログオンした時刻がもっとも古い時刻のログオンセッション」からログオフされます。

※ Redis 利用時でもオートスケールが有効の場合は、最後にアクセスした時間からログオフされます。

セッションタイムアウトが起こった場合の動作9.1.4

セッションタイムアウトが起こったあとにWagbyの画面を操作しようとするとログオン画面が表示されます。その際、"接続の有効期間が切れました(もしくは管理者によって接続が解除されました)。再ログオンしてください。" というメッセージが表示されます。

セッションタイムアウト

クラスタリング

Wagby Developer Network(R9) > クラスタリングの設定 をお読みください。

関連するページ