WebOTX Manual V10.2 (第4版) 目次を表示 |
Webコンテナに関する設定について説明します。
Webコンテナの設定項目の設定方法については次の2通りがあります。
運用管理コンソールでは各種情報の設定ができます。なお運用管理コンソールの使い方と詳細については、「操作方法 > 運用管理コンソール」を参照してください。
運用管理コンソールで設定できる項目は、JMXのMOとしてもアクセス可能です。項目の設定方法については「 各サービスの属性」を参照してください。
Dottedname : server.web-container
属性名 (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
属性名 (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=forwardoriginal: forward前のURLを返す forward: forward後のURLを返す ※既定値は、WebOTX V7.11以前の値(original)から変更されています。 |
forward |
|||||||||
auth_<認証種別>_<属性名> | Authenticatorの属性に値を設定します。
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
属性名 (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 |
Dottedname : server.web-container.current-version-config.current-version.<コンテキストルート名>
属性名 (attribute-name) |
説明 | 既定値 |
---|---|---|
version | セッション振り分けバージョン管理Memoで使用するWebアプリケーションのカレントバージョンです。同一コンテキストルート名で配備した複数のWebアプリケーションのバージョンを指定します。otxadmin> set server.web-container.current-version-config.current-version./sample.version=02 |
なし |
otxadmin> deploy --contextversion 01 --contextroot /sample --name sample-01 sample.war : otxadmin> deploy --contextversion 02 --contextroot /sample --name sample-02 sample.war
Dottedname : server.http-service
属性名 (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
属性名 (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.<バーチャルサーバ名>
属性名 (attribute-name) |
説明 | 既定値 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
default-web-module | コンテキスト名を省略した時に動作する、デフォルトのWebモジュールです。 | <null> | ||||||||||
hosts | 仮想サーバを選択するためのホストリクエストヘッダの中で有効な値のカンマ(,)区切りのリストです。 | localhost | ||||||||||
id | 仮想サーバの識別名です。 | − | ||||||||||
docroot | 仮想サーバのドキュメントルートです。 | ${com.nec.webotx.instanceRoot}/docroot | ||||||||||
network-listeners |
仮想サーバに関連付けされているHTTPリスナのカンマ(,)区切りのリストです。 現在使用しているWebサーバは以下の方法で確認できます。
|
− | ||||||||||
sso-cookie-secure | シングルサインオン(SSO)で使用されるJSESSIONIDSSOクッキーのセキュリティ設定です。 | dynamic |
Dottedname : server.http-service.virtual-server.<バーチャルサーバ名>.property
属性名 (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 |
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
エージェントプロセスに配備したアプリケーションを実行する場合は、以下の<ネットワークリスナ名>が対象になります。
利用する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 |
属性名 (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.<トランスポート名>
プロセスグループに配備したアプリケーションを実行する場合は、transportの設定は使用されません。
属性名 (attribute-name) |
説明 | 既定値 |
---|---|---|
name | トランスポートの名称です。 | − |
accept-count | リクエスト受け付け用ソケットのバックログ値です。 コネクションリクエストを受け付けて待ち合わせをおこなうキューの長さを指定します。このキューがいっぱいになるとリクエストを拒否します。 |
60 |
Dottedname : server.network-config.protocols.protocol.<プロトコル名>
エージェントプロセスに配備したアプリケーションを実行する場合は、以下の<プロトコル名>が対象になります。
利用する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 |
属性名 (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
エージェントプロセスに配備したアプリケーションを実行する場合は、以下の<プロトコル名>が対象になります。
利用する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 |
属性名 (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-31JWebOTX 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=trueWebOTX V8 では "useBodyEncodingForURI" という名前でした。 |
false |
Dottedname : server.network-config.protocols.protocol.<プロトコル名>.http.property
エージェントプロセスに配備したアプリケーションを実行する場合は、以下の<プロトコル名>が対象になります。
利用する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 |
属性名 (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.<スレッドプール名>
プロセスグループに配備したアプリケーションを実行する場合は、thread-poolの設定は使用されません。
属性名 (attribute-name) |
説明 | 既定値 |
---|---|---|
max-thread-pool-size | エージェントプロセス
Webコンテナが生成できるリクエスト受け付けプロセッサの最大数を設定します。 プロセスグループTPシステムのAJPリスナの「同時接続クライアント数」、プロセスグループの「スレッド数」が相当します。 |
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を変更することで、正常にアクセスできるようになります。
*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
属性名 (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
属性名 (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
属性名 (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
属性名 (attribute-name) |
説明 | 既定値 |
---|---|---|
directory | セッションファイルを書き込むディレクトリを指定します。 ※この設定は、storage-type属性に"FILE"が指定されている場合にのみ有効です。 |
<null> |
プロセスグループの環境変数は、運用管理コンソールや統合運用管理ツールのプロセスグループの「環境変数」タブで設定する事ができます。
環境変数名 | 説明 | 既定値 |
---|---|---|
WOTX_ASYNC_REPLACE | 動的再配備の非同期動作のON/OFFを指定します。 配備時に、自ドメインへ向けてのHTTPリクエストが行われるアプリケーションがある場合には"ON"を設定してください。 ONを指定する必要があるのは、以下の様な場合が考えられます。
|
OFF |
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システムプロパティ」の欄に設定を記述してください。
「名前」に項目名を記述し、「値」に指定する値を記述してください
設定例:
名前 | 値 |
---|---|
webotx.webcont.jndidelete |
480 |
設定項目一覧
項目 | 説明 | 既定値 | |
---|---|---|---|
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の文字列("")を返却するかを指定します。
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に、パス以前の情報(スキーマ、ホスト名、ポート番号)を含めるか否かを指定します。
true: パス以前の情報を含めます |
false |
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 属性に設定します。
次の運用管理コマンドで設定します。
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
ドメインを再起動して、設定を反映します。
Webサーバプラグインに関する設定について説明します。
WebOTXには、Webアプリケーションが配備されたことを自動的に WebOTX WebServer / Apache HTTP Server / IIS などの外部Webサーバに反映させる仕組みがあり、デフォルトではこの機能が有効になっています。 この機能により、ドメインを再起動することなく新規に配備されたWebアプリケーションの存在を外部Webサーバに認識させています。そのため運用中にWebアプリケーションを追加する事が無い場合は無効にすることもできます。
Caution
この設定を行った場合、新規に配備されたWebアプリケーションを外部Webサーバに認識させるには、外部Webサーバを再起動する必要があります。
Caution
初期設定ツールで設定を行うと、以下の設定は初期化されデフォルトの「動的反映を行う」状態になります。環境設定を行った場合は、再度、下記の設定を行ってください。
動的反映しない設定を運用管理コンソールから行うことができます。その他の項目についての運用管理コンソールを使用した設定方法については「 運用管理コンソールを利用したプラグインの設定方法」を参照してください。
Webブラウザを起動し、連携設定を行ったドメインの運用管理コンソールへ接続します。"http://<host>:<port>/manager/
"に接続してください。
※domain1のポート番号の既定値は 5858 です。
管理コンソールの左側のツリーで「アプリケーションサーバ」-「Webコンテナ」-「Webサーバ連携設定」を選択します。
「一般」タブにある「プラグインの動的反映オプション」で「Off」を選択し、「更新」ボタンで設定を反映してください。
以上で設定は完了です。Webサーバを再起動してください。
分離トポロジのWebサーバ等の理由で運用管理コンソールを利用した設定手順が行えない場合は、以下の手順で手動設定を行ってください。
${INSTANCE_ROOT}/config/WebCont/isapi_redirect.properties の次のプロパティをoffにしてください。
dynamic_reflection=off |
${INSTANCE_ROOT}/config/WebCont/mod_jk-24.conf の次のディレクティブをoffにしてください。
JkDynamicReflection off |
外部Webサーバを起動し、設定内容を反映します。
ここではWebアプリケーションが配備されたことを外部Webサーバ起動後に一度だけ自動的に WebOTX WebServer / Apache HTTP Server / IIS などの外部Webサーバに反映させる設定方法について説明します。
Webサーバプロセスの起動直後にのみ動的反映を行いますので、WebOTX WebServer / Apache HTTP Server を使用している場合は起動直後に、IISを使用している場合は初回リクエスト時に動的反映を行います。
一度動的反映を行った以降は外部Webサーバを再起動するまで動的反映は行われません。
※初期設定ツールで設定を行うと、以下の設定は初期化されデフォルトの「動的反映を行う」状態になります。環境設定を行った場合は、再度、下記の設定を行ってください。
Webサーバ起動後一度のみ動的反映する設定を運用管理コンソールから行うことができます。その他の項目についての運用管理コンソールを使用した設定方法については「 運用管理コンソールを利用したプラグインの設定方法」を参照してください。
Webブラウザを起動し、連携設定を行ったドメインの運用管理コンソールへ接続します。"http://<host>:<port>/manager/
"に接続してください。
※domain1のポート番号の既定値は 5858 です。
管理コンソールの左側のツリーで「アプリケーションサーバ」-「Webコンテナ」-「Webサーバ連携設定」を選択します。
「一般」タブにある「プラグインの動的反映オプション」で「Once」を選択し、「更新」ボタンで設定を反映してください。
以上で設定は完了です。Webサーバを再起動してください。
分離トポロジのWebサーバ等の理由で、運用管理コンソールを利用した設定手順が行えない場合は、以下の手順で手動設定を行ってください。
${INSTANCE_ROOT}/config/WebCont/isapi_redirect.properties の次のプロパティをonceにしてください。
dynamic_reflection=once |
${INSTANCE_ROOT}/config/WebCont/mod_jk-24.conf の次のディレクティブをonceにしてください。
JkDynamicReflection once |
外部Webサーバを起動し、設定内容を反映します。
以下はWebサーバプラグイン共通の設定項目一覧です。
対象ワーカタイプは次のとおりです。
Webサーバプラグイン:
AJP・・・"type"の値が"ajp13"であるワーカ名。負荷分散でない時に設定されているワーカ名
LB・・・"type"の値が"lb"であるワーカ名。負荷分散時の管理親ワーカ
SUB・・・"type"の値が"ajp13"であるワーカ名。負荷分散時の子ワーカ
連携設定項目:workers.properties(Webサーバプラグイン)
プロパティ名 | 対象ワーカタイプ | 説明、例 | 既定値 |
---|---|---|---|
worker.list | - |
ワーカ名のリストを指定します。一つ以上のワーカを指定する必要があり、複数指定する場合は,コンマ(,)区切りで記述します。 例: worker.list=agent-ajp 必ず最初(左)に指定してください。 |
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 |
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 |
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 |
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となります。 |
0 ※インストール時に設定ファイルに初期値として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 |
プロパティ名 | 説明、例 | 既定値 |
---|---|---|
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 |
JkShmSize | 共有メモリファイルのサイズ(KB単位)を指定します。 例: JkShmSize 64 |
OSに依存 |
JkMountFile | ワーカが読み込むコンテキスト情報を記述するファイルのパスを指定します。 例: JkMountFile
"C:/WebOTX/domains/domain1/config/WebCont/uriworkermap.properties"
|
${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties |
JkMountFileReload | "JkMountFile"で指定したファイルを再読み込みする間隔(秒単位)を指定します。 例: JkMountFileReload 60 |
0(再読み込みをしない) |
JkMount | ワーカが読み込むコンテキストを指定します。 例: JkMount "/WebAP1" agent-ajp |
なし |
JkUnMount |
Webコンテナ側にリクエストを送信しないコンテキストを指定します。Webサーバ側に配置したコンテンツにアクセスしたい場合に指定してください。 例: 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 |
JkLogLevel | ログの出力レベルを指定します。 設定可能な値は error/warn/info/debug/trace です。 例: JkLogLevel error |
error |
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" |
"%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 |
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 |
連携設定項目:isapi_redirect.properties
プロパティ名 | 説明、例 | 既定値 |
---|---|---|
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 |
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 |
rotate_size | ログローテーションを行うログのサイズ(Mbyte)を設定します。 例: rotate_size=5 |
0 |
rotate_interval | ログローテーションを行う時間(秒)を設定します。1日を指定する場合は 86400 を設定します。 例: rotate_interval=86400 |
86400 |
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 |
連携設定項目:uriworkermap.properties
コンテキストとworkerのマッピングを定義するファイルです。
プロパティ名 | 説明、例 | 既定値 |
---|---|---|
<コンテキストパス> | 指定したコンテキストパスにマッピングする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) |
- |
WebOTX Webサーバ(Apache)ではバーチャルホストを複数作成することができ、バーチャルホストごとにコンテキスト名の設定を行うことができます。
設定方法
下記のURLを参照してバーチャルホストを作成してください。
${INSTANCE_ROOT}/config/WebCont/mod_jk-**.conf の JkMountCopy の設定を Off にする。
${INSTANCE_ROOT}/config/WebServer/httpd.conf の <VirtualHost> 要素内に JkMount(またはJkUnMount)の設定を行う。
例えばバーチャルホストA、Bを作成し、バーチャルホストAには /aaa というコンテキスト名を、バーチャルホストBには /bbb というコンテキスト名を設定する場合は ${INSTANCE_ROOT}/config/WebServer/httpd.conf に以下のように設定します。
<VirtualHost *:80>
JkMount "/aaa" agent-ajp
JkMount "/aaa/*" agent-ajp
・・・
</VirtualHost>
<VirtualHost *:8080>
JkMount "/bbb" agent-ajp
JkMount "/bbb/*" agent-ajp
・・・
</VirtualHost>
バーチャルホストAに対して /aaa にリクエストを行うと正常にレスポンスが返り、/bbb
にリクエストを行うとコンテキスト名を設定していないため 404エラーが返ります。
また、バーチャルホストBに対してリクエストを行った場合は /aaa にリクエストすると 404エラーが返り、/bbb
にリクエストすると正常にレスポンスが返るようになります。
WebOTX Application Server V8.3 以降 では、統合運用管理ツールや運用管理コンソールからWebサーバプラグインの設定項目を変更する機能を提供しています。
ただし、WebサーバとWebコンテナが別マシン構成の場合、この機能を利用するには以下の両方の条件を満たしている必要があります。
Caution
この機能では連携設定済みの環境に対して、設定項目のカスタマイズを行います。Webサーバとの連携ができていない場合は、先に初期設定ツールを使用して連携設定を行ってください。初期設定ツールを使用して連携設定を行うと、workers.properties
に対して行われた設定は全て初期化されます。
外部Webサーバ連携時には、使用するWebサーバの種類や、連携先のWebコンテナの動作モードによってWebサーバプラグイン用の複数の設定ファイルが使用されます。一部の設定ファイルについては、運用管理コンソールや運用管理コマンドから設定できず、手動で設定を行う必要があります。以下は使用するWebサーバごとの設定ファイルと運用管理コンソールからの設定可否の一覧です。「コンソールからの設定」が「△」のファイルは、一部の機能を設定可能です。「×」のファイルについては、設定できません。
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 | △ |
下表は運用管理コンソールや運用管理コマンドから設定可能な項目です。下表の「設定ファイル内での設定名」にある項目については運用管理コンソールや運用管理コマンドから設定できます。上表で「コンソールからの設定」が「△」になっているファイルに設定する項目で、下表の「設定ファイル内での設定名」にない項目については手動で設定する必要があります。運用管理コンソールや運用管理コマンドから設定を行った場合、設定内容に応じて「更新される設定ファイル」に出力されます。
表示名 (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 |
以下では具体的な設定方法について、運用管理コンソールを使用して説明を行います。
ブラウザを起動し、連携設定を行ったドメインの管理コンソール(http://<host>:<port>/manager)に接続し、ログインしてください。(domain1の場合の<port>の既定値は
5858 です。)
プラグインの動的反映オプションやプラグインのログのローテーション、コネクションプールサイズの設定を行う方法を説明します。
セッション管理についてServlet2.4などに規定されている仕様や、クライアント(ブラウザ)側の動作などの一般的な動作の仕組みについて説明します。
セッションの管理方法にはCookieを使用する方法とURLRewritingを使用する方法があります。Cookieを使用する方法では、セッションを識別するためのセッションIDをCookieに保存します。URLRewritingを使用する方法では、セッションIDをURLのパラメータに追加します。
次項で2つのセッション管理方法の動作イメージを示します。
コンテナはクライアントにクッキーを送信します。その後、クライアントは、それぞれのリクエストのときにセッションを含むクッキーつけて、サーバに送信します。セッションのクッキーの名前は”JSESSIONID”を使用します。
Cookieを使うセッションID管理方法は、セッションIDをWebブラウザのCookieに設定します。
ユーザアプリケーションはアクセス先URLを作成する際、URLにセッションIDを付加します。セッションIDは独自に編集するか、javax.servlet.http.HttpServletResponse#encodeURL()メソッドを用いて付加します。
URLRewritingを使うセッションID管理方法は、セッションIDをHTMLの<Form>タグのactionのURLなどに付加します。
セッションには有効期限が存在します。指定した期間クライアントからのリクエストが無い場合、Webコンテナはセッションを破棄します。以降破棄されたセッションに対しリクエストがあった場合、新たにセッションが作成され要求されたセッションと入れ替えられます。
WebOTXでのセッション管理に関連する基本的な設定について説明します。
セッションをCookieで管理するかURLRewritingで管理するか、Webアプリケーション単位で切り替えます。
運用管理コンソールによる設定
運用管理コンソール(http://<host>:5858/manager/)を開きます。
ツリーより[アプリケーション]-[Webモジュール]-[<対象アプリケーション>]-[module]-[<対象アプリケーション>]-[engine]-[web]-[web-module-config]を選択してください。
表示された設定画面の「セッションIDの管理」チェックボックスを設定してください。
チェックした場合はCookie管理、チェックしない場合はURLRewriting管理となります。
※ nec-web.xmlの設定が在る場合、nec-web.xmlの設定が優先されます。
nec-web.xmlによる設定
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | true | |
設定例 |
<nec-web-app> : <session-config> <session-properties> <property name="enableCookies" value="true" /> </session-properties> : |
|
説明 | セッションの管理方法を指定、trueを設定した場合はCookie管理、falseを設定した場合はURLRewriting管理となります。 | |
備考 | nec-web.xmlは予めwarアーカイブに格納しておいてください。 |
セッションのタイムアウト時間(有効期限)を設定します。設定には幾つかの種類がありそれぞれ有効範囲が異なります。それぞれの設定について説明します。優先順位は後者ほど高くなります。
domain全体に対する設定になります。
設定詳細 | ||
---|---|---|
設定箇所 | <domainディレクトリ>/config/default-web.xml | |
既定値 | 30(分) | |
最小値 | 1(分) ※0以下の場合セッションタイムアウトは行われません。 | |
最大値 | 35791(分) | |
設定例 |
<web-app> : <session-config> <session-timeout>30</session-timeout> </session-config> : |
|
説明 | domain全体に対するセッションタイムアウト値を設定します。 | |
備考 | 設定変更後はドメインを再起動してください。 |
Webアプリケーション毎に有効な設定ですが、web.xmlの設定が無い場合に有効です。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/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アプリケーション毎に有効な設定になります。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/web.xml | |
既定値 | なし | |
最小値 | 1 ※0以下の場合セッションタイムアウトは行われません。 | |
最大値 | 35791(分) | |
設定例 |
<web-app> : <session-config> <session-timeout>30</session-timeout> </session-config> : |
|
説明 | Webアプリケーション毎に有効なセッションタイムアウト値を設定します。 | |
備考 | なし |
セッション毎に有効な設定でユーザがWebアプリケーション中で指定します。
設定詳細 | ||
---|---|---|
設定箇所 | Webアプリケーションのロジック中 | |
既定値 | なし | |
最小値 | 1(秒) ※0以下の場合セッションタイムアウトは行われません。 | |
最大値 | 2147483(秒) | |
設定例 |
: HttpSession session = request.getSession(); session.setMaxInactiveInterval(300); : |
|
説明 | セッション毎に有効なセッションタイムアウト値をjavax.servlet.http.HttpSession#setMaxInactiveInterval()メソッドで設定します。 | |
備考 | なし |
WebOTXでは何も設定しないデフォルトの状態ではdomainの停止と共にセッション情報は消えてしまいます。セッション情報をファイルに保存する設定を行うことでdomain再起動後もセッションをファイルから復元、継続して使用することができます。
※ アプリケーションをプロセスグループに配備した場合、セッションの保存方法には制限が存在します。 詳細は「 WebOTXの高度な設定(アプリケーションをプロセスグループに配備した場合の設定) > アプリケーションをプロセスグループに配備した場合のセッション情報保存」 を参照してください。
※ セッション情報を保存したファイルの保存箇所は<domainディレクトリ>/generated/jsp/<Webアプリケーション名>配下がカレントになります。このディレクトリはWebアプリケーションを配備解除するとディレクトリが削除され、セッション情報が失われますのでご注意ください。
セッションはメモリ上に展開され、domainの停止時にファイルに出力されます。domainが正常に停止されない場合(突然のアボート等)、セッション情報はファイルに保存されないことがあります。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/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が正常に停止されない場合(突然のアボート等)、ファイルに最新情報が反映されない場合があります。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/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の高度な設定(アプリケーションをプロセスグループに配備した場合の設定) > アプリケーションをプロセスグループに配備した場合のセッション情報保存」 を参照してください。
同時に作成できるセッションの最大数を設定します。
セッションレプリケーション時に本項目を指定するとセッション数増加に伴いセッションを払いだす時間が長くなります。ご注意ください。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/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> : |
|
説明 | セッションの同時最大数を設定する | |
備考 | なし |
セッションをCookie管理している場合、セッションIDを格納するCookieに自動でSecure属性の設定を行うことができます。 ただし、このオプションはユーザが作成したCookieには適用されません。ユーザが作成したCookieにSecure属性を付与する場合はCookieのAPI(javax.servlet.http.Cookie#setSecure())で設定してください。 Secure属性を設定したCookieはクライアントからHTTPSプロトコルでアクセスされた場合のみリクエストに付加され、HTTPプロトコルでアクセスされた場合は付加されなくなります。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | false | |
設定例 |
<nec-web-app> : <session-config> <cookie-properties> <property name="cookieSecure" value="true"/> </cookie-properties> </session-config> : |
|
説明 | セッションのセキュアオプションを強制設定する | |
備考 | なし |
HttpServletResponse.encodeURL()を実行しても、URLRewriting(セッションIDの付加)を行わない設定を行います。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | true | |
設定例 |
<nec-web-app> : <session-config> <session-properties> <property name="enableURLRewriting" value="false" /> : |
|
説明 | URLRewriting(セッションIDの付加)を行わない設定 | |
備考 | なし |
セッションを強制的に使えなくする設定です。動作的にはセッションオブジェクトが取得できないわけではなく、リクエストの終了時セッションがあれば無効化するような動作になります。 また、レスポンス(CookieやURLRewriting)にセッションIDは設定されません。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | true | |
設定例 |
<nec-web-app> : <session-config> <session-properties> <property name="enableSession" value="false" /> : |
|
説明 | セッションを使えなくする設定 | |
備考 | なし |
ドメインもしくはプロセスグループ単位でセッションIDに、指定した文字列を付加することができます。セッションIDを払い出したWebサーバを特定したい場合などに使用します。
設定詳細 | ||
---|---|---|
設定箇所 | JVMオプション | |
既定値 | なし | |
設定例 |
-DjvmRoute="hoho1"otxadminコマンドを用いて設定する場合
|
|
説明 | セッションIDに指定文字列を付加する設定。セッションIDに"."を区切り文字として指定文字列を付加します。 | |
備考 |
プロセスIDとjvmRouteを付加した場合のセッションIDの例を示します。 5B22AF53A66CAB1AB26490EB430D36C3.hoho1$3936 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ ~~~~ セッションID(32桁) . jvmRoute $ プロセスID |
セッションを使用しない静的ファイル(html、gif等)へのリクエストに対して、セッションの時刻情報を更新しないように設定できます。 セッションID付け替えによる制限事項の軽減に対して有効です。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/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アーカイブに格納しておいてください。 |
Webコンテナが生成するセッションIDの長さは、既定では16進で32桁(16byte==128bit)ですが、 設定により変更することが可能です。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/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アーカイブに格納しておいてください。 |
システムの信頼性を高めるための複数のサーバ間でセッションデータを複製しておく仕組みをセッションレプリケーションと言います。セッションレプリケーションを設定することで1台のサーバがダウンした場合でも複製したセッション情報を元に他のサーバが処理を引き継ぐことができます。WebOTXのセッションレプリケーションはセッション情報をJNDI(または、データベース)に格納することで実現します。JNDIを使用する場合の情報共有に関しては HTTPのみのセッションレプリケーション及び JNDIサーバをレプリケーションするための設定を参照してください。
セッションレプリケーションを行うにあたり、Webアプリケーションの作りに一部制限が存在します。詳細は [ Webアプリケーションの運用/実行 > セッションレプリケーションのWebアプリケーション実装注意事項について ] を参照してください。
セッションレプリケーションの概要を図にします。
WebOTXのレプリケーション機能の動作概要について記述します。
Webアプリケーションにセッション情報をJNDIに登録するための設定を行います。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/web.xml | |
既定値 | なし(OFF) | |
設定例 |
<web-app> : <distributable/> : |
|
説明 |
Webアプリケーションにセッションレプリケーションの設定を行います。ON/OFFは要素を記述するかしないかになります。 またdefault-web.xmlに本項目を設定すると、セッションレプリケーションに対応していないWebアプリケーションにも影響を与えてしまいますので、Webアプリケーション毎にweb.xmlに設定してください。 |
|
備考 | なし |
性能 | 信頼性 | モード名 | テンプレート設定値(プロパティ名/値) | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
低 | 高 | 即時同期モード |
|
||||||||||||||
中 | 中 | 同期モード |
|
||||||||||||||
高 | 低 | 非同期モード |
|
※セッションレプリケーションを設定する場合、セッションの管理方法をメモリに設定する必要があります。 [ WebOTXの基本的な設定 > メモリ管理によるセッション保存] 参照
異なるdomainのJNDIを連携設定することでセッション情報を共有します。設定方法によらず設定内容はセッションレプリケーションするJNDIサーバのURLを"rmiiiop://host1:port,host2:port"の形式で設定します。ここで2重化されるのはセッション情報のみです。
画面左ツリーより「Webアプリケーションサーバ」-「Webコンテナ」を選択し、「JNDI Servlet URL」を更新します。
運用管理コマンドより以下のコマンドを実行します。
otxadmin> set server.web-container.session-replication-jndi-url=rmiiiop://host:port,host2:port |
CREATE TABLE webotx$sessions( app VARCHAR(100) NOT NULL, session_id VARCHAR(100) NOT NULL, createhost VARCHAR(64), createtime NUMBER, lastaccesstime NUMBER, thisaccesstime NUMBER, maxInactiveInterval NUMBER, invalidate NUMBER, createversion VARCHAR(64), PRIMARY KEY(app, session_id)); CREATE TABLE webotx$sessions$attributes( app VARCHAR(100) NOT NULL, session_id VARCHAR(100) NOT NULL, attributename VARCHAR(100) NOT NULL, attributevalue BLOB, PRIMARY KEY(app, session_id, attributename)); |
CREATE INDEX webotx$sessionsindex ON webotx$sessions( app, session_id, maxInactiveInterval, invalidate, createversion); |
CREATE TABLE webotx$sessiondata( session_id VARCHAR(100) NOT NULL, app VARCHAR(100) NOT NULL, data BLOB, createversion VARCHAR(64), PRIMARY KEY(app, session_id)); |
CREATE INDEX webotx$sessiondataindex ON webotx$sessiondata( app, session_id, createversion); |
otxadmin> create-jdbc-datasource --dataSourceType JDBCEX_Oracle --jdbcMajorVersion 3 --jdbcUserName scott --jdbcPassword tiger --dataSourceName jdbc:oracle:thin:@localhost:1521:ORCL jdbc/Oracle |
アプリケーションをプロセスグループに配備した場合、通常のセッション管理に加えてプロセスグループ特有の管理情報が追加されます。 通常レプリケーション設定が無い場合、セッションを構築したクライアントとサーバは1対1ですが、アプリケーションをプロセスグループに配備した場合、サーバ側で動作するプロセス数がプロセスグループの設定により複数になる可能性があります。
セッションを維持するためにはクライアントからのリクエストを、セッションを払いだしたプロセスに送る必要があります。そのためにWebコンテナは セッションIDを払いだす際に通常のセッションIDの後に"$"を区切りとして自身が動作しているプロセスのIDを付加します(※)。 次回リクエスト時、セッションIDにこのプロセスIDが付加されていた場合、該当するプロセスを探し出して転送します。
※ 環境の構成によってはプロセスIDが付加されない場合があります。詳細は次節参照
アプリケーションをプロセスグループに配備した場合、セッションIDには構成によりプロセスIDが付加されます。何かの事情によりプロセスIDを付加したくない場合、「強制的にプロセスIDを付加する/しない」 を設定することができます。
※ アプリケーションをエージェントプロセスに配備した場合はプロセスIDが付加されることはありません
構成によるプロセスIDの付加
プロセス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を付加しません。プロセスは複数存在しますが、レプリケーション設定されているためどのプロセスが選択されても同じ結果になるためです。 |
C7C25B729C39629558DB02C5FA25E038$6212 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ セッションID(32桁) $ プロセスID |
アプリケーションをプロセスグループに配備した場合、構成によりセッション情報の保存方法に制限が存在します。
1つのホストのWebブラウザから、同じホストで起動する複数のドメインに対してリクエストを行った時、セッションIDが意図したとおりに取得できない事があります。
例えば次のようなケースで説明します。
上記のような構成で次のようにアクセスしたとします。
※下記アプリケーションのアクセスでHTTPセッションを生成するものとします。
この場合、(3)でアプリケーションが取得できるHTTPセッションは(1)で生成されたHTTPセッションではなく新たに生成されたHTTPセッションとなります。この時のセッションIDの生成と動きを次に説明します。
(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は別となります。
Webブラウザは同じアプリケーション(コンテキスト名)でもホスト毎にCookieを管理するため、セッションIDは別になります。
通常Webブラウザは普通にウィンドウを複数起動するとCookieを共有します。例えば、Internet Explorer(IE)では、「ファイル」メニューから明示的に「新規セッション」を利用して別のウィンドウを開くと、ドメインA, Bが同じホストで同じアプリケーションを配置していても同じCookieを送信せず、セッションIDは別となります。
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について概要図を示します。
次節以降の表中で使用する用語について説明します。
使用できる文字コードはJavaのプラットフォームにより異なります。Javaのマニュアルにてご確認ください。
文字コードの設定箇所と、それぞれの優先順位を記述します。
リクエストのデータをどの文字コードとして扱うかは通常、以下の処理順で決定されます。ここで決定された文字コードはリクエストからデータを取得する際のInputStreamに適用されます。
優先度 | 設定項目名 | 説明 | 設定場所 | 有効範囲 | 反映方法 | 設定例 |
---|---|---|---|---|---|---|
1 | setCharcterEncoding設定 | Filter等でリクエストデータを参照する前に、HttpServletRequest.setCharcterEncoding()により文字コードを設定した場合、その文字コードとしてリクエストデータをUnicodeに変換します。 | ユーザロジック | Webアプリケーション | 再配備 |
: ((HttpServletRequest)request).setCharcterEncoding("Shift_JIS"); : |
2 | HTTPリクエストcharset設定 | HTTPリクエストのヘッダ情報にcharset指定がある場合、その文字コードでリクエストデータをUnicodeに変換します。 | なし | Webアプリケーション | 再配備 |
ブラウザ等クライアントアプリケーションに依存しますがHTTPリクエストヘッダにcharset指定がある場合の動作になります。 "Content-Type: application/x-www-form-urlencoded; charset=windows-31j" 等 |
3 | 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> :
|
4 | デフォルト設定 | 上記のいずれも無い場合、リクエストデータはデフォルトの文字コード"ISO-8859-1"を用いてUnicodeに変換されます。 | -- | -- | -- | -- |
レスポンスにデータをどの文字コードとして出力するかは通常、以下の処理順で決定されます。ここで決定された文字コードはHTTPレスポンスのヘッダ情報(Content-Typeのcharset)とデータを出力する際のOutputStreamに適用されます。
優先度 | 設定項目名 | 説明 | 設定場所 | 有効範囲 | 反映方法 | 設定例 |
---|---|---|---|---|---|---|
1 | 文字コード優先設定 | 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設定の優先度が高くなります。 |
2 | 文字コード優先設定 | ドメイン(またはプロセスグループ)にHTTPレスポンスに優先的に使用される文字コードを設定します。 | domain.xml | ドメイン | ドメイン(プロセスグループ)再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.priority-response-encoding=EUC-JP |
3 | 配備記述子文字コード設定 | 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> : |
4 | setCharacterEncoding設定 | ServletResponseのsetContentType()またはsetCharacterEncoding()にてcharsetが設定された場合、レスポンスデータをUnicodeから設定された文字コードに変換してレスポンス出力します。 | ユーザロジック | Webアプリケーション | 再配備 |
: ((HttpServletResponse)response). setContentType("text/html; charset=Shift_JIS") : |
5 | デフォルト設定 | 上記の設定が無い場合、レスポンスデータをUnicodeからデフォルトの文字コード"ISO-8859-1"に変換してレスポンス出力します。 | -- | -- | -- | -- |
JSPファイルがどの文字コードで記述されているか(読み込み時どのエンコーディングでデコードするか)は通常、以下の処理順で決定されます。 ここで決定された文字コードはJSPファイルを読み込む際のInputStremに適用されます。
優先度 | 設定項目名 | 説明 | 設定場所 | 有効範囲 | 反映方法 | 設定例 |
---|---|---|---|---|---|---|
1 | 優先文字コード設定 | Webアプリケーション毎にJSPファイルのコンパイルに優先的に使用される文字コードを設定します。 | nec-web.xml | Webアプリケーション | 再配備 |
<nec-web-app> : <jsp-config> <property name="priorityJspInEncoding" value="EUC-JP"/> </jsp-config> : |
2 | 優先文字コード設定 | ドメイン(またはプロセスグループ)にJSPファイルのコンパイルに優先的に使用される文字コードを設定します。 | domain.xml | ドメイン(プロセスプロセスグループ) | ドメイン(プロセスプロセスグループ)再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.priority-jsp-in-encoding=EUC-JP |
3 | JSPファイルpageEncoing設定 | JSPファイルにpageEncoing設定が記述されている場合、その文字コードでJSPファイルを読み込みUnicodeに変換します。 | ユーザロジック | JSPファイル | 再配備 |
<%@ page pageEncoding="windows-31j"%> : |
4 | JSPファイルcontentType設定 | JSPファイルにpageEncoing設定が無くcontentType設定(charset指定)が記述されている場合、その文字コードでJSPファイルを読み込みUnicodeに変換します。 | ユーザロジック | JSPファイル | 再配備 |
<%@ page contentType="text/html;charset=windows-31j"%> : |
5 | 配備記述子設定 | 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> : |
6 | デフォルト文字コード設定 | pageEncoing設定、contentType設定が共に無い、web.xmlの設定も無い場合、デフォルトの文字コードが使用されますが、そのデフォルト文字コードを変更することができます。 | domain.xml | ドメイン(プロセスプロセスグループ) | ドメイン(プロセスプロセスグループ)再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.default-encoding=Shift_JIS |
7 | デフォルト設定 | 上記のいずれの設定も無い場合、JSPファイルはデフォルトの文字コード"ISO-8859-1"で読み込まれUnicodeに変換されます。 | -- | -- | -- | -- |
出力するレスポンスデータはどのUnicodeから文字コードに変換するかは通常、以下の処理順で決定されます。 ここで決定されたエンコーディングはレスポンスのヘッダ情報(Content-Typeのcharset)と出力する際OutputStreamに適用されます。
優先度 | 設定項目名 | 説明 | 設定場所 | 有効範囲 | 反映方法 | 設定例 |
---|---|---|---|---|---|---|
1 | 優先文字コード設定 | Webアプリケーション毎にJSPファイルのレスポンスに優先的に使用される文字コードを設定します。 | nec-web.xml | Webアプリケーション | 再配備 |
<nec-web-app> : <jsp-config> <property name="priorityJspOutEncoding" value="EUC-JP"/> </jsp-config> : |
2 | 優先文字コード設定 | ドメイン(またはプロセスグループ)にJSPファイルのレスポンスに優先的に使用される文字コードを設定します。 | domain.xml | ドメイン(プロセスプロセスグループ) | ドメイン(プロセスプロセスグループ)再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.priority-jsp-out-encoding=EUC-JP |
3 | setContentType設定 | JSPファイルにcontentType設定(charset指定)が記述されている場合、レスポンスデータをUnicodeから設定文字コードに変換してレスポンス出力します。 | ユーザロジック | JSPファイル | 再配備 |
<%@ page contentType="text/html;charset=windows-31j"%> : |
4 | デフォルト文字コード設定 | contentType の設定が無い場合、デフォルトの文字コードが使用されますがそのデフォルト文字コードを変更することができます。 | domain.xml | ドメイン | ドメイン再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.default-encoding=Shift_JIS |
5 | デフォルト設定 | 上記のいずれの設定も無い場合、JSPのレスポンスデータをUnicodeからデフォルトの文字コード"ISO-8859-1"に変換してレスポンス出力します。 | -- | -- | -- | -- |
RFC3986仕様より、URL 中に書くことが許されているのは、半角アルファベット、数字と以下の(半角)記号です
. $ , ; : & = ? ! * ~ @ # _ - ( ) [ ] |
またURLのコンテキスト名以降の各パーツで使用可能な文字を記述します。
http://<server名>:<ポート名>/<コンテキスト名>/<パス>/<サーブレット名>?<パラメータ>
半角アルファベット、数字と以下の(半角)記号が使用可能です。
. $ ! ~ - _ ( ) |
半角アルファベット、数字と以下の(半角)記号が使用可能です。
. $ , : = ! * ~ @ - _ ( ) [ ] |
半角アルファベット、数字と以下の(半角)記号が使用可能です。
. $ , ! ~ @ - _ ( ) [ ] |
半角アルファベット、数字と以下の(半角)記号が使用可能です。
. $ , & = ! ~ @ - _ ( ) [ ] |
. $ , ; : ? ! * ~ @ - _ ( ) [ ] |
. $ , ; : = ? ! * ~ @ - _ ( ) [ ] |
Webにおける認証(Basic/Form認証等)に使用するアカウント/パスワードについて記述します。
要素名、属性名の使用可能文字はXMLの仕様に従います。値にも次の文字は使用できません。
< & > |
< & > " ' |
Webアプリケーション内の配備記述子(web.xml、nec-web.xml、web-fragment.xml)で設定された設定値を上書きします。本機能を利用することによりWebアプリケーションを再作成することなく、変更した配備記述子の設定でWebアプリケーションを動作させることができます。
配備記述子強制設定機能を利用するためには、次のJavaシステムプロパティを設定してください。
com.nec.webotx.enterprise.web.WebContainer.overrideWebxml=true
Javaシステムプロパティの設定方法については、「JavaVMオプションで設定可能な項目一覧」を参照してください。
配備記述子の強制設定は、domain.xml の deployment-config要素に登録されている強制設定情報(param要素)に従って行われます。
配備記述子の設定変更を反映するには、次の手順で行います。
次の運用管理コマンド(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要素を表示することができます。
domain.xml に設定されている強制設定情報を配備記述子に反映するには、Webアプリケーションのリロードが必要なります。Webアプリケーションのリロード方法を次に示します。
Caution
Webアプリケーションのリロードを行っていない場合、domain.xml に強制設定情報が登録されていても、Webアプリケーションの配備記述子は更新されず、従来の動作のままとなります。
Webブラウザを起動し、運用管理コンソールへ接続します。"http://<host>:<port>/manager/
"に接続してください。
※domain1のポート番号の既定値は 5858 です。
管理コンソールの左側のツリーで「アプリケーション」-「Webモジュール」を選択します。
リロード対象のWebアプリケーションの停止ボタンをクリックし、停止した後に起動ボタンをクリックしてWebアプリケーションを起動してください。
以上でWebアプリケーションのリロードは完了です。
次のように、invoke コマンドを利用することによりWebアプリケーションをリロードすることができます。
otxadmin> invoke server.web-container.reloadAllModules
配備記述子の強制設定を行う上での注意点を以下に記載しています。
env-entry要素
ejb-ref要素
ejb-local-ref要素
context-root要素
Caution
jsp-config要素の設定変更を反映させるにはjspの再コンパイルが必要になります。しかしドメインの再起動、Webコンテナの再起動ではjspの再コンパイルは行わないため、Webアプリケーションのリロードが必要になります。
・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> |
Caution
今まで利用していたWebサーバを別のWebサーバへ切り替える場合に本設定を行ってください。
静的コンテンツの処理と動的コンテンツの処理を別マシンや別プロセスに分離できるよう、以下のWebサーバと連携することが可能です。
連携可能なWebサーバの詳細は、 [インストールガイド] の各OSのインストールガイドを参照してください。
Webサーバ/Webコンテナを同一マシンで構成することを「共存トポロジー」と呼びます。また、Webサーバ/Webコンテナを異なるマシンで構成することを「分離トポロジー」と呼びます。
Caution
共存トポロジーまたは分離トポロジーのWebコンテナで実施する作業です。
Javaベースの内蔵Webサーバを使用する設定から、WebOTX Webサーバ、Apache HTTP ServerまたはIIS等の外部Webサーバを使用する設定に変更します。
以下のコマンドを実行してください。連携設定を行うドメインが複数存在する場合は、ドメインごとに実行してください。
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=falseAS 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
Caution
共存トポロジーまたは分離トポロジーのWebサーバで実施する作業です。
[初期設定ツールの利用方法] を参照して、新しく連携するWebサーバの連携設定を行います。
Caution
共存トポロジーまたは分離トポロジーのWebコンテナで実施する作業です。
WebOTX Webサーバ、Apache HTTP ServerまたはIIS等の外部Webサーバを使用する設定からJavaベースの内蔵Webサーバを使用する設定に変更します。
以下のコマンドを実行してください。連携設定を行うドメインが複数存在する場合は、ドメインごとに実行してください。
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を利用する場合のみ)
Caution
共存トポロジーまたは分離トポロジーのWebサーバで実施する作業です。
[Webサーバ連携設定の削除方法] を参照して、今まで利用していたWebサーバの連携設定を手動で削除します。
Caution
共存トポロジーまたは分離トポロジーのWebサーバで実施する作業です。
[初期設定ツールの利用方法] を参照して、新しく連携するWebサーバの連携設定を行います。
Caution
共存トポロジーまたは分離トポロジーのWebサーバで実施する作業です。
[Webサーバ連携設定の削除方法] を参照して、今まで利用していたWebサーバの連携設定を手動で削除します。
初期設定ツールはWebサーバに対するプラグインの設定を行います。そのため共存トポロジーまたは分離トポロジーのWebサーバで行います。
Caution
初期設定ツールで初期設定を行うと以下のファイルが初期化されますので、必要なファイルはバックアップを取っておいてください。
${INSTANCE_ROOT}/config/WebCont (ドメインが無い場合は、${連携設定ディレクトリ}/config/WebCont) 配下
otxadmin> list-domains起動状態の場合、以下のコマンドで停止してください。
otxadmin> stop-domain <ドメイン名>
Webコンテナの構成
設定項目 | 説明 | |
---|---|---|
共存トポロジ(同一のマシンに存在) | WebコンテナとWebサーバが同じマシン上に存在する場合に選択します。 | |
分離トポロジ(別々のマシンに存在) | WebコンテナとWebサーバが別々のマシン上に存在する場合に選択します。 | |
連携するドメインのホスト名またはアドレス名 | 分離トポロジのWebコンテナが動作するホスト名またはIPアドレスを入力します。 ※分離トポロジを選択した場合にのみ入力可能になります。 |
|
連携するWebOTXのエディション | Express | 分離トポロジのWebコンテナがAS Expressの場合に選択します。 ※分離トポロジを選択した場合にのみ入力可能になります。 |
Standard | 分離トポロジのWebコンテナがAS Standardの場合に選択します。 ※分離トポロジを選択した場合にのみ入力可能になります。 |
Webサーバの構成
設定項目 | 説明 | |
---|---|---|
種別 | 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」を選択する場合の指定例を示します。
|
|
IISサイト名 | IISを使用する場合には、連携させるIISサイト名を指定します。 |
連携設定ファイルの生成先情報
設定項目 | 説明 | |
---|---|---|
ドメインディレクトリ | Webサーバと連携するWebコンテナのドメインを指定します。 ドメインの指定例を次に示します。
分離トポロジのWebサーバでドメインが存在しない場合は配下に "config\WebCont"ディレクトリを作成するディレクトリを指定します。 ディレクトリの指定例を次に示します。(この場合、C:\WebOTX\config\WebCont が作成されその配下に連携設定に必要なファイルが生成されます)
|
連携ポート番号情報
設定項目 | 説明 | |
---|---|---|
エージェントのAJPリスナポート番号 | エージェントプロセスのWebコンテナとWebサーバとの連携に使用するポート番号を指定します。 domain1の既定値は「8099」です。 エージェントプロセスのWebコンテナを使用しない場合はチェックを外します。 | |
TPシステムのAJPリスナポート番号 | TPシステムのWebコンテナとWebサーバとの連携に使用するポート番号を指定します。 domain1の既定値は「20102」です。 TPシステムのWebコンテナを使用しない場合はチェックを外します。 |
コンテキスト名動的反映オプション
設定項目 | 説明 | |
---|---|---|
定期的に行う | コンテキストの情報を定期的に問い合わせます。Webアプリケーションを新規に配備した後、Webサーバを再起動する必要がありません。(既定値) | |
動的反映間隔 | コンテキストの情報を定期的に問い合わせる間隔を秒単位で指定します。既定値は60秒です。 | |
行わない | コンテキストの情報の問い合わせを行いません。Webアプリケーションを新規に配備した後、Webサーバを再起動する必要があります。 本番環境のようにWebアプリケーションの配備・配備解除を頻繁に行わない環境ではこの設定を推奨します。(*1) ※分離トポロジにて指定する場合は別途 uriworkermap.propertiesファイルにコンテキストのマッピング定義を手動で定義する必要があります。 |
|
Webサーバ起動時の1回のみ行う | Webサーバ起動後、Webアプリケーションに最初にアクセスする時、動的反映を1回だけ行います。
この場合、新規に配備したWeb アプリケーションを外部Web サーバに認識させるには、Webサーバの再起動が必要です。 |
*1 動的反映の処理では現在配備されているコンテキスト名の最新情報を定期的にWebコンテナへ問い合わせます。
Caution
初期設定ツールで初期設定に失敗した場合、エラー情報は ${INSTALL_ROOT}/logs/setinfo_operetion.log に出力されます。このファイル内容を開発部門にお問い合わせください。
otxadmin> list-domains起動状態の場合、以下のコマンドで停止してください。
otxadmin> stop-domain <ドメイン名>
$ 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.
設定項目 | 説明 | |
---|---|---|
1. Coexistence topology. | WebコンテナとWebサーバが同じマシン上に存在(共存トポロジ)する場合に選択します。 | |
2. Separation topology. | WebコンテナとWebサーバが別々のマシン上に存在(分離トポロジ)する場合に選択します。 |
Please enter host name or IP address of the Web Container to be connected.
設定項目 | 説明 | |
---|---|---|
連携するドメインのホスト名またはアドレス名 | 分離トポロジのWebコンテナが動作するホスト名またはIPアドレスを入力します。 ※分離トポロジを選択した場合にのみ入力可能になります。 |
Please enter type of WebOTX AS where a Web Container runs.[2] 1. Express 2. Standard
設定項目 | 説明 | |
---|---|---|
連携する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
設定項目 | 説明 | |
---|---|---|
種別 | 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. []
設定項目 | 説明 | |
---|---|---|
Webサーバのインストールディレクトリ | 「種別」「Apache HTTP Server 2.4」を選択した場合、Apache HTTP Server 2.4のインストールディレクトリを指定します。 以下に「Apache HTTP Server 2.4」を選択する場合の指定例を示します。
|
連携設定ファイルの生成先情報
Please enter a domain directory.[/opt/WebOTX/domains/domain1]
設定項目 | 説明 | |
---|---|---|
ドメインディレクトリ | Webサーバと連携するWebコンテナのドメインを指定します。 ドメインの指定例を次に示します。
分離トポロジのWebサーバでドメインが存在しない場合は配下に "config/WebCont"ディレクトリを作成するディレクトリを指定します。 ディレクトリの指定例を次に示します。(この場合、/opt/WebOTX/config/WebCont が作成されその配下に連携設定に必要なファイルが生成されます)
|
連携ポート番号情報
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]
設定項目 | 説明 | |
---|---|---|
エージェントの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.
設定項目 | 説明 | |
---|---|---|
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キーを押下すると、反映せずにスクリプトを終了します。
プロパティファイルを作成して初期設定ツールの起動オプションに "-b <プロパティファイル名>"を指定して実行する事によってバッチでの初期設定が可能になります。 実行方法とプロパティの説明を行います。
> cd ${AS_INSTALL}\bin > SetInfo.exe -b <プロパティファイル名>
# cd ${AS_INSTALL}/bin # ./setconf.sh -b <プロパティファイル名>
domain.path=${連携設定を行うドメインのパス} domain.webserver.type=WebServer24 web-plugin.topology=co-located web-plugin.dest.ajp.port=${エージェントプロセスのajpリスナのport番号(※1)} web-plugin.dest.tp-ajp.port=${TPシステムのajpリスナのport番号(※1)}
domain.path=${連携設定を行うドメインのパス} domain.webserver.type=Apache24 domain.webserver.path=${Apache HTTP Server 2.4のインストールパス} web-plugin.topology=co-located web-plugin.dest.ajp.port=${エージェントプロセスのajpリスナのport番号(※1)} web-plugin.dest.tp-ajp.port=${TPシステムのajpリスナのport番号(※1)}
domain.path=${連携設定を行うドメインのパス} domain.webserver.type=IIS web-plugin.topology=co-located web-plugin.dest.ajp.port=${エージェントプロセスのajpリスナのport番号(※1)} web-plugin.dest.tp-ajp.port=${TPシステムのajpリスナのport番号(※1)} web-plugin.iis.site.display-name=${IISのサイト名}
domain.path=${連携設定を行うドメインのパス} domain.webserver.type=WebServer24 web-plugin.topology=separate-web web-plugin.dest.host=${Webコンテナのホスト名} web-plugin.dest.ajp.port=${エージェントプロセスのajpリスナのport番号(※1)} web-plugin.dest.tp-ajp.port=${TPシステムのajpリスナのport番号(※1)}
domain.path=${連携設定を行うドメインのパス} domain.webserver.type=Apache24 domain.webserver.path=${Apache HTTP Server 2.4のインストールパス} web-plugin.topology=separate-web web-plugin.dest.host=${Webコンテナのホスト名} web-plugin.dest.ajp.port=${エージェントプロセスのajpリスナのport番号(※1)} web-plugin.dest.tp-ajp.port=${TPシステムのajpリスナのport番号(※1)}
domain.path=${連携設定を行うドメインのパス} domain.webserver.type=IIS web-plugin.topology=separate-web web-plugin.dest.host=${Webコンテナのホスト名} web-plugin.dest.ajp.port=${エージェントプロセスのajpリスナのport番号(※1)} web-plugin.dest.tp-ajp.port=${TPシステムのajpリスナのport番号(※1)} web-plugin.iis.site.display-name=${IISのサイト名}
※1 利用しない場合は 0 を指定します。
外部Webサーバと連携済みの環境でJavaベースの内部Webサーバに切り替えた場合は外部Webサーバの連携設定を削除してください。
${INSTANCE_ROOT}/config/WebServer ディレクトリ配下にあるhttpd.confファイルをエディタで編集します。
「# TM_WS_PLUGIN-start 」から「# TM_WS_PLUGIN-end」の記述を削除してください。
# TM_WS_PLUGIN-start include "${INSTANCE_ROOT}/config/WebCont/mod_jk-24.conf" # TM_WS_PLUGIN-end |
Apache HTTP Server 2.4インストールディレクトリ配下にある conf/httpd.conf ファイルをエディタで編集します。
「# TM_WS_PLUGIN-start 」から「# TM_WS_PLUGIN-end」の記述を削除してください。
# TM_WS_PLUGIN-start include "${INSTANCE_ROOT}/config/WebCont/mod_jk-24.conf" # TM_WS_PLUGIN-end |
IISのサイトにISAPIプラグインの設定が残っている場合は正常にIISが動作しない場合があります。
古い設定が残っている場合はIISマネージャより削除を行ってください。IISマネージャは「管理ツール」-「インターネット インフォメーションサービス(IIS)マネージャ」より起動できます。
説明が「webcont」で登録されているISAPI および CGI の制限 を削除してください。
連携していたサイトの ISAPI フィルタに「<ドメイン名>_webcont」と登録されているISAPI フィルターを削除してください。
連携していたサイトの仮想ディレクトリ「<ドメイン名>_webcont」を削除してください。
Javaベースの内蔵WebサーバでHTTP/2を利用する場合は、現状のWebブラウザのHTTP/2実装がTLS 1.2を利用するため、HTTPSのリスナである"http-listener-2"を利用する必要があります。 "http-listener-2"はデフォルトではHTTP/2に対応していないため以下の設定変更が必要です。
otxadmin> set server.network-config.network-listeners.network-listener.http-listener-2.protocol=apr-http2-protocol
otxadmin> set server.network-config.network-listeners.network-listener.http-listener-2.protocol=nio-http2-protocol