4. Webコンテナ

Webコンテナに関する設定について説明します。

4.1. Webコンテナ設定項目・設定方法

Webコンテナの設定項目の設定方法については次の2通りがあります。

運用管理コンソールによる設定

運用管理コンソールでは各種情報の設定ができます。なお運用管理コンソールの使い方と詳細については、「操作方法 > 運用管理コンソール」を参照してください。

MOによる参照と設定

運用管理コンソールで設定できる項目は、JMXのMOとしてもアクセス可能です。項目の設定方法については「 各サービスの属性」を参照してください。

4.2. Webコンテナ設定項目一覧

4.2.1. MOで設定可能な項目一覧

Dottedname : server.web-container

表1.4.2.1-1
属性名
(attribute-name)
説明 既定値
log-available-accesslog アクセスログのON/OFFを指定します。
true
session-replication-jndi-url セッションレプリケーションを行っている場合に指定するHTTPセッションを保存する先のJNDIサーバのURLです。次の例のようなURLで記載します。

例:
rmiiiop://<ホスト1>:<JNDIサーバポート1>,<ホスト2>:<JNDIサーバポート2>…

ホスト名にはレプリケーションさせるJNDIサーバが動作しているホスト名またはIPアドレスを記述します。

JNDI サーバポート番号はJNDI サーバが動作しているWebOTX ドメインの組み込みIIOP リスナのポート番号となります。インストール時に作成されるdomain1のポート番号は7780 です。省略したときは自ドメインの組み込みIIOP リスナのポート番号が使用されます。

複数のWebOTXドメイン間でHTTPセッションをレプリケートするときはレプリケートする全てのWebOTXドメインのJNDIサーバのホスト名、ポート番号を列挙した指定を各WebOTXドメインに対して設定します。列挙する順番は意識する必要はありません。

HTTPセッションのみのレプリケーションを、レプリケーション先のJNDIサーバを列挙して設定します。

<null>
pool-tags-with-extends JSP タグのプーリングを行うかどうかを表します
false



Dottedname : server.web-container.property

表1.4.2.1-2
属性名
(attribute-name)
説明 既定値
j2ee-enabled 認証情報のEJBコンテナへの伝播を ON/OFF します。"false" を指定するとこれらの機能が利用できなくなります。次のように、property の name、および value属性として指定します。

otxadmin> set  server.web-container.property.j2ee-enabled=true
※Express エディションにおいて WebOTX V8.1以前の Web エディション相当の動作をさせる場合は本パラメータを false に設定する必要があります。同時に sso-enabled の値も false に設定してください。
true
cross-context 同じ仮想ホスト上で動作している他の WebApplicationのコンテキスト情報を参照可能にするかどうかの指定をします。
otxadmin> set  server.web-container.property.cross-context=true
forwardRequestURL Forward先のサーブレットでHttpServletRequest#getRquestURL()を実行した時、forward前のURLを返すか forward後のURLを返すかの指定です。

otxadmin> set  server.web-
container.property.forwardRequestURL=forward
original: forward前のURLを返す
forward: forward後のURLを返す

既定値は、WebOTX V7.11以前の値(original)から変更されています
forward

auth_<認証種別>_<属性名> Authenticatorの属性に値を設定します。
<認証種別> basic = BASIC認証
client = クライアント認証
form = FORM認証
digest = DIGEST認証
all = 全ての認証
<属性名> 値を設定する属性名

otxadmin> set  server.web-
container.property.auth_all_changeSessionIdOnAuthentication=true

default-encoding Servlet や JSP のレスポンス文字エンコーディングのデフォルト値を設定します。

otxadmin> set  server.web-container.property.default-encoding=Shift_JIS

priority-jsp-in-encoding JSPファイルをコンパイルする際、どの文字コードを読み込むかをWebアプリケーションの指定より高い優先度で文字コードを指定することができます。

otxadmin> set  server.web-container.property.priority-jsp-in-encoding=windows-31j

priority-jsp-out-encoding コンパイルしたJSPファイルが出力するHTTPレスポンスの文字コードをWebアプリケーションの指定より高い優先度で指定することができます。

otxadmin> set  server.web-container.property.priority-jsp-out-encoding=windows-31j

priority-response-encoding Servlet や JSPのHTTPレスポンスの文字コードをWebアプリケーションの指定より高い優先度で指定することができます。

otxadmin> set  server.web-container.property.priority-response-encoding=windows-31j



Dottedname : server.web-container.plugin-config

Caution
以下の設定を変更し、変更内容をWebサーバに反映するには、Webサーバの再起動が必要です。

表1.4.2.1-3
属性名
(attribute-name)
説明 既定値
plugin-query-mode プラグインの動的反映オプションを On/Off/Once で指定します。ここで指定された動的反映オプションは、Webサーバプラグインがデフォルトで使用する設定ファイル(mod_jk-xx.conf, isapi_redirect.properties)に出力されます。

動的反映オプションについては、下記「 Webサーバプラグイン定義ファイルの設定方法」を参照してください。
On
plugin-dynamic-reflection-kind 動的反映手段としてクエリー通信を行う(query)かファイルのリロードを行う(file)かを指定します。
plugin-query-modeが"On" の場合のみ有効です。
query
jk-mount-file-reload jk-mount-file で指定したファイルを再読み込みする間隔(秒単位)を指定します。詳細は、JkMountFileReloadを参照してください。
V10からは plugin-query-modeが"On" かつ plugin-dynamic-reflection-kind が "file"の場合のみ有効です。
60
plugin-query-interval 動的反映クエリーの実行間隔(秒単位)を指定します。 plugin-query-modeが"On" かつ plugin-dynamic-reflection-kind が "query"の場合のみ有効です。 60
plugin-query-timeout 動的反映クエリーのタイムアウト時間(秒単位)を指定します。 60
jk-mount-copy JkMountCopyに記述するタイプを On/Off/All で指定します。ここで指定されたものは、Webサーバプラグインがデフォルトで使用する設定ファイル(mod_jk-xx.conf)に"JkMountCopy"として出力されます。詳細は以下のJkMountCopyを参照してください。 Memo1 All
jk-unmount-list JkUnMountを出力するアプリケーションを","(カンマ)区切りで指定します。ここで指定されたものは、Webサーバプラグインがデフォルトで使用する設定ファイル(uriworkermap.properties)に以下のとおり出力されます。詳細は!<アンマウントパス>を参照してください。
!<設定値1>=*
!<設定値2>=*
...
Memo3

例:/testAPP1/*,/favicon.ico
<null>
log-file-name ログのファイル名を絶対パスまたは相対パスで指定します。 相対パスは ${INSTANCE_ROOT}/logs/web からの相対パスです。 既定値は ${JKPLUGIN_NAME}.log で、${JKPLUGIN_NAME} は利用するWebサーバの種別により変わります。 ${JKPLUGIN_NAME}.log
log-rotate-enable プラグインのログのローテートを行うかどうかを指定します。"true"を設定した場合、log-rotate-intervalの設定に応じた内容が、Webサーバプラグインがデフォルトで使用する設定ファイルに出力されます。 Memo1 true
log-rotate-options Apache連携時のログローテートオプションの指定を行います。
既定値ではオプションを指定しません。
指定できるオプションは rotatelogs のマニュアルを参照してください。 Memo1
<null>
log-rotate-generations ログローテーションの世代数を指定します。
この設定は IIS と連携を行っているときに有効です。 Memo2
3
log-rotate-interval プラグインのログのローテートを行う間隔を指定します。(単位:秒)
ローテート間隔をファイルサイズで指定する場合は、本パラメータに「0」を設定し、log-rotate-size に任意のサイズ(単位はMBとなります)を指定してください。
86400
log-rotate-size ローテートを行う際のファイルの最大サイズを指定します。(単位:MByte)
0(既定値)を設定した場合ローテートは行われません。
0
plugin-log-level プラグインのログレベルを trace/debug/info/warn/error で指定します。ここで指定されたログレベルは、Webサーバプラグインがデフォルトで使用する設定ファイルに出力されます。
詳細は以下を参照してください。
error
plugin-host-name プラグインの連携先ホスト名を指定します。ここで指定されたホスト名は、Webサーバプラグインがデフォルトで使用する設定ファイル(workers.properties)に出力されます。詳細は以下のhostを参照してください。 localhost
agent-ajp-port プラグインが連携するエージェントプロセスのAJPリスナのポート番号を指定します。ここで指定されたポート番号は、Webサーバプラグインがデフォルトで使用する設定ファイル(workers.properties)に出力されます。詳細は以下のportを参照してください。 8099
tpsystem-ajp-port プラグインが連携するTPシステムのAJPリスナのポート番号を指定します。ここで指定されたポート番号は、Webサーバプラグインがデフォルトで使用する設定ファイル(workers.properties)に出力されます。詳細は以下のportを参照してください。 20102
agent-ajp-pool-size エージェントプロセスのAJPリスナに接続するコネクションのプール数を指定します。ここで指定されたプール数は、Webサーバプラグインがデフォルトで使用する設定ファイル(workers.properties)に"connection_pool_size"として出力されます。詳細は以下のconnection_pool_sizeを参照してください。
150
tpsystem-ajp-pool-size TPシステムのAJPリスナに接続するコネクションのプール数を指定します。ここで指定されたプール数は、Webサーバプラグインがデフォルトで使用する設定ファイル(workers.properties)に"connection_pool_size"として出力されます。詳細は以下のconnection_pool_sizeを参照してください。
150

Memo1
この項目は、WebOTX Webサーバまたは Apache HTTP Server を使用している場合にのみ有効です。

Memo2
この項目は、IIS を使用している場合にのみ有効です。

Memo3
コンテキストルートを"/testApp1"として配備したアプリケーションへのアクセスを全て無効にする場合は、"/testApp1,/testApp1/*"と設定する必要があります。


Dottedname : server.web-container.current-version-config.current-version.<コンテキストルート名>

表1.4.2.1-3-2
属性名
(attribute-name)
説明 既定値
version セッション振り分けバージョン管理Memoで使用するWebアプリケーションのカレントバージョンです。同一コンテキストルート名で配備した複数のWebアプリケーションのバージョンを指定します。
otxadmin> set
server.web-container.current-version-config.current-version./sample.version=02
なし

Memo
  1. セッション振り分けバージョン管理の概要
    セッション振り分けバージョン管理は同一コンテキストルート名で配備された複数の異なるバージョンのWebアプリケーションから、リクエストをセッションに紐づけて振り分ける機能のことです。カレントバージョンはセッションを持たないリクエストをどのWebアプリケーションに振り分けるかを示します。
    例えば次のような状態の場合、

    セッション振り分けバージョン管理概要図


    各クライアントからのリクエストは次のように処理されます。
    • クライアントA : セッションIDの001から/sample(version=01)にリクエストを振り分けます。
    • クライアントB : セッションIDが無いためカレントバージョンの/sample(version=02)にリクエストを振り分けます。
    • クライアントC : セッションIDの002から/sample(version=01)にリクエストを振り分けます。
    • クライアントD : セッションIDの003から/sample(version=02)にリクエストを振り分けます。
  2. セッション振り分けバージョン管理の使用方法
    Webアプリケーションを配備する際にcontextversionオプションを指定します。 オプションを指定することで同一コンテキストルート名のWebアプリケーションを複数配備することができます。 ただし、アプリケーション名は異なる名前にする必要があります。
    otxadmin> deploy --contextversion 01 --contextroot /sample --name sample-01 sample.war
        :
    otxadmin> deploy --contextversion 02 --contextroot /sample --name sample-02 sample.war
    

  3. カレントバージョンの更新契機
    次のような場合、カレントバージョンが更新されます。カレントバージョンに指定されているWebアプリケーションが配備解除された場合等は 残ったカレントバージョンを辞書的に比較し最大のものがカレントバージョンとして設定されます。
    • Webアプリケーションが配備された場合(配備したWebアプリケーションがカレントバージョンとなります)
    • カレントバージョンに指定したWebアプリケーションが配備解除、またはdisable状態に変更された場合
    • setコマンドによりカレントバージョンの更新した場合



Dottedname : server.http-service

表1.4.2.1-4
属性名
(attribute-name)
説明 既定値
sso-enabled シングルサインオンのON/OFFを指定します。次のように指定します。
otxadmin> set server.http-service.virtual-server.server.sso-enabled=false

※Express エディションにおいて WebOTX V8.1以前の Web エディション相当の動作をさせる場合は本パラメータを false に設定、かつ、j2ee-enabled の値も false に設定してください。
false


Dottedname : server.http-service.access-log

表1.4.2.1-5
属性名
(attribute-name)
説明 既定値
format アクセスログの書式を指定します。次のように指定します。
otxadmin> set server.http-service.access-log.format="%a -
%u %t %m %U %q %H %s %b %D"
%a - %u %t "%m %U %q %H" %s %b %D


Dottedname : server.http-service.virtual-server.<バーチャルサーバ名>

表1.4.2.1-6
属性名
(attribute-name)
説明 既定値
default-web-module コンテキスト名を省略した時に動作する、デフォルトのWebモジュールです。 <null>
hosts 仮想サーバを選択するためのホストリクエストヘッダの中で有効な値のカンマ(,)区切りのリストです。 localhost
id 仮想サーバの識別名です。
docroot 仮想サーバのドキュメントルートです。 ${com.nec.webotx.instanceRoot}/docroot
network-listeners 仮想サーバに関連付けされているHTTPリスナのカンマ(,)区切りのリストです。
現在使用しているWebサーバは以下の方法で確認できます。
確認方法Webサーバ
"agent-ajp-listener"の設定あり、かつserver.network-config.network-listeners.network-listener.agent-ajp-listener.enabled が true の場合Webコンテナ外部のWebサーバです(アプリケーションをエージェントプロセスに配備したケース)。
"tpsystem-ajp-listener"の設定あり、かつserver.network-config.network-listeners.network-listener.tpsystem-ajp-listener.enabled が true の場合Webコンテナ外部のWebサーバです(アプリケーションをプロセスグループに配備したケース)。
"http-listener-1"の設定あり、かつserver.network-config.network-listeners.network-listener.http-listener-1.enabled が true の場合Webコンテナ内蔵のJava Webサーバ(HTTP)です。
"http-listener-2"の設定あり、かつserver.network-config.network-listeners.network-listener.http-listener-2.enabled が true の場合Webコンテナ内蔵のJava Webサーバ(HTTPS)です。
sso-cookie-secure シングルサインオン(SSO)で使用されるJSESSIONIDSSOクッキーのセキュリティ設定です。 dynamic


Dottedname : server.http-service.virtual-server.<バーチャルサーバ名>.property

表1.4.2.1-7
属性名
(attribute-name)
説明 既定値
allowLinking (UNIXでのみ有効)
Webアプリケーションのディレクトリより、シンボリックリンクをたどる場合、trueを設定する
。次のように、property の name、および value属性として指定します。Memo1
otxadmin> set  server.http-service.virtual-
server.server.property.allowLinking=true
false
valve_<任意> Valveを実装したクラスを指定します。次のように、property の name、および value属性として指定します。
valve_=org.apache.catalina.valves.RequestDispatchTestValve
なお、複数のValveを登録する場合は "valve_" に続けて重複しないような任意の文字を指定してください。例えば "valve_1", "valve_2" のように指定します。Memo2
docroot 仮想サーバのドキュメントルートです。
server.http-service.virtual-server.virtual-server-
name.docroot
の値をオーバーライドします。
caseSensitive Webアプリケーション内のパス名での、大文字・小文字の区別有無の指定です。Memo3

true: 大文字・小文字のチェックが無効にされます。
false: 大文字・小文字を区別します。
true

Memo1
allowLinkingの設定(true)を有効にするには、caseSensitiveをfalseに設定する必要があります。

Memo2
この設定は、統合運用管理ツールか 運用管理コンソールで行ってください。

Memo3
この設定は、Windows プラットフォーム (または英字の大小を区別するファイル システムを持たない OS)では、 このフラグを false に設定してはいけません。 セキュリティ問題、JSP ソース コードの暴露を許すことになる問題があります。


Dottedname : server.network-config.network-listeners.network-listener.<ネットワークリスナ名>


  Dottedname : server.http-service.http-listener.http-listener-name 旧名(非互換です)

WebOTX V9よりHTTPリスナの設定を変更しています。設定はtransport、protocol、thread-poolに分散して行い、それぞれを選択することでHTTPリスナを定義します。また種類の異なるHTTPコネクタを混在させて使用することが可能です。

  Dottedname : server.network-config.transports.transport.transport-name

  Dottedname : server.network-config.protocols.protocol.protocol-name.http

  Dottedname : server.thread-pools.thread-pool.thread-pool-name



Caution
配備先とWebサーバによって設定する<ネットワークリスナ名>が変わります。
エージェントプロセス

エージェントプロセスに配備したアプリケーションを実行する場合は、以下の<ネットワークリスナ名>が対象になります。

利用するWebサーバ<ネットワークリスナ名>
IISやWebOTX Webサーバ等の外部Webサーバagent-ajp-listener
Java版内蔵WebサーバのHTTPプロトコルhttp-listener-1
Java版内蔵WebサーバのHTTPSプロトコルhttp-listener-2
プロセスグループ

プロセスグループに配備したアプリケーションを実行する場合は、以下の<ネットワークリスナ名>が対象になります。*2

利用するWebサーバ<ネットワークリスナ名>
IISやWebOTX Webサーバ等の外部Webサーバtpsystem-ajp-listener

表1.4.2.1-8
属性名
(attribute-name)
説明 既定値
enabled リスナの活性状態を表します。 falseを設定した場合、リスナのポート自体が開きません。
運用管理コンソール用のポート(既定値:5858)を閉じたい場合は、以下のように設定してください。
otxadmin> set server.network-config.network-listeners.network-listener.admin-listener.enabled=false
本属性をfalseにするとポートが開かないので接続することができなくなります。 ただし、外部Webサーバと連携設定用のリスナ(agent-ajp-listener、tpsystem-ajp-listener)の本属性をflaseにした場合はリクエスト受信時に外部Webサーバが接続不可を検出し503エラーが返却されます。
true
name リスナの名称です。
port 連携する Webサーバとの通信用ポート番号、もしくはHTTPリクエストを受け付けるポート番号を表示します。
address エージェントプロセス

複数アドレスを持つサーバで、特定のアドレスに対するリクエストのみ許可したい場合に指定します。

プロセスグループ

接続制限が無いため使用不可です。

0.0.0.0
protocol リスナが使用するプロトコル要素の名称です。
thread-pool リスナが使用するスレッドプールの名称です。
transport リスナが使用するトランスポート要素の名称です。


Dottedname : server.network-config.transports.transport.<トランスポート名>

Caution
プロセスグループ

プロセスグループに配備したアプリケーションを実行する場合は、transportの設定は使用されません。


表1.4.2.1-9
属性名
(attribute-name)
説明 既定値
name トランスポートの名称です。
accept-count リクエスト受け付け用ソケットのバックログ値です。
コネクションリクエストを受け付けて待ち合わせをおこなうキューの長さを指定します。このキューがいっぱいになるとリクエストを拒否します。
60


Dottedname : server.network-config.protocols.protocol.<プロトコル名>

Caution
配備先とWebサーバによって設定する<プロトコル名>が変わります。
エージェントプロセス

エージェントプロセスに配備したアプリケーションを実行する場合は、以下の<プロトコル名>が対象になります。

利用するWebサーバ<プロトコル名>
IISやWebOTX Webサーバ等の外部Webサーバagent-ajp-protocol
Java版内蔵WebサーバのHTTPプロトコルhttp-protocol
Java版内蔵WebサーバのHTTPSプロトコルhttps-protocol
プロセスグループ

プロセスグループに配備したアプリケーションを実行する場合は、以下の<プロトコル名>が対象になります。*2

利用するWebサーバ<プロトコル名>
IISやWebOTX Webサーバ等の外部Webサーバtpsystem-ajp-protocol

表1.4.2.1-10
属性名
(attribute-name)
説明 既定値
name プロトコルの名称です。
security-enabled エージェントプロセス

SSL通信を行うかを設定します。

プロセスグループ

使用不可です。

false
type 使用するコネクタを指定します。
"HTTP/1.1 HTTP/2(nio)"、"AJP(ajp)"、"HTTP/2(apr)"、"AJP(tpm)"から選択します。

プロトコル名が"http-protocol"の場合: HTTP/1.1(nio)

プロトコル名が"agent-ajp-protocol"の場合: AJP(ajp)



Dottedname : server.network-config.protocols.protocol.<プロトコル名>.http

Caution
配備先とWebサーバによって設定する<プロトコル名>が変わります。
エージェントプロセス

エージェントプロセスに配備したアプリケーションを実行する場合は、以下の<プロトコル名>が対象になります。

利用するWebサーバ<プロトコル名>
IISやWebOTX Webサーバ等の外部Webサーバagent-ajp-protocol
Java版内蔵WebサーバのHTTPプロトコルhttp-protocol
Java版内蔵WebサーバのHTTPSプロトコルhttps-protocol
プロセスグループ

プロセスグループに配備したアプリケーションを実行する場合は、以下の<プロトコル名>が対象になります。*2

利用するWebサーバ<プロトコル名>
IISやWebOTX Webサーバ等の外部Webサーバtpsystem-ajp-protocol

表1.4.2.1-11
属性名
(attribute-name)
説明 既定値
default-virtual-server プロトコルに関連付けされた仮想サーバ名です。
proxy-name HttpServletRequest.getServerName() が返すサーバ名を設定します。 またsendRedirect実行時の宛先URLにも影響します。詳細は欄外の備考を参照。 <null>
proxy-port HttpServletRequest.getServerPort() が返すポート番号を設定します。 またsendRedirect実行時の宛先URLにも影響します。詳細は欄外の備考を参照。 <null>
scheme HttpServletRequest.getScheme() が返すスキームを設定します。 またsendRedirect実行時の宛先URLにも影響します。 <null>
xpowered-by レスポンスに X-Powered-By ヘッダを付加するかどうかを表します。 true
max-post-size-bytes POSTで扱える最大データサイズを指定します。この上限値は、POSTリクエストのデータをパラメータとしてアクセス (HttpServletRequest.getParameter()等)した場合に効きます。ストリームを取得(HttpServletRequest.getInputStream())して 読み込む処理を行っている場合は制限を受けません。 指定する単位はバイトです。次のように、property の name、およびvalue属性として指定します。
otxadmin> set server.network-config.protocols.protocol.http-protocol.http.max-post-size-bytes=4194304
この属性に -1 をセットすると無制限になります。無制限を設定した場合、大量のパラメタを扱うことができますがOutOfMemoryErrorが発生するリスクがあります。適切な上限値を設定することを推奨します。
WebOTX V7 以前では "max-post-size" という名前でした。
WebOTX V8 では "maxPostSize" という名前でした。
2097152
header-buffer-length-bytes リクエストとレスポンスの HTTP ヘッダの最大サイズ (byte単位)を指定します。
HTTPリクエスト受信バッファサイズにも反映されます。
デフォルト値は8192 (8KB) です。

外部Webサーバ連携時のHTTPヘッダ最大サイズはAJPプロトコルの制限により8KB固定のため、リクエストHTTPヘッダサイズの制限は外部Webサーバ側で行います。
otxadmin> set server.network-config.protocols.protocol.http-listener.http.header-buffer-length-bytes=4096

※HTTPリクエスト受信バッファサイズとはソケットからHTTPリクエストデータを一回で読み込む最大サイズです。
8192
uri-encoding URIのエンコードに使う文字コードを設定します。次のように指定します。
otxadmin> set server.network-config.protocols.protocol.http-listener.http.uri-encoding=Windows-31J
WebOTX V8 では "URIEncoding" という名前でした。V5 に設定項目は存在しません。
UTF-8

※V7 以前は ISO-8859-1
use-body-encoding-for-uri このパラメータは、ボディデータのパラメータと同じエンコーディングをURIのパラメータに使うかどうかの指定です。 同じエンコーディングをURIのパラメータに使う場合は"true"を指定します。次のように指定します。
otxadmin> set server.network-config.protocols.protocol.http-listener.http.use-body-encoding-for-uri=true
WebOTX V8 では "useBodyEncodingForURI" という名前でした。
false


Dottedname : server.network-config.protocols.protocol.<プロトコル名>.http.property

Caution
配備先とWebサーバによって設定する<プロトコル名>が変わります。
エージェントプロセス

エージェントプロセスに配備したアプリケーションを実行する場合は、以下の<プロトコル名>が対象になります。

利用するWebサーバ<プロトコル名>
IISやWebOTX Webサーバ等の外部Webサーバagent-ajp-protocol
Java版内蔵WebサーバのHTTPプロトコルhttp-protocol
Java版内蔵WebサーバのHTTPSプロトコルhttps-protocol
プロセスグループ

プロセスグループに配備したアプリケーションを実行する場合は、以下の<プロトコル名>が対象になります。*2

利用するWebサーバ<プロトコル名>
IISやWebOTX Webサーバ等の外部Webサーバtpsystem-ajp-protocol

表1.4.2.1-12
属性名
(attribute-name)
説明 既定値
maxParameterCount 処理可能なリクストパラメータの上限を指定します。
otxadmin> set server.network-config.protocols.
protocol.http-listener.http.property.maxParameterCount=2000
指定値を超えたパラメータは無視されます。 -1 を設定した場合、上限値は無制限となります。
Caution
このパラメータをむやみに大きくすることはセキュリティ上問題があります。詳細な情報については以下の参考ページを参照ください。
参考:Apache Tomcat におけるサービス運用妨害 (CPU 資源の消費) の脆弱性
10000
xpoweredByString レスポンスヘッダ"X-Powered-By"の値を設定します。

Servletx.x/ JSP/x.x (WebOTX ${version} Java/${java.runtime.version})
server レスポンスヘッダ"Server"に指定する値を設定します。
otxadmin> set server.network-config.protocols.protocol.http-protocol.http.property.server="Application Server"

なし


Dottedname : server.thread-pools.thread-pool.<スレッドプール名>

Caution
プロセスグループ

プロセスグループに配備したアプリケーションを実行する場合は、thread-poolの設定は使用されません。


表1.4.2.1-13
属性名
(attribute-name)
説明 既定値
max-thread-pool-size エージェントプロセス

Webコンテナが生成できるリクエスト受け付けプロセッサの最大数を設定します。

プロセスグループ

TPシステムのAJPリスナの「同時接続クライアント数」、プロセスグループの「スレッド数」が相当します。
[TPシステム > 運用管理エージェント設定項目・設定方法 > TPシステム設定項目一覧] を参照してください。

スレッドプール名が"admin-thread-pool"の場合:10

スレッドプール名が"adminrest-thread-pool"の場合:1

スレッドプール名が"http-thread-pool"の場合:100

min-thread-pool-size エージェントプロセス

Webコンテナ起動時に生成するリクエスト受け付けプロセッサの数を設定します。

プロセスグループ

AJPリスナは処理スレッドの動的制御を行なわないため、対応する設定はありません

25
limit-thread-pool-size エージェントプロセス

Webコンテナは、アクティブなリクエスト受け付けプロセッサの数が最大数に近づいた時に警告ログを出力します。その閾値を設定します。

プロセスグループ

AJPリスナは処理スレッドの動的制御を行なわないため、対応する設定はありません

80




備考.sendRedirect実行時の宛先URLについて
下図のようにリクエスト経路に負荷分散装置(SSLアクセラレータ)を配置して、httpsをhttpに変換している場合は、クライアントの宛先URLとsendRedirect時のURLが異なりエラーが発生します。このような場合、プロパティを設定(scheme、proxy-port、proxy-name)し宛先URLを変更することで、正常にアクセスできるようになります。

sendRedirect概要図

*1)アプリケーションをプロセスグループに配備した場合にアクセスログを採取するには accessLoggingEnabled プロパティの代わりに <domain>/config/tpsystem/logconf/<apg>-<pg>/log4otx.xml を開き name="server" の logger のログレベルを DEBUG に変更します。

<logger name="server" additivity="true">
 <level value="DEBUG" class="com.nec.webotx.logging.OTXLogLevel"></level>
 <appender-ref ref="WOTRACE"></appender-ref>
</logger>

注)アプリケーションをプロセスグループに配備した場合、アクセスログのフォーマットを変更することはできません。また、この設定を行うと性能に影響があります。特に必要のない限り、本番等での使用はお控ください。

*2) 一部の項目は、旧バージョンと同様にシステムプロパティでも設定することが可能です。「 JavaVMオプションで設定可能な項目一覧」を参照してください。

Dottedname : server.network-config.protocols.protocol.<プロトコル名>.ssl

Caution
SSL通信関連の設定のため、<プロトコル名>が"https-protocol"の場合のみで有効です。
IISやWebOTX Webサーバ等の外部Webサーバを利用する場合は外部Webサーバ側で設定します。
表1.4.2.1-14
属性名
(attribute-name)
説明 既定値
cert-nickname 証明書データベースやPKCS#11トークンで証明されるサーバの愛称です。その証明書で、名前の書き方はtokenname:nicknameです。この属性のtokenname:の部分を含むかどうかは任意です。
client-auth-enabled SSL3クライアント認証がACLに基づくアクセス制御と無関係の全てのリクエスト上で実行されるかどうかを決定します。既定値は無効(false)です。 false
ssl2-ciphers 使用されるSSL2暗号のコンマ区切りの一覧です。有効化には前に+をつけ、無効化には前に-をつけて下さい。有効な値はrc4, rc4export, rc2, rc2export, idea, des, desede3です。値が指定されない場合、全ての暗号が有効化されます。
ssl2-enabled SSL2が有効化されるかどうかを決定します。 false
ssl3-enabled SSL3を有効化するかどうかを決定します。 true
ssl3-tls-ciphers 有効なSSL3暗号スイートをコンマ区切りで指定します。

指定できる値は SunJSSE が実装する暗号スイートです。
詳しくは次のドキュメントを参照してください。

https://docs.oracle.com/javase/jp/8/docs/index.html
 > セキュリティ
  > Oracleプロバイダ
   > SunJSSE プロバイダ

有効化には前に + をつけ、無効化には前に - をつけて下さい。

設定例:
+SSL_RSA_WITH_RC4_128_MD5,+SSL_RSA_EXPORT_WITH_RC4_40_MD5
値が指定されない場合、SunJSSE がサポートする既定の全ての暗号スイートが有効化されます。
tls-enabled TLSを有効化するかどうかを決定します。 true


Dottedname : server.applications.web-module.<アプリケーション名>.module.<Webモジュール名>.engine.web.web-module-config

表1.4.2.1-16
属性名
(attribute-name)
説明 既定値
context-root コンテキストルートの名前です。*5
cross-context 同じ仮想ホスト上で動作している他の Web Applicationのコンテキスト情報を参照可能にするかどうかの指定をします。 true
override この値をtrueに指定すると、web-container要素の設定を無視します。falseの場合web-container要素の設定を読み込みますが、web-module要素やnec-web.xmlに同じ機能の設定があった場合web-container要素の設定を上書きします。
対象となるweb-container要素の設定は「cross-context、priority-jsp-in-encoding、priority-jsp-out-encoding、priority-response-encoding」です。
false
privileged 内部クラスへのアクセスを許可するかどうかを表します。 false

*5) コンテキストパスに "/" を含めると一部機能が利用できなくなります。詳しくは [ 注意制限事項 > Webコンテナ > 注意事項] を参照してください。



Dottedname : server.session-config.session-manager.manager-properties

表1.4.2.1-17
属性名
(attribute-name)
説明 既定値
reap-interval-in-seconds バックグラウンドスレッド周期です。 Webアプリケーションがバックグラウンドスレッドを実行する周期を秒単位で指定します。
有効な値は、1〜2147483647です。

バックグラウンドスレッドでは、 セッションのタイムアウトチェック処理及びサーブレットのクラスファイルの更新チェック処理が実行されます。 セッションのタイムアウトチェック処理は、さらにタイムアウトチェック頻度との組み合わせで実行周期を決定します。
タイムアウトチェック頻度については、process-expires-frequency属性を参照してください。
60
process-expires-frequency タイムアウトチェック頻度です。 セッションのタイムアウトチェックをバックグラウンドスレッドの実行周期で何回おきに実行するかを指定します。
有効な値は、1〜2147483647です。

セッションのタイムアウトチェックの周期=「バックグラウンドスレッド周期」×「タイムアウトチェック頻度」となります。
バックグラウンドスレッド周期については、reap-interval-in-seconds属性を参照してください。
1
session-id-length 生成されるセッションIDのバイト数を指定します。
(セッションIDの文字列長は、指定した値×2になります。)
有効な値は、8〜512です。
例)16を指定した場合のセッションID
D076CCDA5EFF2167B860A9C75FD558BB
16
max-sessions 最大セッション数です。 レプリケーションモードが同期、即時同期モードの場合、アクティブセッションの最大数を指定します。 非同期モードの場合、メモリ上で管理するセッション(活性化状態セッション)の最大数を指定します。
有効な値は、-1、0〜2147483647です。
-1が指定された場合、無制限となります。
-1
session-file-name Webアプリケーション停止時にセッション情報を保存するファイル名を指定します。
ファイルは、${INSTANCE_ROOT}/generated/jsp/の対応Webアプリケーションディレクトリに作成されます。
<null>
algorithm セッションIDを計算するアルゴリズムを指定します。
Java.security.MessageDigestでサポートされている必要があります。
MD5
entropy セッションIDの生成時に用いられる乱数生成メソッドに渡す文字列を指定します。 <null>
min-idle-swap スワップ最小アイドル時間です。セッション情報を非活性化*6するまでの時間(秒単位)を指定します。
最大セッション数が指定されている場合に参照されます。 非活性化されていないセッションの数が最大セッション数を超えている場合、 セッションへの最終1つ前のアクセスからmin-idle-swap時間を越えているセッションを非活性化します。
最大セッション数が指定され、min-idle-swapにOFF(-1)が設定された場合、 最大セッション数を超えた分のセッションは検索順に非活性化されます。 ただし、min-idle-swap時間は最大セッション数が指定された場合に有効になります。
非活性化されていないセッションが最大セッション数を越えている、かつ、 セッションへの最終1つ前のアクセスからmin-idle-swap時間が経過している場合、セッション情報を非活性化します。 min-idle-swapは最大セッション数が定義されない場合もmax-idle-swapのスイッチとして機能します。
有効な値は、-1、1〜2147483647です。
-1が指定された場合、機能OFFとなります。
※min-idle-swapには、max-idle-swapと同じか短い値を指定してください。
※min-idle-swapは、replication-mode属性に"AS"が指定されている場合にのみ有効です。
-1
max-idle-swap スワップ時間です。セッション情報を非活性化*6するまでの時間(秒単位)を指定してください。
セッションへの最終1つ前のアクセスからmaxIdleSwap時間が経過している場合、セッション情報を非活性化します。
max-idle-swapは、min-idle-swapがOFF(-1)設定されている場合は使用されません。
有効な値は、-1、1〜2147483647です。
-1が指定された場合、機能OFFとなります。
※max-idle-swapには、min-idle-swapと同じか長い時間を設定してください。
※max-idle-swapは、replication-mode属性に"AS"が指定されている場合にのみ有効です。
-1
max-idle-backup バックアップ間隔です。セッション情報を格納先に保存(バックアップ)するまでの時間(秒単位)を指定します。
セッションへの最終1つ前のアクセスからmaxIdleBackup時間が経過している場合、セッション情報を格納先に保存します。
有効な値は、-1、0〜2147483647です。
-1が指定された場合、機能OFFとなります。
※max-idle-backupは、replication-mode属性に"AS"が指定されている場合にのみ有効です。
0
replication-mode レプリケーションモードを指定します。
有効な値は、"RS"、"SS"、"AS"です。
RS:即時同期モード(RealtimeSynchro)
SS:同期モード(StandardSynchro)
AS:非同期モード(Asynchro)
RS
skip-static-file-session-upd 静的ファイルセッション更新スキップフラグです。
動的ファイル(Servlet/Jsp)以外のリクエストに対し、 Webコンテナが行うセッション時間情報の更新をスキップするかどうかを指定します。
true:スキップする
false:スキップしない
false
save-skip セッション情報更新スキップフラグです。
true:スキップする
false:スキップしない
※この設定は、replication-mode属性に"SS"または"AS"が指定されている場合にのみ有効です。
true
change-session-id セッションID付け替え処理スイッチです。
リクエストのセッションIDに自身と異なるjvmRoute、プロセスIDが付加されている場合、 自身のプロセスで生成したセッションに置き換えるかどうかを指定します。
true:置き換える
false:置き換えない
replication-mode属性が"AS"の場合はtrue、その他の場合はfalse
storage-type セッション情報の保存タイプを指定します。
有効な値は、"JNDI"、"DB"、"FILE" です。
※"FILE"は、replication-mode属性に"AS"が指定されている場合にのみ、有効です。
JNDI
datasource-name DBと接続するデータソース名を指定します。
※この設定は、storage-type属性に"DB"が指定されている場合にのみ有効です。
<null>
sqlfile-path SQL拡張ファイルパスを指定します。
絶対パスでの指定と相対パスでの指定が可能です。
相対パスで指定する場合、${INSTANCE_ROOT}/configを基点としてください。
nec-web.xmlのsqlfilePathプロパティでSQL拡張ファイルパスを指定している場合は、nec-web.xmlの指定が有効になります。
※この設定は、storage-type属性に"DB"が指定されている場合にのみ有効です。
<null>
session-double-reading 同一セッションに対する複数のリクエストが同時期に処理された場合、 重複する格納先からのセッション情報取り込み及び書き込み処理を行うかを指定します。
falseが指定された場合、重複処理を抑制します。
※この設定は、replication-mode属性に"SS"が指定されている場合にのみ有効です。
true
backup-interval バックアップ処理を実行する間隔。非同期モードのみ有効。セッション情報を格納先に保存する処理を呼び出すまでの時間(秒単位)です。
実際にセッション情報を保存(バックアップ)するかどうかはmaxIdleBackupの設定で判定されます。
有効な値は、0〜2147483647です。
0が指定された場合、バックアップは行われません。
※この設定は、replication-mode属性に"AS"が指定されている場合にのみ有効です。
60
storage-timeout-check-once 格納先にあるセッション情報のタイムアウトチェックを起動時に一度のみ行うかどうかを設定します。
既定値(false)では、格納先にあるセッション情報のタイムアウトチェックはバックグラウンドスレッドで定期的に実行されます。一度のみ実行(true)を指定した場合は、Webアプリケーションが起動した後、一度だけ格納先セッションのタイムアウトチェックが実行されます。
セッションをスワップアウトする、かつ本設定を一度のみ実行(true)とした場合、スワップアウトされたセッションはタイムアウトチェックされなくなる事に注意してください。
※この設定は、replication-mode属性に"AS"が指定されている場合にのみ有効です。
false
storage-timeout-access-wait タイムアウトチェック処理において格納先への連続アクセスによる高負荷状態を回避するために、格納先にアクセスする直前に処理をsleepする時間(ミリ秒単位)を指定します。
有効な値は、-1、1〜9223372036854775807です。
-1が指定された場合、sleepは行われません。
※この設定は、replication-mode属性に"AS"が指定されている場合にのみ有効です。
5

*6) セッション情報を格納先に保存し、メモリ上から削除する処理



Dottedname : server.session-config.session-manager.store-properties

表1.4.2.1-19
属性名
(attribute-name)
説明 既定値
directory セッションファイルを書き込むディレクトリを指定します。
※この設定は、storage-type属性に"FILE"が指定されている場合にのみ有効です。
<null>


4.2.2. プロセスグループ(アプリケーションをプロセスグループに配備した場合のみ)の環境変数で設定可能な項目一覧

プロセスグループの環境変数は、運用管理コンソールや統合運用管理ツールのプロセスグループの「環境変数」タブで設定する事ができます。

表1.4.2.2-1
環境変数名 説明 既定値
WOTX_ASYNC_REPLACE 動的再配備の非同期動作のON/OFFを指定します。
配備時に、自ドメインへ向けてのHTTPリクエストが行われるアプリケーションがある場合には"ON"を設定してください。
ONを指定する必要があるのは、以下の様な場合が考えられます。
  • load-on-startupを指定したServletのinitメソッドで、自ドメインに配備済みのWebアプリケーションにHTTPリクエストを行う処理がある。
  • ServletやListenerで WebServiceRefアノテーションを定義して、自ドメインに配備済みのWeb Serviceを参照している。
OFF


4.2.3. JavaVMオプションで設定可能な項目一覧

WebOTXは、Servlet/JSPコンテナにさまざまな機能があり、それらの機能の制御を行えるJava VM オプションを説明します。

下記に設定方法を記載します。


■アプリケーションをエージェントプロセスに配備した場合

・運用管理コンソールでの設定方法(推奨)

運用管理コンソールにログインし、下記の箇所に設定を記述した後、ドメインを再起動してください。
<ドメイン名>
 -「アプリケーションサーバ」
  -「JVM構成」
の順にクリックしていき、「属性」タブの「JVMオプション」の「システムJVMオプション」の欄に”-D”の後に続いて設定を記述してください。その後、ドメインを再起動することで反映されます。

設定例:

-Dwebotx.webcont.jndidelete=480

・domain.xml直接編集での設定方法

ドメインを停止し、下記の例のように対象ファイルの<java-config>要素に<system-jvm-options>タグを記述した後"-D"の後に続いて設定を記述してください。その後、ドメインを起動することで設定が反映されます。

設定例:<WebOTXインストールディレクトリ>/domains/domain1/config/domain.xml

<java-config>
 <system-jvm-options>-Dwebotx.webcont.jndidelete=480</system-jvm-options>
</java-config>

■アプリケーションをプロセスグループに配備した場合

・運用管理コンソールでの設定方法

運用管理コンソールにログインし、下記の箇所に設定を記述した後、TPシステムを再起動してください。
<ドメイン名>
 -「TPシステム」
  -「アプリケーショングループ」
   -「<アプリケーショングループ名>」
    -「プロセスグループ」
     -「<プロセスグループ名>」
の順にクリックしていき、「属性」タブの「Javaシステムプロパティ」の欄に設定を記述してください。
「名前」に項目名を記述し、「値」に指定する値を記述してください

設定例:

表1.4.2.3-1
名前
webotx.webcont.jndidelete
480

設定項目一覧

表1.4.2.3-2
項目 説明 既定値
webotx.webcont.jndidelete JNDIに格納したセッション情報をタイムアウト後、何秒で削除するかを指定します。 480
webotx.webcontainer.serverconfig.Append JKプラグインが利用する連携のための設定ファイルを出力するか否かを指定します。 true
webotx.webcontainer.serverconfig.ForwardAll JKプラグインに対するコンテキストのリクエストを全て転送するか否かを指定します。 true
webotx.webcontainer.serverconfig.NoRoot JKプラグインに対するリクエストのうち、ルートコンテキスト(/)を転送するか否かを指定します。 true
com.nec.webotx.webcontainer.DelegateGetResourceForSpecific 特定のリソース取得について、Webアプリケーションクラスローダの上位クラスローダからの読み込みを優先するか否かを指定します。 false
com.nec.webotx.webcontainer.EnableClearReferencesThreadsInfoLog Webアプリケーションが停止や配備解除した後も、Webアプリケーション内で起動されたスレッドが、残っているとメモリリークにつながります。このスレッド残留を検出した場合に、メモリリークの危険性を注意喚起するログを出力するか否かを指定します。 false
com.nec.webotx.enterprise.web.advajp.checkLastProcessTimeInterval JKプラグインとWebコンテナとの通信状況のチェック間隔を秒で指定します。 1800
com.nec.webotx.enterprise.web.advajp.fileSwitchSize JKプラグインが扱うメッセージのサイズが大きい場合にテンポラリファイルを利用しますが、そのしきい値(Kbyte)を指定します。 128
com.nec.webotx.enterprise.web.advajp.advajpDriveMode fileSwitchSize で指定したサイズを超えた場合に利用する一時媒体にメモリを利用するかファイルを利用するかどうかを指定します。
設定値は"file"か"memory"で指定します。
ファイル("file")
com.nec.webotx.enterprise.web.advajp.advajpSendMaxSize AJPリスナとWebコンテナ間でやりとりするメッセージを分割送信する場合のサイズ(Kbyte)を指定します。 128
com.nec.webotx.enterprise.web.advajp.poolBufferSize JKプラグインからのリクエストを処理する時に使用するバッファ領域の初期個数を指定します。 5
com.nec.webotx.enterprise.web.connector.securityEnabled アプリケーションをプロセスグループに配備した時、Cookie に登録したセッション情報にセキュアオプションを付加するか否かを指定します。 false
com.nec.webotx.enterprise.web.connector.useBodyEncodingForURI ContentType又はRequest.setCharacterEncodingメソッドで指定されたエンコーディングをURLのデコードに使用するか否かを指定します。 false
com.nec.webotx.enterprise.web.connector.URIEncoding 「http://contents?a=%12%34」形式で記述されたURLをデコードする際の文字エンコーディングを指定します。 UTF-8
com.nec.webotx.webcontainer.performance EJBを使用しない場合に有用なEJB呼び出し時用の処理のスキップとリスナのMO登録をスキップして性能改善を行うか否かを指定します。 true
com.nec.webotx.enterprise.overrideablejavaxpackages Web アプリケーション内に配置したクラスのうちパッケージ名がjavax、sun、org 等で始まるクラスは参照することができません。参照を許可するパッケージをここで指定します。複数設定する場合はカンマで区切って指定します。("javax.sub,org.sub"等)
com.nec.webotx.enterprise.web.InvalidOverridableJavaxPackages Webappクラスローダが自身でロードするクラスから除外するパッケージを指定します。
com.nec.webotx.enterprise.registerRequest リクエスト毎に発生する MO 登録処理を行うかどうかを指定します。 false
jvmRoute ロードバランサを使用して、サーバ固定で振り分けたい場合にjsessionidに付加させる任意の文字列を指定します。プラグインによるStickyセッションの負荷分散を使用する場合には値にワーカ名(agent-ajp など)を指定してください。
com.nec.webotx.enterprise.checkURLPatternAfterMatching URLのパス解析処理やWebアプリケーションの認証処理において、WebOTX V7 以前と同等の動作をするかどうかを指定します。
(認証対象外のURLに":"(コロン)を含む場合、URLを異常とするかどうかを指定します。)

true :異常とします
false:正常とします(V7互換)

[ Webコンテナ > 注意事項] の(WebOTX V7以前からV8へ移行する際の注意事項について)も参照してください。
true
user.language Webコンテナが動作する言語ロケールを指定します。 動作環境に依存
com.nec.webotx.web.server.isTransactionEnabled Express エディションでWebコンテナのCMTをOFFにする場合にはfalseを指定します。 true
org.apache.catalina.session.useConcurrentHashMap セッションオブジェクトの属性の管理にConcurrentHashMapを使用するかどうかを指定します。 true
com.nec.webotx.jasper.compiler.NO_FINAL_VARIABLES JSPの暗黙オブジェクトである request, response, pageContext,application, config,page の final 宣言を付けるかどうかを指定します。
true :final宣言を付けません(V8互換)
false:final宣言を付けます
false
org.apache.jasper.compiler.PageInfo.defaultSessionEnabled JSPのpageディレクティブのsession属性のデフォルトを指定します。 true
org.apache.catalina.core.ContextAttributeSharing WebアプリケーションコンテキストのAttribute情報(javax.servlet.ServletContext.getAttribute()/setAttribute()する情報)をプロセスグループのプロセス間で共有するかを指定します。Memo_1
ただしプロセスグループのプロセス数が1の場合、共有機能は働きません。

true:共有します
false:共有しません
false
com.nec.webotx.enterprise.forwardResponseFlush RequestDispatcherクラスの forward メソッドを利用してリクエストの別のサーブレットに転送した場合に、forward元のリクエストが終了してからレスポンスをflushするのか(false設定動作)、forward先の処理が終了した時点でレスポンスをflushするのか(true設定動作)を指定します。

※本設定はアプリケーションをエージェントプロセスに配備した場合のみ有効です。 アプリケーションをプロセスグループに配備した場合は、信頼性を確保するため、リクエスト受信、リクエスト処理、レスポンス送信と各フェーズ分けて処理する仕組みを採用しています。このため、アプリケーションをプロセスグループに配備した場合は常にforward元のリクエストが終了してからレスポンスをflushします。
true
com.nec.webotx.javax.faces.convert.EnumConverter.nullValueReturnNull 以下のJSF APIにおいて、引数"value"がnullの場合にnullを返却するか、長さが0の文字列("")を返却するかを指定します。
クラス
  javax.faces.convert.EnumConverter

メソッド
  public String getAsString(FacesContext context, UIComponent component, java.lang.Object value)

true :nullを返却します
false:長さが0の文字列("")を返却します

true
com.nec.webotx.enterprise.web.WebContainer.overrideWebxml 配備記述子強制設定機能を有効にするかどうかを指定します。 false
org.apache.jasper.compiler.Parser.TAGATTRIBUTE_UNIQUECHECK JSPコンパイル時にタグ属性の重複エラーチェックを行うか否かを指定します。 true を設定した場合は重複チェックを行い、false を設定した場合は重複チェックを行いません。 WebOTX V8までは重複チェックを行いません。false設定がV8互換の動作になります。 重複チェックを行わない場合、同じ名称の属性は、後から設定した値が有効になります。 true
com.nec.webotx.webcontainer.EnableClearReferences Webアプリケーションの配備解除時やドメイン停止時にメモリリークを検知する機能を有効にするか否かを指定します。

true :メモリリークの検知を有効にします
false:メモリリークの検知を有効にしません

true
com.nec.webotx.webcontainer.jsp.TldInTags implicit.tld 以外の*.tldファイルがWEB-INF/tags に存在する事を許可するか否かを指定します。

true :implicit.tld 以外の*.tldファイルがWEB-INF/tags に存在する事を許可します
false:implicit.tld 以外の*.tldファイルがWEB-INF/tags に存在する事を許可しません

false
org.apache.tomcat.websocket.getRequestURI.FULL 以下のメソッドの戻り値であるjava.net.URIに、パス以前の情報(スキーマ、ホスト名、ポート番号)を含めるか否かを指定します。
javax.websocket.Session#getRequestURI()

true: パス以前の情報を含めます
      例: ws://hostname:81/context/endpoint
false: パス以前の情報を含めません
      例: /context/endpoint


false
com.nec.webotx.jasper.compiler.REDUCTION_JAVA_CODE JSPファイルをコンパイルして生成するJavaファイルのコード量を削減する場合に指定します。

refactoring_reusetag :タグ要素の再利用処理をWebOTX V8相当で出力し、生成するJavaファイルのコード量を削減します

※本JavaVMオプションを指定すると、カスタムタグ利用中に例外が発生してもjavax.servlet.jsp.tagext.Tag#release()が実行されません。release()メソッドでアプリケーションの処理を実行している場合は指定しないでください。

Memo_1
共有機能を使用する場合、Attributeに設定するObjectはシリアライズできるものに限ります。


4.3. HTTPのみのセッションレプリケーション

WebOTX V7.1より、HTTPのみセッションレプリケーションを利用できるようになりました。 従来、レプリケーションを行うとJDBCデータソース、JMSリソースも同じ内容となってしまい、ドメインごとに異なる設定内容にできませんでした。 これにより、複数のWebコンテナおよびEJBコンテナそれぞれにHTTPセッションの共有が容易にできるようになります。

HTTPのみセッションレプリケーションを利用するには、session-replication-jndi-url に、つぎのように設定します。

  rmiiiop://<ホスト1>:<JNDIサーバポート1>,<ホスト2>:<JNDIサーバポート2>…

ホスト名にはレプリケーションさせるJNDIサーバが動作しているホスト名またはIPアドレスを記述します。

JNDI サーバポート番号はJNDI サーバが動作しているWebOTX ドメインの組み込みIIOP リスナのポート番号となります。インストール時に作成されるdomain1のポート番号は7780 です。省略したときは自ドメインの組み込みIIOP リスナのポート番号が使用されます。

複数のWebOTXドメイン間でHTTPセッションをレプリケートするときはレプリケートする全てのWebOTXドメインのJNDIサーバのホスト名、ポート番号を列挙した指定を各WebOTXドメインに対して設定します。列挙する順番は意識する必要はありません。

例えば二つのWebOTXドメインdomain1とdomain2でHTTPセッションレプリケーションを行うためには

  host1: domain1のホスト名

  port1: domain1の組み込みIIOP リスナのポート番号

  host2: domain2のホスト名

  port2: domain2の組み込みIIOP リスナのポート番号

のように設定されている場合、

  rmiiiop://host1:port1,host2:port2

をdomain1とdomain2のsession-replication-jndi-url 属性に設定します。

4.3.1. HTTPのみのセッションレプリケーションの設定方法

4.3.1.1. 運用手順
(1) 運用管理コマンドによる設定

次の運用管理コマンドで設定します。

otxadmin> set server.web-container.session-replication-jndi-url=rmiiiop://<ホスト1>:<JNDIサーバポート1>,<ホスト2>:<JNDIサーバポート2>…

<例>

otxadmin> set server.web-container.session-replication-jndi-url=rmiiiop://host1:7780,host2:7780
(2) 設定の反映

ドメインを再起動して、設定を反映します。

4.4. Webサーバプラグイン定義ファイルの設定方法

Webサーバプラグインに関する設定について説明します。

4.4.1. 動的反映しない設定方法

WebOTXには、Webアプリケーションが配備されたことを自動的に WebOTX WebServer / Apache HTTP Server / IIS などの外部Webサーバに反映させる仕組みがあり、デフォルトではこの機能が有効になっています。 この機能により、ドメインを再起動することなく新規に配備されたWebアプリケーションの存在を外部Webサーバに認識させています。そのため運用中にWebアプリケーションを追加する事が無い場合は無効にすることもできます。

Caution
この設定を行った場合、新規に配備されたWebアプリケーションを外部Webサーバに認識させるには、外部Webサーバを再起動する必要があります。

Caution
初期設定ツールで設定を行うと、以下の設定は初期化されデフォルトの「動的反映を行う」状態になります。環境設定を行った場合は、再度、下記の設定を行ってください。

A: 運用管理コンソールを利用した設定手順

動的反映しない設定を運用管理コンソールから行うことができます。その他の項目についての運用管理コンソールを使用した設定方法については「 運用管理コンソールを利用したプラグインの設定方法」を参照してください。

  1. 運用管理コンソールへの接続

    Webブラウザを起動し、連携設定を行ったドメインの運用管理コンソールへ接続します。"http://<host>:<port>/manager/"に接続してください。
    ※domain1のポート番号の既定値は 5858 です。

  2. 設定の変更

    管理コンソールの左側のツリーで「アプリケーションサーバ」-「Webコンテナ」-「Webサーバ連携設定」を選択します。
    「一般」タブにある「プラグインの動的反映オプション」で「Off」を選択し、「更新」ボタンで設定を反映してください。

  3. Webサーバの再起動

    以上で設定は完了です。Webサーバを再起動してください。

B: 手動での設定手順

分離トポロジのWebサーバ等の理由で運用管理コンソールを利用した設定手順が行えない場合は、以下の手順で手動設定を行ってください。

  1. 外部Webサーバの停止
  2. Webサーバプラグイン定義ファイルの設定


  3. 外部Webサーバの起動

    外部Webサーバを起動し、設定内容を反映します。

4.4.2. Webサーバ起動後一度のみ動的反映する設定方法

ここではWebアプリケーションが配備されたことを外部Webサーバ起動後に一度だけ自動的に WebOTX WebServer / Apache HTTP Server / IIS などの外部Webサーバに反映させる設定方法について説明します。

Webサーバプロセスの起動直後にのみ動的反映を行いますので、WebOTX WebServer / Apache HTTP Server を使用している場合は起動直後に、IISを使用している場合は初回リクエスト時に動的反映を行います。

一度動的反映を行った以降は外部Webサーバを再起動するまで動的反映は行われません。

※初期設定ツールで設定を行うと、以下の設定は初期化されデフォルトの「動的反映を行う」状態になります。環境設定を行った場合は、再度、下記の設定を行ってください。

A: 運用管理コンソールを利用した設定手順

Webサーバ起動後一度のみ動的反映する設定を運用管理コンソールから行うことができます。その他の項目についての運用管理コンソールを使用した設定方法については「 運用管理コンソールを利用したプラグインの設定方法」を参照してください。

  1. 運用管理コンソールへの接続

    Webブラウザを起動し、連携設定を行ったドメインの運用管理コンソールへ接続します。"http://<host>:<port>/manager/"に接続してください。
    ※domain1のポート番号の既定値は 5858 です。

  2. 設定の変更

    管理コンソールの左側のツリーで「アプリケーションサーバ」-「Webコンテナ」-「Webサーバ連携設定」を選択します。
    「一般」タブにある「プラグインの動的反映オプション」で「Once」を選択し、「更新」ボタンで設定を反映してください。

  3. Webサーバの再起動

    以上で設定は完了です。Webサーバを再起動してください。

B: 手動での設定手順

分離トポロジのWebサーバ等の理由で、運用管理コンソールを利用した設定手順が行えない場合は、以下の手順で手動設定を行ってください。

  1. 外部Webサーバの停止
  2. Webサーバプラグイン定義ファイルの設定


  3. 外部Webサーバの起動

    外部Webサーバを起動し、設定内容を反映します。

4.4.3. Webサーバプラグイン設定項目一覧

以下はWebサーバプラグイン共通の設定項目一覧です。

対象ワーカタイプは次のとおりです。

Webサーバプラグイン:
AJP・・・"type"の値が"ajp13"であるワーカ名。負荷分散でない時に設定されているワーカ名
LB・・・"type"の値が"lb"であるワーカ名。負荷分散時の管理親ワーカ
SUB・・・"type"の値が"ajp13"であるワーカ名。負荷分散時の子ワーカ

連携設定項目:workers.properties(Webサーバプラグイン)

表1.4.4.3-1
プロパティ名 対象ワーカタイプ 説明、例 既定値
worker.list - ワーカ名のリストを指定します。一つ以上のワーカを指定する必要があり、複数指定する場合は,コンマ(,)区切りで記述します。

例:
worker.list=agent-ajp
※負荷分散機能使用時のワーカタイプの"lb"は1つだけ指定できます。
必ず最初(左)に指定してください。
agent-ajp(アプリケーションをエージェントプロセスに配備した場合に利用)、および tpsystem-ajp(アプリケーションをプロセスグループに配備した場合に利用)
worker.maintain - 再利用のためにコネクションを再構築する時間(秒単位)を指定します。
負荷分散時には指定した間隔でリクエストカウンタが初期化され、リクエスト振り分け割合が均一になります。

例:
worker.maintain=60
60
type AJP, SUB ワーカのタイプを指定します。
デフォルト値はajp13であり、Webサーバプラグインによる負荷分散機能を利用する場合はlbを指定してください。

例:
worker.agent-ajp.type=ajp13
ajp13(Webサーバプラグイン)
host AJP, SUB ワーカのホスト名、またはIPアドレスを指定します。

例:
worker.agent-ajp.host=localhost
localhost
port AJP, SUB ワーカの使用するポート番号を指定します。

例:
worker.agent-ajp.port=8099
worker.agent-ajp: 8099
worker.tpsystem-ajp: 20102

※未設定の場合:
8099
socket_timeout AJP, SUB WebサーバとWebコンテナ間におけるソケット通信のタイムアウト時間(秒単位)を指定します。
指定した時間以上が経過すると、エラーを返し、リトライ処理を行います。
デフォルト値である0を指定すると、ソケット操作の待ち時間は無制限となります。

例:
worker.agent-ajp.socket_timeout=0
0
socket_keepalive AJP, SUB WebサーバとWebコンテナ間のコネクションに、一定間隔(OS依存)でソケットレベルでのKEEP_ALIVEメッセージを送信します。WebサーバとWebコンテナ間にファイアウォールを設置している場合はこの指定をtrueに設定することで、ファイアウォールにコネクションを切断されることを防ぐことができます。

例:
worker.agent-ajp.socket_keepalive=false
false
connection_pool_size
または
cachesize
AJP, SUB Webサーバプラグイン:
WebサーバがWebコンテナに対して張るAJPコネクションの接続プールサイズの上限値を指定します。 Webサーバプラグインはプロセス毎にこの値の数だけ同時にコネクションを張ることができ、この値を超えたリクエストはエラーとなります。

※"cachesize"による指定も可能ですが、旧バージョンの表記のため、"connection_pool_size"を指定してください。

例:
worker.agent-ajp.connection_pool_size=150
150

※未設定の場合:
isapi_redirect: 250
mod_jk: Webサーバの最大スレッド数
connection_pool_minsize AJP, SUB コネクションプールの最小サイズを指定します。

例:
worker.agent-ajp.connection_pool_minsize=0
connection_pool_size / 2 + 1
connection_pool_timeout AJP, SUB WebサーバがWebコンテナに対して張ったコネクションが使用されていない時、コネクションを切断する前に維持しておく時間(秒単位)を指定します。
これはWebコンテナ上で動作するスレッド数を抑えるために使用します。
0 を設定した場合は、タイムアウトは発生しません。

例:
worker.agent-ajp.connection_pool_timeout=0
59
lbfactor SUB 負荷分散振り分け割合の重み付けを行います。例えば、ワーカAにワーカBの5倍のlbfactorを設定している場合、ワーカAは5倍のリクエストを処理することになります。

例:
worker.agent-ajp_A.lbfactor=5
worker.agent-ajp_B.lbfactor=1

1
balance_workers
または
balanced_workers
LB 負荷分散対象となるワーカ名のリストを指定します。複数指定する場合は,コンマ(,)区切りで記述します。
※"balanced_workers"による指定も可能ですが、旧バージョンの表記のため、"balance_workers"を指定してください。

例:
worker.agent-ajp.balanced_workers=agent-ajp_1,agent-ajp_2
なし
sticky_session LB 負荷分散時、セッションIDを伴った一連のリクエストがすべて同じサーバへ振り分けを行うかどうかを指定します。
※sticky_sessionの利用と均等な負荷分散は相反します。

例:
worker.agent-ajp.sticky_session=true
true
sticky_session_force LB 障害発生ドメインへのセッションIDを持ったリクエストに即座にエラーを返すかどうかを指定します。
この値がfalseの場合はリクエストセッションを破棄し、他のドメインへリクエストを振り分けます。

例:
worker.agent-ajp.sticky_session_force=false
false
method LB 負荷分散時にワーカの選択形式を指定します。
"R"(Request)を指定すると、リクエスト処理数の少ないワーカを選択します。
"S"(Session)を指定すると、セッション数の少ないワーカを選択します。
"T"(Traffic)を指定すると、ネットワークトラフィックが最も少ないワーカを選択します。
"B"(Busyness)を指定すると、その時点で処理中であるリクエストの数が最も少ないワーカを選択します。

例:
worker.agent-ajp.method=R
R
lock LB ロードバランサが共有メモリ内のデータをロックするかどうかを指定します。
"O"を指定すると、ロックを行いません。
"P"を指定すると、ロックを行いますが、そのため性能は劣化します。

例:
worker.agent-ajp.lock=O
O
reply_timeout AJP, SUB WebサーバからWebOTXへリクエストを送信した後(最後のAJPパケットをWebOTXに送信した後)の、WebOTXからのレスポンス待ちタイムアウト時間をミリ秒で指定します。
ここで指定した値を経過してもWebOTXからレスポンスが来なかった場合にタイムアウトと判断しますが、ソケットの終了処理などがあるため実際にクライアントに通知されるまでにはタイムラグがあります。
なお、このタイムアウトが発生した場合も retries で指定した回数分リトライを実施します。

* 0〜2147483647までの値が指定可能です。
* "0"以下の値が指定された場合、タイムアウトはしません。
* ApacheのJK_REPLY_TIMEOUTによって上書きされます。

例:
worker.agent-ajp.reply_timeout=5000
0
retries AJP, SUB 正常な応答が返ってこなかった場合に行うリトライを含めた総リクエスト回数を指定します。下限値は1であり、それより小さな値を指定しても、1が設定されます。

※V9.3でデフォルト値を 3 から 2 に変更しました。

例:
worker.agent-ajp.retries=3
2
retry_interval AJP, SUB リトライを行う前に待機する時間(秒単位)を指定します。

例:
worker.agent-ajp.retriy_interval=3
0
recovery_options AJP, SUB Webコンテナで障害発生した際にどのようなリトライ処理を行うかをビットマスクで指定します。
設定可能な値は以下であり、例えば1と2と4を有効にしたい場合は7を指定します。

0: 障害発生時は常にリトライを行う。
1:リクエスト処理中にWebコンテナで障害発生した場合はリトライを行いません。
2:リクエストヘッダをクライアントに送信した後にWebコンテナで障害が発生した場合はリトライを行いません。
4:ブラウザに表示するレスポンスを作成中にWebコンテナで障害発生した場合にWebコンテナとのコネクションを切断します。
8:HTTPメソッドがHEADの場合はリトライを行います。(1,2よりも優先されます)
16:HTTPメソッドがGETの場合はリトライを行います。(1,2よりも優先されます)

例:
worker.agent-ajp.recovery_options=0

※Webアプリケーションで同一トランザクションの実行を抑止する制御を行っていない等で、通信エラー発生時にリクエスト転送をリトライすると動作不正が発生する可能性があります。 リトライしない方が良い場合は、1と2と4を有効にする7を指定する事を推奨します。
7

※未設定の場合:
0
fail_on_status AJP, SUB Webコンテナが一時的に意図しないエラーコードを返してしまうような場合にこの指定を行ってください。
ここに指定したステータスコードがWebコンテナから返ってきた場合、503に変換され、クライアントに返却されます。

例:
worker.agent-ajp.fail_on_status=404,500
0
max_packet_size AJP, SUB AJPパケットの最大バイト数を指定します。最大値は65536(Byte)です。
この設定を変更する場合、WebOTX側の"packetSize"の指定も変更する必要があります。
例:
worker.agent-ajp.max_packet_size=8192
8192
mount AJP, LB ワーカのマップ情報をスペース区切りで表示します。

例:
worker.agent-ajp.mount=/WebAP1/*
なし
secret AJP, LB, SUB 秘密の文字列を登録することができます。
この設定によりWebコンテナの"request.secret"で設定された文字列と同一の文字列が設定されたワーカからのリクエストのみを受け付けることができます。

例:
worker.agent-ajp.secret=secret
なし
max_reply_timeouts LB 負荷分散環境において、指定されたワーカがエラー状態になるまでの reply_timeout の回数を指定します。
通常、reply_timeout が指定されている場合、retries の回数リトライしたあとタイムアウトと判断しワーカをエラー状態にします。しかし、max_reply_timeouts を指定した場合、指定した回数reply_timeout が発生するまでワーカをエラー状態にしません。
reply_timeout の回数が max_reply_timeouts を超えた場合、ワーカはエラー状態になり、worker.maintain で指定された間隔でメンテナンスされるまでエラー状態のままとなります。
時間のかかるリクエストがあってもワーカをすぐにエラー状態にしたくない場合に指定します。

* 0〜2147483647 までの値が指定可能です。
* max_reply_timeouts はワーカ毎にチェックされます。

例:
worker.agent-ajp.max_reply_timeouts=0
0
recover_time LB リクエストがエラーとなった時にこのワーカを使用しない時間(秒単位)を指定します。
この時間が経過するとワーカは新規のリクエスト処理を試みます。

例:
worker.agent-ajp.recover_time=60
60
activation SUB 負荷分散時にワーカを"無効"または"停止"の状態に設定します。
"無効"のワーカはセッション付きのリクエストのみ受け付けます。
"停止"のワーカはすべてのリクエストを拒否します。
無効化には"d"または"D"、停止するには"s"または"S"を記述してください。

例:
worker.agent-ajp.activation=d
なし
route SUB 負荷分散時にセッション固定でサーバに振り分けるためのjvmRouteの設定を行います。
WebコンテナのjvmRouteの設定と同一の値を設定してください。

例:
worker.agent-ajp.route=agent-ajp
<ワーカ名と同一>
distance SUB 負荷分散時にワーカ間の選択優先度を設定します。
distanceの値が最も小さいワーカが選択されますが、そのワーカがエラー状態の場合には次に小さいワーカが選択されるようになります。

例:
worker.agent-ajp.distance=0
0
domain SUB 負荷分散時に同じドメイン名を共有するワーカを一つのワーカとしてみなします。
sticky_sessionを利用している場合、ドメイン名はセッションのルートとして使用されます。
例えば振り分け先サーバが6つ以上ある場合などにワーカを2種類のドメインでグループ化することにより、セッション複製頻度を低くすることができます。

例:
worker.agent-ajp.domain=domain1
なし
redirect SUB セッション固定で該当ワーカがエラー状態である時、この指定を行ったワーカを代わりに選択します。

例:
worker.agent-ajp.redirect=ajp23
なし
socket_connect_timeout AJP, SUB ソケットコネクションのタイムアウト時間をミリ秒で指定します。
0〜2147483647までの値が指定可能です。
"0"以下の値が指定された場合、タイムアウトはしません。
また、2147483647以上の値が指定された場合は、2147483647で動作します。

ソケットコネクションのタイムアウト時間は、JKプラグインとリモートホスト間の通信で使われます。 もし、リモートホストのレスポンスがこのタイムアウト時間内で返ってこない場合、 JKプラグインはエラーを返してリトライを行います。
socket_timeout*1000
ping_mode AJP, SUB リクエストを送る前に小さなパケットを使ってコネクションの状態をチェックするpingモードを指定します。
指定可能なモードは以下の通りです。

C(Connect):コネクション確立時
P(Prepost):毎リクエスト送信前
I(Interval):一定期間置き
A(All):上記すべてのタイミング

複数のモードを設定する場合、区切り文字なしで並べて記述します。
モードの組み合わせに制限はありません。そのため、すべてのモードを並べて記述することも可能です。

例:
ping_mode=CP
pingを行わない
ping_timeout AJP, SUB プラグインからコンテナに送ったpingが返ってくるまでに待つ時間をミリ秒で指定します。
0〜2147483647までの値が指定可能です。
"0"以下の値が指定された場合、タイムアウトはしません。
10000
connection_ping_interval AJP, SUB ping後にpingが返ってくるまでコネクションをアイドル状態にする時間を秒で指定します。
本プロパティは、ping_modeでintervalが指定されている場合、または、 connection_ping_intervalで0以上が指定されている場合に有効になります。
ping_modeでintervalが指定されている場合、デフォルト値は(ping_timeout/1000)*10となります。
0または(ping_timeout/1000)*10
connection_acquire_timeout AJP, SUB プールしているコネクションを取得する際のタイムアウト時間をミリ秒で指定します。
0〜2147483647までの値が指定可能です。
"0"が指定された場合、タイムアウトはしません。
retries*retry_interval
retry_interval AJP, SUB リトライするまでのワーカのスリープ時間をミリ秒で指定します。
負荷分散時、retriesを設定しているワーカに指定の時間でリトライを試みます。
0〜2147483647までの値が指定可能です。
100
error_escalation_time AJP, SUB 負荷分散時、エラー状態のノードからレスポンスが返されない場合 quite serious状態にする時間を秒で指定します。
recover_time/2
session_cookie AJP, SUB 負荷分散でセッションスティッキーを使用したとき、 セッションによって振り分け先を固定するためにセッションIDを用います。 もし、URLで指定した session_path の値が読み取れなかった場合に session_cookie の値でセッションを指定します。 JSESSIONID
session_path AJP, SUB 負荷分散でセッションによって振り分け先を固定するために sticky_session を有効にしていた場合(デフォルト true)、 URL でセッションIDを session_path の値で指定します。 ;jsessionid
connect_timeout AJP, SUB pingモードがコネクション確立時(ping_modeに"C"を指定)の場合の タイムアウト値をミリ秒で指定します。
"0"が指定された場合、タイムアウトはしません。
0
prepost_timeout AJP, SUB pingモードが毎リクエスト送信前(ping_modeに"P"を指定)の場合の タイムアウト値をミリ秒で指定します。
"0"が指定された場合、タイムアウトはしません。
0


連携設定項目:mod_jk-24.conf(Webサーバプラグイン)
表1.4.4.3-2
プロパティ名 説明、例 既定値
JkWorkersFile Webコンテナと連携するために必要な設定ファイルのパスを指定します。これはWebサーバ起動時に一回のみ読み込まれます。

例:
JkWorkersFile "C:/WebOTX/domains/domain1/config/WebCont/workers.properties"
${INSTANCE_ROOT}/config/WebCont/workers.properties

※未設定の場合:
なし
JkShmFile UNIX系OSでのみ使用する共有メモリファイルを指定します。
この設定を行っていない場合、デフォルト箇所にファイルが作成され、WebServerのログに下記が出力されます。
[warn] No JkShmFile defined in httpd.conf. Using default /opt/WebOTX/domains/domain1/logs/jk-runtime-status

例:
JkShmFile "/opt/WebOTX/domains/domain1/logs/jk_shm"
${INSTANCE_ROOT}/logs/web/jk_shm

※未設定の場合:
logs/jk-runtime-status
JkShmSize 共有メモリファイルのサイズ(KB単位)を指定します。

例:
JkShmSize 64
OSに依存
JkMountFile ワーカが読み込むコンテキスト情報を記述するファイルのパスを指定します。

例:
JkMountFile "C:/WebOTX/domains/domain1/config/WebCont/uriworkermap.properties"

uriworkermap.properties の記述例
----------------
/WebAP1=agent-ajp
/WebAP1/*=agent-ajp
----------------
${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties

※未設定の場合:
なし
JkMountFileReload "JkMountFile"で指定したファイルを再読み込みする間隔(秒単位)を指定します。

例:
JkMountFileReload 60
0(再読み込みをしない)
JkMount ワーカが読み込むコンテキストを指定します。

例:
JkMount "/WebAP1" agent-ajp
JkMount "/WebAP1/*" agent-ajp

なし
JkUnMount Webコンテナ側にリクエストを送信しないコンテキストを指定します。Webサーバ側に配置したコンテンツにアクセスしたい場合に指定してください。
例:
JkUnMount "/WebAP1" agent-ajp
JkUnMount "/WebAP1/*" agent-ajp

なし
JkMountCopy "On","Off","All"の設定が可能であり、"On"を指定されたバーチャルサーバにはメインサーバのマウントがコピーされます。(JkMount、JkUnMountの設定を含む)"Off"を指定するとコピーされません。
"All"を指定するとすべてのバーチャルサーバに設定が反映されます。

例:
JkMountCopy All
All
JkWorkerIndicator ワーカ名を識別するためのApache環境変数名を指定します。

例:
JkWorkerIndicator
JK_WORKER_NAME
JkLogFile Webサーバプラグインが出力するログファイルのパスを指定します。

例:
JkLogFile "C:/WebOTX/domains/domain1/logs/web/mod_jk-24.log"
${INSTANCE_ROOT}/logs/web/mod_jk-24.log_%Y%m%d

※未設定の場合:
logs/mod_jk.log
JkLogLevel ログの出力レベルを指定します。
設定可能な値は error/warn/info/debug/trace です。

例:
JkLogLevel error
error

※未設定の場合:
info
JkLogStampFormat ログファイルの出力形式を指定します。
設定可能な値は以下になります。

%a 短縮された曜日名
%A 完全な曜日名
%b 短縮された月の名前
%B 完全な月の名前
%y 短縮された年
%Y 完全な年
%m 月
%d 日付
%H 時間
%M 分
%S 秒
%Q ミリ秒
%q マイクロ秒
%I 12時間表示での時間(01から12まで)
%j 年間での日付を10進数で表示 (001 から 366)
%p 時刻表示におけるAMまたはPMの表示
%U 年間で何番目の週であるかを表示(年間の最初の日曜を最初の週の最初の日として数える)
%W 年間で何番目の週であるかを表示(年間の最初の月曜を最初の週の最初の日として数える)
%w 10進数で表示された曜日(日曜は0)
%x 月/日付/年
%X 時間:分:秒
%c 月/日付/年 時間:分:秒
%Z タイムゾーンの表示
%% 文字列"%"

例:
JkLogStampFormat "%a %b %d %H:%M:%S.000 %Y"
"%Y-%m-%d %H:%M:%S,%Q "
年-月-日 時:分:秒,ミリ秒

※未設定の場合:
"%a %b %d %H:%M:%S.000 %Y"
[曜日 月 日 時:分:秒.ミリ秒 年]
JkExtractSSL SSL通信を許可するかどうかを指定します。

例:
JkExtractSSL On
On
JkHTTPSIndicator SSLを示すApache環境変数名を指定します。

例:
JkHTTPSIndicator HTTPS
HTTPS
JkCERTSIndicator SSLクライアント証明書を示すApache環境変数名を指定します。

例:
JkCERTSIndicator SSL_CLIENT_CERT
SSL_CLIENT_CERT
JkCIPHERIndicator SSL暗号を示すApache環境変数名を指定します。

例:
JkCIPHERIndicator SSL_CIPHER
SSL_CIPHER
JkCERTCHAINPrefix SSLクライアントチェーン証明書を示すApache環境変数名を指定します。

例:
JkCERTCHAINPrefix SSL_CLIENT_CERT_CHAIN_
SSL_CLIENT_CERT_CHAIN_
JkSESSIONIndicator SSLセッションを示すApache環境変数名を指定します。

例:
JkSESSIONIndicator SSL_SESSION_ID
SSL_SESSION_ID
JkKEYSIZEIndicator SSL暗号鍵のサイズを示すApache環境変数名を指定します。

例:
JkKEYSIZEIndicator SSL_CIPHER_USEKEYSIZE
SSL_CIPHER_USEKEYSIZE
JkOptions プラグインのオプション設定を指定します。
項目の前に"+"か"-"を付けることで有効/無効を指定します。
デフォルトではForwardURIProxyが有効であり、+ForwardKeySizeの設定が記述されます。
設定可能な値は以下になります。

ForwardURIProxy:受け取ったURIを部分的に再エンコード処理を行います。
ForwardURICompatUnparsed:受け取ったURIを文字列表記に戻し、Webコンテナへ転送します。これはmod_rewriteと併用することはできません。
ForwardURICompat:受け取ったURIをデコードし、Webコンテナへ転送します。
ForwardURIEscaped:受け取ったURIをそのままWebコンテナへ転送します。
ForwardKeySize:Servlet API 2.3で要求されているSSLキーサイズを転送します。

例:
JkOptions +ForwardKeySize
+ForwardKeySize

※未設定の場合:
+ForwardURIProxy +ForwardKeySize
JkEnvVar リクエスト項目としてWebコンテナに送られる独自の環境変数を指定します。
Webコンテナ側でrequest.getAttribute(attributeName)を呼び出すことでこの値が参照できますが、request.getAttributeNames()ではリスト表示されません。

例:
JkEnvVar VALIABLE
なし
JkWatchdogInterval 定期的にメンテナンスする間隔を秒指定します。
メンテナンスをするスレッドはバックグラウンドで動作します。 メンテナンス時にはワーカでアイドル状態となっているコネクションのチェックを行います。
worker.maintain よりも小さい値を設定した場合、watchdog スレッドは生成されますが、コネクションのチェックは行われません。
指定可能な値の範囲は、0〜2147483647で。0が指定された場合、watchdog スレッドは生成されません。
0
JkLocalNameIndicator ローカル名を示すApache環境変数名を指定します。

例:
JkLocalNameIndicator JK_LOCAL_NAME
JK_LOCAL_NAME
JkLocalPortIndicator ポート番号を示すApache環境変数名を指定します。 JK_LOCAL_PORT
JkRemoteHostIndicator リモートホストを示すApache環境変数名を指定します。 JK_REMOTE_HOST
JkRemoteAddrIndicator リモートアドレスを示すApache環境変数名を指定します。 JK_REMOTE_ADDR
JkRemoteUserIndicator リモートユーザを示すApache環境変数名を指定します。 JK_REMOTE_USER
JkAuthTypeIndicator 認証タイプを示すApache環境変数名を指定します。 JK_AUTH_TYPE
JkDynamicReflection プラグインの動的反映オプションを On/Off/Once で指定します。 On
JkDynamicReflectionKind 動的反映手段としてクエリー通信を行うかファイルのリロードを行うかを指定します。 JkDynamicReflectionが"On" の場合のみ有効です。 query
JkQueryInterval 動的反映クエリーの実行間隔(秒単位)を指定します。 JkDynamicReflectionが"On" かつ JkDynamicReflectionKind が "query"の場合のみ有効です。 60
JkQueryTimeout 動的反映クエリーのタイムアウト時間(秒単位)を指定します。 JkDynamicReflectionが"On" かつ JkDynamicReflectionKind が "query"の場合のみ有効です。 60


以下はIIS連携時の設定です。

連携設定項目:isapi_redirect.properties

表1.4.4.3-3
プロパティ名 説明、例 既定値
extension_uri IISに設定しているisapi_redirect.dllへのパスを指定します。

例:
extension_uri=/domain1_webcont/isapi_redirect.dll
/<ドメイン名>_webcont/isapi_redirect.dll

※未設定の場合:
なし
log_file ログファイルを生成する場所を指定します。

例:
log_file=C:\WebOTX\domains\domain1\logs\web\isapi.log
${INSTANCE_ROOT}\logs\web\isapi.log
※未設定時は正常に動作しません。
log_level ログ出力レベルを指定します。
設定可能な値は error/warn/info/debug/trace です。

例:
log_level=error
error

※未設定の場合:
info
worker_file Webコンテナと連携するために必要な設定ファイルのパスを指定します。これはWebサーバ起動時に一回のみ読み込まれます。

例:
worker_file="C:\WebOTX\domains\domain1\config\WebCont\workers.properties
${INSTANCE_ROOT}\config\WebCont\workers.properties
未設定時は 正常に動作しません。
worker_mount_file ワーカが読み込むコンテキスト情報を記述するファイルパスを指定します。

例:
worker_mount_file=C:\WebOTX\domains\domain1\config\WebCont\uriworkermap.properties
${INSTANCE_ROOT}\config\WebCont\uriworkermap.properties

※未設定の場合:
なし
worker_mount_reload worker_mount_fileで指定したファイルを再読み込みする間隔(秒単位)を指定します。

例:
worker_mount_reload=60
なし
strip_session この設定をtrueにするとURLの中からセッションID(jsessionid=で始まる文字列)を除き、リクエストを行います。

例:
strip_session=false
false
auth_complete IIS5.1との互換性を保つために必要となる場合があります。
デフォルト値は1であり、認証時にSF_NOTIFY_AUTH_COMPLETEを使用します。
0を指定すると、SF_NOTIFY_PREPROC_HEADERSを使用し、HTTPのPUTメソッドを利用する時にこれが必要になる場合があります。

例:
auth_complete=1
1
uri_select URIの文字コード形式を指定し、proxy/parsed/unparsed/escapedが指定可能です。
セキュリティの観点からデフォルト値である"proxy"を推奨します。
"parsed"を指定すると、".."のような文字列も含みエンコード処理を行います。
"unparsed"URLはエンコード処理を行いません。
"escaped"を設定すると、セッションIDが付いているリクエストに対しては"unparsed"と同様の動作をし、その他は"parsed"と同様の動作をします。
"proxy"を指定すると、"parsed"でエンコードされたURIの中で".."のような不正なパスに再エンコード処理を行います。

例:
uri_select=proxy
proxy
reject_unsafe この値をtrueに指定すると、"%"と"\"を含むURLにはエラーを返します。
ほとんどのWebアプリケーションではこのようなURLは使用しないため、URL操作を行う攻撃を防ぐことができます。

例:
reject_unsafe=false
false
log_rotate ログローテーションを行うか行わないかの設定をします。
0を設定した場合はログローテーションを行いません。 1以上を設定した場合はログローテーションの世代数を設定します。

例:
log_rotate=2
3

※未設定の場合:
0
rotate_size ログローテーションを行うログのサイズ(Mbyte)を設定します。

例:
rotate_size=5
0
rotate_interval ログローテーションを行う時間(秒)を設定します。1日を指定する場合は 86400 を設定します。

例:
rotate_interval=86400
86400

※未設定の場合:
0
watchdog_interval watchdogスレッドが走る時間間隔を秒で指定します。
このwatchdogスレッドはバックグラウンドで定期的に使われていないコネクションのチェックを行います。
worker.maintainよりも小さい値を設定した場合は、watchdogスレッドは生成されますが、
worker.maintain秒以上経過していないとコネクションのチェックを行ないません。
なお、"0"を指定した場合は、コネクションのチェックを行ないません。
0
error_page 200以外のレスポンスの時にリダイレクトするエラーページを指定します。 なし
enable_chunked_encoding チャンクエンコーディングを有効にするかしないかを指定します。
trueの場合、チャンクエンコーディングを有効にします。
trueにする場合、"1" 、"T"または"t"で始まる文字列を指定します。
falseにする場合、"0"、"F"または"f"で始まる文字列を指定します。
false
dynamic_reflection プラグインの動的反映オプションを On/Off/Once で指定します。 On
dynamic_reflection_kind 動的反映手段としてクエリー通信を行うかファイルのリロードを行うかを指定します。 JkDynamicReflectionが"On" の場合のみ有効です。 query
query_interval 動的反映クエリーの実行間隔(秒単位)を指定します。 dynamic_reflectionが"On" かつ dynamic_reflection_kind が "query"の場合のみ有効です。 60
query_timeout 動的反映クエリーのタイムアウト時間(秒単位)を指定します。 dynamic_reflectionが"On" かつ dynamic_reflection_kind が "query"の場合のみ有効です。 60
log_stamp_format ログメッセージのタイムスタンプのフォーマットを指定します。
ログファイルのstrftime構文を使用した日時フォーマットです。このフォーマットはlog_fileで指定したファイルに出力するメッセージのタイムスタンプに使用されます。フォーマットの最大長は63文字です。
ログにミリ秒を追加するために%Qを使用し、マイクロ秒のために%qを使用することもできます。これらの変換指定子はstrftimeの拡張です。%Qと%qは、パターン内で1回しか使用できず、同じパターン内で同時に使用することはできません。

設定例
log_stamp_format=%Y-%m-%d %H:%M:%S,%Q
%Y-%m-%d %H:%M:%S,%Q

※未設定の場合:
[%a %b %d %H:%M:%S. %Q %Y]


連携設定項目:uriworkermap.properties

コンテキストとworkerのマッピングを定義するファイルです。

Memo
既定で以下のプロパティが定義されているため、"$(default.worker)"や"$(default.worker2)"をworker名として指定可能です。

default.worker=agent-ajp
default.worker2=tpsystem-ajp
表1.4.4.3-4
プロパティ名 説明、例 既定値
<コンテキストパス> 指定したコンテキストパスにマッピングするworkerを定義します。

/abc/servlet へのリクエストをWebコンテナで処理する場合
例:
/abc/servlet=$(default.worker)
-
<コンテキストパス>/* 指定したコンテキストパス配下全てにマッピングするworkerを定義します。

例:
/abc/ 配下全てのリクエストをWebコンテナで処理する場合
/abc/*=$(default.worker)
-
〜*.<拡張子> 指定した拡張子にマッピングするworkerを定義します。

例:
/abc/ 配下の *.do へのリクエストを全てWebコンテナで処理する場合
/abc/*.do=$(default.worker)
-
!<アンマウントパス> プロパティ名の先頭に"!"を指定する事によって、指定した<アンマウントパス>をマッピングしないworker(または*)を定義します。
<アンマウントパス>には 「<コンテキストパス>」または「<コンテキストパス>/*」または「〜*.<拡張子>」が入ります。

例:
*.htmlへのリクエストを全て外部Webサーバ側で処理する場合。
!*.html=$(default.worker)
-

4.4.4. バーチャルホストごとにコンテキスト名を設定する方法

WebOTX Webサーバ(Apache)ではバーチャルホストを複数作成することができ、バーチャルホストごとにコンテキスト名の設定を行うことができます。

設定方法

  1. WebOTX Webサーバ(Apache)のバーチャルホストの作成

    下記のURLを参照してバーチャルホストを作成してください。

    http://httpd.apache.org/docs/2.4/vhosts/

  2. 設定

    ${INSTANCE_ROOT}/config/WebCont/mod_jk-**.conf の JkMountCopy の設定を Off にする。

  3. バーチャルホストごとのコンテキスト設定

    ${INSTANCE_ROOT}/config/WebServer/httpd.conf の <VirtualHost> 要素内に JkMount(またはJkUnMount)の設定を行う。

    例えばバーチャルホストA、Bを作成し、バーチャルホストAには /aaa というコンテキスト名を、バーチャルホストBには /bbb というコンテキスト名を設定する場合は ${INSTANCE_ROOT}/config/WebServer/httpd.conf に以下のように設定します。

  4. WebOTX Webサーバ(Apache)の再起動

バーチャルホストAに対して /aaa にリクエストを行うと正常にレスポンスが返り、/bbb にリクエストを行うとコンテキスト名を設定していないため 404エラーが返ります。
また、バーチャルホストBに対してリクエストを行った場合は /aaa にリクエストすると 404エラーが返り、/bbb にリクエストすると正常にレスポンスが返るようになります。

4.5. 運用管理コンソールを利用したプラグインの設定方法

WebOTX Application Server V8.3 以降 では、統合運用管理ツールや運用管理コンソールからWebサーバプラグインの設定項目を変更する機能を提供しています。

ただし、WebサーバとWebコンテナが別マシン構成の場合、この機能を利用するには以下の両方の条件を満たしている必要があります。


Caution
この機能では連携設定済みの環境に対して、設定項目のカスタマイズを行います。Webサーバとの連携ができていない場合は、先に初期設定ツールを使用して連携設定を行ってください。初期設定ツールを使用して連携設定を行うと、workers.properties に対して行われた設定は全て初期化されます。

4.5.1. 運用管理コンソールから設定可能な項目

外部Webサーバ連携時には、使用するWebサーバの種類や、連携先のWebコンテナの動作モードによってWebサーバプラグイン用の複数の設定ファイルが使用されます。一部の設定ファイルについては、運用管理コンソールや運用管理コマンドから設定できず、手動で設定を行う必要があります。以下は使用するWebサーバごとの設定ファイルと運用管理コンソールからの設定可否の一覧です。「コンソールからの設定」が「△」のファイルは、一部の機能を設定可能です。「×」のファイルについては、設定できません。

表1.4.6.1-1
Webサーバの種類 設定ファイル コンソールからの設定
WebOTX Web Server24、Apache HTTP Server ${INSTANCE_ROOT}/config/WebCont/workers.properties
${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties
${INSTANCE_ROOT}/config/WebCont/mod_jk-24.conf
IIS ${INSTANCE_ROOT}/config/WebCont/workers.properties
${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties
${INSTANCE_ROOT}/config/WebCont/isapi_redirect.properties

下表は運用管理コンソールや運用管理コマンドから設定可能な項目です。下表の「設定ファイル内での設定名」にある項目については運用管理コンソールや運用管理コマンドから設定できます。上表で「コンソールからの設定」が「△」になっているファイルに設定する項目で、下表の「設定ファイル内での設定名」にない項目については手動で設定する必要があります。運用管理コンソールや運用管理コマンドから設定を行った場合、設定内容に応じて「更新される設定ファイル」に出力されます。

表1.4.6.1-2
表示名
(attribute-name)
設定ファイル内での設定名 更新される設定ファイル
プラグインの動的反映オプション
(plugin-query-mode)
WebOTX Webサーバ、Apache HTTP Server 連携時
  JkDynamicReflection

IIS連携時
  dynamic_reflection
WebOTX Webサーバ、Apache HTTP Server 連携時
  mod_jk-24.conf

IIS連携時
  isapi_redirect.properties
動的反映の方法
(plugin-dynamic-reflection-kind)
WebOTX Webサーバ、Apache HTTP Server 連携時
  JkDynamicReflectionKind

IIS連携時
  dynamic_reflection_kind
WebOTX Webサーバ、Apache HTTP Server 連携時
  mod_jk-24.conf

IIS連携時
  isapi_redirect.properties
マウントファイルの再読み込み間隔
(jk-mount-file-reload)
JkMountFileReload mod_jk-24.conf
動的反映クエリーの実行間隔
(plugin-query-interval)
WebOTX Webサーバ、Apache HTTP Server 連携時
  JkQueryInterval

IIS連携時
  query_interval
WebOTX Webサーバ、Apache HTTP Server 連携時
  mod_jk-24.conf

IIS連携時
  isapi_redirect.properties
動的反映クエリーのタイムアウト時間
(plugin-query-timeout)
WebOTX Webサーバ、Apache HTTP Server 連携時
  JkQueryTimeout

IIS連携時
  query_timeout
WebOTX Webサーバ、Apache HTTP Server 連携時
  mod_jk-24.conf

IIS連携時
  isapi_redirect.properties
JkMountCopyの種類
(jk-mount-copy)
Memo1
JkMountCopy mod_jk-24.conf
JkUnMountを出力するアプリケーションのリスト
(jk-unmount-list)
!/<コンテキスト名> uriworkermap.properties
プラグインのログファイル名
(log-file-name)
WebOTX Webサーバ、Apache HTTP Server 連携時
  JkLogFile

IIS連携時
  log_file
WebOTX Webサーバ、Apache HTTP Server 連携時
  mod_jk-24.conf

IIS連携時
  isapi_redirect.properties
ログのローテートの有効化
(log-rotate-enable)
Memo1
JkLogFile mod_jk-24.conf
プラグインのログローテートオプション指定
(log-rotate-options)
Memo1
JkLogFile mod_jk-24.conf
プラグインのログローテート世代数
(log-rotate-generations)
Memo2
log_rotate isapi_redirect.properties
ログのローテート間隔
(log-rotate-interval)
WebOTX Webサーバ、Apache HTTP Server 連携時
  JkLogFile

IIS連携時
  rotate_interval
WebOTX Webサーバ、Apache HTTP Server 連携時
  mod_jk-24.conf

IIS連携時
  isapi_redirect.properties
ログのローテートサイズ
(log-rotate-size)
WebOTX Webサーバ、Apache HTTP Server 連携時
  JkLogFile

IIS連携時
  rotate_size
WebOTX Webサーバ、Apache HTTP Server 連携時
  mod_jk-24.conf

IIS連携時
  isapi_redirect.properties
プラグインのログレベル
(plugin-log-level)
WebOTX Webサーバ、Apache HTTP Server 連携時
  JkLogLevel

IIS連携時
  log_level
WebOTX Webサーバ、Apache HTTP Server 連携時
  mod_jk-24.conf

IIS連携時
  isapi_redirect.properties
連携先ホスト名
(plugin-host-name)
worker.agent-ajp.host
worker.tpsystem-ajp.host
workers.properties
連携ポート番号(エージェントプロセス)
(agent-ajp-port)
worker.agent-ajp.port workers.properties
連携ポート番号(TPシステム)
(tpsystem-ajp-port)
worker.tpsystem-ajp.port workers.properties
コネクションプールサイズ(エージェントプロセス)
(agent-ajp-pool-size)
worker.agent-ajp.connection_pool_size workers.properties
コネクションプールサイズ(TPシステム)
(tpsystem-ajp-pool-size)
worker.tpsystem-ajp.connection_pool_size workers.properties

Memo1
WebOTX Webサーバ、Apache HTTP Server を使用している場合にのみ有効です。
Memo2
IISを使用している場合にのみ有効です。


以下では具体的な設定方法について、運用管理コンソールを使用して説明を行います。

ブラウザを起動し、連携設定を行ったドメインの管理コンソール(http://<host>:<port>/manager)に接続し、ログインしてください。(domain1の場合の<port>の既定値は 5858 です。)

4.5.2. 動的反映機能/プラグインのログのローテーション/コネクションプールサイズの設定

プラグインの動的反映オプションやプラグインのログのローテーション、コネクションプールサイズの設定を行う方法を説明します。

  1. 管理コンソールの左側のツリーから「アプリケーションサーバ」-「Webコンテナ」-「Webサーバ連携設定」を選択します。
  2. 「一般」タブおよび「ログの設定」タブで該当の項目を変更します。
    プラグインのログを5Mごとにローテーションする場合


    動的反映機能をオフにする場合


    動的反映機能を起動後1回のみ有効にする場合


    プラグインのコネクションプールサイズを100にする場合


  3. 「更新」ボタンをクリックして、変更を設定ファイルに反映します。
  4. 変更を反映するために、Webサーバを再起動してください。

4.6. HTTPセッション管理について

4.6.1. HTTPセッション管理について

セッション管理についてServlet2.4などに規定されている仕様や、クライアント(ブラウザ)側の動作などの一般的な動作の仕組みについて説明します。

セッションの管理方法にはCookieを使用する方法とURLRewritingを使用する方法があります。Cookieを使用する方法では、セッションを識別するためのセッションIDをCookieに保存します。URLRewritingを使用する方法では、セッションIDをURLのパラメータに追加します。

次項で2つのセッション管理方法の動作イメージを示します。

Cookieによるセッション管理

コンテナはクライアントにクッキーを送信します。その後、クライアントは、それぞれのリクエストのときにセッションを含むクッキーつけて、サーバに送信します。セッションのクッキーの名前は”JSESSIONID”を使用します。

Cookieによるセッション管理の図

Cookieを使うセッションID管理方法は、セッションIDをWebブラウザのCookieに設定します。

URLRewritingによるセッション管理

ユーザアプリケーションはアクセス先URLを作成する際、URLにセッションIDを付加します。セッションIDは独自に編集するか、javax.servlet.http.HttpServletResponse#encodeURL()メソッドを用いて付加します。

URLRewritingによるセッション管理の図

URLRewritingを使うセッションID管理方法は、セッションIDをHTMLの<Form>タグのactionのURLなどに付加します。

セッションタイムアウトについて

セッションには有効期限が存在します。指定した期間クライアントからのリクエストが無い場合、Webコンテナはセッションを破棄します。以降破棄されたセッションに対しリクエストがあった場合、新たにセッションが作成され要求されたセッションと入れ替えられます。


4.6.2. WebOTXの基本的な設定

WebOTXでのセッション管理に関連する基本的な設定について説明します。

4.6.2.1. セッション管理方法の切替

セッションをCookieで管理するかURLRewritingで管理するか、Webアプリケーション単位で切り替えます。


4.6.2.2. セッションのタイムアウト時間

セッションのタイムアウト時間(有効期限)を設定します。設定には幾つかの種類がありそれぞれ有効範囲が異なります。それぞれの設定について説明します。優先順位は後者ほど高くなります。

default-web.xmlによる設定

domain全体に対する設定になります。

表1.4.7.2-2
設定詳細
設定箇所 <domainディレクトリ>/config/default-web.xml
既定値 30(分)
最小値 1(分) ※0以下の場合セッションタイムアウトは行われません。
最大値 35791(分)
設定例
  <web-app>
        :
    <session-config>
      <session-timeout>30</session-timeout>
    </session-config>
        :
説明 domain全体に対するセッションタイムアウト値を設定します。
備考 設定変更後はドメインを再起動してください。

nec-web.xmlによる設定

Webアプリケーション毎に有効な設定ですが、web.xmlの設定が無い場合に有効です。

表1.4.7.2-3
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/nec-web.xml
既定値 なし
最小値 1(秒) ※0以下の場合セッションタイムアウトは行われません。
最大値 2147483(秒)
設定例
  <nec-web-app>
      :
    <session-config>
      <session-properties>
        <property name="timeoutSeconds" value="5"/>
      </session-properties>
    </session-config>
      :
説明 Webアプリケーション毎に有効なセッションタイムアウト値を設定します。
備考 nec-web.xmlは予めwarアーカイブに格納しておいてください。

web.xmlによる設定

Webアプリケーション毎に有効な設定になります。

表1.4.7.2-4
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/web.xml
既定値 なし
最小値 1 ※0以下の場合セッションタイムアウトは行われません。
最大値 35791(分)
設定例
  <web-app>
      :
    <session-config>
      <session-timeout>30</session-timeout>
    </session-config>
      :
説明 Webアプリケーション毎に有効なセッションタイムアウト値を設定します。
備考 なし

Webアプリケーションによる設定

セッション毎に有効な設定でユーザがWebアプリケーション中で指定します。

表1.4.7.2-5
設定詳細
設定箇所 Webアプリケーションのロジック中
既定値 なし
最小値 1(秒) ※0以下の場合セッションタイムアウトは行われません。
最大値 2147483(秒)
設定例
    :
  HttpSession session = request.getSession();
  session.setMaxInactiveInterval(300);
    :
説明 セッション毎に有効なセッションタイムアウト値をjavax.servlet.http.HttpSession#setMaxInactiveInterval()メソッドで設定します。
備考 なし

4.6.2.3. セッション情報の保存

WebOTXでは何も設定しないデフォルトの状態ではdomainの停止と共にセッション情報は消えてしまいます。セッション情報をファイルに保存する設定を行うことでdomain再起動後もセッションをファイルから復元、継続して使用することができます。

※ アプリケーションをプロセスグループに配備した場合、セッションの保存方法には制限が存在します。 詳細は「 WebOTXの高度な設定(アプリケーションをプロセスグループに配備した場合の設定) > アプリケーションをプロセスグループに配備した場合のセッション情報保存」 を参照してください。

※ セッション情報を保存したファイルの保存箇所は<domainディレクトリ>/generated/jsp/<Webアプリケーション名>配下がカレントになります。このディレクトリはWebアプリケーションを配備解除するとディレクトリが削除され、セッション情報が失われますのでご注意ください。

メモリ管理によるセッション保存

セッションはメモリ上に展開され、domainの停止時にファイルに出力されます。domainが正常に停止されない場合(突然のアボート等)、セッション情報はファイルに保存されないことがあります。

表1.4.7.2-6
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/nec-web.xml
既定値 memory
設定例
  <nec-web-app>
      :
    <session-config>
      <session-manager persistence-type="memory">
        <manager-properties>
          <property name="sessionFilename" value="/session.ser"/>
        </manager-properties>
      </session-manager>
    </session-config>
      :
説明 セッション情報の保存方法をメモリ管理に設定する
備考 環境によっては、セッション情報をファイルに保存する方法が使用できないためsessionFilenameプロパティが設定できません。
nec-web.xmlは予めwarアーカイブに格納しておいてください。

※ アプリケーションをプロセスグループに配備した場合、セッションの保存方法には制限が存在します。 詳細は「 WebOTXの高度な設定(アプリケーションをプロセスグループに配備した場合の設定) > アプリケーションをプロセスグループに配備した場合のセッション情報保存」 を参照してください。


ファイル管理によるセッション保存

セッションはメモリ、ファイル両方に展開されます。メモリ上で管理されているセッション情報を一定間隔(60秒)でファイルに出力します。セッション更新後ファイル出力をまたずdomainが正常に停止されない場合(突然のアボート等)、ファイルに最新情報が反映されない場合があります。

表1.4.7.2-7
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/nec-web.xml
既定値 memory
設定例
  <nec-web-app>
      :
    <session-config>
      <session-manager persistence-type="file">
        <manager-properties>
          <property name="sessionFilename" value="/session.ser"/>
        </manager-properties>
      </session-manager>
    </session-config>
      :
説明 セッション情報の保存方法をファイル管理に設定する
備考 環境によっては、ファイル管理によるセッション保存は設定できません。
nec-web.xmlは予めwarアーカイブに格納しておいてください。

※ アプリケーションをプロセスグループに配備した場合、セッションの保存方法には制限が存在します。 詳細は「 WebOTXの高度な設定(アプリケーションをプロセスグループに配備した場合の設定) > アプリケーションをプロセスグループに配備した場合のセッション情報保存」 を参照してください。


4.6.2.4. セッションの同時最大数設定

同時に作成できるセッションの最大数を設定します。

セッションレプリケーション時に本項目を指定するとセッション数増加に伴いセッションを払いだす時間が長くなります。ご注意ください。

表1.4.7.2-8
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/nec-web.xml
既定値 -1(制限なし)
最小値 1
最大値 2147483647(個)
設定例
  <nec-web-app>
      :
    <session-config>
      <session-manager>
        <manager-properties>
          <property name="maxSessions" value="200"/>
        </manager-properties>
      </session-manager>
    </session-config>
      :
説明 セッションの同時最大数を設定する
備考 なし

4.6.2.5. セッションのCookieへのSecure属性の設定

セッションをCookie管理している場合、セッションIDを格納するCookieに自動でSecure属性の設定を行うことができます。 ただし、このオプションはユーザが作成したCookieには適用されません。ユーザが作成したCookieにSecure属性を付与する場合はCookieのAPI(javax.servlet.http.Cookie#setSecure())で設定してください。 Secure属性を設定したCookieはクライアントからHTTPSプロトコルでアクセスされた場合のみリクエストに付加され、HTTPプロトコルでアクセスされた場合は付加されなくなります。

表1.4.7.2-9
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/nec-web.xml
既定値 false
設定例
  <nec-web-app>
      :
    <session-config>
      <cookie-properties>
        <property name="cookieSecure" value="true"/> 
      </cookie-properties>
    </session-config>
      :
説明 セッションのセキュアオプションを強制設定する
備考 なし

4.6.2.6. URLのセッションID付加抑制の設定

HttpServletResponse.encodeURL()を実行しても、URLRewriting(セッションIDの付加)を行わない設定を行います。

表1.4.7.2-10
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/nec-web.xml
既定値 true
設定例
  <nec-web-app>
      :
    <session-config>
      <session-properties>
        <property name="enableURLRewriting" value="false" />
      :
説明 URLRewriting(セッションIDの付加)を行わない設定
備考 なし

4.6.2.7. セッションを強制的に使えなくする設定

セッションを強制的に使えなくする設定です。動作的にはセッションオブジェクトが取得できないわけではなく、リクエストの終了時セッションがあれば無効化するような動作になります。 また、レスポンス(CookieやURLRewriting)にセッションIDは設定されません。

表1.4.7.2-11
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/nec-web.xml
既定値 true
設定例
  <nec-web-app>
      :
    <session-config>
      <session-properties>
        <property name="enableSession" value="false" />
      :
説明 セッションを使えなくする設定
備考 なし
4.6.2.8. jvmRouteオプションの設定

ドメインもしくはプロセスグループ単位でセッションIDに、指定した文字列を付加することができます。セッションIDを払い出したWebサーバを特定したい場合などに使用します。

表1.4.7.2-12
設定詳細
設定箇所 JVMオプション
既定値 なし
設定例
  -DjvmRoute="hoho1"
otxadminコマンドを用いて設定する場合
  • アプリケーションをエージェントプロセスに配備した場合の設定例
    otxadmin> create-jvm-options -DjvmRoute=hoho1
  • アプリケーションをプロセスグループに配備した場合の設定例
    otxadmin> add-pg-javasystem-property --apgroup <アプリケーショングループ名> --javasystemprop jvmRoute --value hoho1 <プロセスグループ名>
説明 セッションIDに指定文字列を付加する設定。セッションIDに"."を区切り文字として指定文字列を付加します。
備考

プロセスIDとjvmRouteを付加した場合のセッションIDの例を示します。

  5B22AF53A66CAB1AB26490EB430D36C3.hoho1$3936
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ ~~~~
  セッションID(32桁) . jvmRoute $ プロセスID
4.6.2.9. 静的ファイルへのセッション時刻更新をスキップする設定

セッションを使用しない静的ファイル(html、gif等)へのリクエストに対して、セッションの時刻情報を更新しないように設定できます。 セッションID付け替えによる制限事項の軽減に対して有効です。

表1.4.7.2-13
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/nec-web.xml
既定値 false
設定例
  <nec-web-app>
      :
    <session-config>
      <session-manager>
        <manager-properties>
          <property name="skipStaticFileSessionUpd" value="true"/>
        </manager-properties>
      </session-manager>
    </session-config>
      :
説明 静的ファイルに対してセッション時刻情報の更新をスキップする設定
備考 nec-web.xmlは予めwarアーカイブに格納しておいてください。
4.6.2.10. セッションIDの長さ設定

Webコンテナが生成するセッションIDの長さは、既定では16進で32桁(16byte==128bit)ですが、 設定により変更することが可能です。

表1.4.7.2-14
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/nec-web.xml
既定値 16
最小値 8
最大値 512
設定例
  <nec-web-app>
      :
    <session-config>
      <session-manager>
        <manager-properties>
          <property name="sessionIdLength" value="16"/>
        </manager-properties>
      </session-manager>
    </session-config>
      :
説明 生成されるセッションIDのバイト数を設定
備考 セッションIDの文字列長は、指定した値×2になります。
nec-web.xmlは予めwarアーカイブに格納しておいてください。



4.6.3. セッションレプリケーション

4.6.3.1. セッションレプリケーションについて

システムの信頼性を高めるための複数のサーバ間でセッションデータを複製しておく仕組みをセッションレプリケーションと言います。セッションレプリケーションを設定することで1台のサーバがダウンした場合でも複製したセッション情報を元に他のサーバが処理を引き継ぐことができます。WebOTXのセッションレプリケーションはセッション情報をJNDI(または、データベース)に格納することで実現します。JNDIを使用する場合の情報共有に関しては HTTPのみのセッションレプリケーション及び JNDIサーバをレプリケーションするための設定を参照してください。

セッションレプリケーションを行うにあたり、Webアプリケーションの作りに一部制限が存在します。詳細は [ Webアプリケーションの運用/実行 > セッションレプリケーションのWebアプリケーション実装注意事項について ] を参照してください。

セッションレプリケーションの概要を図にします。

セッションレプリケーションの概要図



WebOTXのレプリケーション機能の動作概要について記述します。

  1. 共有されるセッション情報の範囲と共有のトリガ
    全てのセッション情報が共有され、セッションに格納している情報の更新があった場合、更新された差分のみが更新/共有されます。
    またHTTPリクエスト受信時、セッションが検出された場合、セッションへのアクセス時刻を更新/共有します。

  2. レプリケーション時の性能
    レプリケーションした環境では無負荷状態で、クライアントへのレスポンスは約10mSec遅くなります。 セッションへのアクセス回数やJNDIサーバ(または、データベースサーバ)に登録されているセッション数に依存して遅くなります。
    セッションの最大数は、デフォルトでは無制限ですが、この値を設定すると、新規セッション生成時にはセッション数をJNDIサーバ(または、データベースサーバ)から 情報を取り出して現状のセッション数を数えるため、レスポンスが遅くなります。


セッション情報を格納先に保存するためのWebアプリケーションの設定

Webアプリケーションにセッション情報をJNDIに登録するための設定を行います。

表1.4.7.3-1
設定詳細
設定箇所 <コンテキストルート>/WEB-INF/web.xml
既定値 なし(OFF)
設定例
  <web-app>
      :
    <distributable/>
      :
説明 Webアプリケーションにセッションレプリケーションの設定を行います。ON/OFFは要素を記述するかしないかになります。
またdefault-web.xmlに本項目を設定すると、セッションレプリケーションに対応していないWebアプリケーションにも影響を与えてしまいますので、Webアプリケーション毎にweb.xmlに設定してください。
備考 なし

4.6.3.2. レプリケーションモードについて
WebOTXでは3つのセッションレプリケーションモードを用意しています。 各レプリケーションモードには特徴があり、要件に応じて選択することが可能です。

以下に各レプリケーションモードの特徴と使用する場合のテンプレート設定値をまとめます。
各設定項目の詳細、及び設定方法は、 web.xmlデプロイメント記述子のsession-config要素を参照してください。

表1.4.7.3-2
性能 信頼性 モード名 テンプレート設定値(プロパティ名/値)
即時同期モード
replicationMode 同期モード(RS)
saveSkip OFF固定
reapIntervalSeconds 60(秒)
processExpiresFrequency 1(回)
同期モード
replicationMode 同期モード(SS)
saveSkip(※) ON
reapIntervalSeconds 60(秒)
processExpiresFrequency 1(回)
非同期モード
replicationMode 非同期モード(AS)
saveSkip ON
reapIntervalSeconds 60(秒)
processExpiresFrequency 1(回)
minIdleSwap -1(スワップOFF)
maxIdleSwap -1(スワップOFF)
maxIdleBackup 0(秒)

レプリケーションモードが同期モードの場合、saveSkipの設定はレプリケーションのセッションレプリケーションのWebアプリケーション実装注意事項についてに関連します。 非同期モードではsaveSkipをOFFにするとリクエスト終了時、全てのattribute情報が格納先に反映されるため、注意/制限事項を解除できますが反面性能は低下します。 Webアプリケーションの作りが注意/制限事項に抵触しない場合はsaveSkipをONにすることをお勧めします。

4.6.3.3. JNDIを利用するレプリケーション設定

※セッションレプリケーションを設定する場合、セッションの管理方法をメモリに設定する必要があります。 [ WebOTXの基本的な設定 > メモリ管理によるセッション保存] 参照


JNDIのレプリケーション設定

異なるdomainのJNDIを連携設定することでセッション情報を共有します。設定方法によらず設定内容はセッションレプリケーションするJNDIサーバのURLを"rmiiiop://host1:port,host2:port"の形式で設定します。ここで2重化されるのはセッション情報のみです。


4.6.3.4. データベースを利用するレプリケーション設定
データベースを使用する場合、セッション情報を格納するためのテーブルを予め作成しておく必要があります。 以下のSQL文を参考にテーブル作成を行ってください。

※例はOracleデータベースにテーブルを作成する例です。他のデータベースを使用する場合はデータ型が異なりますので適宜変更してください。


準備したデータベースへアクセスするためにJDBCデータソースを登録しておく必要があります。


データソースの設定

データベース接続のデータソース名の設定を行います。 データソース名の設定については、 アプリケーション開発 > Webアプリケーション > プログラミング・開発ガイド > Webアプリケーションのデプロイ > web.xmlデプロイメント記述子 のsession-config要素を参照してください。

4.6.3.5. Infinispan を利用するレプリケーション設定
InfinispanはStandard以上のエディションで利用することができます。Expressでは利用できませんので、ご注意ください。


Webアプリケーションの設定

Webアプリケーションにセッションレプリケーションの設定を行います。
設定方法については、セッション情報を格納先に保存するためのWebアプリケーションの設定の 表 を参照してください。


Infinispanのライブラリの配置

データグリッドの設定を行う前に、Infinispanを利用するために必要なライブラリを配置する必要があります。
ライブラリの取得、および配置の方法は、[ 設定 > サービス一覧 > インメモリデータグリッド連携 ]を参照してください。


データグリッドの設定

利用するデータグリッドの属性「タイプ」に「infinispan」を指定します。

Infinispanを利用したセッション情報のレプリケーションに利用するデータグリッドとして、 WebOTXでは、「__default_http_session」という名前のデータグリッドを用意しています。この既存のデータグリッドを利用する場合は、 データグリッドの属性「タイプ」を「disable」から「infinispan」に変更します。 新たにデータグリッドを作成する場合は、作成時に属性「タイプ」として「infinispan」を指定します。

データグリッドの各設定項目の詳細については、 インメモリデータグリッド連携全般の設定項目・設定方法 を参照してください。



データグリッドの指定

セッション情報保存先タイプの設定


4.6.4. WebOTXの高度な設定(アプリケーションをプロセスグループに配備した場合の設定)

アプリケーションをプロセスグループに配備した場合、通常のセッション管理に加えてプロセスグループ特有の管理情報が追加されます。 通常レプリケーション設定が無い場合、セッションを構築したクライアントとサーバは1対1ですが、アプリケーションをプロセスグループに配備した場合、サーバ側で動作するプロセス数がプロセスグループの設定により複数になる可能性があります。

セッションを維持するためにはクライアントからのリクエストを、セッションを払いだしたプロセスに送る必要があります。そのためにWebコンテナは セッションIDを払いだす際に通常のセッションIDの後に"$"を区切りとして自身が動作しているプロセスのIDを付加します(※)。 次回リクエスト時、セッションIDにこのプロセスIDが付加されていた場合、該当するプロセスを探し出して転送します。

※ 環境の構成によってはプロセスIDが付加されない場合があります。詳細は次節参照

4.6.4.1. アプリケーションをプロセスグループに配備した場合のセッションID

アプリケーションをプロセスグループに配備した場合、セッションIDには構成によりプロセスIDが付加されます。何かの事情によりプロセスIDを付加したくない場合、「強制的にプロセスIDを付加する/しない」 を設定することができます。

※ アプリケーションをエージェントプロセスに配備した場合はプロセスIDが付加されることはありません

構成によるプロセスIDの付加

表1.4.7.4-1
プロセスIDの強制付加 プロセス数 セッションレプリケーション 結果 備考
OFF設定(JVMオプションを設定します) -- -- プロセスIDなし 強制的にセッションIDにプロセスIDを付加しません。OFF設定をする場合、次のJVMオプションを設定します。
-Dorg.apache.catalina.session.CompulsionPid=off
ON設定(JVMオプションを設定します) -- -- プロセスID付加 強制的にセッションIDにプロセスIDを付加します。ON設定をする場合、次のJVMオプションを設定します。
-Dorg.apache.catalina.session.CompulsionPid=on
設定なし(JVMオプションを設定しません) 1 -- プロセスIDなし プロセスIDは付加しません。プロセス数が1つの場合、リクエストを振り分ける必要がないためです。
設定なし(JVMオプションを設定しません) 複数 設定なし プロセスID付加 プロセスIDを付加します。プロセスが複数存在するためセッションを払いだしたプロセスを選択する必要があるためです。
設定なし(JVMオプションを設定しません) 複数 設定あり プロセスIDなし
※レプリケーションモードに非同期を選択している場合プロセスID付加
プロセスIDを付加しません。プロセスは複数存在しますが、レプリケーション設定されているためどのプロセスが選択されても同じ結果になるためです。

プロセスIDを付加した場合セッションIDの例を示します。
  C7C25B729C39629558DB02C5FA25E038$6212  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
  セッションID(32桁) $ プロセスID
4.6.4.2. アプリケーションをプロセスグループに配備した場合のセッション情報保存

アプリケーションをプロセスグループに配備した場合、構成によりセッション情報の保存方法に制限が存在します。

4.6.5. Webブラウザの設定とセッションの関係

1つのホストのWebブラウザから、同じホストで起動する複数のドメインに対してリクエストを行った時、セッションIDが意図したとおりに取得できない事があります。

例えば次のようなケースで説明します。

上記のような構成で次のようにアクセスしたとします。
※下記アプリケーションのアクセスでHTTPセッションを生成するものとします。

  1. Webブラウザを起動し、ドメインAの画面Dへ遷移(ウィンドウ1)
  2. (1)のWebブラウザから別ウィンドウを起動し、ドメインBの画面Dへ遷移(ウィンドウ2)
  3. ウィンドウ1で、画面Dのリンクをクリックし、ドメインAの画面Eへ遷移

この場合、(3)でアプリケーションが取得できるHTTPセッションは(1)で生成されたHTTPセッションではなく新たに生成されたHTTPセッションとなります。この時のセッションIDの生成と動きを次に説明します。

  1. Webブラウザを起動し、ドメインAの画面Dへ遷移(ウィンドウ1)
    ドメインAはセッションID:FFFを生成
    以降、WebブラウザはドメインへFFFを送信

  2. (1)のWebブラウザから別ウィンドウを起動し、ドメインBの画面Dへ遷移(ウィンドウ2)
    ドメインBはセッションID:GGGを生成
    以降、WebブラウザはドメインへはGGGを送信

  3. ウィンドウ1で、画面Dのリンクをクリックし、ドメインAの画面Eへ遷移
    WebブラウザはドメインAへGGGを送信。ドメインAにはGGGというセッションIDは存在しないためHHHを生成。

(3)で(1)と異なるセッションIDが生成されるのは次の2の要素が原因です。

セッションIDはWebブラウザ毎にドメイン側で生成されます。そして、一度生成されたセッションIDはCookieを利用してWebブラウザとドメイン間でやり取りされます。

この時、ドメイン側ではリクエストに含まれるセッションIDを頼りに、過去にアクセスのあったWebブラウザなのかを判断します。新規のアクセスであればリクエストにセッションIDはありません。2回目以降のアクセスであればリクエストに含まれるセッションIDから過去にアクセスしたWebブラウザだと判断します。

また、セッションIDを格納するCookieにはPath属性としてアプリケーションのコンテキスト名が設定されています。

   例)
   Set-Cookie: JSESSIONID=51BD6DE9BCF62164C894AE85882A14A9; Path=/examples/

つまり、同じドメインへのアクセスでも、アプリケーション(のコンテキスト名)が異なると別物として扱います。逆に言えば、ドメインが異なってもアプリケーション(のコンテキスト名)が一緒の場合は同じCookieが送信されます。

このような環境で各ドメインのアプリケーション毎に生成したセッションIDを取得したい場合の対処としては次の方法があります。

[アプリケーションのコンテキスト名を別にする]

Webブラウザはアプリケーション(のコンテキスト名)が異なると別のセッションだと判断しますので、コンテキスト名を変えると、ドメインA, Bが同じホストで同じアプリケーションを配置していてもセッションIDは別となります。

[ドメインA、Bを別々のホストに配置する]

Webブラウザは同じアプリケーション(コンテキスト名)でもホスト毎にCookieを管理するため、セッションIDは別になります。

[IEでウィンドウを開くときに「新規セッション」を利用する]

通常Webブラウザは普通にウィンドウを複数起動するとCookieを共有します。例えば、Internet Explorer(IE)では、「ファイル」メニューから明示的に「新規セッション」を利用して別のウィンドウを開くと、ドメインA, Bが同じホストで同じアプリケーションを配置していても同じCookieを送信せず、セッションIDは別となります。



4.7. 文字コード設定について

4.7.1. 文字コードについて

Javaにおいて文字コードを意識する箇所を簡単に説明します。

Java内部では文字は全てUnicodeで処理されています。ですが例えば、あるファイルをServletから読み込む場合ファイルはShift_JISで書かれていたとすればShift_JIS<->Unicodeの変換を行わなければJava内部では文字列として使用することができません。

例のようにJavaは外部にI/Oする際に文字コードの変換が発生します。この変換する文字コードが指定されていない場合、Javaでデフォルトとなっている文字コードを使用しますが、デフォルトの文字コードはJavaが動作しているOS環境によって異なります。(Windowsであればwindows-31j、LinuxであればEUC-JP等)

Servlet(Java)への主なI/Oについて概要図を示します。

概要図

  1. HTTPリクエスト
    「リクエストのデータをどの文字コードとしてJavaで扱うUnicodeに変換するか」、の設定があります。

    詳細は [ 文字コードの優先順位 > HTTPリクエスト] 参照

    ※URLに使用できる文字については [ URL] を参照してください。

  2. HTTPレスポンス
    「レスポンス出力時、Javaで扱うUnicodeをどの文字コードに変換してレスポンス出力するか」、の設定があります。

    詳細は [ 文字コードの優先順位 > HTTPレスポンス] 参照

  3. JSPファイルのコンパイル
    「JSPファイルをどの文字コードで読み込み、Javaで扱うUnicodeに変換するか」、の設定があります。

    詳細は [ 文字コードの優先順位 > JSPファイルのコンパイル] 参照

    ※ファイル名に使用可能な文字については[ URL]を参照してください。

  4. JSPファイルのレスポンス
    「JSPを実行した際、Javaで扱うUnicodeをどの文字コードに変換してレスポンス出力するか」、の設定があります。

    詳細は [ 文字コードの優先順位 > JSPファイルのレスポンス] 参照

  5. ファイル入力/出力
    ファイルにアクセスするInputStream、OutputStreamを作成する際ユーザが文字コードを設定します。WebOTX独自の設定機能は存在しませんがJVMオプション (-Dfile.encoding=<MS932等>)設定によりデフォルトの文字コードを変更できます。

    ※ファイル名に使用可能な文字については[ URL]を参照してください。

  6. データベースアクセス
    JDBCドライバに依存します。



次節以降の表中で使用する用語について説明します。


使用できる文字コードはJavaのプラットフォームにより異なります。Javaのマニュアルにてご確認ください。

4.7.2. 文字コードの優先順位

文字コードの設定箇所と、それぞれの優先順位を記述します。

4.7.2.1. HTTPリクエスト

リクエストのデータをどの文字コードとして扱うかは通常、以下の処理順で決定されます。ここで決定された文字コードはリクエストからデータを取得する際のInputStreamに適用されます。

表1.4.8.2-1
優先度 設定項目名 説明 設定場所 有効範囲 反映方法 設定例
setCharcterEncoding設定 Filter等でリクエストデータを参照する前に、HttpServletRequest.setCharcterEncoding()により文字コードを設定した場合、その文字コードとしてリクエストデータをUnicodeに変換します。 ユーザロジック Webアプリケーション 再配備
    :
((HttpServletRequest)request).setCharcterEncoding("Shift_JIS");
    :
HTTPリクエストcharset設定 HTTPリクエストのヘッダ情報にcharset指定がある場合、その文字コードでリクエストデータをUnicodeに変換します。 なし Webアプリケーション 再配備 ブラウザ等クライアントアプリケーションに依存しますがHTTPリクエストヘッダにcharset指定がある場合の動作になります。
"Content-Type: application/x-www-form-urlencoded; charset=windows-31j" 等
NEC配備記述子charset設定 HTTPリクエストのヘッダ情報にcharset指定が無い場合、nec-web.xmlファイルに<locale-charset-info>要素を設定し、warファイルに予めアーカイブすることでリクエストデータのUnicode変換に用いるデフォルトの文字コードを設定することができます。 nec-web.xml Webアプリケーション 再配備
<nec-web-app>
    :
  <locale-charset-info>
      <parameter-encoding form-hint-field="penc" default-charset="windows-31j"/>
  </locale-charset-info>
    :
  1. リクエストのパラメータ中に該当データ(この場合パラメータ名がpencのデータpenc=x-IBM943C 等)があればそれを文字コードとして使用する。
  2. i)が無い場合、リクエスト中のAccept-Language: ja、無ければnec-web.xmlの<locale-charset-info> default-charset で指定された文字コードを用いてリクエストパラメータをUnicodeに変換
デフォルト設定 上記のいずれも無い場合、リクエストデータはデフォルトの文字コード"ISO-8859-1"を用いてUnicodeに変換されます。 -- -- -- --
4.7.2.2. HTTPレスポンス

レスポンスにデータをどの文字コードとして出力するかは通常、以下の処理順で決定されます。ここで決定された文字コードはHTTPレスポンスのヘッダ情報(Content-Typeのcharset)とデータを出力する際のOutputStreamに適用されます。

表1.4.8.2-2
優先度 設定項目名 説明 設定場所 有効範囲 反映方法 設定例
文字コード優先設定 Webアプリケーション毎にHTTPレスポンスに優先的に使用される文字コードを設定します。 nec-web.xml Webアプリケーション 再配備
<nec-web-app>   
    :
  <property name="priorityResponseEncoding-map:ja" value="EUC-JP"/>  
    :
  <property name="priorityResponseEncoding" value="windows-31j"/>  
設定は両方設定することも片方のみ設定する事も可能です。
前者はHTTPレスポンスのロケールが一致した場合、Mapされた文字コードを適用します。
後者はHTTPレスポンスで使用する文字コードを固定で設定します。
両方が設定され場合、前者のMap設定の優先度が高くなります。

文字コード優先設定 ドメイン(またはプロセスグループ)にHTTPレスポンスに優先的に使用される文字コードを設定します。 domain.xml ドメイン ドメイン(プロセスグループ)再起動 otxadminコマンド
otxadmin> set server.web-container
.property.priority-response-encoding=EUC-JP
setCharacterEncoding設定 ServletResponseのsetContentType()またはsetCharacterEncoding()にてcharsetが設定された場合、レスポンスデータをUnicodeから設定された文字コードに変換してレスポンス出力します。 ユーザロジック Webアプリケーション 再配備
    :
((HttpServletResponse)response).
        setContentType("text/html; charset=Shift_JIS")
    :
配備記述子文字コード設定 Servlet2.4の仕様でロケールおよび文字エンコードのマッピングをweb.xmlに設定できます。
javax.servlet.ServletResponseのsetLocale()メソッドが呼ばれた時に参照され、設定した ロケールに対応する文字コードが設定されます。
レスポンスデータをUnicodeから設定された文字コードに変換してレスポンス出力します。
web.xml Webアプリケーション 再配備
<web-app>
    :
  <locale-encoding-mapping-list>
    <locale-encoding-mapping>
      <locale>ja</locale>
      <encoding>windows-31j</encoding>  
    </locale-encoding-mapping>
    <locale-encoding-mapping>
      <locale>ko</locale>
      <encoding>EUC-KR</encoding>
    </locale-encoding-mapping>
  </locale-encoding-mapping-list>
    :
デフォルト設定 上記の設定が無い場合、レスポンスデータをUnicodeからデフォルトの文字コード"ISO-8859-1"に変換してレスポンス出力します。 -- -- -- --
4.7.2.3. JSPファイルのコンパイル

JSPファイルがどの文字コードで記述されているか(読み込み時どのエンコーディングでデコードするか)は通常、以下の処理順で決定されます。 ここで決定された文字コードはJSPファイルを読み込む際のInputStremに適用されます。

表1.4.8.2-3
優先度 設定項目名 説明 設定場所 有効範囲 反映方法 設定例
優先文字コード設定 Webアプリケーション毎にJSPファイルのコンパイルに優先的に使用される文字コードを設定します。 nec-web.xml Webアプリケーション 再配備
<nec-web-app>
    :
  <jsp-config>
    <property name="priorityJspInEncoding" value="EUC-JP"/>
  </jsp-config>
    :
優先文字コード設定 ドメイン(またはプロセスグループ)にJSPファイルのコンパイルに優先的に使用される文字コードを設定します。 domain.xml ドメイン(プロセスプロセスグループ) ドメイン(プロセスプロセスグループ)再起動 otxadminコマンド
otxadmin> set server.web-container
.property.priority-jsp-in-encoding=EUC-JP
JSPファイルpageEncoing設定 JSPファイルにpageEncoing設定が記述されている場合、その文字コードでJSPファイルを読み込みUnicodeに変換します。 ユーザロジック JSPファイル 再配備
<%@ page pageEncoding="windows-31j"%>
      :
配備記述子設定 JSP2.0の仕様でJSPファイル読み込み時の文字コードをweb.xmlに設定できます。contentType設定(charset指定)が無い場合、web.xmlで設定した文字コードでJSPファイルを読み込みUnicodeに変換します。 web.xml Webアプリケーション 再配備
<web-app>
    :
  <jsp-config>
    <jsp-property-group>
      <url-pattern>/jsp/*</url-pattern>
      <page-encoding>Shift_JIS</page-encoding>  
    </jsp-property-group>
  </jsp-config>
    :
JSPファイルcontentType設定 JSPファイルにpageEncoing設定が無くcontentType設定(charset指定)が記述されている場合、その文字コードでJSPファイルを読み込みUnicodeに変換します。 ユーザロジック JSPファイル 再配備
<%@ page contentType="text/html;charset=windows-31j"%>
      :
デフォルト文字コード設定 pageEncoing設定、contentType設定が共に無い、web.xmlの設定も無い場合、デフォルトの文字コードが使用されますが、そのデフォルト文字コードを変更することができます。 domain.xml ドメイン(プロセスプロセスグループ) ドメイン(プロセスプロセスグループ)再起動 otxadminコマンド
otxadmin> set server.web-container
.property.default-encoding=Shift_JIS
デフォルト設定 上記のいずれの設定も無い場合、JSPファイルはデフォルトの文字コード"ISO-8859-1"で読み込まれUnicodeに変換されます。 -- -- -- --
4.7.2.4. JSPファイルのレスポンス

出力するレスポンスデータはどのUnicodeから文字コードに変換するかは通常、以下の処理順で決定されます。 ここで決定されたエンコーディングはレスポンスのヘッダ情報(Content-Typeのcharset)と出力する際OutputStreamに適用されます。

表1.4.8.2-4
優先度 設定項目名 説明 設定場所 有効範囲 反映方法 設定例
優先文字コード設定 Webアプリケーション毎にJSPファイルのレスポンスに優先的に使用される文字コードを設定します。 nec-web.xml Webアプリケーション 再配備
<nec-web-app>
    :
  <jsp-config>
    <property name="priorityJspOutEncoding" value="EUC-JP"/>
  </jsp-config>
    :
優先文字コード設定 ドメイン(またはプロセスグループ)にJSPファイルのレスポンスに優先的に使用される文字コードを設定します。 domain.xml ドメイン(プロセスプロセスグループ) ドメイン(プロセスプロセスグループ)再起動 otxadminコマンド
otxadmin> set server.web-container
.property.priority-jsp-out-encoding=EUC-JP
setContentType設定 JSPファイルにcontentType設定(charset指定)が記述されている場合、レスポンスデータをUnicodeから設定文字コードに変換してレスポンス出力します。 ユーザロジック JSPファイル 再配備
<%@ page contentType="text/html;charset=windows-31j"%>
      :
デフォルト文字コード設定 contentType の設定が無い場合、デフォルトの文字コードが使用されますがそのデフォルト文字コードを変更することができます。 domain.xml ドメイン ドメイン再起動 otxadminコマンド
otxadmin> set server.web-container
.property.default-encoding=Shift_JIS
デフォルト設定 上記のいずれの設定も無い場合、JSPのレスポンスデータをUnicodeからデフォルトの文字コード"ISO-8859-1"に変換してレスポンス出力します。 -- -- -- --


4.8. 使用可能文字について

各箇所で使用可能な文字について記述します。

4.8.1. URL

RFC3986仕様より、URL 中に書くことが許されているのは、半角アルファベット、数字と以下の(半角)記号です

. $ , ; : & = ? ! * ~ @ # _ - ( ) [ ]

またURLのコンテキスト名以降の各パーツで使用可能な文字を記述します。

http://<server名>:<ポート名>/<コンテキスト名>/<パス>/<サーブレット名>?<パラメータ>

  1. コンテキスト名
    Webアプリケーションを配備する際に指定したコンテキストルートに相当する部分です。
    "/hoho1/hoho2"のようにスラッシュで区切って設定することも可能ですが、セッションレプリケーションを利用できないなど制限があります。詳細は [全般 > 注意制限事項 > 3. Webコンテナ > 注意事項] を参照してください。また、"/hoho1/."のようにピリオド区切り(/)間をピリオドのみで構成することはできません。

    半角アルファベット、数字と以下の(半角)記号が使用可能です。

    . $ ! ~ - _ ( )


  2. サーブレット名
    web.xmlに記述する<servlet-mapping>の<url-pattern>に相当します。"/abc/Servlet1"のようにスラッシュで区切って設定することも可能です。
    アクセスする際は、コンテキスト名"/hoho1/hoho2"、サーブレット名"/abc/Servlet1"と設定した場合
      http://server:port/hoho1/hoho2/abc/Servlet1
    のようにアクセスします。

    半角アルファベット、数字と以下の(半角)記号が使用可能です。

    . $ , : = ! * ~ @ - _ ( ) [ ]


  3. パス
    Webアプリケーション内のディレクトリ構成に相当します。

    半角アルファベット、数字と以下の(半角)記号が使用可能です。

    . $ , ! ~ @ - _ ( ) [ ]


  4. ファイル名
    htmlやjspのファイル名です。

    半角アルファベット、数字と以下の(半角)記号が使用可能です。

    . $ , & = ! ~ @ - _ ( ) [ ]



  5. パラメータ
    パラメータ名には、半角アルファベット、数字と以下の(半角)記号が使用可能です。
    ※2バイト文字を使用する場合はエンコードした形式(%XX)にする必要があります。通常はブラウザが自動的にエンコードしてくれます。
    . $ , ; : ? ! * ~ @ - _ ( ) [ ]

    パラメータの値には、半角アルファベット、数字と以下の(半角)記号が使用可能です。
    ※2バイト文字を使用する場合はエンコードした形式(%XX)にする必要があります。通常はブラウザが自動的にエンコードしてくれます。
    . $ , ; : = ? ! * ~ @ - _ ( ) [ ]

4.8.2. アカウント/パスワード

Webにおける認証(Basic/Form認証等)に使用するアカウント/パスワードについて記述します。

  1. アカウント
    利用可能な文字は英数字と “-“、”_”です。

  2. パスワード
    英数字と記号が利用できますが、「\」、「”」文字は利用できません。



4.8.3. XMLファイル

要素名、属性名の使用可能文字はXMLの仕様に従います。値にも次の文字は使用できません。



4.9. 配備記述子強制設定について

Webアプリケーション内の配備記述子(web.xml、nec-web.xml、web-fragment.xml)で設定された設定値を上書きします。本機能を利用することによりWebアプリケーションを再作成することなく、変更した配備記述子の設定でWebアプリケーションを動作させることができます。

4.9.1. 配備記述子強制設定機能を有効にする設定方法

配備記述子強制設定機能を利用するためには、次のJavaシステムプロパティを設定してください。

com.nec.webotx.enterprise.web.WebContainer.overrideWebxml=true

Javaシステムプロパティの設定方法については、「JavaVMオプションで設定可能な項目一覧」を参照してください。

4.9.2. 配備記述子の強制設定方法

配備記述子の強制設定は、domain.xml の deployment-config要素に登録されている強制設定情報(param要素)に従って行われます。
配備記述子の設定変更を反映するには、次の手順で行います。

  1. 配備記述子強制設定情報の登録
  2. Webアプリケーションのリロード
4.9.2.1. (1)配備記述子強制設定情報の登録

次の運用管理コマンド(otxadmin)を利用することで domain.xml の強制設定情報の登録、削除、参照を行うことができます。コマンドの詳細については [ リファレンス > コマンドリファレンス > 運用管理コマンド(otxadmin) ]を参照してください。

set-web-param
unset-web-param
list-web-params

強制設定情報の登録

強制設定情報を domain.xml に登録するには set-web-param コマンドを利用します。
set-web-param コマンドの実行例を次に示します。

otxadmin> set-web-param --file web.xml --type update --elementname servlet/servlet-class --elementvalue className examples

上記の実行例のコマンドを実行することで、domain.xml の deployment-config要素には次の param要素が登録されます。

<deployment-config>
 <param param-target="" context-root="examples" element-name="servlet/servlet-class" element-value="className" file="web.xml" attribute-value="" property-name="" property-value="" attribute-name="" type="update"></param>
</deployment-config>

強制設定情報の削除

強制設定情報を domain.xml から削除するには unset-web-param コマンドを利用します。
unset-web-param コマンドの実行例を次に示します。

otxadmin> unset-web-param --file web.xml --type update --elementname servlet/servlet-class examples

上記の実行例のコマンドを実行することで、domain.xml の deployment-config要素に登録されている param要素が削除されます。コマンド実行前と実行後の domain.xml の内容を以下に示します。

実行前
<deployment-config>
 <param param-target="" context-root="examples" element-name="servlet/servlet-class" element-value="className" file="web.xml" attribute-value="" property-name="" property-value="" attribute-name="" type="update"></param>
</deployment-config>

実行後
<deployment-config>
</deployment-config>

強制設定情報の参照

domain.xml に登録されている強制設定情報を参照するには list-web-params コマンドを利用します。
list-web-params コマンドの実行例を次に示します。

otxadmin> list-web-params

上記の実行例のコマンドを実行することで、domain.xml の deployment-config要素に登録されている全ての param要素を表示することができます。

4.9.2.2. (2)Webアプリケーションのリロード

domain.xml に設定されている強制設定情報を配備記述子に反映するには、Webアプリケーションのリロードが必要なります。Webアプリケーションのリロード方法を次に示します。

Caution
Webアプリケーションのリロードを行っていない場合、domain.xml に強制設定情報が登録されていても、Webアプリケーションの配備記述子は更新されず、従来の動作のままとなります。

運用管理コンソールを利用する場合
  1. 運用管理コンソールへの接続

    Webブラウザを起動し、運用管理コンソールへ接続します。"http://<host>:<port>/manager/"に接続してください。
    ※domain1のポート番号の既定値は 5858 です。

  2. Webアプリケーションの再起動

    管理コンソールの左側のツリーで「アプリケーション」-「Webモジュール」を選択します。
    リロード対象のWebアプリケーションの停止ボタンをクリックし、停止した後に起動ボタンをクリックしてWebアプリケーションを起動してください。

    以上でWebアプリケーションのリロードは完了です。

運用管理コマンド(otxadmin)を利用する場合

次のように、invoke コマンドを利用することによりWebアプリケーションをリロードすることができます。

otxadmin> invoke server.web-container.reloadAllModules
4.9.2.3. 配備記述子強制設定機能の注意事項

配備記述子の強制設定を行う上での注意点を以下に記載しています。

  1. 配備記述子の次の要素については、強制設定の対象外になります。

    env-entry要素
    ejb-ref要素
    ejb-local-ref要素
    context-root要素

  2. 配備記述子の設定変更はドメインの再起動、Webコンテナの再起動を行うことでも反映させることができますが、配備記述子の jsp-config要素配下の値に対して設定変更を行う場合には「(2)Webアプリケーションのリロード」で記載しているWebアプリケーションのリロードを行ってください。

    Caution
    jsp-config要素の設定変更を反映させるにはjspの再コンパイルが必要になります。しかしドメインの再起動、Webコンテナの再起動ではjspの再コンパイルは行わないため、Webアプリケーションのリロードが必要になります。

  3. set-web-param コマンドを実行する際に次のオプションとオペランドである context-root の値がdomain.xml に登録されている param要素の値と完全一致する場合、一致している param要素の内容を更新します。

    ・fileオプション
    ・typeオプション
    ・paramtargetオプション
    ・elementnameオプション
    ・propertynameオプション
    ・attributenameオプション

    例えば elementvalue オプションの値のみが異なる set-web-param コマンドを続けて実行した場合、後に実行したコマンドの情報で最初に実行したコマンドの情報を上書きします。
    set-web-param コマンドとコマンド実行後の domain.xml の例を次に示します。

    set-web-param コマンド

    otxadmin> set-web-param --file web.xml --type update --elementname servlet/servlet-class --elementvalue className examples
    コマンド set-web-param は正常に実行されました。
    otxadmin> set-web-param --file web.xml --type update --elementname servlet/servlet-class --elementvalue newClassName examples
    コマンド set-web-param は正常に実行されました。
    

    domain.xml のdeployment-config要素

    <deployment-config>
     <param param-target="" context-root="examples" element-name="servlet/servlet-class" element-value="newClassName" file="web.xml" attribute-value="" property-name="" property-value="" attribute-name="" type="update"></param>
    </deployment-config>


4.10. Webコンテナと連携するWebサーバを切り替える方法

Caution
今まで利用していたWebサーバを別のWebサーバへ切り替える場合に本設定を行ってください。

静的コンテンツの処理と動的コンテンツの処理を別マシンや別プロセスに分離できるよう、以下のWebサーバと連携することが可能です。

連携可能なWebサーバの詳細は、 [インストールガイド] の各OSのインストールガイドを参照してください。

Webサーバ/Webコンテナを同一マシンで構成することを「共存トポロジー」と呼びます。また、Webサーバ/Webコンテナを異なるマシンで構成することを「分離トポロジー」と呼びます。

4.10.1. Javaベースの内蔵Webサーバから外部Webサーバへ切り替える場合

4.10.1.1. Webコンテナの設定作業

Caution
共存トポロジーまたは分離トポロジーのWebコンテナで実施する作業です。

Javaベースの内蔵Webサーバを使用する設定から、WebOTX Webサーバ、Apache HTTP ServerまたはIIS等の外部Webサーバを使用する設定に変更します。

  1. ドメインの設定変更

    以下のコマンドを実行してください。連携設定を行うドメインが複数存在する場合は、ドメインごとに実行してください。

    AS Expressの場合
    otxadmin> set server.http-service.virtual-server.server.network-listeners=agent-ajp-listener
    otxadmin> set server.network-config.network-listeners.network-listener.agent-ajp-listener.enabled=true
    otxadmin> set server.network-config.network-listeners.network-listener.http-listener-1.enabled=false
    otxadmin> set server.network-config.network-listeners.network-listener.http-listener-2.enabled=false
    AS Standardの場合
    otxadmin> set server.http-service.virtual-server.server.network-listeners=agent-ajp-listener,tpsystem-ajp-listener
    otxadmin> set server.network-config.network-listeners.network-listener.agent-ajp-listener.enabled=true
    otxadmin> set server.network-config.network-listeners.network-listener.tpsystem-ajp-listener.enabled=true
    otxadmin> set server.network-config.network-listeners.network-listener.http-listener-1.enabled=false
    otxadmin> set server.network-config.network-listeners.network-listener.http-listener-2.enabled=false
  2. ドメインの再起動
4.10.1.2. 初期設定ツールの実行

Caution
共存トポロジーまたは分離トポロジーのWebサーバで実施する作業です。

[初期設定ツールの利用方法] を参照して、新しく連携するWebサーバの連携設定を行います。

4.10.2. 外部WebサーバからJavaベースの内蔵Webサーバへ切り替える場合

4.10.2.1. Webコンテナの設定作業

Caution
共存トポロジーまたは分離トポロジーのWebコンテナで実施する作業です。

WebOTX Webサーバ、Apache HTTP ServerまたはIIS等の外部Webサーバを使用する設定からJavaベースの内蔵Webサーバを使用する設定に変更します。

  1. ドメインの設定変更

    以下のコマンドを実行してください。連携設定を行うドメインが複数存在する場合は、ドメインごとに実行してください。

    otxadmin> set server.http-service.virtual-server.server.network-listeners=http-listener-1,http-listener-2
    otxadmin> set server.network-config.network-listeners.network-listener.agent-ajp-listener.enabled=false
    otxadmin> set server.network-config.network-listeners.network-listener.tpsystem-ajp-listener.enabled=false
    otxadmin> set server.network-config.network-listeners.network-listener.http-listener-1.enabled=true (※HTTPを利用する場合のみ)
    otxadmin> set server.network-config.network-listeners.network-listener.http-listener-2.enabled=true (※HTTPSを利用する場合のみ)
  2. ドメインの再起動
4.10.2.2. Webサーバの連携設定の削除

Caution
共存トポロジーまたは分離トポロジーのWebサーバで実施する作業です。

[Webサーバ連携設定の削除方法] を参照して、今まで利用していたWebサーバの連携設定を手動で削除します。

4.10.3. 外部Webサーバから別の外部Webサーバへ切り替える場合

4.10.3.1. 初期設定ツールの実行

Caution
共存トポロジーまたは分離トポロジーのWebサーバで実施する作業です。

[初期設定ツールの利用方法] を参照して、新しく連携するWebサーバの連携設定を行います。

4.10.3.2. Webサーバの連携設定の削除

Caution
共存トポロジーまたは分離トポロジーのWebサーバで実施する作業です。

[Webサーバ連携設定の削除方法] を参照して、今まで利用していたWebサーバの連携設定を手動で削除します。

4.10.4. 初期設定ツールの利用方法

初期設定ツールはWebサーバに対するプラグインの設定を行います。そのため共存トポロジーまたは分離トポロジーのWebサーバで行います。

Caution
初期設定ツールで初期設定を行うと以下のファイルが初期化されますので、必要なファイルはバックアップを取っておいてください。


${INSTANCE_ROOT}/config/WebCont (ドメインが無い場合は、${連携設定ディレクトリ}/config/WebCont) 配下

4.10.4.1. 対話形式での初期設定
Windowsで動作するWebサーバの場合
  1. 共存トポロジーの場合は連携設定の対象となるドメインが停止していることを確認します。以下のコマンドを実行してください。
    otxadmin> list-domains
    起動状態の場合、以下のコマンドで停止してください。
    otxadmin> stop-domain <ドメイン名>
  2. 連携対象の外部Webサーバを停止してください。

  3. 外部Webサーバに対してWebOTXと連携設定を行います。 この操作は、初期設定ツールを使用します。
    (分離トポロジーの場合、この作業は外部Webサーバが動作するマシン上で行います)

    [スタート]-[プログラム]-[WebOTX]-[初期設定ツール]メニューを選択し、ツールを起動します。
    起動された初期設定ツール画面に情報を入力して、WebコンテナとWebサーバとの連携設定を行っていきます。
    複数のドメインが存在する場合、この設定はドメイン毎に設定します。

    Webコンテナの構成

    Webコンテナ初期設定_構成

    表2.3.1.4-3
    設定項目 説明
    共存トポロジ(同一のマシンに存在) WebコンテナとWebサーバが同じマシン上に存在する場合に選択します。
    分離トポロジ(別々のマシンに存在) WebコンテナとWebサーバが別々のマシン上に存在する場合に選択します。
    連携するドメインのホスト名またはアドレス名 分離トポロジのWebコンテナが動作するホスト名またはIPアドレスを入力します。
    ※分離トポロジを選択した場合にのみ入力可能になります。
    連携するWebOTXのエディション Express 分離トポロジのWebコンテナがAS Expressの場合に選択します。
    ※分離トポロジを選択した場合にのみ入力可能になります。
    Standard 分離トポロジのWebコンテナがAS Standardの場合に選択します。
    ※分離トポロジを選択した場合にのみ入力可能になります。

    Webサーバの構成

    Webコンテナ初期設定_Webサーバ

    表2.3.1.4-3
    設定項目 説明
    種別 WebOTX Web Server 2.4 WebOTX Web Server 2.4 に連携設定する場合に選択します。(既定値)
    Apache HTTP Server 2.4 Apache HTTP Server 2.4 に連携設定する場合に選択します。
    Internet Information Servers(IIS) Internet Information Servers(IIS) に連携設定する場合に選択します。
    インストールディレクトリ 「種別」「Apache HTTP Server 2.4」を選択した場合、Apache HTTP Server 2.4のインストールディレクトリを指定します。
    「WebOTX Web Server 2.4」または「Internet Information Services (IIS)」を選択した場合、指定する必要はありません。
    以下に「Apache HTTP Server 2.4」を選択する場合の指定例を示します。
    C:\Apache24
    IISサイト名 IISを使用する場合には、連携させるIISサイト名を指定します。

    連携設定ファイルの生成先情報

    Webコンテナ初期設定_ドメイン

    表2.3.1.4-3
    設定項目 説明
    ドメインディレクトリ Webサーバと連携するWebコンテナのドメインを指定します。
    ドメインの指定例を次に示します。
    C:\WebOTX\domains\domain1

    分離トポロジのWebサーバでドメインが存在しない場合は配下に "config\WebCont"ディレクトリを作成するディレクトリを指定します。
    ディレクトリの指定例を次に示します。(この場合、C:\WebOTX\config\WebCont が作成されその配下に連携設定に必要なファイルが生成されます)
    C:\WebOTX

    連携ポート番号情報

    Webコンテナ初期設定_ポート番号

    表2.3.1.4-3
    設定項目 説明
    エージェントのAJPリスナポート番号 エージェントプロセスのWebコンテナとWebサーバとの連携に使用するポート番号を指定します。 domain1の既定値は「8099」です。 エージェントプロセスのWebコンテナを使用しない場合はチェックを外します。
    TPシステムのAJPリスナポート番号 TPシステムのWebコンテナとWebサーバとの連携に使用するポート番号を指定します。 domain1の既定値は「20102」です。 TPシステムのWebコンテナを使用しない場合はチェックを外します。

    コンテキスト名動的反映オプション

    Webコンテナ初期設定_動的反映

    表2.3.1.4-3
    設定項目 説明
    定期的に行う コンテキストの情報を定期的に問い合わせます。Webアプリケーションを新規に配備した後、Webサーバを再起動する必要がありません。(既定値)
    動的反映間隔 コンテキストの情報を定期的に問い合わせる間隔を秒単位で指定します。既定値は60秒です。
    行わない コンテキストの情報の問い合わせを行いません。Webアプリケーションを新規に配備した後、Webサーバを再起動する必要があります。
    本番環境のようにWebアプリケーションの配備・配備解除を頻繁に行わない環境ではこの設定を推奨します。(*1) ※分離トポロジにて指定する場合は別途 uriworkermap.propertiesファイルにコンテキストのマッピング定義を手動で定義する必要があります。
    Webサーバ起動時の1回のみ行う Webサーバ起動後、Webアプリケーションに最初にアクセスする時、動的反映を1回だけ行います。 この場合、新規に配備したWeb アプリケーションを外部Web サーバに認識させるには、Webサーバの再起動が必要です。

    *1 動的反映の処理では現在配備されているコンテキスト名の最新情報を定期的にWebコンテナへ問い合わせます。



    「OK」ボタンを押下して設定を完了すると、Webコンテナの各種定義ファイル、および Webサーバの設定ファイルに設定情報を反映します。 「キャンセル」ボタンを押下すると反映せずにツールを終了します。

    Caution
    初期設定ツールで初期設定に失敗した場合、エラー情報は ${INSTALL_ROOT}/logs/setinfo_operetion.log に出力されます。このファイル内容を開発部門にお問い合わせください。


Linux, HP-UXで動作するWebサーバの場合
  1. 共存トポロジーの場合は連携設定の対象となるドメインが停止していることを確認します。以下のコマンドを実行してください。
    otxadmin> list-domains
    起動状態の場合、以下のコマンドで停止してください。
    otxadmin> stop-domain <ドメイン名>
  2. 連携対象の外部Webサーバを停止してください。

  3. 外部Webサーバに対してWebOTXと連携設定を行います。 この操作は初期設定ツールを使用します。
    (分離トポロジーの場合、この作業は外部Webサーバが動作するマシン上で行います)

    ${AS_INSTALL}/bin/setconf.sh を実行します。
    $ cd ${AS_INSTALL}/bin
    $ ./setconf.sh
    コンソールに情報を入力して、WebコンテナとWebサーバとの連携設定を行っていきます。
    複数のドメインが存在する場合、この設定はドメイン毎に設定します。

    Webコンテナの構成

    Please enter topology of the web server and the Web Container.[1]
       1. Coexistence topology.
       2. Separation topology.
    表2.3.1.4-3
    設定項目 説明
    1. Coexistence topology. WebコンテナとWebサーバが同じマシン上に存在(共存トポロジ)する場合に選択します。
    2. Separation topology. WebコンテナとWebサーバが別々のマシン上に存在(分離トポロジ)する場合に選択します。
    Please enter host name or IP address of the Web Container to be connected.
    表2.3.1.4-3
    設定項目 説明
    連携するドメインのホスト名またはアドレス名 分離トポロジのWebコンテナが動作するホスト名またはIPアドレスを入力します。
    ※分離トポロジを選択した場合にのみ入力可能になります。
    Please enter type of WebOTX AS where a Web Container runs.[2]
        1. Express
        2. Standard
    表2.3.1.4-3
    設定項目 説明
    連携するWebOTXのエディション 1. Express 分離トポロジのWebコンテナがAS Expressの場合に選択します。
    ※分離トポロジを選択した場合にのみ入力可能になります。
    2. Standard 分離トポロジのWebコンテナがAS Standardの場合に選択します。
    ※分離トポロジを選択した場合にのみ入力可能になります。

    Webサーバの構成

    Please select Web server.[1]
       1. WebOTX Web Server 2.4
       2. Apache HTTP Server 2.4
    表2.3.1.4-3
    設定項目 説明
    種別 1. WebOTX Web Server 2.4 WebOTX Web Server 2.4 に連携設定する場合に選択します。(既定値)
    2. Apache HTTP Server 2.4 Apache HTTP Server 2.4 に連携設定する場合に選択します。
    Please enter web server installation directory.
    []
    表2.3.1.4-3
    設定項目 説明
    Webサーバのインストールディレクトリ 「種別」「Apache HTTP Server 2.4」を選択した場合、Apache HTTP Server 2.4のインストールディレクトリを指定します。

    以下に「Apache HTTP Server 2.4」を選択する場合の指定例を示します。
    /opt/Apache24

    連携設定ファイルの生成先情報

    Please enter a domain directory.[/opt/WebOTX/domains/domain1]
    表2.3.1.4-3
    設定項目 説明
    ドメインディレクトリ Webサーバと連携するWebコンテナのドメインを指定します。
    ドメインの指定例を次に示します。
    /opt/WebOTX/domains/domain1

    分離トポロジのWebサーバでドメインが存在しない場合は配下に "config/WebCont"ディレクトリを作成するディレクトリを指定します。
    ディレクトリの指定例を次に示します。(この場合、/opt/WebOTX/config/WebCont が作成されその配下に連携設定に必要なファイルが生成されます)
    /opt/WebOTX

    連携ポート番号情報

    Please enter port for communication with WebOTX Web Container on the Agent.[8099]
    (Please enter 0 when not using.)
    
    Please enter port for communication with WebOTX Web Container on the TP System.[20102]
    表2.3.1.4-3
    設定項目 説明
    エージェントのAJPリスナポート番号 エージェントプロセスのWebコンテナとWebサーバとの連携に使用するポート番号を指定します。 domain1の既定値は「8099」です。 エージェントプロセスのWebコンテナを使用しない場合は0を入力します。
    TPシステムのAJPリスナポート番号 TPシステムのWebコンテナとWebサーバとの連携に使用するポート番号を指定します。 domain1の既定値は「20102」です。

    コンテキスト名動的反映オプション

    Please select context name dynamic reflection option of Web application.[1]
       1. Dynamic reflection option is on.
       2. Dynamic reflection option is once.
       3. Dynamic reflection option is off.
    表2.3.1.4-3
    設定項目 説明
    1. Dynamic reflection option is on. コンテキストの情報を定期的に問い合わせます。Webアプリケーションを新規に配備した後、Webサーバを再起動する必要がありません。
    2. Dynamic reflection option is once. Webサーバ起動後、動的反映を1回だけ行います。 この場合、新規に配備したWeb アプリケーションを外部Web サーバに認識させるには、Webサーバの再起動が必要です。
    3. Dynamic reflection option is off. コンテキストの情報の問い合わせを行いません。Webアプリケーションを新規に配備した後、Webサーバを再起動する必要があります。
    本番環境のようにWebアプリケーションの配備・配備解除を頻繁に行わない環境ではこの設定を推奨します。(*1) ※分離トポロジにて指定する場合は別途 uriworkermap.propertiesファイルにコンテキストのマッピング定義を手動で定義する必要があります。

    *1 動的反映の処理では現在のコンテキストの状況を定期的にWebコンテナへ問い合わせます。



    The following information has been set.
      Topology of the web server and the Web Container:Coexistence
      Host name or address of the domain which cooperates:localhost
      WebOTX Web Container installation directory:/opt/WebOTX
      Domain directory:/opt/WebOTX/domains/domain1
      Web server:WebOTX Web Server 2.4
    
      Web server installation directory:/opt/WebOTX/WebServer24
      Port for communication with WebOTX Web Container on the Agent:8099
      Port for communication with WebOTX Web Container on the TP System:20102
      Web server plugin dynamic reflection option:on
    Would you like to continue?(y/n)
    "y"を入力してEnterキーを押下すると、Webコンテナの各種定義ファイル、および Webサーバの設定ファイルに設定情報を反映します。 "n"を入力してEnterキーを押下すると、反映せずにスクリプトを終了します。
4.10.4.2. バッチでの初期設定

プロパティファイルを作成して初期設定ツールの起動オプションに "-b <プロパティファイル名>"を指定して実行する事によってバッチでの初期設定が可能になります。 実行方法とプロパティの説明を行います。

実行方法
プロパティ例
利用シーン別のプロパティファイル定義例です。

※1 利用しない場合は 0 を指定します。

4.10.5. Webサーバ連携設定の削除方法

外部Webサーバと連携済みの環境でJavaベースの内部Webサーバに切り替えた場合は外部Webサーバの連携設定を削除してください。

4.11. HTTP/2の利用方法

Javaベースの内蔵WebサーバでHTTP/2を利用する場合は、現状のWebブラウザのHTTP/2実装がTLS 1.2を利用するため、HTTPSのリスナである"http-listener-2"を利用する必要があります。 "http-listener-2"はデフォルトではHTTP/2に対応していないため以下の設定変更が必要です。

4.11.1. HTTP/2に対応したprotocolへの変更

4.11.1.1. Javaバージョンが8または11の場合
  1. "http-listener-2"の利用するprotocolをapr-http2-protocolに変更します。
    otxadmin> set  server.network-config.network-listeners.network-listener.http-listener-2.protocol=apr-http2-protocol
  2. ドメインを再起動します。
4.11.1.2. Javaバージョンが11の場合
  1. "http-listener-2"の利用するprotocolをnio-http2-protocolに変更します。
    otxadmin> set  server.network-config.network-listeners.network-listener.http-listener-2.protocol=nio-http2-protocol
  2. ドメインを再起動します。