1.4. Webコンテナ

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

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

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

Web版統合管理コンソールによる設定

Web版統合運用管理コンソールでは各種情報の設定ができます。なおWeb版統合運用管理コンソールの使い方と詳細については、「運用ツールガイド > 1. Web版統合運用管理コンソール」を参照してください。

MOによる参照と設定

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

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

1.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
advanced-mode-protocol アドバンスドモード用の属性でWebコンテナとWebサーバの連携モードを表します。IIOPリスナ経由(V9.2以前と互換)で通信を行う場合は"iiop"、AJPリスナ経由で通信を行う場合は"ajp"が設定されます
インストール時に決定

Caution
アドバンスドモードでインストール後にWebコンテナとWebサーバの連携モード(advanced-mode-protocol)を変更するには以下の操作を行います。これによりadvanced-mode-protocol属性および関連する設定を一括で変更します。
統合運用管理コンソールから設定
  1. 統合運用管理コンソールを開きます。
  2. [設定]-[画面表示設定]-[操作の表示レベル]より[詳細レベル]または[全レベル]を選択し、[確定]をクリックします。
  3. ツリービューより[アプリケーションサーバ]-[Webコンテナ]を選択し、右画面の[操作]タブを開きます。
  4. 操作リストの[WebコンテナとWebサーバの連携モードの切換え]を選択します。
  5. [WebコンテナとWebサーバの連携モード]より"ajp"または"iiop"を指定して、[実行]をクリックします。
コマンドから設定
  1. otxadminコマンドを起動し、ドメインにログインします。
    otxadmin> login --user admin --password adminadmin --port 6212
    
  2. "ajp"または"iiop"を指定して、オペレーションを実行します。
    otxadmin> invoke server.web-container.switchAdvancedModeProtocol ajp
注) どちらの場合も、TPシステムを停止した状態で実行する必要があります。
   変更後はドメインを再起動する必要があります。



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
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



Dottedname : server.web-container.plugin-config

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

表1.4.2.1-3
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
jk-mount-copy JkMountCopyに記述するタイプを On/Off/All で指定します。ここで指定されたものは、Webサーバプラグインがデフォルトで使用する設定ファイルに"JkMountCopy"として出力されます。詳細は以下のJkMountCopyを参照してください。 Memo1 All
jk-mount-file Webコンテナに配備したWebアプリケーションのコンテキストのリクエストを記載したファイルを指定します。詳細は、JkMountFileを参照してください。 Memo1 ${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties-auto
jk-mount-file-reload jk-mount-file で指定したファイルを再読み込みする間隔(秒単位)を指定します。詳細は、JkMountFileReloadを参照してください。 Memo1 0
jk-no-mount-list 配備したアプリケーションのコンテキストのマッピングを出力しないアプリケーションを","(カンマ)区切りで指定します。ここで指定されたアプリケーションは、Webサーバプラグインがデフォルトで使用する設定ファイルにマッピング情報が出力されないため、Webサーバ経由でのアクセスを制限できます。配備されていないアプリケーションのコンテキスト名が指定された場合は、無視されます。Memo2

例:/testAPP1, /testApp2
<null>
jk-unmount-list JkUnMountを出力するアプリケーションを","(カンマ)区切りで指定します。ここで指定されたものは、Webサーバプラグインがデフォルトで使用する設定ファイルに"JkUnMount"として出力されます。詳細は以下のJkUnMountを参照してください。Memo1 Memo3

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

動的反映オプションについては、下記「1.4.4. Webサーバプラグイン定義ファイルの設定方法」を参照してください。
On

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

Memo2
この項目を有効にするには、plugin-query-modeをOffにする必要があります。

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


Dottedname : server.web-container.current-version-config.current-version.context-root-name

表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アプリケーションに振り分けるかを示します。
    セッション振り分けバージョン管理については注意制限事項 > 3. Webコンテナ > 3.2. 制限事項もご確認ください。

    例えば次のような状態の場合、

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


    各クライアントからのリクエストは次のように処理されます。
    • クライアント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.property.sso-enabled=false

※Express エディションにおいて WebOTX V8.1以前の Web エディション相当の動作をさせる場合は本パラメータを false に設定する必要があります。同時に j2ee-enabled の値も false に設定してください。
server.web-container.property.j2ee-enabled の値


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.virtual-server-name

表1.4.2.1-6
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
default-web-module コンテキスト名を省略した時に動作する、デフォルトのWebモジュールです。
hosts 仮想サーバを選択するためのホストリクエストヘッダの中で有効な値のカンマ(,)区切りのリストです。
id 仮想サーバの識別名です。
docroot 仮想サーバのドキュメントルートです。
network-listeners 仮想サーバに関連付けされているHTTPリスナのカンマ(,)区切りのリストです。
現在使用しているWebサーバは以下の方法で確認できます。
確認方法Webサーバ
"ajp-listener-1"の設定あり、かつserver.network-config.network-listeners.network-listener.ajp-listener-1.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クッキーのセキュリティ設定です。


Dottedname : server.http-service.virtual-server.virtual-server-name.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
この設定は、統合運用管理ツールか Web版統合運用管理コンソールで行ってください。

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


Dottedname : server.network-config.network-listeners.network-listener.network-listener-name


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

WebOTX V9よりHTTPリスナの設定を変更しています。設定はtransport、protocol、thread-poolに分散して行い、それぞれを選択することでHTTPリスナを定義します。 HTTPリスナに使用される通信コネクタにはgrizzly、ajp、bio、nioを指定できます。また種類の異なる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
アドバンスドモードの場合は、HTTPリスナは使用せずIIOPリスナもしくはAJPリスナを経由して処理が行われます。

表1.4.2.1-8
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
enabled *3 リスナの活性状態を表します。 falseを設定した場合、リスナのポート自体が開きません。
Web版統合運用管理コンソール用のポート(既定値:5858)を閉じたい場合は、以下のように設定してください。
otxadmin> set server.network-config.network-listeners.
network-listener.admin-listener.enabled=false
アドバンスドモードでfalseを設定した場合、IIOPリスナおよびAJPリスナからのリクエストを受付られないため、IIOPリスナを使用している場合は500エラーが、AJPリスナを使用している場合は503エラーが返却されます。
true
name *3 リスナの名称です。
port *3 連携する Webサーバとの通信用ポート番号、もしくはHTTPリクエストを受け付けるポート番号を表示します。
address IIOPリスナに接続制限が無いため対応する設定はありません 複数アドレスを持つサーバで、特定のアドレスに対するリクエストのみ許可したい場合に指定します。 0.0.0.0
protocol *3 リスナが使用するプロトコル要素の名称です。
thread-pool *3 リスナが使用するスレッドプールの名称です。
transport *3 リスナが使用するトランスポート要素の名称です。


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

Caution
アドバンスドモードの場合は、HTTPリスナは使用せずIIOPリスナを経由して処理が行われます。

表1.4.2.1-9
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
name 設定の必要はありません トランスポートの名称です。


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

Caution
アドバンスドモードの場合は、HTTPリスナは使用せずIIOPリスナを経由して処理が行われます。

表1.4.2.1-10
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
name 設定の必要はありません プロトコルの名称です。
ssl-enabled 設定の必要はありません SSL通信を行うかを設定します。 false
type 設定の必要はありません 使用するコネクタを指定します。"grizzly"、"ajp"、"bio"、"nio"から選択します。 grizzly


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

Caution
アドバンスドモードの場合は、HTTPリスナは使用せずIIOPリスナを経由して処理が行われます。

表1.4.2.1-10
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
default-virtual-server *3 プロトコルに関連付けされた仮想サーバ名です。
proxy-name *3 HttpServletRequest.getServerName() が返すサーバ名を設定します。 またsendRedirect実行時の宛先URLにも影響します。詳細は欄外の備考を参照。
proxy-port *3 HttpServletRequest.getServerPort() が返すポート番号を設定します。 またsendRedirect実行時の宛先URLにも影響します。詳細は欄外の備考を参照。
scheme *3 HttpServletRequest.getScheme() が返すスキームを設定します。 またsendRedirect実行時の宛先URLにも影響します。
xpowered-by *3 レスポンスに X-Powered-By ヘッダを付加するかどうかを表します。 false
max-post-size-bytes *3 POSTで扱える最大データサイズを指定します。この上限値は、POSTリクエストのデータをパラメータとしてアクセス (HttpServletRequest.getParameter()等)した場合に効きます。ストリームを取得(HttpServletRequest.getInputStream())して 読み込む処理を行っている場合は制限を受けません。 指定する単位はバイトです。次のように、property の name、およびvalue属性として指定します。
otxadmin> set server.network-
config.protocols.protocol.http-listener.http.max-
post-size-bytes=4194304
WebOTX V7 以前では "max-post-size" という名前でした。
2048000
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 *3 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 *3 このパラメータは、ボディデータのパラメータと同じエンコーディングを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.protocol-name.http.property

Caution
アドバンスドモードの場合は、HTTPリスナは使用せずIIOPリスナを経由して処理が行われます。

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

Servlet/2.5 JSP/2.1 (WebOTX ${version} Java/${java.runtime.version})


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

Caution
アドバンスドモードの場合は、HTTPリスナは使用せずIIOPリスナを経由して処理が行われます。

表1.4.2.1-12
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
max-thread-pool-size IIOPリスナの「同時接続クライアント数」、TPモニタの「スレッド数」が相当します *2 Webコンテナが生成できるリクエスト受け付けプロセッサの最大数を設定します。 100
min-thread-pool-size IIOPリスナは処理スレッドの動的制御を行なわないため、対応する設定はありません Webコンテナ起動時に生成するリクエスト受け付けプロセッサの数を設定します。 25
limit-thread-pool-size IIOPリスナは処理スレッドの動的制御を行なわないため、対応する設定はありません Webコンテナは、アクティブなリクエスト受け付けプロセッサの数が最大数に近づいた時に警告ログを出力します。その閾値を設定します。 80




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

sendRedirect概要図
図1.4.2.1-1

*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) アドバンスドモードにおいては、これらの項目はプロセスグループの設定項目となります。 「1.4.5.2.IIOPプラグインの設定項目一覧」を参照してください。

*3) アドバンスドモードにおいては、これらの項目は、HTTPリスナ"ajp-listener-1"に対して設定することで利用できます。 また、一部の項目は、旧バージョンと同様にシステムプロパティでも設定することが可能です。「1.4.2.3. JavaVMオプションで設定可能な項目一覧」を参照してください。

*4) アドバンスドモードでは連携する Webサーバ側で設定してください。参考:mod_deflate - Apache 2.2

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

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

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

http://java.sun.com/javase/ja/6/docs/ja/
 > セキュリティ
  > Sun プロバイダドキュメント
   > SunJSSE プロバイダ

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

設定例:
+SSL_RSA_WITH_RC4_128_MD5,+SSL_RSA_EXPORT_WITH_RC4_40_MD5
値が指定されない場合、SunJSSE がサポートする既定の全ての暗号スイートが有効化されます。
tls-enabled 設定の必要はありません TLSを有効化するかどうかを決定します。 true
tls-rollback-enabled 設定の必要はありません TLSロールバックを有効化するかどうかを決定します。TLSロールバックはMicrosoft Internet Explorer 5.0 and 5.5に対して有効化されます。 true


Dottedname : server.system-applications.application.web-module-name

  Dottedname :server.applications.web-module.web-module-name 旧名(非互換です)

表1.4.2.1-14
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
async-replication
availability-enabled true
description Web Application の説明です。
enabled Web Application の活性状態を表します。 true
location 配備先のパス名です。
directory-deployed 配備方法を表します。 ディレクトリ配備したモジュールである場合は trueです。 変更することはできません。
name Web Application の名前です。
object-type Web Application のタイプです。

Dottedname : server.applications.web-module.web-module-name.module.web-module-name.engine.web.web-module-config

表1.4.2.1-15
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
context-root コンテキストルートの名前です。*5
cross-context 同じ仮想ホスト上で動作している他の Web Applicationのコンテキスト情報を参照可能にするかどうかの指定をします。 true
privileged 内部クラスへのアクセスを許可するかどうかを表します。 false

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



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

表1.4.2.1-16
属性名
(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-filename Webアプリケーション停止時にセッション情報を保存するファイル名を指定します。
ファイルは、${INSTANCE_ROOT}/generated/jsp/の対応Webアプリケーションディレクトリに作成されます。
※storage-type属性に"DATAGRID"が指定されている場合は、無効です。
algorithm セッションIDを計算するアルゴリズムを指定します。
Java.security.MessageDigestでサポートされている必要があります。
MD5
entropy セッションIDの生成時に用いられる乱数生成メソッドに渡す文字列を指定します。
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)
※storage-type属性に"DATAGRID"が指定されている場合は、"RS"、"SS"のみ有効です。
RS
skip-static-file-session-upd 静的ファイルセッション更新スキップフラグです。
動的ファイル(Servlet/Jsp)以外のリクエストに対し、 Webコンテナが行うセッション時間情報の更新をスキップするかどうかを指定します。
true:スキップする
false:スキップしない
※storage-type属性に"DATAGRID"が指定されている場合は、無効です。
false
save-skip セッション情報更新スキップフラグです。
true:スキップする
false:スキップしない
※この設定は、replication-mode属性に"SS"または"AS"が指定されている場合にのみ有効です。
true
change-session-id セッションID付け替え処理スイッチです。
リクエストのセッションIDに自身と異なるjvmRoute、プロセスIDが付加されている場合、 自身のプロセスで生成したセッションに置き換えるかどうかを指定します。
true:置き換える
false:置き換えない
※storage-type属性に"DATAGRID"が指定されている場合は、無効です。
replication-mode属性が"AS"の場合はtrue、その他の場合はfalse
storage-type セッション情報の保存タイプを指定します。
有効な値は、"JNDI"、"DB"、"FILE"、"DATAGRID" です。
※"FILE"は、replication-mode属性に"AS"が指定されている場合にのみ、"DATAGRID"は、Standard以上のエディションで有効です。
JNDI
datasource-name DBと接続するデータソース名を指定します。
※この設定は、storage-type属性に"DB"が指定されている場合にのみ有効です。
sqlfile-path SQL拡張ファイルパスを指定します。
絶対パスでの指定と相対パスでの指定が可能です。
相対パスで指定する場合、${INSTANCE_ROOT}/configを基点としてください。
nec-web.xmlのsqlfilePathプロパティでSQL拡張ファイルパスを指定している場合は、nec-web.xmlの指定が有効になります。
※この設定は、storage-type属性に"DB"が指定されている場合にのみ有効です。
session-double-reading 同一セッションに対する複数のリクエストが同時期に処理された場合、 重複する格納先からのセッション情報取り込み及び書き込み処理を行うかを指定します。
falseが指定された場合、重複処理を抑制します。
※この設定は、replication-mode属性に"SS"が指定されている場合にのみ有効です。ただし、storage-type属性に"DATAGRID"が指定されている場合は無効です。
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
data-grid-name 使用するデータグリッドの名前を指定します。
※この設定は、Standard以上のエディションで、storage-type属性に"DATAGRID"が指定されている場合にのみ有効です。
__default_http_session

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



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

表1.4.2.1-17
属性名
(attribute-name)
アドバンスドモードでの設定 説明 既定値
notReplicationAttributes_<数値> 即時同期モードのみ有効。 セッションレプリケーション設定のWebアプリケーションで、格納先に保存を行わないセッションアトリビュート名を指定します。
アトリビュート名は前方一致検索で対象のアトリビュートを判定します。
アトリビュート名はプロパティ名の数値部分を変更することで複数指定することができます。数値はプロパティ名が一意になれば連番でなくてもかまいません。
アトリビュート名には英数字に加えて次の文字を使用することができます。
. , ! # $ % & ' ( ) = ~ | [ ] { } ; : ? * @ _ - +


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

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


1.4.2.2. プロセスグループ(アドバンスドモードのみ)の環境変数で設定可能な項目一覧

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

表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


1.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.ForwardKeyInfo Webサーバの持つ認証情報を Webコンテナに転送するか否かを指定します。 true
webotx.webcontainer.serverconfig.NoRoot JKプラグインに対するリクエストのうち、ルートコンテキスト(/)を転送するか否かを指定します。 true
webotx.webcontainer.serverconfig.OMlistener.OutputConfAuto IIOPプラグインが利用する連携のための設定ファイルを出力するかどうかを指定します。ただし、ファイルが存在しない場合はこの値に関わらず出力します。 true
com.nec.webotx.webcontainer.DelegateGetResourceForSpecific 特定のリソース取得について、Webアプリケーションクラスローダの上位クラスローダからの読み込みを優先するか否かを指定します。 false
com.nec.webotx.webcontainer.EnableClearReferencesThreadsInfoLog Webアプリケーションが停止や配備解除した後も、Webアプリケーション内で起動されたスレッドが、残っているとメモリリークにつながります。このスレッド残留を検出した場合に、メモリリークの危険性を注意喚起するログを出力するか否かを指定します。 false
com.nec.webotx.enterprise.web.connector.checkLastProcessTimeInterval IIOPプラグインとWebコンテナとの通信状況のチェック間隔を秒で指定します。 1800
com.nec.webotx.enterprise.web.connector.fileSwitchSize IIOPプラグインが扱うメッセージのサイズが大きい場合にテンポラリファイルを利用しますが、そのしきい値(Kbyte)を指定します。 128
com.nec.webotx.enterprise.web.connector.iiopDriveMode fileSwitchSize で指定したサイズを超えた場合に利用する一時媒体にメモリを利用するかファイルを利用するかどうかを指定します。
設定値は"file"か"memory"で指定します。
ファイル("file")
com.nec.webotx.enterprise.web.connector.iiopSendMaxSize IIOPプラグインとWebコンテナ間でやりとりするメッセージを分割送信する場合のサイズ(Kbyte)を指定します。 128
com.nec.webotx.enterprise.web.connector.poolBufferSize IIOPプラグインからのリクエストを処理する時に使用するバッファ領域の初期個数を指定します。 5
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セッションの負荷分散を使用する場合には値にワーカ名(ajp13など)を指定してください。
com.nec.webotx.enterprise.web.enablePipelineRequestResponseChain Valveで生成したRequestオブジェクトやResponseオブジェクトをサーブレットまで届けるかどうかを指定します。 false
com.nec.webotx.enterprise.checkURLPatternAfterMatching URLのパス解析処理やWebアプリケーションの認証処理において、WebOTX V7 以前と同等の動作をするかどうかを指定します。
(認証対象外のURLに":"(コロン)を含む場合、URLを異常とするかどうかを指定します。)

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

[注意制限事項 > 3. 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を使用するかどうかを指定します。 false
com.nec.webotx.jasper.compiler.NO_FINAL_VARIABLES JSPの暗黙オブジェクトである request, response, pageContext,application, config,page の final 宣言を付けるかどうかを指定します。 ※この設定は WebOTX Media V9 Release 4 からインストールした場合に有効です。

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:共有しません

既定値はtrueですが、前述の通りプロセス数が1の場合はfalseの動作となります。
true
com.nec.webotx.enterprise.forwardResponseFlush RequestDispatcherクラスの forward メソッドを利用してリクエストの別のサーブレットに転送した場合に、forward元のリクエストが終了してからレスポンスをflushするのか(false設定動作)、forward先の処理が終了した時点でレスポンスをflushするのか(true設定動作)を指定します。

※本設定はスタンダードモードでのみ有効です。 アドバンスドモードは、信頼性を確保するため、リクエスト受信、リクエスト処理、レスポンス送信と各フェーズ分けて処理する仕組みを採用しています。このため、アドバンスドモードでは常にforward元のリクエストが終了してからレスポンスをflushします。
true
com.nec.webotx.webcontainer.async.wait.timeout WebアプリケーションがServlet3.0の非同期処理を利用する場合、非同期処理のレスポンスの書き込みをIIOPプラグインが待ち受けますが、その際のタイムアウト値(ミリ秒)を指定します。タイムアウトした場合、IIOPプラグインは再度レスポンスを取得するためポーリングします。

IIOPプラグインのタイムアウト値(worker.otxiiop.iiop_timeout)を変更している場合に、その値よりも小さくなるよう(90%程度)指定してください。IIOPプラグインのタイムアウト値より大きい値を設定した場合、IIOPプラグインのタイムアウトが先に発生します。worker.otxiiop.iiop_timeoutの詳細は、「1.4.5.2. IIOPプラグインの設定項目一覧」を参照してください。

※本設定はIIOPプラグインを利用するアドバンスドモードでのみ有効です。
27000
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

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


1.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 属性に設定します。

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

運用手順
(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) 設定の反映

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

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

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

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

WebOTXには、Webアプリケーションが配備されたことを自動的にWebOTX Web Server(Apache)などの外部Webサーバに反映させる仕組みがあり、デフォルトではこの機能が有効になっています。 この機能により、ドメインを再起動することなく新規に配備されたWebアプリケーションの存在を外部Webサーバに認識させています。 動的反映の処理には、ある程度負荷がかかるため、Webアプリケーションの更新のないシステムでは不要な負荷がかかることになります。そこで、この動的反映をしない設定をすることによって負荷を低減することができます。

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

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

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

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

  1. Web版統合運用管理コンソールへの接続

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

  2. 設定の変更

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

  3. Webサーバの再起動

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

B: 手動での設定手順

WebサーバとWebコンテナが別マシン構成で、Web版統合運用管理コンソールを利用した設定手順が行えない場合は、以下の手順で手動設定を行ってください。

  1. 外部Webサーバの停止
  2. workers.propertiesの設定

    ${INSTANCE_ROOT}/config/WebCont/workers.propertiesに次の名称でワーカ名を追加してください。

    ajp13_original

    [workers.propertiesの例]

    #------ DEFAULT worker list ------------------------------------------
    #---------------------------------------------------------------------

    ps=/

    #
    # The workers that your plugins should create and work with
    #
    worker.list=ajp13, ajp13_original


    #
    #------ DEFAULT ajp13 WORKER DEFINITION ------------------------------
    #---------------------------------------------------------------------
    #

    #
    # Defining a worker named ajp13 and of type ajp13
    # Note that the name and the type do not have to match.
    #
    # TM_PLUGIN_PORT-start
    worker.ajp13.port=8099
    # TM_PLUGIN_PORT-end
    worker.ajp13.host=localhost
    worker.ajp13.type=ajp13
    worker.ajp13.connection_pool_size=150


  3. 外部Webサーバの起動

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

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

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

WebOTX Webサーバ(Apache)、またはIISを使用している場合は、起動後の初回リクエスト時にのみ動的反映を行います。

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

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

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

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

  1. Web版統合運用管理コンソールへの接続

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

  2. 設定の変更

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

  3. Webサーバの再起動

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

B: 手動での設定手順

WebサーバとWebコンテナが別マシン構成で、Web版統合運用管理コンソールを利用した設定手順が行えない場合は、以下の手順で手動設定を行ってください。

  1. 外部Webサーバの停止
  2. workers.propertiesの設定

    ${INSTANCE_ROOT}/config/WebCont/workers.propertiesに次の名称でワーカ名を追加してください。

    ajp13_queryonce

    [workers.propertiesの例]

    #------ DEFAULT worker list ------------------------------------------
    #---------------------------------------------------------------------

    ps=/

    #
    # The workers that your plugins should create and work with
    #
    worker.list=ajp13, ajp13_queryonce


    #
    #------ DEFAULT ajp13 WORKER DEFINITION ------------------------------
    #---------------------------------------------------------------------
    #

    #
    # Defining a worker named ajp13 and of type ajp13
    # Note that the name and the type do not have to match.
    #
    # TM_PLUGIN_PORT-start
    worker.ajp13.port=8099
    # TM_PLUGIN_PORT-end
    worker.ajp13.host=localhost
    worker.ajp13.type=ajp13
    worker.ajp13.connection_pool_size=150


  3. 外部Webサーバの起動

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

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

以下はWebサーバプラグイン(スタンダードモードまたはAJPリスナ利用時)、IIOPプラグイン(IIOPリスナ利用時)共通の設定項目一覧です。

Caution
IIOPプラグインでは、負荷分散をサポートしていません。
また、アドバンスドモードでWebコンテナとWebサーバの連携モードに"ajp"を選択している場合、JKプラグインの負荷分散機能を使用することができますが、分散対象のワーカ単位でWebアプリケーションの構成は同じであることが前提となります。また、Webアプリケーションをセッションレプリケーションする場合も同様です。

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

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

IIOPプラグイン:
IIOP・・・"type"の値が"otxiiop"であるワーカ名。
ALL・・・IIOPプラグインの設定をワーカに反映させるための特別な記述子

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

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

例:
worker.list=ajp13
※負荷分散機能使用時のワーカタイプの"lb"は1つだけ指定できます。
必ず最初(左)に指定してください。
ajp13(Webサーバプラグイン)
otxiiop(IIOPプラグイン)
worker.maintain - 再利用のためにコネクションを再構築する時間(秒単位)を指定します。
負荷分散時には指定した間隔でリクエストカウンタが初期化され、リクエスト振り分け割合が均一になります。

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

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

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

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

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

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

IIOPプラグイン:
プロセス毎の同時処理リクエスト数を指定します。IIOPプラグインが張るコネクションはプロセスあたり1本となります。

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

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

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

例:
worker.ajp13_A.lbfactor=5
worker.ajp13_B.lbfactor=1

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

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

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

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

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

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

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

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

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

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

例:
worker.ajp13.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.ajp13.recovery_options=0

※Webアプリケーションで同一トランザクションの実行を抑止する制御を行っていない等で、通信エラー発生時にリクエスト転送をリトライしない方が良い場合は、1と2と4を有効にする7を指定する事を推奨します。
※V9.31からはインストール時に設定ファイルに初期値として7が設定され、設定を削除した場合は既定値の0となります。
0
※V9.31からはインストール時に設定ファイルに初期値として7が設定され、設定を削除した場合は既定値の0となります。
fail_on_status AJP, SUB Webコンテナが一時的に意図しないエラーコードを返してしまうような場合にこの指定を行ってください。
ここに指定したステータスコードがWebコンテナから返ってきた場合、503に変換され、クライアントに返却されます。

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

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

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

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

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

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

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

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

例:
worker.ajp13.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


連携設定項目:mod_jk-22.conf-auto(Webサーバプラグイン)、mod_jk-24.conf-auto(Webサーバプラグイン)、mod_jk_om-22.conf-auto(IIOPプラグイン)、mod_jk_om-24.conf-auto(IIOPプラグイン)
※ドメインを再起動すると、mod_jk-22.conf-auto、mod_jk-24.conf-auto、mod_jk_om-22.conf-auto、mod_jk_om-24.conf-autoファイルは更新されます。

表1.4.4.3-2
プロパティ名 対象ワーカタイプ 説明、例 既定値
JkWorkersFile AJP, IIOP Webコンテナと連携するために必要な設定ファイルのパスを指定します。これはWebサーバ起動時に一回のみ読み込まれます。

例:
JkWorkersFile "C:/WebOTX/domains/domain1/config/WebCont/workers.properties"
${INSTANCE_ROOT}/config/WebCont/workers.properties
JkShmFile AJP, IIOP 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/jk-runtime-status
JkShmSize AJP, IIOP 共有メモリファイルのサイズ(KB単位)を指定します。

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

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

uriworkermap.properties-auto の記述例
----------------
/WebAP1=ajp13
/WebAP1/*=ajp13
----------------
${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties-auto
JkMountFileReload AJP, IIOP "JkMountFile"で指定したファイルを再読み込みする間隔(秒単位)を指定します。

例:
JkMountFileReload 60
0(再読み込みをしない)
JkMount AJP, IIOP ワーカが読み込むコンテキストを指定します。
※IIOPプラグイン使用時、コンテキストルート"/"に配備したアプリケーションにアクセスする場合には"/*"を指定してください。

例:
JkMount "/WebAP1" ajp13
JkMount "/WebAP1/*" ajp13

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


※ Webサーバ側に配置したコンテンツにアクセスする場合は以下の設定を行ってください。
注意点として、連携設定項目である *.properties-auto はドメインを再起動すると上書きされ変更が消されてしまいますので、連携設定項目は *.properties-auto ファイルをコピーして別名保存したものを指定してください。

Apache HTTP Server連携の場合:
"uriworkermap.properties-auto" を別名保存して、以下の例の設定を行います。
設定後は "mod_jk-22.conf-auto" または "mod_jk_om-22.conf-auto" の "JkMountFile" に別名保存したファイルへのパスを指定します。

IIS連携の場合:
"uriworkermap.properties-auto" を別名保存して、以下の例の設定を行います。
設定後は "isapi_redirect.properties" の "worker_file" に別名保存したファイルへのパスを指定します。

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

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

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

例:
JkLogFile "C:/WebOTX/domains/domain1/logs/web/mod_jk-22.log"
${INSTANCE_ROOT}/logs/web/mod_jk-22.log
JkLogLevel AJP, IIOP ログの出力レベルを指定します。
設定可能な値は error/warn/info/debug/trace です。

例:
JkLogLevel error
error
JkLogStampFormat AJP, IIOP ログファイルの出力形式を指定します。
設定可能な値は以下になります。

%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 AJP SSL通信を許可するかどうかを指定します。

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

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

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

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

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

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

例:
JkKEYSIZEIndicator SSL_CIPHER_USEKEYSIZE
SSL_CIPHER_USEKEYSIZE
JkOptions AJP, IIOP プラグインのオプション設定を指定します。
項目の前に"+"か"-"を付けることで有効/無効を指定します。
デフォルトでは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 AJP リクエスト項目としてWebコンテナに送られる独自の環境変数を指定します。
Webコンテナ側でrequest.getAttribute(attributeName)を呼び出すことでこの値が参照できますが、request.getAttributeNames()ではリスト表示されません。

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

例:
JkLocalNameIndicator JK_LOCAL_NAME
JK_LOCAL_NAME
JkLocalPortIndicator AJP, IIOP ポート番号を示すApache環境変数名を指定します。 JK_LOCAL_PORT
JkRemoteHostIndicator AJP, IIOP リモートホストを示すApache環境変数名を指定します。 JK_REMOTE_HOST
JkRemoteAddrIndicator AJP, IIOP リモートアドレスを示すApache環境変数名を指定します。 JK_REMOTE_ADDR
JkRemoteUserIndicator AJP, IIOP リモートユーザを示すApache環境変数名を指定します。 JK_REMOTE_USER
JkAuthTypeIndicator AJP, IIOP 認証タイプを示すApache環境変数名を指定します。 JK_AUTH_TYPE


以下は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
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-auto
${INSTANCE_ROOT}\config\WebCont\uriworkermap.properties-auto
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


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

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

設定方法

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

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

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

  2. 設定

    ${INSTANCE_ROOT}/config/WebCont/mod_jk-**.conf-auto の 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 にリクエストすると正常にレスポンスが返るようになります。

1.4.5. IIOPプラグイン定義ファイルの設定方法

WebOTX Application Server Standard/Enterprise では、Webアプリケーションを動作させるWebコンテナをTPモニタ上でマルチプロセス動作する機能を提供します(アドバンスドモード)。 このマルチコンテナ機能を利用する際に外部Webサーバ(WebOTX Webサーバ(Apache))とWebコンテナをIIOPプラグインで連携させることができます。V9.3よりアドバンスドモード利用時にデフォルトではWebコンテナとWebサーバ間の通信をAJPプロトコルで行っています。IIOPプロトコルで通信する場合にこの節で説明する IIOP プラグインを利用します。

IIOPプラグインの連携設定は、環境設定ツールを使用して連携設定を行います。また、さらに詳細な連携設定は、設定ファイルを直接編集して行います。ここでは、IIOPプラグインの連携の詳細設定、エラードキュメントを指定する方法を説明します。 環境設定ツールを使用した連携設定については「セットアップガイド・インストール」を参照してください。

1.4.5.1. IIOPプラグイン定義ファイルの設定手順

外部Webサーバ(WebOTX Webサーバ(Apache))とWebコンテナの連携設定を行ったあとに、以下の設定をしてください。

設定手順
  1. 外部Webサーバの停止
  2. ior_workers.propertiesの設定

    設定ファイル ${INSTANCE_ROOT}/config/WebCont/ior_workers.propertiesを編集し、保存します。

    [ ior_workers.propertiesの設定例]

    # TM_PLUGIN_IOR-start
    worker.list=otxiiop
    otx_domain=C:/WebOTX/domains/domain1
    worker.otxiiop.type=otxiiop
    worker.otxiiop.default_ior=localdomain
    worker.otxiiop.ior_def.localdomain=$(otx_domain)/config/httpgateway.ior
    worker.otxiiop.connection_pool_size=150
    worker.otxiiop.http_error.list=404,500
    worker.otxiiop.http_error.404.doc=file:///D:/temp/error/404.html
    worker.otxiiop.http_error.500.doc=file:///D:/temp/error/500.html
    worker.otxiiop.http_error.charset=Shift_JIS
    # TM_PLUGIN_IOR-end


  3. 外部Webサーバの起動

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

1.4.5.2. IIOPプラグインの設定項目一覧

以下は、IIOPプラグイン特有の設定項目一覧です。

IIOPプラグインが自ドメイン(環境設定ツールで設定したドメイン)以外に配備されたコンテキストを呼び出すためコンテキストとIORを対応付けする情報定義を行うことができます。

また、HTTPエラーおよびCORBAエラーに対応するエラードキュメントを指定することができます。 IIOPプラグインの設定とともに、Apacheのエラードキュメントの設定を行ってください。エラーの内容により有効になる設定箇所が変わります。

Caution
IIOPプラグインでは、負荷分散機能をサポートしていません。

連携設定項目:ior_workers.properties

表1.4.5.2-1
プロパティ名 対象ワーカタイプ 説明、例 既定値
worker.otxiiop.type IIOP otxiiopのワーカタイプの指定。設定値は"otxiiop" 固定です。

例:
worker.otxiiop.type=otxiiop
otxiiop
worker.otxiiop.default_ior IIOP デフォルトIORを指定します。
※必須項目、複数定義不可

例:
worker.otxiiop.default_ior=<IOR定義名>

パラメータ説明:
<IOR定義名>: IORを特定する名前
IOR定義名は"worker.otxiiop.ior_def.<IOR定義名>"によって定義されている必要があります。
なし
worker.otxiiop.ior_def.<IOR定義名> IIOP IORファイルの絶対パスを指定します。

例:
worker.otxiiop.ior_def.<IOR定義名>=<IORファイル>

パラメータ説明:
<IORファイルパス>: IORファイル(httpgateway.ior)の絶対パス
なし
worker.otxiiop.iiop_retry_count IIOP IIOPメソッド呼び出すリトライ回数を指定します。

例:
worker.otxiiop.iiop_retry_count=<リトライ回数>

パラメータ説明:
<リトライ回数>: IIOPメソッド呼び出しのリトライ回数
設定可能範囲は1以上です。
3
worker.otxiiop.iiop_retry_interval IIOP IIOPメソッド呼び出しリトライ時のインターバル時間を指定します。
デフォルト値は0です。 0を指定した場合のインターバル時間は100msとなります。

例:
worker.otxiiop.iiop_retry_interval=<インターバル時間>

パラメータ説明:
<インターバル時間>: IIOPメソッド呼び出しリトライ時の待ち時間(秒)
設定可能範囲は0以上の整数です。
0
worker.otxiiop.iiop_timeout IIOP IIOPメソッド呼び出しのタイムアウト時間を指定します。
タイムアウト時間を無制限にする場合は"0"を指定します。
設定値の範囲:(Windows)0〜2147483647、(Unix) 0〜199715979

例:
worker.otxiiop.iiop_timeout=<タイムアウト時間>

パラメータ説明:
<タイムアウト時間>: IIOPメソッド呼び出しがタイムアウトする時間(秒)
300
worker.otxiiop.iiop_max_send_size IIOP POSTデータ送信時のデータ分割単位を指定します。

例:
worker.otxiiop.iiop_max_send_size=<パケット長>(K|M)

パラメータ説明:
<パケット長>: POSTデータの送信時のパケット分割単位
最後に"K"がある場合は * 1024の値になり、
最後に"M"がある場合は * 1024 * 1024の値になります。
設定可能範囲は、32K から 9M です。
128K
worker.otxiiop.iiop_use_stateless IIOP 常にセッションレス通信を行うかどうかを指定します。

※複数ドメイン間でセッションレプリケーションを行っている場合やセッションを使用しない構成の場合はこの設定を"1"に設定してください。
プロセスグループに存在しないPIDが付いたリクエストを送ることによる、不必要なエラーが発生することを防ぐことができます。

例:
worker.otxiiop.iiop_use_stateless=<0 or 1>

パラメータ説明:
この値を"1"に設定すると、リクエストセッションのPIDを常に0にし、セッションレス通信を行います。
0
worker.otxiiop.apg_down_log IIOP アプリケーショングループ停止や、配備していないコンテキストにアクセスする際に発生する以下のCORBA通信エラーのログを抑止します。

CORBA::INV_OBJREF(3960)

例:
worker.otxiiop.apg_down_log=<true or false>

パラメータ説明:
trueに設定するとログ出力され、falseに設定するとログ出力されません。
true
worker.all.iiop_default_web_module ALL コンテキストルート"/"に配備したAPにアクセスする場合に、Webサーバがリクエストを送る実装名を指定します。

例:
worker.all.iiop_default_web_module=<実装名>

パラメータ説明:
<実装名>: IIOPリスナが認識するデフォルト定義名
※この設定値をデフォルトから変更する際はIIOPリスナでのデフォルト定義名 (tpsystem.managementNameOfDefaultWebModule) の値も変更する必要があります。
otx-default-web-module
worker.all.mes_buf_size ALL メッセージバッファ分割の大きさを指定します。単位はバイトです。未指定時は8192byteとなります。

例:
worker.all.mes_buf_size=8192
8192
worker.all.sock_buf_size ALL OS内部のソケットごとのバッファサイズを指定します。単位はバイトです。 未指定時は9000となります。
※この値はmes_buf_sizeよりも大きな値を設定してください。

例:
worker.all.sock_buf_size=9000
9000
worker.otxiiop.reuse_socket_at_request_timeout IIOP IIOPプラグインで一つのリクエストがCORBAタイムアウトとなった場合、タイムアウトとなったリクエストだけエラーを返却するか否か(true/false)を設定します。

true を設定した場合、一つのリクエストでタイムアウトが発生しても、他のリクエストはタイムアウトの影響を受けません。
false を設定した場合、タイムアウトが発生したときに処理中の他のリクエストも影響を受けてエラーとなります。

true を設定することで他のプロセスで処理をしているリクエストは影響を受けなくなりますが、TCP/IP レベルで無応答障害が発生している場合、障害検出までに時間がかかります。

例:
worker.otxiiop.reuse_socket_at_request_timeout=false
true


エラードキュメント指定設定項目

表1.4.5.2-2
プロパティ名 対象ワーカタイプ 説明、例 既定値
worker.otxiiop.http_error.list IIOP エラードキュメントをデフォルトから変更するHTTPレスポンスのStatus-Codeの一覧を","で区切り列挙します。エラードキュメントを変更しない場合はこのプロパティを定義しない。

例:
worker.otxiiop.http_error.list=<Status-Code>[,<Status-Code>]...

パラメータ説明:
<Status-Code>: Webコンテナから返ってくるHTTPレスポンスのStatus-Code
なし
worker.otxiiop.http_error.<Status-Code>.doc IIOP worker.otxiiop.http_error.listで指定されたStatus-Codeに対応するエラードキュメント情報を定義します。

例:
worker.otxiiop.http_error.<Status-Code>.doc=<File URL>

パラメータ説明:
<Status-Code>: 前述を参照
<File URL>: "file://" で始まるURL

例:
worker.otxiiop.http_error.404.doc=file:///C:/WebOTX/WebServer2/error/404.html
なし
worker.otxiiop.http_error.charset IIOP エラードキュメントファイルのデフォルトのキャラクタセットを指定します。

例:
worker.otxiiop.http_error.charset=<charset>

パラメータ説明:
<charset>: エラードキュメントのデフォルトのファイル キャラクタセット
ISO-8859-1
worker.otxiiop.http_error.<Status-Code>.charset IIOP 指定したステータスコード用のエラードキュメントファイルのキャラクタセットを指定します。

例:
worker.otxiiop.http_error.<Status-Code>.charset=<charset>

パラメータ説明:
<charset>: ステータスコードのエラードキュメントのファイルキャラクタセット
worker.otxiiop.http_error.charset の値
worker.otxiiop.corba_error.list IIOP エラードキュメントをデフォルトから変更するCORBAのError-Nameの一覧を","で区切り列挙します。エラードキュメントを変更しない場合はこのプロパティを定義しません。

例:
worker.otxiiop.corba_error.list=<Error-Name>[,<Error-Name>]...

パラメータ説明:
<Error-Name>: Webコンテナから返ってくるCORBAのエラーの名称

例:
worker.otxiiop.corba_error.list=timeout
なし
worker.otxiiop.corba_error.<Error-Name>.err IIOP worker.otxiiop.corba_error.listで指定されたError-Nameに対応するCORBAのエラー名と対応しているマイナーコードを定義します。

例:
worker.otxiiop.corba_error.<Error-Name>.err=<エラー定義>[,<エラー定義>]...

パラメータ説明:
<エラー定義> : <CORBA-ErrorName>[<CORBA-MinorNum>]...
<Error-Name>: worker.otxiiop.corba_error.list で指定されている名称
<CORBA-ErrorName>: Webコンテナから返ってくる CORBAのエラー名
<CORBA-MinorNum>: Webコンテナから返ってくるCORBAのマイナーコード

<CORBA-MinorNum> は以下のいずれかの方法で記述します。
<MinorCode-列挙>:
  <CORBA-MinorCode>[;<CORBA-MinorCode>]...
<MinorCode-範囲指定>:
  <CORBA-MinorCode>-<CORBA-MinorCode>

例1:
worker.otxiiop.corba_error.timeout.err=CORBA::COMM_FAILURE(3879;3883)

例2:
worker.otxiiop.corba_error.transient.err=CORBA::TRANSIENT(3892-3895)
なし
worker.otxiiop.corba_error.<Error-Name>.doc IIOP worker.otxiiop.corba_error.listで指定されたError-Nameに対応するエラードキュメント情報を定義します。

例:
worker.otxiiop.corba_error.<Error-Name>.doc=<File URL>

パラメータ説明:
<Error-Name>: 前述を参照
<File URL>: "file://" で始まるURL(フルパスで指定します)

例:Windows:
worker.otxiiop.corba_error.timeout.doc=file:///C:/WebOTX/WebServer2/error/timeout.html

例:Unix:
worker.otxiiop.corba_error.timeout.doc=file:///error/timeout.html
なし
worker.otxiiop.corba_error.charset IIOP エラードキュメントファイルのデフォルトのキャラクタセットを指定します。

例:
worker.otxiiop.corba_error.charset=<charset>

パラメータ説明:
<charset>: エラードキュメントのデフォルトのファイル キャラクタセット
ISO-8859-1
worker.otxiiop.corba_error.<Error-Name>.charset IIOP 指定したCORBAエラー用のエラードキュメントファイルのキャラクタセットを指定します。

例:
worker.otxiiop.corba_error.<Error-Name>.charset=<charset>

パラメータ説明:
<charset>: CORBAエラーのエラードキュメントのファイルキャラクタセット
worker.otxiiop.corba_error.charset の値

1.4.5.3. IIOPプラグインの設定例

以下にIIOPプラグイン定義について設定例で説明します。

環境設定ツールで設定を行うと ior_workers.properties は、以下の初期値に戻ります。

# TM_PLUGIN_IOR-start
worker.list=otxiiop
otx_domain=D:/WebOTX/domains/domain1
worker.otxiiop.type=otxiiop
worker.otxiiop.default_ior=localdomain
worker.otxiiop.ior_def.localdomain=$(otx_domain)/config/httpgateway.ior
# TM_PLUGIN_IOR-end

※ "otx_domain" はマクロ定義です。 $(otx_domain) として、パラメータに使用します。

1.4.6. Web版統合運用管理コンソールを利用したプラグインの設定方法

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

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


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

1.4.6.1. Web版統合運用管理コンソールから設定可能な項目

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

表1.4.6.1-1
Webサーバの種類 設定ファイル コンソールからの設定
WebOTX Web Server22(スタンダードモード) ${INSTANCE_ROOT}/config/WebCont/workers.properties
${INSTANCE_ROOT}/config/WebCont/mod_jk-22.conf-auto
WebOTX Web Server22(アドバンスドモード) ${INSTANCE_ROOT}/config/WebCont/ior_workers.properties
${INSTANCE_ROOT}/config/WebCont/mod_jk_om-22.conf-auto
WebOTX Web Server24(スタンダードモード) ${INSTANCE_ROOT}/config/WebCont/workers.properties
${INSTANCE_ROOT}/config/WebCont/mod_jk-24.conf-auto
WebOTX Web Server24(アドバンスドモード) ${INSTANCE_ROOT}/config/WebCont/ior_workers.properties
${INSTANCE_ROOT}/config/WebCont/mod_jk_om-24.conf-auto
IIS ${INSTANCE_ROOT}/config/WebCont/workers.properties
${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties-auto
${INSTANCE_ROOT}/config/WebCont/isapi_redirect.properties

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

表1.4.6.1-2
表示名
(attribute-name)
設定ファイル内での設定名 更新される設定ファイル
プラグインの動的反映オプション
(plugin-query-mode)
worker.list [スタンダードモードまたはAJPリスナ利用時]workers.properties
[アドバンスドモードかつIIOPリスナ利用時]ior_workers.properties
コネクションプールサイズ
(plugin-pool-size)
connection_pool_size [スタンダードモードまたはAJPリスナ利用時]workers.properties
[アドバンスドモードかつIIOPリスナ利用時]ior_workers.properties
マウントファイル
(jk-mount-file)
JkMountFile [スタンダードモードまたはAJPリスナ利用時]mod_jk-22.conf-auto、mod_jk-24.conf-auto
[アドバンスドモードかつIIOPリスナ利用時]mod_jk_om-22.conf-auto、mod_jk_om-24.conf-auto
マウントファイルの再読み込み間隔
(jk-mount-file-reload)
JkMountFileReload [スタンダードモードまたはAJPリスナ利用時]mod_jk-22.conf-auto、mod_jk-24.conf-auto
[アドバンスドモードかつIIOPリスナ利用時]mod_jk_om-22.conf-auto、mod_jk_om-24.conf-auto
JkUnMountを出力するアプリケーションのリスト
(jk-unmount-list)
Memo
!/<コンテキスト名>=$(default.worker) [スタンダードモード時/アドバンスドモード時]uriworkermap.properties-auto
JkMountCopyの種類
(jk-mount-copy)
Memo
JkMountCopy [スタンダードモードまたはAJPリスナ利用時]mod_jk-22.conf-auto、mod_jk-24.conf-auto
[アドバンスドモードかつIIOPリスナ利用時]mod_jk_om-22.conf-auto、mod_jk_om-24.conf-auto
コンテキストのマッピング情報を出力しないアプリケーションのリスト
(jk-no-mount-list)
- [スタンダードモード時/アドバンスドモード時]uriworkermap.properties-auto
連携ポート番号
(plugin-port-number)
StdM
worker.<ワーカ名>.port [スタンダードモードまたはAJPリスナ利用時]workers.properties
連携先ホスト名
(plugin-host-name)
StdM
worker.<ワーカ名>.host [スタンダードモードまたはAJPリスナ利用時]workers.properties
ログのローテートの有効化
(log-rotate-enable)
Memo
JkLogFile [スタンダードモードまたはAJPリスナ利用時]mod_jk-22.conf-auto、mod_jk-24.conf-auto
[アドバンスドモードかつIIOPリスナ利用時]mod_jk_om-22.conf-auto、mod_jk_om-24.conf-auto
ログのローテート間隔
(log-rotate-interval)
Memo
JkLogFile [スタンダードモードまたはAJPリスナ利用時]mod_jk-22.conf-auto、mod_jk-24.conf-auto
[アドバンスドモードかつIIOPリスナ利用時]mod_jk_om-22.conf-auto、mod_jk_om-24.conf-auto
ログのローテートサイズ
(log-rotate-size)
Memo
JkLogFile [スタンダードモードまたはAJPリスナ利用時]mod_jk-22.conf-auto、mod_jk-24.conf-auto
[アドバンスドモードかつIIOPリスナ利用時]mod_jk_om-22.conf-auto、mod_jk_om-24.conf-auto
プラグインのログレベル
(plugin-log-level)
Memo
JkLogLevel [スタンダードモードまたはAJPリスナ利用時]mod_jk-22.conf-auto、mod_jk-24.conf-auto
[アドバンスドモードかつIIOPリスナ利用時]mod_jk_om-22.conf-auto、mod_jk_om-24.conf-auto

Memo
WebOTX Webサーバを使用している場合にのみ有効です。


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

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

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

プラグインの動的反映オプションやプラグインのログのローテーション、コネクションプールサイズの設定を行う方法を説明します。ログのローテーションの設定は、WebOTX Webサーバ使用時のみ有効です。 WebOTX Webサーバ以外のWebサーバでプラグインのログのローテーションの設定を行う場合は「ドメイン構築・基本設定ガイド > 8. ログ」を参照し、手動で設定を行ってください。

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


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


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


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


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

1.4.6.3. workers.properties/ior_workers.properties ファイルの詳細設定

プラグインの設定項目のうち、workers.properties/ior_workers.properties ファイルに設定を行う項目は、「Webサーバ連携設定」に表示されていない項目でも以下の手順でWeb版統合運用管理コンソールから設定を行うことができます。 設定可能な項目一覧については「JKプラグイン、IIOPプラグイン共通の設定項目一覧」「IIOPプラグインの連携設定項目」を参照してください。

  1. 「操作」の表示レベルの変更

    コンソールの右上の「メニュービュー」から「設定」を選択します。
    「画面表示設定」タブの「操作の表示レベル」を「全レベル」に変更し、「確定」をクリックして設定してください。
    設定を画面に反映するためには、一度「Webサーバ連携設定」以外の項目を選択後、再度「Webサーバ連携設定」の項目を選択してください。
    設定が反映されると「操作」タブが表示されます。

  2. 「操作」の実行
  3. Webサーバの再起動

    変更を反映するために、Webサーバを再起動してください。

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

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

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

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

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

Cookieによるセッション管理

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

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

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

URLRewritingによるセッション管理

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

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

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

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

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


1.4.7.2. WebOTXの基本的な設定

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

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

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


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

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

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()メソッドで設定します。
備考 なし

セッション情報の保存

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

※ WebOTXの環境がアドバンストモードで構築されている場合、セッションの保存方法には制限が存在します。 詳細は「1.4.7.4. 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の環境がアドバンストモードで構築されている場合、セッションの保存方法には制限が存在します。 詳細は「1.4.7.4. 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の環境がアドバンストモードで構築されている場合、セッションの保存方法には制限が存在します。 詳細は「1.4.7.4. WebOTXの高度な設定(アドバンスドモードでの設定) > アドバンスドモードでのセッション情報保存」 を参照してください。


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

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

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

表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>
      :
説明 セッションの同時最大数を設定する
備考 なし

セッションの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>
      :
説明 セッションのセキュアオプションを強制設定する
備考 なし

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の付加)を行わない設定
備考 なし

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

セッションを強制的に使えなくする設定です。動作的にはセッションオブジェクトが取得できないわけではなく、リクエストの終了時セッションがあれば無効化するような動作になります。 また、レスポンス(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" />
      :
説明 セッションを使えなくする設定
備考 なし
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
静的ファイルへのセッション時刻更新をスキップする設定

セッションを使用しない静的ファイル(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アーカイブに格納しておいてください。
セッション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アーカイブに格納しておいてください。



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

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

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

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

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

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



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に設定してください。
備考 なし

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

以下に各レプリケーションモードの特徴と使用する場合のテンプレート設定値をまとめます。
各設定項目の詳細、及び設定方法は、2.2.13.4. 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の設定はレプリケーションの注意/制限事項に関連します。 非同期モードではsaveSkipをOFFにするとリクエスト終了時、全てのattribute情報が格納先に反映されるため、注意/制限事項を解除できますが反面性能は低下します。 Webアプリケーションの作りが注意/制限事項に抵触しない場合はsaveSkipをONにすることをお勧めします。

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

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


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

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


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

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


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


データソースの設定

データベース接続のデータソース名の設定を行います。 データソース名の設定については、2.2.13.4. web.xmlデプロイメント記述子のsession-config要素を参照してください。

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


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

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


Infinispanのライブラリの配置

データグリッドの設定を行う前に、Infinispanを利用するために必要なライブラリを配置する必要があります。
ライブラリの取得、および配置の方法は、[ 3. 提供機能 > 3.6.9. インメモリデータグリッド連携 > 3.6.9.1. 事前準備 ]を参照してください。


データグリッドの設定

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

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

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



データグリッドの指定

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


Oracle Coherenceを利用する設定
Oracle Coherenceを使用するにあたり、制限があります。
詳細は、[注意制限事項 > 3. Webコンテナ > 3.2. Webコンテナ 制限事項] を参照してください。


セキュリティポリシファイルの定義変更

セキュリティポリシファイル(${INSTANCE_ROOT}/config/server.policy)を以下のように変更します。

修正前
grant codeBase "file:${com.nec.webotx.instanceRoot}/applications/-" {
    permission java.util.logging.LoggingPermission "control", "";
    permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
};
修正後
grant codeBase "file:${com.nec.webotx.instanceRoot}/applications/-" {
    permission java.util.logging.LoggingPermission "control", "";
    permission java.lang.reflect.ReflectPermission "suppressAccessChecks";

    // for Coherence
    permission java.lang.RuntimePermission "createClassLoader";
    permission java.lang.RuntimePermission "getenv.*";
    permission java.lang.RuntimePermission "getStackTrace";
    permission java.lang.RuntimePermission "modifyThread";
    permission java.lang.RuntimePermission "selectorProvider";
    permission java.lang.RuntimePermission "shutdownHooks";
    permission java.lang.management.ManagementPermission "monitor";
    permission java.net.NetPermission "getNetworkInformation";
    permission java.net.SocketPermission "*:0-65535", "listen,accept,resolve";
    permission java.security.SecurityPermission "insertProvider.CoherenceSecurityProvider";
    permission java.security.SecurityPermission "putProviderProperty.CoherenceSecurityProvider";
    permission java.security.SecurityPermission "insertProvider.OracleCommonsSecurityProvider";
    permission java.security.SecurityPermission "putProviderProperty.OracleCommonsSecurityProvider";
    permission javax.security.auth.AuthPermission "getSubject";
};

※ SocketPermissionでのポート番号の指定は、Coherenceが使用する番号を指定してください。

※ セキュリティポリシファイルの変更は、ドメイン再起動で有効になります。


WebアプリケーションへのCoherence組み込み

  1. インスペクトコマンドの実行

    以下のようにインスペクトコマンドを実行します。

    > java -jar coherence/lib/webInstaller.jar <Webアプリケーションディレクトリ> -inspect -server:Generic

    コマンドの実行が完了すると、Webアプリケーションディレクトリにcoherence-web.xmlが生成されます。

  2. coherence-web.xmlの変更

    インスペクトコマンドの実行により生成されたcoherence-web.xmlを以下のように変更します。

    修正前
        <context-param>
          <param-name>coherence-servletcontext-clustered</param-name>
          <param-value/>
        </context-param>
                    :
                    :
        <context-param>
          <param-name>coherence-scopecontroller-class</param-name>
          <param-value>com.tangosol.coherence.servlet.AbstractHttpSessionCollection$ApplicationScopeController</param-value>
        </context-param>
    
    修正後
        <context-param>
          <param-name>coherence-servletcontext-clustered</param-name>
          <param-value>true</param-value>
        </context-param>
                    :
                    :
        <context-param>
          <param-name>coherence-scopecontroller-class</param-name>
          <param-value>com.tangosol.coherence.servlet.AbstractHttpSessionCollection$GlobalScopeController<param-value>
        </context-param>
    

  3. インストールコマンドの実行

    以下のようにインストールコマンドを実行します。

    > java -jar coherence/lib/webInstaller.jar <Webアプリケーションディレクトリ> -install

以上でWebアプリケーションへのCoherence組み込みは終了です。

Webアプリケーションディレクトリ配下をwarアーカイブしてドメインに配備してください。

既定では、Web アプリケーション側のCoherenceは保存領域を持たないため、外部プロセスとしてキャッシュサーバを起動する必要があります。また、WebOTX ASではクラスタの設定として、${INSTANCE_ROOT}/config/datagrid/coherenceにある設定ファイルを参照するため、キャッシュサーバもこの設定ファイルを参照するか同じ設定内容のファイルを参照する必要があります。WebOTX ASが使用するクラスタ設定ファイルの名前は、server.data-grids.coherence-cluster-file (既定値: webotx-coherence-cluster1.xml) で指定されます。キャッシュサーバ起動スクリプトの例を以下に示します。


Standard以上のエディションでは、配備時のCoherence自動組み込み機能を提供しています。配備のpreprocessorオプションに「CoherenceWebInstaller」を指定することで、上記の1〜3を配備処理中に自動で実行します。

> otxadmin deploy --preprocessor CoherenceWebInstaller <WARファイルまたはWARを含むEARファイル>

Coherenceを<WebOTXインストールディレクトリ>/coherence以外の場所にインストールしている場合、Coherence自動組み込み機能を利用するためには、以下のいずれかの準備が必要です。

  1. エージェントプロセスに以下のJVMオプションを追加する。
    ※ WebOTXと同じマシンにCoherenceをインストールしている場合は、こちらを推奨します。


    コマンドでJVMオプションを追加する場合は、以下のとおりです。

    > otxadmin create-jvm-options -Dcom.nec.webotx.as.deployment.preprocess.CoherenceWebInstaller.coherence-home=<Coherenceインストールディレクトリ>

    ※ JVMオプションの追加は、ドメイン再起動で有効になります。

  2. 以下の3ファイルを<WebOTXインストールディレクトリ>/coherence/libにコピーする。

Coherence自動組み込み機能は、ディレクトリ配備に対して使用することはできません。また、Coherence自動組み込み機能がサポートするアプリケーションは、CoherenceのwebInstaller.jarがサポートするWARファイルおよびそのようなWARファイルを含むEARファイルです。

Coherence自動組み込み機能は、セキュリティポリシファイルの変更を行いません。別途変更を行ってください。


Webアプリケーション実装の注意/制限事項

セッションレプリケーションを使用するにあたってWebアプリケーションを実装する上での注意点を以下に記載しています。

  1. レプリケーションした場合、セッションのAttributeに設定できるオブジェクトはシリアライズできるものに限られます。

  2. 即時同期モードでレプリケーションした場合、セッションのAttributeに設定したオブジェクトとJNDI(あるいは、 データベース、DATAGRID)で管理されているオブジェクトは別インスタンスの扱いになります。


    どのような場合に問題になるか例を記述します。

    <ソースコード>
    1. HttpSession session = <HttpServletRequest>.getSession();
      hohoClass clazz = new hohoClass();
      clazz.buff = "ABC";
      session.setAttribute("hoho", clazz);
    2. clazz.buff = "DEF";
    3. hohoClass clazz2 = (hohoClass)session.getAttribute("hoho");
      String buff = clazz2.buff;

    <ソースコード解説>
    1. あるクラスが持つStringオブジェクトに"ABC"を格納しセッションのAttributeに設定します。
    2. Stringオブジェクトの内容を"DEF"に更新します。
    3. セッションのAttributeからクラスのStringオブジェクトを取得します。
      レプリケーション設定していない場合、取得したStringオブジェクトの内容は"DEF"ですが、 レプリケーション設定した場合、内容は"ABC"になります。

    レプリケーション前と同じ取得を"DEF"にしたい場合はiiとiiiの間で再度setAttribute()を実行する必要があります。

    1. HttpSession session = <HttpServletRequest>.getSession();
      hohoClass clazz = new hohoClass();
      clazz.buff = "ABC";
      session.setAttribute("hoho", clazz);
    2. clazz.buff = "DEF";
    3. session.setAttribute("hoho", clazz);
    4. hohoClass clazz2 = (hohoClass)session.getAttribute("hoho");
      String buff = clazz2.buff;

  3. セッションレプリケーションを設定するとセッション情報がJNDI(あるいは、データベース、 DATAGRID)に格納されるようになります。この際セッションに格納しているオブジェクトに関して注意点があります。

    セッション情報として、VectorやHashtableなど、同期化されたコレクションクラスを使用すると、シリアライズ/デシリアライズが同期化されてしまいます。同期化されてしまうと処理が直列化されて、大幅な性能低下につながるおそれがあります。そのためVectorやHashtableではなく同期化されないArrayListやHashMapをご使用ください。

    また、シリアライズ/デシリアライズは複雑なコレクションクラスの処理には時間が掛かります。セッション情報として使用するオブジェクトはシンプルなものをお勧めします。


1.4.7.4. WebOTXの高度な設定(アドバンスドモードでの設定)

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

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

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

アドバンスドモードでのセッション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
アドバンスドモードでのセッション情報保存

WebOTXの環境がアドバンストモードの場合、構成によりセッション情報の保存方法に制限が存在します。


1.4.7.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は別となります。



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

1.4.8.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.4.8.1-1

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

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

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

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

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

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

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

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

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

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

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

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

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



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


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

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

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

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に変換されます。 -- -- -- --
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
配備記述子文字コード設定 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>
    :
setCharacterEncoding設定 ServletResponseのsetContentType()またはsetCharacterEncoding()にてcharsetが設定された場合、レスポンスデータをUnicodeから設定された文字コードに変換してレスポンス出力します。 ユーザロジック Webアプリケーション 再配備
    :
((HttpServletResponse)response).
        setContentType("text/html; charset=Shift_JIS")
    :
デフォルト設定 上記の設定が無い場合、レスポンスデータをUnicodeからデフォルトの文字コード"ISO-8859-1"に変換してレスポンス出力します。 -- -- -- --
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"%>
      :
JSPファイルcontentType設定 JSPファイルにpageEncoing設定が無くcontentType設定(charset指定)が記述されている場合、その文字コードでJSPファイルを読み込みUnicodeに変換します。 ユーザロジック JSPファイル 再配備
<%@ page contentType="text/html;charset=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>
    :
デフォルト文字コード設定 pageEncoing設定、contentType設定が共に無い、web.xmlの設定も無い場合、デフォルトの文字コードが使用されますが、そのデフォルト文字コードを変更することができます。 domain.xml ドメイン(プロセスプロセスグループ) ドメイン(プロセスプロセスグループ)再起動 otxadminコマンド
otxadmin> set server.web-container
.property.default-encoding=Shift_JIS
デフォルト設定 上記のいずれの設定も無い場合、JSPファイルはデフォルトの文字コード"ISO-8859-1"で読み込まれUnicodeに変換されます。 -- -- -- --
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"に変換してレスポンス出力します。 -- -- -- --


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

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

1.4.9.1. URL

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

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

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

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

  1. コンテキスト名
    Webアプリケーションを配備する際に指定したコンテキストルートに相当する部分です。
    "/hoho1/hoho2"のようにスラッシュで区切って設定することも可能ですが、セッションレプリケーションを利用できないなど制限があります。詳細は [全般 > 注意制限事項 > 3. Webコンテナ > 3.1. 注意事項] を参照してください。また、"/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)にする必要があります。通常はブラウザが自動的にエンコードしてくれます。
    . $ , ; : = ? ! * ~ @ - _ ( ) [ ]

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

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

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

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



1.4.9.3. XMLファイル

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



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

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

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

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

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

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

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

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

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

次の運用管理コマンド(otxadmin)を利用することで domain.xml の強制設定情報の登録、削除、参照を行うことができます。コマンドの詳細については「リファレンス集 運用管理・設定編 > 4. 運用管理コマンドリファレンス > 4.2. 運用管理コマンド(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要素を表示することができます。

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

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

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

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

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

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

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

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

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

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

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

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

  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>