Webコンテナに関する設定について説明します。
Webコンテナの設定項目の設定方法については次の2通りがあります。
Web版統合運用管理コンソールでは各種情報の設定ができます。なおWeb版統合運用管理コンソールの使い方と詳細については、「運用ツールガイド > 1. Web版統合運用管理コンソール」を参照してください。
Web版統合運用管理コンソールで設定できる項目は、JMXのMOとしてもアクセス可能です。項目の設定方法については「1.1. 各サービスの属性」を参照してください。
Dottedname : server.web-container
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 |
---|---|---|---|
log-available-accesslog | ← | アクセスログのON/OFFを指定します。 |
true |
session-replication-jndi-url | ← | セッションレプリケーションを行っている場合に指定するHTTPセッションを保存する先のJNDIサーバのURLです。次の例のようなURLで記載します。 例: rmiiiop://<ホスト1>:<JNDIサーバポート1>,<ホスト2>:<JNDIサーバポート2>…
ホスト名にはレプリケーションさせるJNDIサーバが動作しているホスト名またはIPアドレスを記述します。 JNDI サーバポート番号はJNDI サーバが動作しているWebOTX ドメインの組み込みIIOP リスナのポート番号となります。インストール時に作成されるdomain1のポート番号は7780 です。省略したときは自ドメインの組み込みIIOP リスナのポート番号が使用されます。 複数のWebOTXドメイン間でHTTPセッションをレプリケートするときはレプリケートする全てのWebOTXドメインのJNDIサーバのホスト名、ポート番号を列挙した指定を各WebOTXドメインに対して設定します。列挙する順番は意識する必要はありません。 HTTPセッションのみのレプリケーションを、レプリケーション先のJNDIサーバを列挙して設定します。 |
<null> |
pool-tags-with-extends | ← | JSP タグのプーリングを行うかどうかを表します |
false |
advanced-mode-protocol | ← | アドバンスドモード用の属性でWebコンテナとWebサーバの連携モードを表します。IIOPリスナ経由(V9.2以前と互換)で通信を行う場合は"iiop"、AJPリスナ経由で通信を行う場合は"ajp"が設定されます |
インストール時に決定 |
otxadmin> login --user admin --password adminadmin --port 6212
otxadmin> invoke server.web-container.switchAdvancedModeProtocol ajp
Dottedname : server.web-container.property
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
j2ee-enabled | ← | 認証情報のEJBコンテナへの伝播を ON/OFF します。"false"
を指定するとこれらの機能が利用できなくなります。次のように、property の name、および
value属性として指定します。otxadmin> set server.web-container.property.j2ee-enabled=true※Express エディションにおいて WebOTX V8.1以前の Web エディション相当の動作をさせる場合は本パラメータを false に設定する必要があります。同時に sso-enabled の値も false に設定してください。 |
true | |||||||||
forwardRequestURL | ← |
Forward先のサーブレットでHttpServletRequest#getRquestURL()を実行した時、forward前のURLを返すか
forward後のURLを返すかの指定です。otxadmin> set server.web- container.property.forwardRequestURL=forwardoriginal: forward前のURLを返す forward: forward後のURLを返す ※既定値は、WebOTX V7.11以前の値(original)から変更されています。 |
forward |
|||||||||
auth_<認証種別>_<属性名> | ← | Authenticatorの属性に値を設定します。
otxadmin> set server.web- container.property.auth_all_changeSessionIdOnAuthentication=true |
− |
Dottedname : server.web-container.plugin-config
属性名 (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 |
Dottedname : server.web-container.current-version-config.current-version.context-root-name
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 |
---|---|---|---|
version | ← | セッション振り分けバージョン管理Memoで使用するWebアプリケーションのカレントバージョンです。同一コンテキストルート名で配備した複数のWebアプリケーションのバージョンを指定します。otxadmin> set server.web-container.current-version-config.current-version./sample.version=02 |
なし |
otxadmin> deploy --contextversion 01 --contextroot /sample --name sample-01 sample.war : otxadmin> deploy --contextversion 02 --contextroot /sample --name sample-02 sample.war
Dottedname : server.http-service
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 |
---|---|---|---|
sso-enabled | ← | シングルサインオンのON/OFFを指定します。次のように指定します。otxadmin> set server.http-service.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
属性名 (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
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
default-web-module | ← | コンテキスト名を省略した時に動作する、デフォルトのWebモジュールです。 | − | ||||||||
hosts | ← | 仮想サーバを選択するためのホストリクエストヘッダの中で有効な値のカンマ(,)区切りのリストです。 | − | ||||||||
id | ← | 仮想サーバの識別名です。 | − | ||||||||
docroot | ← | 仮想サーバのドキュメントルートです。 | − | ||||||||
network-listeners | ← |
仮想サーバに関連付けされているHTTPリスナのカンマ(,)区切りのリストです。 現在使用しているWebサーバは以下の方法で確認できます。
|
− | ||||||||
sso-cookie-secure | ← | シングルサインオン(SSO)で使用されるJSESSIONIDSSOクッキーのセキュリティ設定です。 | − |
Dottedname : server.http-service.virtual-server.virtual-server-name.property
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 |
---|---|---|---|
allowLinking | ← | (UNIXでのみ有効) Webアプリケーションのディレクトリより、シンボリックリンクをたどる場合、trueを設定する。次のように、property の name、および value属性として指定します。Memo1 otxadmin> set server.http-service.virtual- server.server.property.allowLinking=true |
false |
valve_<任意> | ← | Valveを実装したクラスを指定します。次のように、property の name、および
value属性として指定します。
valve_=org.apache.catalina.valves.RequestDispatchTestValveなお、複数のValveを登録する場合は "valve_" に続けて重複しないような任意の文字を指定してください。例えば "valve_1", "valve_2" のように指定します。Memo2 |
− |
docroot | ← | 仮想サーバのドキュメントルートです。
server.http-service.virtual-server.virtual-server- name.docrootの値をオーバーライドします。 |
− |
caseSensitive | ← | Webアプリケーション内のパス名での、大文字・小文字の区別有無の指定です。Memo3 true: 大文字・小文字のチェックが無効にされます。 false: 大文字・小文字を区別します。 |
true |
Dottedname : server.network-config.network-listeners.network-listener.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
属性名 (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
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 |
---|---|---|---|
name | 設定の必要はありません | トランスポートの名称です。 | − |
Dottedname : server.network-config.protocols.protocol.protocol-name
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 |
---|---|---|---|
name | 設定の必要はありません | プロトコルの名称です。 | − |
ssl-enabled | 設定の必要はありません | SSL通信を行うかを設定します。 | false |
type | 設定の必要はありません | 使用するコネクタを指定します。"grizzly"、"ajp"、"bio"、"nio"から選択します。 | grizzly |
Dottedname : server.network-config.protocols.protocol.protocol-name.http
属性名 (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=4194304WebOTX 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-31JWebOTX 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=trueWebOTX V8 では "useBodyEncodingForURI" という名前でした。 |
false |
Dottedname : server.network-config.protocols.protocol.protocol-name.http.property
属性名 (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
属性名 (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を変更することで、正常にアクセスできるようになります。
図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
属性名 (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 旧名(非互換です)
属性名 (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
属性名 (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
属性名 (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
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 | |
---|---|---|---|---|
notReplicationAttributes_<数値> | ← | 即時同期モードのみ有効。
セッションレプリケーション設定のWebアプリケーションで、格納先に保存を行わないセッションアトリビュート名を指定します。 アトリビュート名は前方一致検索で対象のアトリビュートを判定します。 アトリビュート名はプロパティ名の数値部分を変更することで複数指定することができます。数値はプロパティ名が一意になれば連番でなくてもかまいません。 アトリビュート名には英数字に加えて次の文字を使用することができます。
|
− |
Dottedname : server.session-config.session-manager.store-properties
属性名 (attribute-name) |
アドバンスドモードでの設定 | 説明 | 既定値 |
---|---|---|---|
directory | ← | セッションファイルを書き込むディレクトリを指定します。 ※この設定は、storage-type属性に"FILE"が指定されている場合にのみ有効です。 |
− |
プロセスグループの環境変数は、Web版統合運用管理コンソールや統合運用管理ツールのプロセスグループの「環境変数」タブで設定する事ができます。
環境変数名 | 説明 | 既定値 |
---|---|---|
WOTX_ASYNC_REPLACE | 動的再配備の非同期動作のON/OFFを指定します。 配備時に、自ドメインへ向けてのHTTPリクエストが行われるアプリケーションがある場合には"ON"を設定してください。 ONを指定する必要があるのは、以下の様な場合が考えられます。
|
OFF |
WebOTXは、Servlet/JSPコンテナにさまざまな機能があり、それらの機能の制御を行えるJava VM オプションを説明します。
下記に動作モード(スタンダードモード/アドバンスドモード)別の設定方法を記載します。
■スタンダードモードの場合
・運用管理コンソールでの設定方法(推奨)
運用管理コンソールにログインし、下記の箇所に設定を記述した後、ドメインを再起動してください。
<ドメイン名>
-「アプリケーションサーバ」
-「JVM構成」
の順にクリックしていき、「属性」タブの「JVMオプション」の「システムJVMオプション」の欄に”-D”の後に続いて設定を記述してください。その後、ドメインを再起動することで反映されます。
設定例:
-Dwebotx.webcont.jndidelete=480 |
・domain.xml直接編集での設定方法
ドメインを停止し、下記の例のように対象ファイルの<java-config>要素に<system-jvm-options>タグを記述した後"-D"の後に続いて設定を記述してください。その後、ドメインを起動することで設定が反映されます。
設定例:<WebOTXインストールディレクトリ>/domains/domain1/config/domain.xml
<java-config> <system-jvm-options>-Dwebotx.webcont.jndidelete=480</system-jvm-options> </java-config> |
■アドバンスドモードの場合
・運用管理コンソールでの設定方法
運用管理コンソールにログインし、下記の箇所に設定を記述した後、TPシステムを再起動してください。
<ドメイン名>
-「TPシステム」
-「アプリケーショングループ」
-「<アプリケーショングループ名>」
-「プロセスグループ」
-「<プロセスグループ名>」
の順にクリックしていき、「属性」タブの「Javaシステムプロパティ」の欄に設定を記述してください。
「名前」に項目名を記述し、「値」に指定する値を記述してください
設定例:
名前 | 値 |
---|---|
webotx.webcont.jndidelete |
480 |
設定項目一覧
項目 | 説明 | 既定値 | |
---|---|---|---|
webotx.webcont.jndidelete | JNDIに格納したセッション情報をタイムアウト後、何秒で削除するかを指定します。 | 480 | |
webotx.webcontainer.serverconfig.Append | JKプラグインが利用する連携のための設定ファイルを出力するか否かを指定します。 | true | |
webotx.webcontainer.serverconfig.ForwardAll | JKプラグインに対するコンテキストのリクエストを全て転送するか否かを指定します。 | true | |
webotx.webcontainer.serverconfig.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"等) Memo_1 | − | |
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_2 ただしプロセスグループのプロセス数が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の文字列("")を返却するかを指定します。
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 | |
com.nec.webotx.jasper.compiler.REDUCTION_JAVA_CODE | JSPファイルをコンパイルして生成するJavaコードの出力内容のうち、タグ要素の再利用処理をWebOTX V8相当の内容で出力します。 refactoring_reusetag :タグ要素の再利用処理をWebOTX V8相当の内容で出力する |
− |
processLauncher.xml設定方法
<?xml version="1.0"?> <processes> <process name="webotx-server"> : <sysproperty key="com.nec.webotx.enterprise.overrideablejavaxpackages" value="javax.help,javax.portlet,パッケージ名"/> :パッケージ名はカンマ区切りで複数指定可能です。
WebOTX V7.1より、HTTPのみセッションレプリケーションを利用できるようになりました。 従来、レプリケーションを行うとJDBCデータソース、JMSリソースも同じ内容となってしまい、ドメインごとに異なる設定内容にできませんでした。 これにより、複数のWebコンテナおよびEJBコンテナそれぞれにHTTPセッションの共有が容易にできるようになります。
HTTPのみセッションレプリケーションを利用するには、session-replication-jndi-url に、つぎのように設定します。
rmiiiop://<ホスト1>:<JNDIサーバポート1>,<ホスト2>:<JNDIサーバポート2>…
ホスト名にはレプリケーションさせるJNDIサーバが動作しているホスト名またはIPアドレスを記述します。
JNDI サーバポート番号はJNDI サーバが動作しているWebOTX ドメインの組み込みIIOP リスナのポート番号となります。インストール時に作成されるdomain1のポート番号は7780 です。省略したときは自ドメインの組み込みIIOP リスナのポート番号が使用されます。
複数のWebOTXドメイン間でHTTPセッションをレプリケートするときはレプリケートする全てのWebOTXドメインのJNDIサーバのホスト名、ポート番号を列挙した指定を各WebOTXドメインに対して設定します。列挙する順番は意識する必要はありません。
例えば二つのWebOTXドメインdomain1とdomain2でHTTPセッションレプリケーションを行うためには
host1: domain1のホスト名
port1: domain1の組み込みIIOP リスナのポート番号
host2: domain2のホスト名
port2: domain2の組み込みIIOP リスナのポート番号
のように設定されている場合、
rmiiiop://host1:port1,host2:port2
をdomain1とdomain2のsession-replication-jndi-url 属性に設定します。
次の運用管理コマンドで設定します。
otxadmin> set server.web-container.session-replication-jndi-url=rmiiiop://<ホスト1>:<JNDIサーバポート1>,<ホスト2>:<JNDIサーバポート2>…
<例>
otxadmin> set server.web-container.session-replication-jndi-url=rmiiiop://host1:7780,host2:7780
ドメインを再起動して、設定を反映します。
Webサーバプラグインに関する設定について説明します。
WebOTXには、Webアプリケーションが配備されたことを自動的にWebOTX Web Server(Apache)などの外部Webサーバに反映させる仕組みがあり、デフォルトではこの機能が有効になっています。 この機能により、ドメインを再起動することなく新規に配備されたWebアプリケーションの存在を外部Webサーバに認識させています。 動的反映の処理には、ある程度負荷がかかるため、Webアプリケーションの更新のないシステムでは不要な負荷がかかることになります。そこで、この動的反映をしない設定をすることによって負荷を低減することができます。
Caution
この設定を行った場合、新規に配備されたWebアプリケーションを外部Webサーバに認識させるには、外部Webサーバおよびドメインを再起動する必要があります。
Caution
環境設定ツールで設定を行うと、以下の設定は初期化されデフォルトの「動的反映を行う」状態になります。環境設定を行った場合は、再度、下記の設定を行ってください。
動的反映しない設定をWeb版統合運用管理コンソールから行うことができます。その他の項目についてのWeb版統合運用管理コンソールを使用した設定方法については「1.4.6. Web版統合運用管理コンソールを利用したプラグインの設定方法」を参照してください。
Webブラウザを起動し、連携設定を行ったドメインのWeb版統合運用管理コンソールへ接続します。"http://<host>:<port>/manager/
"に接続してください。
※domain1のポート番号の既定値は 5858 です。
管理コンソールの左側のツリーで「アプリケーションサーバ」-「Webコンテナ」-「Webサーバ連携設定」を選択します。
「一般」タブにある「プラグインの動的反映オプション」で「Off」を選択し、「更新」ボタンで設定を反映してください。
以上で設定は完了です。Webサーバを再起動してください。
WebサーバとWebコンテナが別マシン構成で、Web版統合運用管理コンソールを利用した設定手順が行えない場合は、以下の手順で手動設定を行ってください。
${INSTANCE_ROOT}/config/WebCont/workers.propertiesに次の名称でワーカ名を追加してください。
ajp13_original |
[workers.propertiesの例]
#------ DEFAULT worker list
------------------------------------------ |
外部Webサーバを起動し、設定内容を反映します。
ここではWebアプリケーションが配備されたことを外部Webサーバ起動後に一度だけ自動的にWebOTX Webサーバ(Apache)などの外部Webサーバに反映させる設定方法について説明します。
WebOTX Webサーバ(Apache)、またはIISを使用している場合は、起動後の初回リクエスト時にのみ動的反映を行います。
一度動的反映を行った以降は外部Webサーバを再起動するまで動的反映は行われません。
※環境設定ツールで設定を行うと、以下の設定は初期化されデフォルトの「動的反映を行う」状態になります。環境設定を行った場合は、再度、下記の設定を行ってください。
Webサーバ起動後一度のみ動的反映する設定をWeb版統合運用管理コンソールから行うことができます。その他の項目についてのWeb版統合運用管理コンソールを使用した設定方法については「1.4.6. Web版統合運用管理コンソールを利用したプラグインの設定方法」を参照してください。
Webブラウザを起動し、連携設定を行ったドメインのWeb版統合運用管理コンソールへ接続します。"http://<host>:<port>/manager/
"に接続してください。
※domain1のポート番号の既定値は 5858 です。
管理コンソールの左側のツリーで「アプリケーションサーバ」-「Webコンテナ」-「Webサーバ連携設定」を選択します。
「一般」タブにある「プラグインの動的反映オプション」で「Once」を選択し、「更新」ボタンで設定を反映してください。
以上で設定は完了です。Webサーバを再起動してください。
WebサーバとWebコンテナが別マシン構成で、Web版統合運用管理コンソールを利用した設定手順が行えない場合は、以下の手順で手動設定を行ってください。
${INSTANCE_ROOT}/config/WebCont/workers.propertiesに次の名称でワーカ名を追加してください。
ajp13_queryonce |
[workers.propertiesの例]
#------ DEFAULT worker list
------------------------------------------ |
外部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プラグイン)
プロパティ名 | 対象ワーカタイプ | 説明、例 | 既定値 |
---|---|---|---|
worker.list | - |
ワーカ名のリストを指定します。一つ以上のワーカを指定する必要があり、複数指定する場合は,コンマ(,)区切りで記述します。 例: worker.list=ajp13 必ず最初(左)に指定してください。 |
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 |
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を指定する事を推奨します。 ※インストール時に設定ファイルに初期値として7が設定され、設定を削除した場合は既定値の0となります。 |
0 ※インストール時に設定ファイルに初期値として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ファイルは更新されます。
プロパティ名 | 対象ワーカタイプ | 説明、例 | 既定値 |
---|---|---|---|
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"
|
${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties-auto |
JkMountFileReload | AJP, IIOP | "JkMountFile"で指定したファイルを再読み込みする間隔(秒単位)を指定します。 例: JkMountFileReload 60 |
0(再読み込みをしない) |
JkMount | AJP, IIOP | ワーカが読み込むコンテキストを指定します。 ※IIOPプラグイン使用時、コンテキストルート"/"に配備したアプリケーションにアクセスする場合には"/*"を指定してください。 例: JkMount "/WebAP1" ajp13 |
なし |
JkUnMount | AJP, IIOP |
Webコンテナ側にリクエストを送信しないコンテキストを指定します。Webサーバ側に配置したコンテンツにアクセスしたい場合に指定してください。 例: 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 |
連携設定項目:isapi_redirect.properties
プロパティ名 | 説明、例 | 既定値 |
---|---|---|
extension_uri | IISに設定しているisapi_redirect.dllへのパスを指定します。 例: extension_uri=/domain1_webcont/isapi_redirect.dll |
/<ドメイン名>_webcont/isapi_redirect.dll |
log_file | ログファイルを生成する場所を指定します。 例: log_file=C:\WebOTX\domains\domain1\logs\web\isapi.log |
${INSTANCE_ROOT}\logs\web\isapi.log |
log_level | ログ出力レベルを指定します。 設定可能な値は error/warn/info/debug/trace です。 例: log_level=error |
error |
worker_file |
Webコンテナと連携するために必要な設定ファイルのパスを指定します。これはWebサーバ起動時に一回のみ読み込まれます。 例: worker_file="C:\WebOTX\domains\domain1\config\WebCont\workers.properties |
${INSTANCE_ROOT}\config\WebCont\workers.properties |
worker_mount_file | ワーカが読み込むコンテキスト情報を記述するファイルパスを指定します。 例: worker_mount_file=C:\WebOTX\domains\domain1\config\WebCont\uriworkermap.properties-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 |
WebOTX Webサーバ(Apache)ではバーチャルホストを複数作成することができ、バーチャルホストごとにコンテキスト名の設定を行うことができます。
設定方法
下記のURLを参照してバーチャルホストを作成してください。
${INSTANCE_ROOT}/config/WebCont/mod_jk-**.conf-auto の JkMountCopy の設定を Off にする。
${INSTANCE_ROOT}/config/WebServer/httpd.conf の <VirtualHost> 要素内に JkMount(またはJkUnMount)の設定を行う。
例えばバーチャルホストA、Bを作成し、バーチャルホストAには /aaa というコンテキスト名を、バーチャルホストBには /bbb というコンテキスト名を設定する場合は ${INSTANCE_ROOT}/config/WebServer/httpd.conf に以下のように設定します。
<VirtualHost *:80>
JkMount "/aaa" ajp13
JkMount "/aaa/*" ajp13
・・・
</VirtualHost>
<VirtualHost *:8080>
JkMount "/bbb" ajp13
JkMount "/bbb/*" ajp13
・・・
</VirtualHost>
バーチャルホストAに対して /aaa にリクエストを行うと正常にレスポンスが返り、/bbb
にリクエストを行うとコンテキスト名を設定していないため 404エラーが返ります。
また、バーチャルホストBに対してリクエストを行った場合は /aaa にリクエストすると 404エラーが返り、/bbb
にリクエストすると正常にレスポンスが返るようになります。
WebOTX Application Server Standard/Enterprise では、Webアプリケーションを動作させるWebコンテナをTPモニタ上でマルチプロセス動作する機能を提供します(アドバンスドモード)。 このマルチコンテナ機能を利用する際に外部Webサーバ(WebOTX Webサーバ(Apache))とWebコンテナをIIOPプラグインで連携させることができます。V9.3よりアドバンスドモード利用時にデフォルトではWebコンテナとWebサーバ間の通信をAJPプロトコルで行っています。IIOPプロトコルで通信する場合にこの節で説明する IIOP プラグインを利用します。
IIOPプラグインの連携設定は、環境設定ツールを使用して連携設定を行います。また、さらに詳細な連携設定は、設定ファイルを直接編集して行います。ここでは、IIOPプラグインの連携の詳細設定、エラードキュメントを指定する方法を説明します。 環境設定ツールを使用した連携設定については「セットアップガイド・インストール」を参照してください。
外部Webサーバ(WebOTX Webサーバ(Apache))とWebコンテナの連携設定を行ったあとに、以下の設定をしてください。
設定ファイル ${INSTANCE_ROOT}/config/WebCont/ior_workers.propertiesを編集し、保存します。
[ ior_workers.propertiesの設定例]
# TM_PLUGIN_IOR-start |
外部Webサーバを起動し、設定内容を反映します。
以下は、IIOPプラグイン特有の設定項目一覧です。
IIOPプラグインが自ドメイン(環境設定ツールで設定したドメイン)以外に配備されたコンテキストを呼び出すためコンテキストとIORを対応付けする情報定義を行うことができます。
また、HTTPエラーおよびCORBAエラーに対応するエラードキュメントを指定することができます。 IIOPプラグインの設定とともに、Apacheのエラードキュメントの設定を行ってください。エラーの内容により有効になる設定箇所が変わります。
Caution
IIOPプラグインでは、負荷分散機能をサポートしていません。
連携設定項目:ior_workers.properties
プロパティ名 | 対象ワーカタイプ | 説明、例 | 既定値 |
---|---|---|---|
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 |
エラードキュメント指定設定項目
プロパティ名 | 対象ワーカタイプ | 説明、例 | 既定値 |
---|---|---|---|
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 の値 |
以下にIIOPプラグイン定義について設定例で説明します。
環境設定ツールで設定を行うと ior_workers.properties は、以下の初期値に戻ります。
# TM_PLUGIN_IOR-start |
※ "otx_domain" はマクロ定義です。 $(otx_domain) として、パラメータに使用します。
WebOTX Application Server V8.3 以降 では、統合運用管理ツールやWeb版統合運用管理コンソールからWebサーバプラグインの設定項目を変更する機能を提供しています。
ただし、WebサーバとWebコンテナが別マシン構成の場合、この機能を利用するには以下の両方の条件を満たしている必要があります。
Caution
この機能では連携設定済みの環境に対して、設定項目のカスタマイズを行います。Webサーバとの連携ができていない場合は、先に環境設定ツールを使用して連携設定を行ってください。環境設定ツールを使用して連携設定を行うと、workers.properties/ior_workers.properties
に対して行われた設定は全て初期化されます。
外部Webサーバ連携時には、使用するWebサーバの種類や、連携先のWebコンテナの動作モードによってWebサーバプラグイン用の複数の設定ファイルが使用されます。一部の設定ファイルについては、Web版統合運用管理コンソールや運用管理コマンドから設定できず、手動で設定を行う必要があります。以下は使用するWebサーバごとの設定ファイルとWeb版統合運用管理コンソールからの設定可否の一覧です。「コンソールからの設定」が「△」のファイルは、一部の機能を設定可能です。「×」のファイルについては、設定できません。
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版統合運用管理コンソールや運用管理コマンドから設定を行った場合、設定内容に応じて「更新される設定ファイル」に出力されます。
表示名 (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 |
以下では具体的な設定方法について、Web版統合運用管理コンソールを使用して説明を行います。
ブラウザを起動し、連携設定を行ったドメインの管理コンソール(http://<host>:<port>/manager)に接続し、ログインしてください。(domain1の場合の<port>の既定値は
5858 です。)
プラグインの動的反映オプションやプラグインのログのローテーション、コネクションプールサイズの設定を行う方法を説明します。ログのローテーションの設定は、WebOTX
Webサーバ使用時のみ有効です。 WebOTX
Webサーバ以外のWebサーバでプラグインのログのローテーションの設定を行う場合は「ドメイン構築・基本設定ガイド > 8. ログ」を参照し、手動で設定を行ってください。
プラグインの設定項目のうち、workers.properties/ior_workers.properties ファイルに設定を行う項目は、「Webサーバ連携設定」に表示されていない項目でも以下の手順でWeb版統合運用管理コンソールから設定を行うことができます。 設定可能な項目一覧については「JKプラグイン、IIOPプラグイン共通の設定項目一覧」、「IIOPプラグインの連携設定項目」を参照してください。
コンソールの右上の「メニュービュー」から「設定」を選択します。
「画面表示設定」タブの「操作の表示レベル」を「全レベル」に変更し、「確定」をクリックして設定してください。
設定を画面に反映するためには、一度「Webサーバ連携設定」以外の項目を選択後、再度「Webサーバ連携設定」の項目を選択してください。
設定が反映されると「操作」タブが表示されます。
「操作」タブから「ワーカのプロパティの設定」を選択します。
「プロパティ名」、「プロパティ値」に設定したい項目を入力し、「実行」ボタンをクリックして設定項目を追加/変更します。
「操作」タブから「ワーカのプロパティの取得」を選択します。
「実行」ボタンをクリックして、プロパティの一覧を取得します。
「操作」タブから「ワーカのプロパティの削除」を選択します。
削除したい「プロパティ名」を指定し、「実行」ボタンをクリックして設定項目を削除します。
変更を反映するために、Webサーバを再起動してください。
セッション管理についてServlet2.4などに規定されている仕様や、クライアント(ブラウザ)側の動作などの一般的な動作の仕組みについて説明します。
セッションの管理方法にはCookieを使用する方法とURLRewritingを使用する方法があります。Cookieを使用する方法では、セッションを識別するためのセッションIDをCookieに保存します。URLRewritingを使用する方法では、セッションIDをURLのパラメータに追加します。
次項で2つのセッション管理方法の動作イメージを示します。
コンテナはクライアントにクッキーを送信します。その後、クライアントは、それぞれのリクエストのときにセッションを含むクッキーつけて、サーバに送信します。セッションのクッキーの名前は”JSESSIONID”を使用します。
図1.4.7.1-1
Cookieを使うセッションID管理方法は、セッションIDをWebブラウザのCookieに設定します。
ユーザアプリケーションはアクセス先URLを作成する際、URLにセッションIDを付加します。セッションIDは独自に編集するか、javax.servlet.http.HttpServletResponse#encodeURL()メソッドを用いて付加します。
図1.4.7.1-2
URLRewritingを使うセッションID管理方法は、セッションIDをHTMLの<Form>タグのactionのURLなどに付加します。
セッションには有効期限が存在します。指定した期間クライアントからのリクエストが無い場合、Webコンテナはセッションを破棄します。以降破棄されたセッションに対しリクエストがあった場合、新たにセッションが作成され要求されたセッションと入れ替えられます。
WebOTXでのセッション管理に関連する基本的な設定について説明します。
セッションをCookieで管理するかURLRewritingで管理するか、Webアプリケーション単位で切り替えます。
運用管理コンソールによる設定
運用管理コンソール(http://<host>:5858/manager/)を開きます。
図1.4.7.2-1
ツリーより[アプリケーション]-[Webモジュール]-[<対象アプリケーション>]を選択してください。表示された設定画面の「セッションIDの管理」チェックボックスを設定してください。
チェックした場合はCookie管理、チェックしない場合はURLRewriting管理となります。
nec-web.xmlによる設定
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | true | |
設定例 |
<nec-web-app> : <session-config> <session-properties> <property name="enableCookies" value="true" /> </session-properties> : |
|
説明 | セッションの管理方法を指定、trueを設定した場合はCookie管理、falseを設定した場合はURLRewriting管理となります。 | |
備考 | nec-web.xmlは予めwarアーカイブに格納しておいてください。 |
セッションのタイムアウト時間(有効期限)を設定します。設定には幾つかの種類がありそれぞれ有効範囲が異なります。それぞれの設定について説明します。優先順位は後者ほど高くなります。
domain全体に対する設定になります。
設定詳細 | ||
---|---|---|
設定箇所 | <domainディレクトリ>/config/default-web.xml | |
既定値 | 30(分) | |
最小値 | 1(分) ※0以下の場合セッションタイムアウトは行われません。 | |
最大値 | 35791(分) | |
設定例 |
<web-app> : <session-config> <session-timeout>30</session-timeout> </session-config> : |
|
説明 | domain全体に対するセッションタイムアウト値を設定します。 | |
備考 | 設定変更後はドメインを再起動してください。 |
Webアプリケーション毎に有効な設定ですが、web.xmlの設定が無い場合に有効です。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | なし | |
最小値 | 1(秒) ※0以下の場合セッションタイムアウトは行われません。 | |
最大値 | 2147483(秒) | |
設定例 |
<nec-web-app> : <session-config> <session-properties> <property name="timeoutSeconds" value="5"/> </session-properties> </session-config> : |
|
説明 | Webアプリケーション毎に有効なセッションタイムアウト値を設定します。 | |
備考 | nec-web.xmlは予めwarアーカイブに格納しておいてください。 |
Webアプリケーション毎に有効な設定になります。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/web.xml | |
既定値 | なし | |
最小値 | 1 ※0以下の場合セッションタイムアウトは行われません。 | |
最大値 | 35791(分) | |
設定例 |
<web-app> : <session-config> <session-timeout>30</session-timeout> </session-config> : |
|
説明 | Webアプリケーション毎に有効なセッションタイムアウト値を設定します。 | |
備考 | なし |
セッション毎に有効な設定でユーザがWebアプリケーション中で指定します。
設定詳細 | ||
---|---|---|
設定箇所 | Webアプリケーションのロジック中 | |
既定値 | なし | |
最小値 | 1(秒) ※0以下の場合セッションタイムアウトは行われません。 | |
最大値 | 2147483(秒) | |
設定例 |
: HttpSession session = request.getSession(); session.setMaxInactiveInterval(300); : |
|
説明 | セッション毎に有効なセッションタイムアウト値をjavax.servlet.http.HttpSession#setMaxInactiveInterval()メソッドで設定します。 | |
備考 | なし |
WebOTXでは何も設定しないデフォルトの状態ではdomainの停止と共にセッション情報は消えてしまいます。セッション情報をファイルに保存する設定を行うことでdomain再起動後もセッションをファイルから復元、継続して使用することができます。
※ WebOTXの環境がアドバンストモードで構築されている場合、セッションの保存方法には制限が存在します。 詳細は「1.4.7.4. WebOTXの高度な設定(アドバンスドモードでの設定) > アドバンスドモードでのセッション情報保存」 を参照してください。
※ セッション情報を保存したファイルの保存箇所は<domainディレクトリ>/generated/jsp/<Webアプリケーション名>配下がカレントになります。このディレクトリはWebアプリケーションを配備解除するとディレクトリが削除され、セッション情報が失われますのでご注意ください。
セッションはメモリ上に展開され、domainの停止時にファイルに出力されます。domainが正常に停止されない場合(突然のアボート等)、セッション情報はファイルに保存されないことがあります。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | memory | |
設定例 |
<nec-web-app> : <session-config> <session-manager persistence-type="memory"> <manager-properties> <property name="sessionFilename" value="/session.ser"/> </manager-properties> </session-manager> </session-config> : |
|
説明 | セッション情報の保存方法をメモリ管理に設定する | |
備考 | 環境によっては、セッション情報をファイルに保存する方法が使用できないためsessionFilenameプロパティが設定できません。 nec-web.xmlは予めwarアーカイブに格納しておいてください。 |
※ WebOTXの環境がアドバンストモードで構築されている場合、セッションの保存方法には制限が存在します。 詳細は「1.4.7.4. WebOTXの高度な設定(アドバンスドモードでの設定) > アドバンスドモードでのセッション情報保存」 を参照してください。
セッションはメモリ、ファイル両方に展開されます。メモリ上で管理されているセッション情報を一定間隔(60秒)でファイルに出力します。セッション更新後ファイル出力をまたずdomainが正常に停止されない場合(突然のアボート等)、ファイルに最新情報が反映されない場合があります。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | memory | |
設定例 |
<nec-web-app> : <session-config> <session-manager persistence-type="file"> <manager-properties> <property name="sessionFilename" value="/session.ser"/> </manager-properties> </session-manager> </session-config> : |
|
説明 | セッション情報の保存方法をファイル管理に設定する | |
備考 | 環境によっては、ファイル管理によるセッション保存は設定できません。 nec-web.xmlは予めwarアーカイブに格納しておいてください。 |
※ WebOTXの環境がアドバンストモードで構築されている場合、セッションの保存方法には制限が存在します。 詳細は「1.4.7.4. WebOTXの高度な設定(アドバンスドモードでの設定) > アドバンスドモードでのセッション情報保存」 を参照してください。
同時に作成できるセッションの最大数を設定します。
セッションレプリケーション時に本項目を指定するとセッション数増加に伴いセッションを払いだす時間が長くなります。ご注意ください。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | -1(制限なし) | |
最小値 | 1 | |
最大値 | 2147483647(個) | |
設定例 |
<nec-web-app> : <session-config> <session-manager> <manager-properties> <property name="maxSessions" value="200"/> </manager-properties> </session-manager> </session-config> : |
|
説明 | セッションの同時最大数を設定する | |
備考 | なし |
セッションをCookie管理している場合、セッションIDを格納するCookieをはじめユーザが作成したCookieにも自動でセキュアオプションの設定を行うことができます。セキュアオプションを設定したCookieはクライアントからHTTPSプロトコルでアクセスされた場合のみリクエストに付加され、HTTPプロトコルでアクセスされた場合は付加されなくなります。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | false | |
設定例 |
<nec-web-app> : <session-config> <cookie-properties> <property name="cookieSecure" value="true"/> </cookie-properties> </session-config> : |
|
説明 | セッションのセキュアオプションを強制設定する | |
備考 | ※WebOTX V8以前はsession-config > alwayCookieSecureというプロパティ名でした。 |
HttpServletResponse.encodeURL()を実行しても、URLRewriting(セッションIDの付加)を行わない設定を行います。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | true | |
設定例 |
<nec-web-app> : <session-config> <session-properties> <property name="enableURLRewriting" value="false" /> : |
|
説明 | URLRewriting(セッションIDの付加)を行わない設定 | |
備考 | なし |
セッションを強制的に使えなくする設定です。動作的にはセッションオブジェクトが取得できないわけではなく、リクエストの終了時セッションがあれば無効化するような動作になります。 また、レスポンス(CookieやURLRewriting)にセッションIDは設定されません。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | true | |
設定例 |
<nec-web-app> : <session-config> <session-properties> <property name="enableSession" value="false" /> : |
|
説明 | セッションを使えなくする設定 | |
備考 | なし |
ドメインもしくはプロセスグループ単位でセッションIDに、指定した文字列を付加することができます。セッションIDを払い出したWebサーバを特定したい場合などに使用します。
設定詳細 | ||
---|---|---|
設定箇所 | JVMオプション | |
既定値 | なし | |
設定例 |
-DjvmRoute="hoho1"otxadminコマンドを用いて設定する場合
|
|
説明 | セッションIDに指定文字列を付加する設定。セッションIDに"."を区切り文字として指定文字列を付加します。 | |
備考 |
プロセスIDとjvmRouteを付加した場合のセッションIDの例を示します。 5B22AF53A66CAB1AB26490EB430D36C3.hoho1$3936 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ ~~~~ セッションID(32桁) . jvmRoute $ プロセスID |
セッションを使用しない静的ファイル(html、gif等)へのリクエストに対して、セッションの時刻情報を更新しないように設定できます。 セッションID付け替えによる制限事項の軽減に対して有効です。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | false | |
設定例 |
<nec-web-app> : <session-config> <session-manager> <manager-properties> <property name="skipStaticFileSessionUpd" value="true"/> </manager-properties> </session-manager> </session-config> : |
|
説明 | 静的ファイルに対してセッション時刻情報の更新をスキップする設定 | |
備考 | nec-web.xmlは予めwarアーカイブに格納しておいてください。 |
Webコンテナが生成するセッションIDの長さは、既定では16進で32桁(16byte==128bit)ですが、 設定により変更することが可能です。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/nec-web.xml | |
既定値 | 16 | |
最小値 | 8 | |
最大値 | 512 | |
設定例 |
<nec-web-app> : <session-config> <session-manager> <manager-properties> <property name="sessionIdLength" value="16"/> </manager-properties> </session-manager> </session-config> : |
|
説明 | 生成されるセッションIDのバイト数を設定 | |
備考 | セッションIDの文字列長は、指定した値×2になります。 nec-web.xmlは予めwarアーカイブに格納しておいてください。 |
システムの信頼性を高めるための複数のサーバ間でセッションデータを複製しておく仕組みをセッションレプリケーションと言います。セッションレプリケーションを設定することで1台のサーバがダウンした場合でも複製したセッション情報を元に他のサーバが処理を引き継ぐことができます。WebOTXのセッションレプリケーションはセッション情報をJNDI(または、データベース)に格納することで実現します。JNDIを使用する場合の情報共有に関しては 1.4.3. HTTPのみのセッションレプリケーション及び1.6.4. JNDIサーバをレプリケーションするための設定を参照してください。
セッションレプリケーションを行うにあたり、Webアプリケーションの作りに一部制限が存在します。詳細は [ 1.4.7.3. セッションレプリケーション > Webアプリケーション実装の注意/制限事項 ] を参照してください。
セッションレプリケーションの概要を図にします。
図1.4.7.3-1
WebOTXのレプリケーション機能の動作概要について記述します。
Webアプリケーションにセッション情報をJNDIに登録するための設定を行います。
設定詳細 | ||
---|---|---|
設定箇所 | <コンテキストルート>/WEB-INF/web.xml | |
既定値 | なし(OFF) | |
設定例 |
<web-app> : <distributable/> : |
|
説明 |
Webアプリケーションにセッションレプリケーションの設定を行います。ON/OFFは要素を記述するかしないかになります。 またdefault-web.xmlに本項目を設定すると、セッションレプリケーションに対応していないWebアプリケーションにも影響を与えてしまいますので、Webアプリケーション毎にweb.xmlに設定してください。 |
|
備考 | なし |
性能 | 信頼性 | モード名 | テンプレート設定値(プロパティ名/値) | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
低 | 高 | 即時同期モード |
|
||||||||||||||
中 | 中 | 同期モード |
|
||||||||||||||
高 | 低 | 非同期モード |
|
※セッションレプリケーションを設定する場合、セッションの管理方法をメモリに設定する必要があります。 [1.4.7.2. WebOTXの基本的な設定 > メモリ管理によるセッション保存] 参照
異なるdomainのJNDIを連携設定することでセッション情報を共有します。設定方法によらず設定内容はセッションレプリケーションするJNDIサーバのURLを"rmiiiop://host1:port,host2:port"の形式で設定します。ここで2重化されるのはセッション情報のみです。
画面左ツリーより「Webアプリケーションサーバ」-「Webコンテナ」を選択し、「JNDI Servlet URL」を更新します。
図1.4.7.3-2
運用管理コマンドより以下のコマンドを実行します。
otxadmin> set server.web-container.session-replication-jndi-url=rmiiiop://host:port,host2:port |
CREATE TABLE webotx$sessions( app VARCHAR(100) NOT NULL, session_id VARCHAR(100) NOT NULL, createhost VARCHAR(64), createtime NUMBER, lastaccesstime NUMBER, thisaccesstime NUMBER, maxInactiveInterval NUMBER, invalidate NUMBER, createversion VARCHAR(64), PRIMARY KEY(app, session_id)); CREATE TABLE webotx$sessions$attributes( app VARCHAR(100) NOT NULL, session_id VARCHAR(100) NOT NULL, attributename VARCHAR(100) NOT NULL, attributevalue BLOB, PRIMARY KEY(app, session_id, attributename)); |
CREATE INDEX webotx$sessionsindex ON webotx$sessions( app, session_id, maxInactiveInterval, invalidate, createversion); |
CREATE TABLE webotx$sessiondata( session_id VARCHAR(100) NOT NULL, app VARCHAR(100) NOT NULL, data BLOB, createversion VARCHAR(64), PRIMARY KEY(app, session_id)); |
CREATE INDEX webotx$sessiondataindex ON webotx$sessiondata( app, session_id, createversion); |
図1.4.7.3-3
otxadmin> create-jdbc-datasource --dataSourceType JDBCEX_Oracle --jdbcMajorVersion 3 --jdbcUserName scott --jdbcPassword tiger --dataSourceName jdbc:oracle:thin:@localhost:1521:ORCL jdbc/Oracle |
画面左ツリーの「アプリケーションサーバ」-「data-grids」-「data-grid」配下に存在するデータグリッドから、
利用するデータグリッドを選択し、「一般」タブにある属性「タイプ」に「infinispan」を指定します。
図1.4.7.3-4
運用管理コマンドより以下のコマンドを実行します。
※以下のコマンドは既定のデータグリッド「__default_http_session」を利用する場合の例です。
otxadmin> set server.data-grids.data-grid.__default_http_session.type = infinispan |
画面左ツリーより 「Webアプリケーションサーバ」-「セッション構成」-「セッションマネージャ」-「マネージャプロパティ」 の 「セッションレプリケーション」タブを選択し、
「データグリッド名」に、利用するデータグリッド名を指定します。(既定値: __default_http_session )
図1.4.7.3-5
運用管理コマンドより以下のコマンドを実行します。
otxadmin> set server.session-config.session-manager.manager-properties.data-grid-name=<データグリッド名> |
画面左ツリーより 「Webアプリケーションサーバ」-「セッション構成」-「セッションマネージャ」-「マネージャプロパティ」 の 「セッションレプリケーション」タブを選択し、
「保存先タイプ」において、「DATAGRID」を選択します。
図1.4.7.3-6
運用管理コマンドより以下のコマンドを実行します。
otxadmin> set server.session-config.session-manager.manager-properties.storage-type=DATAGRID |
セキュリティポリシファイル(${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が使用する番号を指定してください。
※ セキュリティポリシファイルの変更は、ドメイン再起動で有効になります。
以下のようにインスペクトコマンドを実行します。
> java -jar coherence/lib/webInstaller.jar <Webアプリケーションディレクトリ> -inspect -server:Generic |
インスペクトコマンドの実行により生成された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> |
以下のようにインストールコマンドを実行します。
> 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) で指定されます。キャッシュサーバ起動スクリプトの例を以下に示します。
set AS_INSTALL=<WebOTXインストールディレクトリ> set INSTANCE_ROOT=%AS_INSTALL%\domains\<ドメイン名> set COHERENCE_HOME=%AS_INSTALL%\coherence set JAVA_HOME=<JDKホームディレクトリ> set JAVA_OPTS=-Xms1024m -Xmx1024m "%JAVA_HOME%\bin\java.exe" ^ -server -showversion %JAVA_OPTS% ^ -cp "%INSTANCE_ROOT%\config\datagrid\coherence";"%COHERENCE_HOME%\lib\coherence-web.jar";"%COHERENCE_HOME%\lib\coherence.jar" ^ -Dtangosol.coherence.cacheconfig=default-session-cache-config.xml ^ -Dtangosol.coherence.override=webotx-coherence-cluster1.xml ^ -Dtangosol.coherence.session.localstorage=true ^ com.tangosol.net.DefaultCacheServer
AS_INSTALL="<WebOTXインストールディレクトリ>" INSTANCE_ROOT="$AS_INSTALL/domains/<ドメイン名>" COHERENCE_HOME="$AS_INSTALL/coherence" JAVA_HOME="<JDKホームディレクトリ>" JAVA_OPTS="-Xms1024m -Xmx1024m" "$JAVA_HOME/bin/java" \ -server -showversion $JAVA_OPTS \ -cp "$INSTANCE_ROOT/config/datagrid/coherence":"$COHERENCE_HOME/lib/coherence-web.jar":"$COHERENCE_HOME/lib/coherence.jar" \ -Dtangosol.coherence.cacheconfig=default-session-cache-config.xml \ -Dtangosol.coherence.override=webotx-coherence-cluster1.xml \ -Dtangosol.coherence.session.localstorage=true \ com.tangosol.net.DefaultCacheServer
Standard以上のエディションでは、配備時のCoherence自動組み込み機能を提供しています。配備のpreprocessorオプションに「CoherenceWebInstaller」を指定することで、上記の1〜3を配備処理中に自動で実行します。
> otxadmin deploy --preprocessor CoherenceWebInstaller <WARファイルまたはWARを含むEARファイル> |
Coherenceを<WebOTXインストールディレクトリ>/coherence以外の場所にインストールしている場合、Coherence自動組み込み機能を利用するためには、以下のいずれかの準備が必要です。
エージェントプロセスに以下のJVMオプションを追加する。
※ WebOTXと同じマシンにCoherenceをインストールしている場合は、こちらを推奨します。
コマンドでJVMオプションを追加する場合は、以下のとおりです。
> otxadmin create-jvm-options -Dcom.nec.webotx.as.deployment.preprocess.CoherenceWebInstaller.coherence-home=<Coherenceインストールディレクトリ> |
※ JVMオプションの追加は、ドメイン再起動で有効になります。
以下の3ファイルを<WebOTXインストールディレクトリ>/coherence/libにコピーする。
Coherence自動組み込み機能は、ディレクトリ配備に対して使用することはできません。また、Coherence自動組み込み機能がサポートするアプリケーションは、CoherenceのwebInstaller.jarがサポートするWARファイルおよびそのようなWARファイルを含むEARファイルです。
Coherence自動組み込み機能は、セキュリティポリシファイルの変更を行いません。別途変更を行ってください。
セッションレプリケーションを使用するにあたってWebアプリケーションを実装する上での注意点を以下に記載しています。
|
|
レプリケーション前と同じ取得を"DEF"にしたい場合はiiとiiiの間で再度setAttribute()を実行する必要があります。
|
セッションレプリケーションを設定するとセッション情報がJNDI(あるいは、データベース、 DATAGRID)に格納されるようになります。この際セッションに格納しているオブジェクトに関して注意点があります。
セッション情報として、VectorやHashtableなど、同期化されたコレクションクラスを使用すると、シリアライズ/デシリアライズが同期化されてしまいます。同期化されてしまうと処理が直列化されて、大幅な性能低下につながるおそれがあります。そのためVectorやHashtableではなく同期化されないArrayListやHashMapをご使用ください。
また、シリアライズ/デシリアライズは複雑なコレクションクラスの処理には時間が掛かります。セッション情報として使用するオブジェクトはシンプルなものをお勧めします。
アドバンストモードでは通常のセッション管理に加えてアドバンストモード特有の管理情報が追加されます。 通常レプリケーション設定が無い場合、セッションを構築したクライアントとサーバは1対1ですがアドバンストモードの場合、サーバ側で動作する プロセス数がプロセスグループの設定により複数になる可能性があります。
セッションを維持するためにはクライアントからのリクエストを、セッションを払いだしたプロセスに送る必要があります。そのためにWebコンテナは セッションIDを払いだす際に通常のセッションIDの後に"$"を区切りとして自身が動作しているプロセスのIDを付加します(※)。 次回リクエスト時、セッションIDにこのプロセスIDが付加されていた場合、該当するプロセスを探し出して転送します。
※ 環境の構成によってはプロセスIDが付加されない場合があります。詳細は次節参照
アドバンストモードでのセッションIDには構成によりプロセスIDが付加されます。何かの事情によりプロセスIDを付加したくない場合、「強制的にプロセスIDを付加する/しない」 を設定することができます。
※ スタンダードモードではプロセスIDが付加されることはありません
構成によるプロセスIDの付加
プロセスIDの強制付加 | プロセス数 | セッションレプリケーション | 結果 | 備考 | |||
---|---|---|---|---|---|---|---|
OFF設定(JVMオプションを設定します) | -- | -- | プロセスIDなし |
強制的にセッションIDにプロセスIDを付加しません。OFF設定をする場合、次のJVMオプションを設定します。 -Dorg.apache.catalina.session.CompulsionPid=off |
|||
ON設定(JVMオプションを設定します) | -- | -- | プロセスID付加 |
強制的にセッションIDにプロセスIDを付加します。ON設定をする場合、次のJVMオプションを設定します。 -Dorg.apache.catalina.session.CompulsionPid=on |
|||
設定なし(JVMオプションを設定しません) | 1 | -- | プロセスIDなし | プロセスIDは付加しません。プロセス数が1つの場合、リクエストを振り分ける必要がないためです。 | |||
設定なし(JVMオプションを設定しません) | 複数 | 設定なし | プロセスID付加 | プロセスIDを付加します。プロセスが複数存在するためセッションを払いだしたプロセスを選択する必要があるためです。 | |||
設定なし(JVMオプションを設定しません) | 複数 | 設定あり | プロセスIDなし ※レプリケーションモードに非同期を選択している場合プロセスID付加 |
プロセスIDを付加しません。プロセスは複数存在しますが、レプリケーション設定されているためどのプロセスが選択されても同じ結果になるためです。 |
C7C25B729C39629558DB02C5FA25E038$6212 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ セッションID(32桁) $ プロセスID |
WebOTXの環境がアドバンストモードの場合、構成によりセッション情報の保存方法に制限が存在します。
1つのホストのWebブラウザから、同じホストで起動する複数のドメインに対してリクエストを行った時、セッションIDが意図したとおりに取得できない事があります。
例えば次のようなケースで説明します。
上記のような構成で次のようにアクセスしたとします。
※下記アプリケーションのアクセスでHTTPセッションを生成するものとします。
この場合、(3)でアプリケーションが取得できるHTTPセッションは(1)で生成されたHTTPセッションではなく新たに生成されたHTTPセッションとなります。この時のセッションIDの生成と動きを次に説明します。
(3)で(1)と異なるセッションIDが生成されるのは次の2の要素が原因です。
セッションIDはWebブラウザ毎にドメイン側で生成されます。そして、一度生成されたセッションIDはCookieを利用してWebブラウザとドメイン間でやり取りされます。
この時、ドメイン側ではリクエストに含まれるセッションIDを頼りに、過去にアクセスのあったWebブラウザなのかを判断します。新規のアクセスであればリクエストにセッションIDはありません。2回目以降のアクセスであればリクエストに含まれるセッションIDから過去にアクセスしたWebブラウザだと判断します。
また、セッションIDを格納するCookieにはPath属性としてアプリケーションのコンテキスト名が設定されています。
例)
Set-Cookie: JSESSIONID=51BD6DE9BCF62164C894AE85882A14A9; Path=/examples/
つまり、同じドメインへのアクセスでも、アプリケーション(のコンテキスト名)が異なると別物として扱います。逆に言えば、ドメインが異なってもアプリケーション(のコンテキスト名)が一緒の場合は同じCookieが送信されます。
このような環境で各ドメインのアプリケーション毎に生成したセッションIDを取得したい場合の対処としては次の方法があります。
Webブラウザはアプリケーション(のコンテキスト名)が異なると別のセッションだと判断しますので、コンテキスト名を変えると、ドメインA, Bが同じホストで同じアプリケーションを配置していてもセッションIDは別となります。
Webブラウザは同じアプリケーション(コンテキスト名)でもホスト毎にCookieを管理するため、セッションIDは別になります。
通常Webブラウザは普通にウィンドウを複数起動するとCookieを共有します。例えば、Internet Explorer(IE)では、「ファイル」メニューから明示的に「新規セッション」を利用して別のウィンドウを開くと、ドメインA, Bが同じホストで同じアプリケーションを配置していても同じCookieを送信せず、セッションIDは別となります。
Javaにおいて文字コードを意識する箇所を簡単に説明します。
Java内部では文字は全てUnicodeで処理されています。ですが例えば、あるファイルをServletから読み込む場合ファイルはShift_JISで書かれていたとすればShift_JIS<->Unicodeの変換を行わなければJava内部では文字列として使用することができません。
例のようにJavaは外部にI/Oする際に文字コードの変換が発生します。この変換する文字コードが指定されていない場合、Javaでデフォルトとなっている文字コードを使用しますが、デフォルトの文字コードはJavaが動作しているOS環境によって異なります。(Windowsであればwindows-31j、LinuxであればEUC-JP等)
Servlet(Java)への主なI/Oについて概要図を示します。
図1.4.8.1-1
次節以降の表中で使用する用語について説明します。
使用できる文字コードはJavaのプラットフォームにより異なります。Javaのマニュアルにてご確認ください。
文字コードの設定箇所と、それぞれの優先順位を記述します。
リクエストのデータをどの文字コードとして扱うかは通常、以下の処理順で決定されます。ここで決定された文字コードはリクエストからデータを取得する際のInputStreamに適用されます。
優先度 | 設定項目名 | 説明 | 設定場所 | 有効範囲 | 反映方法 | 設定例 |
---|---|---|---|---|---|---|
1 | setCharcterEncoding設定 | Filter等でリクエストデータを参照する前に、HttpServletRequest.setCharcterEncoding()により文字コードを設定した場合、その文字コードとしてリクエストデータをUnicodeに変換します。 | ユーザロジック | Webアプリケーション | 再配備 |
: ((HttpServletRequest)request).setCharcterEncoding("Shift_JIS"); : |
2 | HTTPリクエストcharset設定 | HTTPリクエストのヘッダ情報にcharset指定がある場合、その文字コードでリクエストデータをUnicodeに変換します。 | なし | Webアプリケーション | 再配備 |
ブラウザ等クライアントアプリケーションに依存しますがHTTPリクエストヘッダにcharset指定がある場合の動作になります。 "Content-Type: application/x-www-form-urlencoded; charset=windows-31j" 等 |
3 | NEC配備記述子charset設定 | HTTPリクエストのヘッダ情報にcharset指定が無い場合、nec-web.xmlファイルに<locale-charset-info>要素を設定し、warファイルに予めアーカイブすることでリクエストデータのUnicode変換に用いるデフォルトの文字コードを設定することができます。 | nec-web.xml | Webアプリケーション | 再配備 |
<nec-web-app> : <locale-charset-info> <parameter-encoding form-hint-field="penc" default-charset="windows-31j"/> </locale-charset-info> :
|
4 | デフォルト設定 | 上記のいずれも無い場合、リクエストデータはデフォルトの文字コード"ISO-8859-1"を用いてUnicodeに変換されます。 | -- | -- | -- | -- |
レスポンスにデータをどの文字コードとして出力するかは通常、以下の処理順で決定されます。ここで決定された文字コードはHTTPレスポンスのヘッダ情報(Content-Typeのcharset)とデータを出力する際のOutputStreamに適用されます。
優先度 | 設定項目名 | 説明 | 設定場所 | 有効範囲 | 反映方法 | 設定例 |
---|---|---|---|---|---|---|
1 | 文字コード優先設定 | Webアプリケーション毎にHTTPレスポンスに優先的に使用される文字コードを設定します。 | nec-web.xml | Webアプリケーション | 再配備 |
<nec-web-app> : <property name="priorityResponseEncoding-map:ja" value="EUC-JP"/> : <property name="priorityResponseEncoding" value="windows-31j"/>設定は両方設定することも片方のみ設定する事も可能です。 前者はHTTPレスポンスのロケールが一致した場合、Mapされた文字コードを適用します。 後者はHTTPレスポンスで使用する文字コードを固定で設定します。 両方が設定され場合、前者のMap設定の優先度が高くなります。 |
2 | 文字コード優先設定 | ドメイン(またはプロセスグループ)にHTTPレスポンスに優先的に使用される文字コードを設定します。 | domain.xml | ドメイン | ドメイン(プロセスグループ)再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.priority-response-encoding=EUC-JP |
3 | 配備記述子文字コード設定 | Servlet2.4の仕様でロケールおよび文字エンコードのマッピングをweb.xmlに設定できます。 javax.servlet.ServletResponseのsetLocale()メソッドが呼ばれた時に参照され、設定した ロケールに対応する文字コードが設定されます。 レスポンスデータをUnicodeから設定された文字コードに変換してレスポンス出力します。 |
web.xml | Webアプリケーション | 再配備 |
<web-app> : <locale-encoding-mapping-list> <locale-encoding-mapping> <locale>ja</locale> <encoding>windows-31j</encoding> </locale-encoding-mapping> <locale-encoding-mapping> <locale>ko</locale> <encoding>EUC-KR</encoding> </locale-encoding-mapping> </locale-encoding-mapping-list> : |
4 | setCharacterEncoding設定 | ServletResponseのsetContentType()またはsetCharacterEncoding()にてcharsetが設定された場合、レスポンスデータをUnicodeから設定された文字コードに変換してレスポンス出力します。 | ユーザロジック | Webアプリケーション | 再配備 |
: ((HttpServletResponse)response). setContentType("text/html; charset=Shift_JIS") : |
5 | デフォルト設定 | 上記の設定が無い場合、レスポンスデータをUnicodeからデフォルトの文字コード"ISO-8859-1"に変換してレスポンス出力します。 | -- | -- | -- | -- |
JSPファイルがどの文字コードで記述されているか(読み込み時どのエンコーディングでデコードするか)は通常、以下の処理順で決定されます。 ここで決定された文字コードはJSPファイルを読み込む際のInputStremに適用されます。
優先度 | 設定項目名 | 説明 | 設定場所 | 有効範囲 | 反映方法 | 設定例 |
---|---|---|---|---|---|---|
1 | 優先文字コード設定 | Webアプリケーション毎にJSPファイルのコンパイルに優先的に使用される文字コードを設定します。 | nec-web.xml | Webアプリケーション | 再配備 |
<nec-web-app> : <jsp-config> <property name="priorityJspInEncoding" value="EUC-JP"/> </jsp-config> : |
2 | 優先文字コード設定 | ドメイン(またはプロセスグループ)にJSPファイルのコンパイルに優先的に使用される文字コードを設定します。 | domain.xml | ドメイン(プロセスプロセスグループ) | ドメイン(プロセスプロセスグループ)再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.priority-jsp-in-encoding=EUC-JP |
3 | JSPファイルpageEncoing設定 | JSPファイルにpageEncoing設定が記述されている場合、その文字コードでJSPファイルを読み込みUnicodeに変換します。 | ユーザロジック | JSPファイル | 再配備 |
<%@ page pageEncoding="windows-31j"%> : |
4 | JSPファイルcontentType設定 | JSPファイルにpageEncoing設定が無くcontentType設定(charset指定)が記述されている場合、その文字コードでJSPファイルを読み込みUnicodeに変換します。 | ユーザロジック | JSPファイル | 再配備 |
<%@ page contentType="text/html;charset=windows-31j"%> : |
5 | 配備記述子設定 | JSP2.0の仕様でJSPファイル読み込み時の文字コードをweb.xmlに設定できます。contentType設定(charset指定)が無い場合、web.xmlで設定した文字コードでJSPファイルを読み込みUnicodeに変換します。 | web.xml | Webアプリケーション | 再配備 |
<web-app> : <jsp-config> <jsp-property-group> <url-pattern>/jsp/*</url-pattern> <page-encoding>Shift_JIS</page-encoding> </jsp-property-group> </jsp-config> : |
6 | デフォルト文字コード設定 | pageEncoing設定、contentType設定が共に無い、web.xmlの設定も無い場合、デフォルトの文字コードが使用されますが、そのデフォルト文字コードを変更することができます。 | domain.xml | ドメイン(プロセスプロセスグループ) | ドメイン(プロセスプロセスグループ)再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.default-encoding=Shift_JIS |
7 | デフォルト設定 | 上記のいずれの設定も無い場合、JSPファイルはデフォルトの文字コード"ISO-8859-1"で読み込まれUnicodeに変換されます。 | -- | -- | -- | -- |
出力するレスポンスデータはどのUnicodeから文字コードに変換するかは通常、以下の処理順で決定されます。 ここで決定されたエンコーディングはレスポンスのヘッダ情報(Content-Typeのcharset)と出力する際OutputStreamに適用されます。
優先度 | 設定項目名 | 説明 | 設定場所 | 有効範囲 | 反映方法 | 設定例 |
---|---|---|---|---|---|---|
1 | 優先文字コード設定 | Webアプリケーション毎にJSPファイルのレスポンスに優先的に使用される文字コードを設定します。 | nec-web.xml | Webアプリケーション | 再配備 |
<nec-web-app> : <jsp-config> <property name="priorityJspOutEncoding" value="EUC-JP"/> </jsp-config> : |
2 | 優先文字コード設定 | ドメイン(またはプロセスグループ)にJSPファイルのレスポンスに優先的に使用される文字コードを設定します。 | domain.xml | ドメイン(プロセスプロセスグループ) | ドメイン(プロセスプロセスグループ)再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.priority-jsp-out-encoding=EUC-JP |
3 | setContentType設定 | JSPファイルにcontentType設定(charset指定)が記述されている場合、レスポンスデータをUnicodeから設定文字コードに変換してレスポンス出力します。 | ユーザロジック | JSPファイル | 再配備 |
<%@ page contentType="text/html;charset=windows-31j"%> : |
4 | デフォルト文字コード設定 | contentType の設定が無い場合、デフォルトの文字コードが使用されますがそのデフォルト文字コードを変更することができます。 | domain.xml | ドメイン | ドメイン再起動 |
otxadminコマンド
otxadmin> set server.web-container .property.default-encoding=Shift_JIS |
5 | デフォルト設定 | 上記のいずれの設定も無い場合、JSPのレスポンスデータをUnicodeからデフォルトの文字コード"ISO-8859-1"に変換してレスポンス出力します。 | -- | -- | -- | -- |
RFC3986仕様より、URL 中に書くことが許されているのは、半角アルファベット、数字と以下の(半角)記号です
. $ , ; : & = ? ! * ~ @ # _ - ( ) [ ] |
またURLのコンテキスト名以降の各パーツで使用可能な文字を記述します。
http://<server名>:<ポート名>/<コンテキスト名>/<パス>/<サーブレット名>?<パラメータ>
半角アルファベット、数字と以下の(半角)記号が使用可能です。
. $ ! ~ - _ ( ) |
半角アルファベット、数字と以下の(半角)記号が使用可能です。
. $ , : = ! * ~ @ - _ ( ) [ ] |
半角アルファベット、数字と以下の(半角)記号が使用可能です。
. $ , ! ~ @ - _ ( ) [ ] |
半角アルファベット、数字と以下の(半角)記号が使用可能です。
. $ , & = ! ~ @ - _ ( ) [ ] |
. $ , ; : ? ! * ~ @ - _ ( ) [ ] |
. $ , ; : = ? ! * ~ @ - _ ( ) [ ] |
Webにおける認証(Basic/Form認証等)に使用するアカウント/パスワードについて記述します。
要素名、属性名の使用可能文字はXMLの仕様に従います。値にも次の文字は使用できません。
< & > |
< & > " ' |
Webアプリケーション内の配備記述子(web.xml、nec-web.xml、web-fragment.xml)で設定された設定値を上書きします。本機能を利用することによりWebアプリケーションを再作成することなく、変更した配備記述子の設定でWebアプリケーションを動作させることができます。
配備記述子強制設定機能を利用するためには、次のJavaシステムプロパティを設定してください。
com.nec.webotx.enterprise.web.WebContainer.overrideWebxml=true
Javaシステムプロパティの設定方法については、「1.4.2.3.JavaVMオプションで設定可能な項目一覧」を参照してください。
配備記述子の強制設定は、domain.xml の deployment-config要素に登録されている強制設定情報(param要素)に従って行われます。
配備記述子の設定変更を反映するには、次の手順で行います。
次の運用管理コマンド(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要素を表示することができます。
domain.xml に設定されている強制設定情報を配備記述子に反映するには、Webアプリケーションのリロードが必要なります。Webアプリケーションのリロード方法を次に示します。
Caution
Webアプリケーションのリロードを行っていない場合、domain.xml に強制設定情報が登録されていても、Webアプリケーションの配備記述子は更新されず、従来の動作のままとなります。
Webブラウザを起動し、Web版統合運用管理コンソールへ接続します。"http://<host>:<port>/manager/
"に接続してください。
※domain1のポート番号の既定値は 5858 です。
管理コンソールの左側のツリーで「アプリケーション」-「Webモジュール」を選択します。
リロード対象のWebアプリケーションの停止ボタンをクリックし、停止した後に起動ボタンをクリックしてWebアプリケーションを起動してください。
以上でWebアプリケーションのリロードは完了です。
次のように、invoke コマンドを利用することによりWebアプリケーションをリロードすることができます。
otxadmin> invoke server.web-container.reloadAllModules
配備記述子の強制設定を行う上での注意点を以下に記載しています。
env-entry要素
ejb-ref要素
ejb-local-ref要素
context-root要素
Caution
jsp-config要素の設定変更を反映させるにはjspの再コンパイルが必要になります。しかしドメインの再起動、Webコンテナの再起動ではjspの再コンパイルは行わないため、Webアプリケーションのリロードが必要になります。
・fileオプション
・typeオプション
・paramtargetオプション
・elementnameオプション
・propertynameオプション
・attributenameオプション
例えば elementvalue オプションの値のみが異なる set-web-param コマンドを続けて実行した場合、後に実行したコマンドの情報で最初に実行したコマンドの情報を上書きします。
set-web-param コマンドとコマンド実行後の domain.xml の例を次に示します。
set-web-param コマンド
otxadmin> set-web-param --file web.xml --type update --elementname servlet/servlet-class --elementvalue className examples コマンド set-web-param は正常に実行されました。 otxadmin> set-web-param --file web.xml --type update --elementname servlet/servlet-class --elementvalue newClassName examples コマンド set-web-param は正常に実行されました。
domain.xml のdeployment-config要素
<deployment-config> <param param-target="" context-root="examples" element-name="servlet/servlet-class" element-value="newClassName" file="web.xml" attribute-value="" property-name="" property-value="" attribute-name="" type="update"></param> </deployment-config> |
WebOTX ASでは、HTTP/HTTPS サービスを、サーブレットやJSPが動作する機能層のWebコンテナ内部で動作させることができます。
それ以外のWebコンテナ外部のWebサーバを利用する場合は[WebサーバとWebコンテナとの連携設定(対象: 外部Webサーバを利用する場合)]を参照してください。
インストール時に、WebOTX Webサーバをインストールした場合、
デフォルトでWebOTX Webサーバが使用される設定がされています。
ここでは、WebOTX Webサーバを使用する設定から、内部Webサーバを使用する設定に変更する手順について説明しています。
最初に、[スタート]-[プログラム]-[WebOTX]-[運用管理コマンド]から運用管理コマンドを起動してください。
otxadmin> list-domains停止状態の場合、以下のコマンドで起動してください。
otxadmin> start-domain <ドメイン名>
otxadmin> login --user <管理ユーザ名> --password <管理ユーザパスワード> --port <管理ポート番号>
otxadmin> get server.http-service.virtual-server.server.network-listeners上記コマンドの実行結果が下記のように"ajp-listener-1" が存在する場合、外部Webサーバを使用する設定になっているため、下記の手順に従い設定を行ってください。
server.http-service.virtual-server.server.network-listeners=http-listener-1,http-listener-2,ajp-listener-1
外部Webサーバを利用する設定から、Javaベースの内蔵Webサーバを利用する設定に変更します。
以下のコマンドを実行してください。
otxadmin> set server.http-service.virtual-server.server.network-listeners=http-listener-1 otxadmin> set server.network-config.network-listeners.network-listener.http-listener-1.enabled=true otxadmin> set server.network-config.network-listeners.network-listener.http-listener-2.enabled=false
otxadmin> set server.http-service.virtual-server.server.network-listeners=http-listener-2 otxadmin> set server.network-config.network-listeners.network-listener.http-listener-1.enabled=false otxadmin> set server.network-config.network-listeners.network-listener.http-listener-2.enabled=true
otxadmin> set server.http-service.virtual-server.server.network-listeners=http-listener-1,http-listener-2 otxadmin> set server.network-config.network-listeners.network-listener.http-listener-1.enabled=true otxadmin> set server.network-config.network-listeners.network-listener.http-listener-2.enabled=true
otxadmin> set server.internal-lifecycle-module.WebServerService.enabled=false otxadmin> set server.network-config.network-listeners.network-listener.ajp-listener-1.enabled=false otxadmin> logout otxadmin> exit
(*) user
の既定値は、admin
、password
の既定値は、adminadmin
、 port
の既定値は、6212
です。
先の設定情報は、WebOTXサービスを再起動した後に WebOTXドメインで認識されて動作します。
WebOTX AS Agent Service
運用管理コマンドでドメインを停止する場合は、以下のコマンドを実行してください。
otxadmin> login --user <管理ユーザ名> --password <管理ユーザパスワード> --port <管理ポート番号> otxadmin> stop-domain <ドメイン名> otxadmin> logout otxadmin> exit
(*) user
の既定値は、admin
、password
の既定値は、adminadmin
、 port
の既定値は、6212
です。