3. ドメイン

システムを構築、運用するための手順について説明します。

3.1. ドメインの運用操作の前に

3.1.1. Windows Server 2008

Windows Server 2008ではUAC(User Account Control)によりビルトインアカウントを除くユーザに対し特権の制限がかかります。 WebOTX ASではドメインの運用操作にはOSの管理者特権を必要とするため、特権昇格したコマンドプロンプトからドメインの運用操作を実行する必要があります。

ただし、WebOTX ASで管理者特権のチェックを行わせたくない場合はOSの環境変数に「AS_NO_UAC_CHECK=YES」を設定することでWebOTX ASで行う全てのUACに対する特権チェックを回避することが出来ます。

特権昇格したコマンドプロンプトを起動するにはコマンドプロンプトのショートカットの右クリックメニューから「管理者として実行」を選択して起動する方法などがあります。

3.2. ドメインの作成・削除

WebOTXのドメインを作成および削除する方法について説明します。作成・削除時はWebOTXサービスが起動している必要があります。

Windows Server 2008ではドメインの作成・削除は特権昇格したコマンドプロンプトから実行する必要があります。詳しくは[ 3.1. ドメインの運用操作の前に ] を参照してください。

3.2.1. ドメインの作成

3.2.1.1. ${AS_INSTALL}/domains に作成する場合

asant create-domainコマンドで生成します。その際、新規ドメインの設定を記述した<ドメイン名>.propertiesファイルが必要になります。asantコマンドは${AS_INSTALL}/binにあります。

新規にsampleドメインを作成する場合の手順を以下に示します。

  1. UNIXの場合、WebOTX運用ユーザでログインします。
  2. WebOTXインストールディレクトリ(${AS_INSTALL})に移動します。
  3. WebOTXインストールディレクトリに新規ドメイン用の<ドメイン名>.propertiesファイルを準備します。 sample用のsample.propertiesはWebOTXインストールディレクトリにすでに配置されています。 sample以外のドメインを新規作成する際はsample.propertiesファイルをコピーし、<ドメイン名>.propertiesにリネームしてください。
  4. <ドメイン名>.propertiesファイルの設定をエディタで編集してください。 [ 3.2. ドメインの作成・削除 > 3.2.1. ドメインの作成 > 3.2.1.3. propertiesファイル ] を参考に編集してください。
    Caution
    設定の際、使用するポート番号や識別名の設定が既存のドメインの設定と重複した場合、 同時にドメイン起動ができなくなるので注意してください。
    既定で作成されるdomain1ドメインの定義ファイル(domain1.properties)とsampleドメインの定義ファイル(sample.properties)の設定は排他的になっています。変更を行わなければ既定値で共存が可能です。
  5. WebOTXサービスが起動していることを確認してください。
    Memo
    起動していない場合は、 [ 1. Windowsサービスとrcスクリプト > 1.2. サービスの起動・停止方法 ] の手順で起動します
  6. 以下のコマンドを実行し、ドメインを作成します。
    bin/asant -buildfile setup.xml -Dfile=<ドメイン名>.properties create-domain
    
    Caution
    管理ドメインの運用ユーザパスワードを変更した場合は、上記コマンドの引数に「-Dadmdomain.admin.password=<管理ドメインの運用ユーザパスワード>」を追加してください。
  7. 正常にドメイン作成を行えたならば、以下のコマンドで新規作成したドメインを起動します。
    otxadmin> login --user admin --passwd adminadmin --port <管理ドメインの管理ポート>
    otxadmin> start-domain --remote <ドメイン名>
    
  8. (対象: Linuxを利用している場合)
    サーバOSとしてLinuxを利用している場合、次の設定がされている環境ではRMI通信によるリモート接続が行えないため、 運用管理ツールからドメインに接続できないという問題が発生します。
    上記の条件に当てはまる場合、作成したドメインに対して次の手順でJavaシステムプロパティを設定してください。
    1. 作成したドメインにログインします。
      otxadmin> login --user <管理ユーザ名> --password <管理ユーザパスワード> --port <管理ポート番号>
      
    2. Javaシステムプロパティを設定します。
      otxadmin> create-jvm-options -Djava.rmi.server.hostname=<ホスト名>
      
    3. ドメインを再起動します。

  9. (対象: 複数のネットワークカードを利用している場合)
    WebOTXが動作するサーバが複数のネットワークカードを利用している場合、運用管理ツールからドメインへの接続が失敗することがあります。該当する環境を利用している場合、作成したドメインに対して次の手順でJavaシステムプロパティを設定してください。

    1. 作成したドメインにログインします。
      otxadmin> login --user <管理ユーザ名> --password <管理ユーザパスワード> --port <管理ポート番号>
    2. Javaシステムプロパティを設定します。
      otxadmin> create-jvm-options -Djava.rmi.server.hostname=<ホスト名、または、IPアドレス>
    3. ドメインを再起動します。

    Memo

3.2.1.2. ${AS_INSTALL}/domains 以外に作成する場合

asant create-domainコマンドで生成します。その際、新規ドメインの設定を記述した<ドメイン名>.propertiesファイルが必要になります。asantコマンドは${AS_INSTALL}/binにあります。

新規にsampleドメインを作成する場合の手順を以下に示します。

  1. UNIXの場合、WebOTX運用ユーザでログインします。
  2. WebOTXインストールディレクトリ(${AS_INSTALL})に移動します。
  3. WebOTXインストールディレクトリに新規ドメイン用の<ドメイン名>.propertiesファイルを準備します。 sampleドメイン用の定義ファイルsample.propertiesはWebOTXインストールディレクトリにすでに配置されています。 sample以外のドメインを新規作成する際はsample.propertiesファイルをコピーし、<ドメイン名>.propertiesにリネームしてください。
  4. <ドメイン名>.propertiesファイルの設定をエディタで編集してください。 [ 3.2. ドメインの作成・削除 > 3.2.1. ドメインの作成 > 3.2.1.3. propertiesファイル ] を参考に編集してください。
    Caution
    設定の際、使用するポート番号や識別名の設定が既存のドメインの設定と重複した場合、 同時にドメイン起動ができなくなるので注意してください。
    既定で作成されるdomain1ドメインの定義ファイル(domain1.properties)とsampleドメインの定義ファイル(sample.properties)の設定は排他的になっています。変更を行わなければ既定値で共存が可能です。
  5. 管理ドメインから${AS_INSTALL}/domains 以外に配置されたファイルを実行するために${AS_INSTALL}/domains/WebOTXAdmin/configのserver.policyファイルをエディタで編集します。「Basic set of required permissions granted to all remaining code」ブロックの「java.io.FilePermission」の定義に「execute」を追記します。
    //
    // Copyright (C) 1998 ・・・
    //
            ・
            ・
            ・
    
    // Basic set of required permissions granted to all remaining code
    grant {
    permission java.lang.RuntimePermission "loadLibrary.*";
    permission java.lang.RuntimePermission "queuePrintJob";
    permission java.net.SocketPermission "*", "connect";
    permission java.io.FilePermission "<<ALL FILES>>", "read,write,execute";
    
            ・
            ・
            ・
    

    編集が終わったらファイルを保存し、設定を反映させるためにWebOTXサービスを再起動します。サービスの起動・停止方法については [ 1. Windowsサービスとrcスクリプト > 1.2. サービスの起動・停止方法 ] を参照してください。

  6. 再起動後、WebOTXサービスが起動していることを確認してください。
    Memo
    起動していない場合は、 [ 1. Windowsサービスとrcスクリプト > 1.2. サービスの起動・停止方法 ] の手順で起動します
  7. 以下のコマンドを実行し、ドメインを作成します。
    bin/asant -buildfile setup.xml -Dfile=<ドメイン名>.properties -Ddomains.root=<作成先ディレクトリ>  create-domain
    
    Caution
    管理ドメインの運用ユーザパスワードを変更した場合は、上記コマンドの引数に「-Dadmdomain.admin.password=<管理ドメインの運用ユーザパスワード>」を追加してください。
  8. 正常にドメイン作成を行えたならば、以下のコマンドで新規作成したドメインを起動します。
    otxadmin> start-domain --remote -Ddomains.root=<作成先ディレクトリ> <ドメイン名>
    

    または

    otxadmin> login --user admin --passwd adminadmin --port <管理ドメインの管理ポート>
    otxadmin> start-domain --remote <ドメイン名>
    
  9. (対象: Linuxを利用している場合)
    サーバOSとしてLinuxを利用している場合、次の設定がされている環境ではRMI通信によるリモート接続が行えないため、 運用管理ツールからドメインに接続できないという問題が発生します。
    上記の条件に当てはまる場合、作成したドメインに対して次の手順でJavaシステムプロパティを設定してください。
    1. 作成したドメインにログインします。
      otxadmin> login --user <管理ユーザ名> --password <管理ユーザパスワード> --port <管理ポート番号>
      
    2. Javaシステムプロパティを設定します。
      otxadmin> create-jvm-options -Djava.rmi.server.hostname=<ホスト名>
      
    3. ドメインを再起動します。

  10. (対象: 複数のネットワークカードを利用している場合)
    WebOTXが動作するサーバが複数のネットワークカードを利用している場合、運用管理ツールからドメインへの接続が失敗することがあります。該当する環境を利用している場合、作成したドメインに対して次の手順でJavaシステムプロパティを設定してください。

    1. 作成したドメインにログインします。
      otxadmin> login --user <管理ユーザ名> --password <管理ユーザパスワード> --port <管理ポート番号>
    2. Javaシステムプロパティを設定します。
      otxadmin> create-jvm-options -Djava.rmi.server.hostname=<ホスト名、または、IPアドレス>
    3. ドメインを再起動します。

    Memo

3.2.1.3. propertiesファイル

<ドメイン名>.propertiesファイルで設定する各プロパティについて説明します。

実際に<ドメイン名>.propertiesに記述されるのはプレフィックスを含めた完全プロパティ名です。

たとえばドメイン設定項目のhostnameの完全プロパティ名はdomain.hostnameになります。

表3.2.1.3-1
プロパティ名 説明 domain1の既定値
ドメイン設定項目(プレフィックス: domain.)
hostname ホスト名
※ホスト名に使える文字は、0-9の数字、A-zのアルファベット、"." "-" "_"(アンダースコア)になります。
localhost
name ドメイン名
※必ずドメイン間で重複しないよう一意に設定してください。
※次に示す単語はWebOTXの予約語のため、ドメイン名に用いることはできません。
WebOTXAdmin、cluster、proxy
domain1
admin.user 管理ドメインに対して定義されている管理ユーザ admin
admin.password 管理ユーザのパスワード
※8文字以上に設定してください。
adminadmin
admin.port 運用管理エージェントが利用するJRMPのポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
6212
domain.admin.jmxmp.port 運用管理エージェントが利用するJMXMPのポート番号
※下位互換用
必ずドメイン間で重複しないよう一意に設定してください。
6712
instance.port HTTPサーバインスタンスが利用する HTTPの ポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
80
https.port SSLで保護されたHTTPポートの番号
※必ずドメイン間で重複しないよう一意に設定してください。
443
http.admin.port Webコンテナが利用する管理コンソール用HTTPポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
5858
http.ajp.port mod_jk2を使用したHTTPサーバ-Webコンテナ連携ポートの番号
※必ずドメイン間で重複しないよう一意に設定してください。
8099
jms.port JMS管理サーバが利用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
9700
ipv6-enable IPv6優先
※ドメインのJavaシステムプロパティjava.net.preferIPv6Addressesの値に影響します
false
サーバライフサイクルモジュール設定(プレフィックス: server.internal-lifecycle-module.)
ObjectBrokerService.enabled Object Brokerサービス起動フラグ true
JNDIService.enabled JNDIサービス起動フラグ true
J2EEServer.enabled J2EEサーバ起動フラグ true
JMSProvider.enabled JMSサービス起動フラグ true
WebContainerService.enabled Webコンテナサービス起動フラグ true
TransactionService.enabled Transactionサービス起動フラグ true
WebServerService.enabled Webサーバ(Apacheベース)サービス起動フラグ true
TPMonitorManagerService.
enabled
TPモニタ・マネージャサービス起動フラグ
Expressの場合は無視されます。
true
SecurityService.enabled セキュリティサービス起動フラグ true
WSMgmtService.enabled Webサービス管理サービス起動フラグ true
Javaデバッグオプション設定(プレフィックス: server.java-config.)
debug-options Javaデバッグオプション -Xdebug -Xrunjdwp:transport=dt_socket,
server=y,suspend=n,address=4004
debug-enabled デバッグモードフラグ false
WebコンテナとWebサーバ連携設定(プレフィックス: domain.)
path ドメインのルートパス ${AS_INSTALL}/domains/ドメイン名
webserver.type WebServerの種別
インストール時に指定した以下のサーバタイプのいずれかを指定します。
  • WebOTX WebServer : (指定なし)
  • Apache HTTP Server 1.3: WebServer
  • Apache HTTP Server 2.0: WebServer2
  • Apache HTTP Server 2.2: WebServer22
  • Express:(指定なし)
  • Standard/Enterprise: WebServer2
webserver.path WebServerのインストールパス
  • Express: (指定なし)
  • Standard/Enterprise: ${AS_INSTALL}/WebServer2
webserver.name WebServer名 (指定なし)
webserver.plugin.querymode Webアプリケーションのコンテキスト名動的反映 on
Object Broker サービス設定(プレフィックス: server.objectbrokerservice.*)
oadj.Port oadjが使用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
9826
corbaloc.CorbalocDefaultPort URLでポート番号を指定しなかったときの値
※必ずドメイン間で重複しないよう一意に設定してください。
2809
corbaloc.CorbalocServerPort corbalocサーバが使用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
9827
namesv.NameServicePort 名前サーバが使用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
2809
namesv.
NameServiceRoundRobin
名前サーバのラウンドロビン拡張機能 true
irsv. InterfaceRepositoryPort インタフェースリポジトリが使用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
9830
oad.OadPort 接続先のoadが使用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
9825
cnamesv.
CacheNameServicePort
キャッシュ名前サーバが使用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。 ※キャッシュ名前サーバはEnterpriseでのみインストールされます。
9829
Webコンテナサービス設定(プレフィックス: server.web-container.)
processMultiplicity Webコンテナ 動作モード
  • アドバンスドモード:true
  • スタンダードモード:false
  • Express: false
  • Standard/Enterprise: true
TPモニタマネージャサービス設定(プレフィックス: tpsystem.)
systemNameW ドメインで動作するTPシステム名 8文字以内の英数字で指定
※必ずドメイン間で重複しないよう一意に設定してください。
MySystem
systemID TPシステムを一意に識別するID
0-255の間で指定
※必ずドメイン間で重複しないよう一意に設定してください。
0
downloaderManagerService.portNumber ダウンローダ管理サービスが使用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
5202
IIOPListener.
listenerPortNumber
WebOTX IIOPリスナが使用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
5151
OLFTPListener.
listenerPortNumber
WebOTX OLFリスナが使用するポート番号
※必ずドメイン間で重複しないよう一意に設定してください。
5251
Transactionサービス設定(プレフィックス: server.transactionservice.*)
rcs-cpp-port C++版のRCSが使用するポート番号(Expressでは使用されません)。
※必ずドメイン間で重複しないよう一意に設定してください。
5965
JMSサービス設定(プレフィックス: domain.jms.*)
port JMSサーバが利用するポート番号。
※必ずドメイン間で重複しないよう一意に設定してください。
9700
user.port JMSサーバのコネクションサービス用ポート番号。
※必ずドメイン間で重複しないよう一意に設定してください。
9701
admin.port JMSサーバの管理コネクションサービス用ポート番号。
※必ずドメイン間で重複しないよう一意に設定してください。
9702

3.2.2. ドメインの削除

3.2.2.1. ${AS_INSTALL}/domains に作成した場合

asant delete-domainコマンドで削除します。削除するドメイン名は-Ddomain.name=<ドメイン名>引数で指定して削除します。asantコマンドは${AS_INSTALL}/binにあります。

sampleドメインを削除する場合の手順を以下に示します。

  1. UNIXの場合WebOTX運用ユーザでログインします。
  2. WebOTXインストールディレクトリに移動します。
  3. WebOTXサービスが起動していることを確認します(起動していない場合は、 [ 1. Windowsサービスとrcスクリプト > 1.2. サービスの起動・停止方法 ] の手順で起動します)
  4. Transactionサービスを利用したトランザクション管理を行っている場合は、Transactionサービスで提供するwotstxコマンドを使用して、全てのトランザクションが存在しないことを確認してください。トランザクションが残っている場合は全てのトランザクションを終了させてください。
  5. ドメインが起動している場合は停止します
    otxadmin> login --user admin --passwd adminadmin --port <管理ドメインの管理ポート>
    otxadmin> stop-domain --remote sample
    
  6. 以下のコマンドを実行します
    bin/asant -buildfile setup.xml -Ddomain.name=sample delete-domain
    
    ※ 管理ドメインの運用ユーザパスワードを変更した場合は、上記コマンドの引数に「-Dadmdomain.admin.password=<管理ドメインの運用ユーザパスワード>」を追加してください。

3.2.2.2. ${AS_INSTALL}/domains 以外に作成した場合

asant delete-domainコマンドで削除します。削除するドメイン名は-Ddomain.name=<ドメイン名>引数で指定して削除します。asantコマンドは${AS_INSTALL}/binにあります。

sampleドメインを削除する場合の手順を以下に示します。

  1. UNIXの場合WebOTX運用ユーザでログインします。
  2. WebOTXインストールディレクトリに移動します。
  3. WebOTXサービスが起動していることを確認します(起動していない場合は、 [ 1. Windowsサービスとrcスクリプト > 1.2. サービスの起動・停止方法 ] の手順で起動します)
  4. Transactionサービスを利用したトランザクション管理を行っている場合は、Transactionサービスで提供するwotstxコマンドを使用して、全てのトランザクションが存在しないことを確認してください。トランザクションが残っている場合は全てのトランザクションを終了させてください。
  5. ドメインが起動している場合は停止します
    otxadmin> login --user admin --passwd adminadmin --port <管理ドメインの管理ポート>
    otxadmin> stop-domain --remote sample
    
  6. 以下のコマンドを実行します
    bin/asant -buildfile setup.xml -Ddomain.name=sample -Ddomains.root=<sampleディレクトリ> delete-domain
    
    ※ 管理ドメインの運用ユーザパスワードを変更した場合は、上記コマンドの引数に「-Dadmdomain.admin.password=<管理ドメインの運用ユーザパスワード>」を追加してください。
  7. ${AS_INSTALL}/domains/WebOTXAdmin/configのserver.policyファイルの変更を戻します

3.3. ドメインの確認

ドメインの状態を確認する方法について説明します。

3.3.1. ドメインの一覧確認

ドメインの一覧を確認するにはotxadmin list-domainsコマンドを実行してください。そのマシン上で動作するドメインの一覧とそれぞれの状態が表示されます。

otxadmin> login --user admin --passwd adminadmin --port <管理ドメインの管理ポート>
otxadmin> list-domains
List of domains:
domain1 running
WebOTXAdmin running
Memo
ローカルモードで実行する場合は管理ドメインへのログインは必要ありません。

各ドメイン名の表示につづけて以下のいずれかの状態が表示されます。

<ドメイン名> not running     (停止中)
<ドメイン名> starting        (起動処理中)
<ドメイン名> running         (稼働中)
<ドメイン名> stopping        (停止処理中)
<ドメイン名> unknown         (状態不明)
Memo
WebOTXAdminは管理ドメインです。

3.3.2. ドメインの起動完了確認

ドメインの起動が完了し、サービスの要求を受け付けられる状態になっているか確認する方法について説明します。

3.3.2.1. イベントログによる確認

以下のメッセージがドメインの起動・停止完了時にイベントログへ通知されます。

OTX01205135: アプリケーションサーバ[domain1:server] の起動に成功しました。 (com.nec.webotx.enterprise.system.core)

3.3.2.2. ログファイルの出力による確認

以下のメッセージがドメインの起動・停止完了時に各ドメインのログファイル(webotx_agent.log)に出力されます。

9999-99-99 00:00:00,000 SLOGINFO com.nec.webotx.enterprise.system.core - OTX01205135: アプリケーションサーバ [domain1:server] の起動に成功しました。 [main]

3.3.3. コマンドの実行ステータスによるサービスの状態確認

otxadminコマンドのgetコマンドを利用しWebOTXの各サービスの状態を確認します。

get コマンドの --exitstatusオプションを利用することでotxadminコマンドの終了コードに状態コードを反映させることができます。状態によってバッチ処理を行いたいような場合に利用することができます。

例: Webコンテナの起動状態を確認する(Windows)
otxadmin get --exitstatus=true --exiterrornum=-1 server.internal-lifecycle-module.WebContainerService.state
if %errorlevel%==1 echo WebContainer running!

状態コードは以下のように対応しています。

表3.3.3-1
状態 状態表示(コード)
開始処理中(starting) 0
実行中(running) 1
停止処理中(stopping) 2
停止中(stopped) 3
起動・停止失敗(failed) 4
(APG)クライアント接続中(client connecting) 10
(PG)オペレーション実行中(process executing) 11
(PG)リカバリ処理中(recovery executing) 12

以下のサービスは状態表示をサポートしています。

表3.3.3-2
サービス dottedmane
J2EEサーバ server.internal-lifecycle-module.J2EEServer.state
JMSプロバイダ server.internal-lifecycle-module.JMSProvider.state
ObjectBrokerサービス server.internal-lifecycle-module.ObjectBrokerService.state
トランザクションサービス server.internal-lifecycle-module.TransactionService.state
Webコンテナサービス server.internal-lifecycle-module.WebContainerService.state
Webサーバ(※WebOTX Webサーバ利用時のみ) server.WebServer.state

3.4. ドメインの起動・停止

WebOTXのドメインを起動および停止する方法について説明します。

Windows Server 2008ではドメインの起動・停止は特権昇格したコマンドプロンプトから実行する必要があります。詳しくは [ 3.1. ドメインの運用操作の前に ] を参照してください。

3.4.1. ドメインの自動起動設定

WebOTXサービス起動時にドメインを自動起動させるかどうかの設定について説明します。なおデフォルトでは作成したドメインは自動起動します。

ドメインの自動起動を行わないよう設定するには管理ドメインに対して以下のコマンドを実行します。

3.4.1.1. domain1の自動起動を無効に設定

※この操作は、対象となるドメイン(ここではdomain1)が停止している状態で行ってください。

# otxadmin
otxadmin> login --user admin -password **** --port 6202
otxadmin> invoke domain.disable domain1
otxadmin> exit

再度、自動起動を有効にするには管理ドメインに対して以下のコマンドを実行します。

3.4.1.2. domain1の自動起動を有効に設定

※この操作は、対象となるドメイン(ここではdomain1)が停止している状態で行ってください。

# otxadmin
otxadmin> login --user admin -password **** --port 6202
otxadmin> invoke domain.enable domain1
otxadmin> exit

3.4.2. 管理ドメインの起動/停止

管理ドメインはWebOTXサービスと連動して起動、停止を行います。管理ドメインを起動/停止するにはWebOTXサービスを起動 /停止させてください。サービスを起動/停止する方法は [ 1. Windowsサービスとrcスクリプト > 1.2. サービスの起動・停止方法 ] を参照してください。

なおサービスを停止すると全てのドメインは停止されます。

3.4.3. 一般ドメインの起動/停止

特定のドメインを起動・停止させるには次のコマンドを実行してください。

Caution
コマンドの実行は必ずWebOTX運用ユーザで行なってください。

3.4.3.1. ローカルモードで一般ドメインを起動/停止

ローカルマシン上で、一般ドメインの起動/停止を行います。

3.4.3.2. リモートモードで一般ドメインを起動/停止

リモートマシンから、一般ドメインの起動/停止を行います。

3.4.4. サービスでの運用とコマンドでの運用の違い

本節は Windows OS で運用している場合限定の内容であり、UNIX OS で運用している場合は対象外です。

start-domain、stop-domainコマンドによるドメイン運用はあくまで開発・評価時に対象となるドメインの起動・停止操作を速やかに行えることを第一の目的として提供しているコマンドです。

サービスからの運用方法との違いはプロセスを起動するユーザの違いに現れます。サービスから運用した場合、WebOTXの各種プロセスはシステムユーザとして起動されます。対して、運用管理コマンドから起動した場合は、運用ユーザのプロセスとして起動します。そのため、起動ユーザの環境設定に依存してしまい、運用時の思わぬトラブルの原因となってしまう場合があります。

そのため、本番環境での運用時にstart-domain、stop-domain コマンドによるドメイン制御は行わないようご注意ください(本番時はWebOTXサービスとして [ 1. Windowsサービスとrcスクリプト > 1.2. サービスの起動・停止方法 ] で記載した方法で各ドメインの起動・停止処理を行う運用となります)。

なお、 [ 3.4.3. 一般ドメインの起動/停止 ] のリモートモードでの起動/停止で説明している方法でユーザドメインを起動することで、管理ドメインと同一のユーザプロセスとして起動することが可能です。既に管理ドメインをサービスとして起動していて、システムユーザとしてユーザドメインを運用したい場合にご利用ください。

例えば、Windows 2008 serverではサービスから運用する方法、または、運用管理コマンドでドメイン運用サブコマンドに対しリモートオプション指定(※1)することにより、UACに起因する運用トラブルを未然に避けることができます。

Memo
(※1) WebOTX AS Ver 8.2からはドメイン運用サブコマンド(start-domain ,stop-domain,list-domains)に対しリモートオプションを指定することができるようになりました。これにより管理ドメイン経由でユーザドメインを起動することで、プロセスの起動ユーザをサービスの場合と同じユーザとしてドメインを運用することができます。

図3.4.4-1
図3.4.4-1

3.5. 運用ユーザの設定

WebOTXでは運用ユーザの管理方法として、Fileレルム、LDAPレルム、JDBCレルムを用いる方法を提供しています。設定方法については、[ 4. ユーザ管理 > 4.3. ユーザ・グループの設定 ]を参照してください。

3.6. ドメイン上で動作するサービスの起動・停止

ドメイン上で動作している各サービスを起動、停止する方法について説明します。

3.6.1. 各サービスの起動・停止方法

サービスを起動・停止するotxadminコマンドは、以下の表の通りです。

表3.6.1-1
サービス名 起動コマンド 停止コマンド
JMSサービス invoke server.jms-service.start
または、
start-jms
invoke server.jms-service.stop
または、
stop-jms
Object Brokerサービス invoke server.objectbrokerservice.start invoke server.objectbrokerservice.stop
Transactionサービス invoke server.transactionservice.start
または、
start-transaction-service
invoke server.transactionservice.stop
または、
stop-transaction-service
Webコンテナ invoke server.internal-lifecycle-module.WebContainerService.start invoke server.internal-lifecycle-module.WebContainerService.stop
Webサーバ* invoke server.WebServer.start invoke server.WebServer.stop
TPモニタ start-system stop-system

*: WebOTX Webサーバインストール時のみ

3.6.2. 自動起動

ドメインの起動時にサービスを自動起動させるかどうかの設定方法について説明します。

自動起動の確認

現在の設定を確認するには次のコマンドを実行します。

otxadmin> get server.internal-lifecycle-module.<サービス名>.enabled

trueの場合は自動起動をする、falseの場合は自動を起動しない設定です。

<サービス名>は以下の表に従ってください。

表3.6.2-1
サービス名 説明
JMSProvider JMSサービス
ObjectBrokerService Object Brokerサービス
TransactionService Transactionサービス
WebContainerService Webコンテナ
WebServerService HTTPサーバ(ApacheベースWebOTX Webサーバ)
TPMonitorManagerService TPモニタ・マネージャサービス
例) Object Brokerサービスの自動起動設定を確認
otxadmin> get server.internal-lifecycle-module.ObjectBrokerService.enabled
server.internal-lifecycle-module.ObjectBrokerService.enabled = true
自動起動の設定

自動起動の設定を変更するには次のコマンドを実行します。

otxadmin> set server.internal-lifecycle-module.<サービス名>.enabled={ true | false }

<サービス名>は上記表を参照してください。trueの場合は自動起動設定、falseの場合は自動起動しないに変更します。

Caution
表にないサービスの自動起動設定は変更しないでください。正常にドメインが起動しなくなります。
例: Object Brokerサービスが自動起動しないように設定する。
otxadmin> set server.internal-lifecycle-module.ObjectBrokerService.enabled=false

3.7. ポリシーファイルの設定

WebOTXはセキュリティポリシーによりアクセス権が明示的に設定されています。

WebOTXの各サービスが動作するために必要なセキュリティポリシーはデフォルトで以下のファイルに記述されています。

${INSTANCE_ROOT}/config/server.policy

アプレット (またはセキュリティマネージャの下で動作しているアプリケーション) が、ファイルの読み書きなど、セキュリティ保護された操作を行うためには、その操作を行うためにアクセス権を付与する必要があります。必要に応じてserver.policyファイルに必要な権限を設定するようにしてください。

WebOTXでは、各サービスの基本的動作に必要な権限に加え、統合運用管理ツールなどリモートからの運用操作に必要なアクセス権限をデフォルトで定義しています。リモート接続時に必要な権限は、プリンシパル javax.management.remote.JMXPrincipal "otxadmin"によって定義されています。

セキュリティポリシー、ポリシーファイルの記述に関する詳細は、Java SDK の 「セキュリティ」 に関する情報を参照してください。

http://docs.oracle.com/javase/7/docs/technotes/guides/security/

3.7.1. 新たなポリシーの付与

ドメイン停止状態でポリシーファイルを編集することによって、ポリシーを追加することが可能です。

例: ポリシーの追加
// Grant everyone the following permission:
grant {
    permission java.io.FilePermission "/tmp/*", "read,write";
};

この例では、/tmpディレクトリのすべてのファイルに対する、読み込みと書き込み権を全てのJavaクラスに与えます。

3.7.2. ポリシーファイル編集の際の注意点

3.8. Java VMオプションの設定

WebOTX AS で既定としているJava VM オプションの変更方法とユーザ定義の独自のJava VM オプションの追加方法について説明します。

3.8.1. WebOTX AS で既定のJava VM オプションの設定方法

3.8.1.1. プロセスグループへ既定のJava VM オプションを設定する方法 STDENT

プロセスグループへ既定のJava VMオプションを設定する場合、otxadminコマンド及び運用管理ツールを用いて設定することが可能です。
otxadminコマンドを使用する場合、設定可能な属性値は、以下のコマンドで確認することが可能です

otxadmin> get tpsystem.applicationGroups.<アプリケーショングループ名>.processGroups.<プロセスグループ名>.*

設定例は以下の通りです。

otxadmin> get tpsystem.applicationGroups.<アプリケーショングループ名>.processGroups.<プロセスグループ名>.maxHeapSize=1024

3.8.2. ユーザ独自のJava VMオプションの追加方法

ドメイン起動のJava VMに独自のオプションを設定する方法について説明します。

コマンドによる設定

運用管理コマンド(otxadmin)を利用することにより、任意の場所にあるライブラリをクラスパスに追加したり、Java VMの動作を調整するためのオプションを指定したりすることができます。なお運用管理コマンド「create-jvm-options」、「delete-jvm-options」については「運用管理コマンドリファレンスマニュアル」を参照してください。

Caution
VMオプション削除時はプロパティ名だけでなく現在設定されているプロパティの値も指定してください。また、現在設定しているプロパティを変更するにはいったん削除して作成しなおしてください。

以下のコマンドを実行します。

確認
otxadmin> get server.java-config.jvm-options
設定
otxadmin> create-jvm-options <オプション名>=<値>
削除
otxadmin> delete-jvm-options <オプション名>
例: -Dmy-debug-option=trueを追加
otxadmin> create-jvm-options -Dmy-debug-option=true

なお、「<オプション名>=<値>」の形式にならないオプションを設定、削除する場合は明示的にオプションの終了を示す':'(コロン)を最後に付け加えてください。

例) オプション -agentlib:hprof(プロファイル採取)を追加

otxadmin> create-jvm-options -agentlib:hprof:

オペランドの前に'--'を記述することでも実行可能です。

otxadmin> create-jvm-options -- -agentlib:hprof

3.8.2.1. プロセスグループへユーザ独自のJava VMオプションを追加する方法 STDENT

プロセスグループへユーザ独自のJava VMオプションを追加する場合、add-pg-javasystem-property コマンド及び運用管理ツールを用いて設定することが可能です。

3.8.3. システムが使用しているJava VMオプションの追加方法

予めシステム側で設定しているオプションを参照したり、それらの値に変更を加える場合には、次のように指定してください。

Caution
これらのオプション変更は慎重に行って下さい。誤ってオプションを削除したり、不正なオプションを指定すると、ドメインが起動しなくなる恐れがあります。
確認
otxadmin> get server.java-config.system-jvm-options
設定
otxadmin> create-jvm-options --system <オプション名>=<値>
削除
otxadmin> delete-jvm-options --system <オプション名>
例) システム側で定義済みのシステムプロパティ java.ext.dirs(インストール型拡張機能の位置をオーバーライド)を変更
otxadmin> delete-jvm-options --system -Djava.ext.dirs=<現在のプロパティ値>
otxadmin> create-jvm-options --system -Djava.ext.dirs=<新規のプロパティ値>

3.9. 統計情報の取得

統計情報の採取および取得方法について説明します。なお詳細は [ ドメイン構築・基本設定ガイド > 9. モニタリング ] を参考にしてください。

3.9.1. 統計情報の出力レベル設定

まず統計方法の出力レベルを設定します。otxadminのsetコマンドを利用してレベルを設定します。なおモジュールにより設定できる出力レベルが異なります。

otxadmin> set server.monitoring-service.module-monitoring-levels.<モジュール名>=<レベル>
指定できるレベル
設定可能な統計情報
表3.9.1-1
モジュール 説明 設定できる値 既定値
connector-connection-pool コネクションプールに関する統計情報 OFF, ON OFF
connector-service コネクタサービスに関する統計情報 OFF, ON OFF
ejb-container EJBコンテナに関する統計情報 OFF, LOW, HIGH OFF
http-service WebコンテナのHTTPサービスに関する統計情報 OFF, ON OFF
jdbc-datasource JDBCデータソースに関する統計情報 OFF, LOW, HIGH OFF
jms-service JMSサービスに関する統計情報 OFF, ON OFF
jvm JavaVMに関する統計情報 OFF, LOW, HIGH OFF
thread-pool スレッドプールに関する統計情報 OFF, ON OFF
transaction-service トランザクションサービスに関する統計情報 OFF, LOW, HIGH OFF
web-container Webコンテナに関する統計情報
Webアプリケーションの統計情報を採取するには、運用管理コンソールの「統計情報」-「Web Applicationの統計情報」画面で統計情報の収集を開始(収集開始ボタンを押下)しておく必要があります。
OFF, ON OFF
例: jvmモジュールのレベルをHIGHに設定します
otxadmin> set server.monitoring-service.module-monitoring-levels.jvm=HIGH

3.9.2. 統計情報の出力レベル確認

現在の統計情報の出力レベルを確認するにはotxadminのgetコマンドを利用します。

例: 全てのモジュールのレベルを確認
otxadmin> get server.monitoring-service.module-monitoring-levels.*
server.monitoring-service.module-monitoring-levels.connector-connection-pool = OFF
server.monitoring-service.module-monitoring-levels.connector-service = OFF
server.monitoring-service.module-monitoring-levels.ejb-container = OFF
server.monitoring-service.module-monitoring-levels.http-service = OFF
server.monitoring-service.module-monitoring-levels.jdbc-datasource = OFF
server.monitoring-service.module-monitoring-levels.jms-service = OFF
server.monitoring-service.module-monitoring-levels.jvm = HIGH
server.monitoring-service.module-monitoring-levels.thread-pool = OFF
server.monitoring-service.module-monitoring-levels.transaction-service = OFF
server.monitoring-service.module-monitoring-levels.web-container = OFF

3.9.3. 統計情報の取得

統計情報の出力レベルをON,LOW,HIGHに設定すると、統計情報採取用のWebOTX統計MBeanが登録されますので、その属性をotxadminコマンドで取得することができます。

例: モジュールjvmの現在登録されている統計情報
otxadmin> get --monitor=true server.jvm.*
server.jvm.HeapFreeSize-Current = 34199456
server.jvm.HeapFreeSize-HighWaterMark = 34199456
server.jvm.HeapFreeSize-LowWaterMark = 0
server.jvm.HeapFreeSize-LowerBound = 0
server.jvm.HeapFreeSize-UpperBound = 518979584
server.jvm.HeapSize-Current = 73805824
server.jvm.HeapSize-HighWaterMark = 73805824
server.jvm.HeapSize-LowWaterMark = 0
server.jvm.HeapSize-LowerBound = 0
server.jvm.HeapSize-UpperBound = 518979584
server.jvm.HeapUsedRate-Current = 53
server.jvm.HeapUsedRate-HighWaterMark = 60
server.jvm.HeapUsedRate-LowWaterMark = 0
server.jvm.HeapUsedRate-LowerBound = 0
server.jvm.HeapUsedRate-UpperBound = 100
server.jvm.HeapUsedSize-Current = 39716224
server.jvm.HeapUsedSize-HighWaterMark = 39802144
server.jvm.HeapUsedSize-LowWaterMark = 0
server.jvm.HeapUsedSize-LowerBound = 0
server.jvm.HeapUsedSize-UpperBound = 518979584
server.jvm.UpTime-Count = 2507712

また、レベル設定後、otxadmin コマンド上でこれらの統計情報を定期的に取得するための [ monitor ] コマンドを用意しています。一定期間情報を取り続け、そのデータから分析を行う場合に有効です。

3.9.4. Transactionサービス(JTA)統計情報の取得

Transactionサービス(JTA)に関する統計情報の採取および取得方法について説明します。

3.9.4.1. パフォーマンスデータの取得方法

統合運用管理ツールを利用する場合

次の手順で実施します。

  1. 統合運用管理ツールよりドメインと接続します。
  2. ツリービューより「<ドメイン名>」-「統計情報」-[domain] -「アプリケーションサーバ」-「Transactionサービス」を選択すると右側に表示されます。ただしこのツリーは、モニタリングレベルがOFF以外に設定されている必要がありますのでご注意ください。設定方法については [ ドメイン構築・基本設定ガイド > 9. モニタリング > 9.1. モニタリングについて ] を参照してください。

admingui
図3.9.4.1-1

コマンドを利用する場合

次のコマンドで取得します。ただし統合運用管理ツールの場合同様に、モニタリングレベルがOFFに設定されている場合失敗します。

otxadmin> get --monitor=true server.transaction-service.*
server.transaction-service.ActiveCount-Count = 0
server.transaction-service.ActiveIds-Current = No Transactions exists.
server.transaction-service.ApplicationRolledbackCount-Count = 1
server.transaction-service.AverageTAT-Count = 26975
server.transaction-service.Committed2PCCount-Count = 2
server.transaction-service.CommittedCount-Count = 5
server.transaction-service.CompletedCount-Count = 7
server.transaction-service.DeletedCount-Count = 0
server.transaction-service.ForgottenCount-Count = 0
server.transaction-service.HeuristicCount-Count = 0
server.transaction-service.ResourceRolledbackCount-Count = 1
server.transaction-service.RolledbackCount-Count = 2
server.transaction-service.SystemRolledbackCount-Count = 0
server.transaction-service.TimedOutCount-Count = 0
server.transaction-service.TransferedCount-Count = 1

3.9.4.2. トランザクション一覧の取得、および操作方法

モニタリングレベルをLOW、あるいはHIGHに設定した場合には、統合運用管理ツール、およびotxadminコマンドを使用して実行中のトランザクション情報も取得することができます。また表示したトランザクションに対する操作も可能です。

なお、モニタリングレベルがOFFの場合はotxadminコマンドでは表示されません。

次にotxadminコマンドを使用したトランザクション一覧の取得、および操作について説明します。

トランザクション一覧の表示

otxadminコマンドを使用する場合、属性名を次のように指定します。

otxadmin> get --monitor=true server.transaction-service.ActiveIds-Current

これにより実行中トランザクションの一覧が確認できます。実行中のものが存在しない場合、

server.transaction-service.ActiveIds-Current = No Transaction Exists.

と表示されます。存在する場合は

server.transaction-service.ActiveIds-Current =
Transaction ID Status A/R Start Time
----------------+--------------------+-------+-------------------
0277689751350000 StatusCommitting     Active  2008/6/8 14:39:53
0384489751290000 StatusCommitting     Active  2008/6/8 14:39:54
0255289751170000 StatusPrepared       Active  2008/6/8 14:39:57
0277689749150001 StatusUnknown        Recover 2008/6/8 14:40:49
0384489749070001 StatusUnknown        Active  2008/6/8 14:40:51

のように表示されます。統合運用管理ツールでは前述の方法で実施すると右側ペインに上記のように表示されます。

次にそれぞれの項目について説明します。詳細については [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) ] をご参照ください。

表3.9.4.2-1
項目 説明
TransactionID トランザクション識別子です。これを利用してトランザクションの操作を実施します。
Status トランザクションの状態です。
A/R RCSにトランザクションが移管されているかどうかを表します。
「Active」の場合は移管されておらず、「Recover」の場合は移管されていることを示します。
Start Time トランザクションが開始された日時です。

3.9.4.3. トランザクションの操作

トランザクションの操作は次のように実施します。

統合運用管理ツールを利用する場合
  1. 統合運用管理ツールよりドメインと接続します。
  2. ツリービューより「<ドメイン名>」-「統計情報」-[domain]-「アプリケーションサーバ」-「Transactionサービス」を選択します。
  3. 右側に表示されるTransaction IDをコピーし、「Transactionサービス」ツリーを右クリックして上図のようなメニューを出します。
  4. 実施するコマンドを指定してください。なお、トランザクションの状態によって実行可能なコマンドが制限されます。詳細は [ トランザクションの状態一覧 ]をご参照ください。
  5. 次のような画面が出ますのでparam1のところに3.でコピーしたTransaction IDを貼り付けて「実行」を押して処理を開始してください。

Transaction
図3.9.4.3-1

コマンドを利用する場合
  1. otxadminコマンドを起動し、ドメインにログインします。
    otxadmin> login
    
  2. それぞれ次のように、トランザクション識別子を指定してコマンドを実施します。ただしモニタリングレベルがOFFに設定されている場合失敗します。なお、この処理によってデータベースの状態が不安定になる可能性がありますので実行には十分注意が必要です。

    トランザクションの操作については、Transactionサービス(統合運用管理ツールの「<ドメイン名>」-「アプリケーションサーバ」-「Transactionサービス」ツリー)からも実施可能です。詳細については [ 7. WebOTXの内部サービス > 7.4. Transactionサービス ] をご参照ください。

3.10. コード変換について

コード変換について説明します。

3.10.1. CORBA通信におけるコード変換

CORBA通信でのコード変換について説明します。

C++アプリケーションとJavaアプリケーション間のCORBA通信で、日本語データを送受信する場合には、文字化けが発生しないように、適切なコードセットの設定を行う必要があります。C++アプリケーションとJavaアプリケーション間ではそのコードセットの設定情報を交換して、どのようにコード変換を行うかを決定しています。個々の文字列の内容をチェックしている訳ではありません。そのため、実際にC++アプリケーションがどのような文字列を送受信するかによって、正しいNativeコードセットの設定を行っておく必要があります。例えば、C++アプリケーションでSJISの文字列をデータベースやファイルから読み込んで送受信するのであれば、NativeコードセットもSJISに設定する必要があります。

詳細については、次を参照してください。

Object Broker C++では、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.3. Object Broker C++における環境設定 ] の[ コードセットに関するオプション設定 ]を参照してください。

Object Broker Javaでは、 [ アプリケーション開発ガイド(CORBA) > 1. CORBA アプリケーション > 1.2. プログラミング・開発ガイド > 1.2.2. Object Broker > 1.2.2.7. Object Broker Javaの機能 ] の[ 文字コードセット ]を参照してください。

3.10.2. Webアプリケーションの文字エンコーディングの設定について

Webアプリケーションでは、リクエストやレスポンスの文字エンコーディングをさまざまなところで指定することができます。以下に、場所に応じた文字エンコーディングの指定方法を説明します。

3.10.2.1. Servletの場合

リクエストパラメータ

Webブラウザから POSTメソッドで送付されるリクエストパラメータは、javax.servlet.ServletRequest.getParameter() を使って取得しますが、このパラメータを取得する際の文字エンコーディングは次のメソッドで指定します。

javax.servlet.ServletRequest.setCharacterEncoding()

このメソッドは、getParameter() の前に呼び出す必要があります。

レスポンス

Servlet からクライアントに出力するレスポンスの文字エンコーディングは次のメソッドで指定します。

javax.servlet.ServletResponse.setContentType()

引数として、"text/html; charset=Shift_JIS" のように指定します。このメソッドは、PrintWriterを取得する前に呼び出す必要があります。

3.10.2.2. JSPの場合

リクエストパラメータ

Servlet の場合と同様です。

レスポンス

JSP からクライアントに出力するレスポンスの文字エンコーディングは次のように pageディレクティブで指定します。

<%@ page contentType="text/html; charset=Shift_JIS" %>

また、JSPファイル自体がどの文字エンコーディングで保存されているかを指定する要素として次のものがあります。

<%@ page pageEncoding="Shift_JIS" %>

もし、上記の指定をしていない場合、デフォルトの "ISO-8859-1" となりますが、このデフォルト値を変更する事も可能です。

変更するには、次のように otxadmin コマンドを使って default-encoding プロパティで指定します。ドメインを起動したあと、次のようにコマンドを実行してください。

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

また、JSP を事前コンパイルする場合のデフォルト文字エンコーディングは nec-web.xml で次のように指定します。

<jsp-config>
    <property name="precompileDefaultEncoding" value="Shift_JIS"/>
</jsp-config>

なお、デフォルト文字エンコーディングの指定は JSP をコンパイルする時に決定します。事前コンパイルした場合は nec-web.xml の指定が、そうでない場合は default-encoding プロパティ指定が有効になります。事前コンパイルでない場合、指定を変更するには Webアプリケーションを再配備し、JSP を再コンパイルする必要があります。

3.11. Javaプロセスの監視・管理

ドメイン内で起動するJavaプロセス(JVM)を監視・管理する方法について説明します。
方法は幾つかあり、それぞれ対象となるJavaプロセスやその表示形式が異なりますので、目的に応じて使い分けて下さい。

3.11.1. 運用管理ツールによる監視・管理

WebOTXが提供する各種運用管理ツールを使用してJavaプロセスの監視・管理を行います。
この方法では、次のJavaプロセスが監視・管理の対象となります。

統合運用管理ツール

ドメインに接続後、「<ドメイン名>」-「統計情報」-「domain」-「アプリケーションサーバ」-「JVM」を選択すると、画面右側に監視情報が表示されます。

admingui
図3.11.1-1

運用管理コマンド

ドメインにログイン後、JVMの統計情報に対するコマンド表記名(server.jvm)を使用して、次のコマンドを実行します。

otxadmin> get --monitor=true server.jvm.*

デフォルトの状態では、ヒープの消費状況や実行時間についての情報を参照することができます。

より詳細な情報を参照するためには、JVMに対するモニタリングレベルを変更します。モニタリングレベルに応じて、次のような情報を参照することができます。

表3.11.1-1
監視対象 説明 モニタリングレベル 統合運用管理ツール
「<ドメイン名>」-「統計情報」-「domain」-「アプリケーションサーバ」-「JVM」を基準
運用管理コマンド
コマンド表記名(CLIName)
"get --monitor=true <CLIName>.*"を実行
クラスローディングシステム JVM内で使用されるクラスのロードに関する情報を監視します。 LOW,HIGH 「JVM」配下 server.jvm.class-loading-system
コンパイルシステム JVM内で実行されるコンパイル処理に関する情報を監視します。 LOW,HIGH 「JVM」配下 server.jvm.compilation-system
ガベージコレクタ JVM内で実行されるGC処理に関する情報を監視します。 LOW,HIGH 「JVM」-「メモリシステム」-「<ガベージコレクタ名>」配下 server.jvm.garbage-collectors.<ガベージコレクタ名>
メモリシステム JVM内でのメモリの消費状況や、メモリプールに関する情報を監視します。 概要:LOW,HIGH
プール単位:HIGH
概要:「JVM」配下
プール単位:「JVM」-「メモリシステム」-「<メモリプール名>」
概要:server.jvm.memory
スレッド単位:server.jvm.memory.<メモリプール名>
オペレーティングシステム JVMが動作するOSに関する情報を監視します。 LOW,HIGH 「JVM」配下 server.jvm.operating-system
実行時システム JVMの実行に関する情報を監視します。 LOW,HIGH 「JVM」配下 server.jvm.runtime
スレッドシステム JVM内で生成されるスレッドに関する情報を監視します。 概要:LOW,HIGH
スレッド単位:HIGH
概要:「JVM」配下
スレッド単位:「JVM」-「スレッドシステム」-「<スレッド名>」
概要:server.jvm.thread-system
スレッド単位:server.jvm.thread-system.<スレッド名>

なお、各監視対象で参照可能な監視項目の詳細については、 [ 9. モニタリング ] を参照してください。

統合運用管理ツール

「<ドメイン名>」-「アプリケーションサーバ」-「モニタリングサービス」-「モジュールモニタリングレベル」を選択し、画面右側に表示される設定項目「JVM」の値を LOW もしくは HIGH に変更し、「更新」ボタンを押します。

admingui
図3.11.1-2

運用管理コマンド

次のコマンドを実行します。

※監視を終了する場合は、モニタリングレベルを OFF に戻して設定を更新してください。

また、統合運用管理ツールでは、定期的な情報採取によりこれまでに取り上げた監視項目をグラフ化表示したり、監視項目が一定条件を満たした際にその旨を通知画面に出力したりすることができます。一方で、運用管理コマンドではJVMヒープ情報に関して、定期的な情報採取により監視項目をプロンプト画面に出力することができます。詳しくは、 [ 運用ツールガイド > 3. 統合運用管理ツール(WebOTX Administrator) > 3.5. 統計情報 ] を参照してください。

3.11.2. jconsoleによる監視・管理

JDKに付属のJMX(Java Management Extensions)仕様に準拠した監視ツールjconsoleを利用して、Javaプロセスの監視・管理を行います。
この方法では、次のJavaプロセスが監視・管理の対象となります。

また、jconsoleに関する詳しい説明はOracleの公式サイトを参考にして下さい。
http://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html

但し、jconsoleをWebOTXと同じマシン(ローカル)で動作させるか、異なるマシン(リモート)で動作させるかによってパラメータ指定画面が異なります。以下に接続例を示します。

jconsoleをWebOTXと同じマシン(ローカル)で動作させている場合

※プロセスグループの各プロセスに接続する場合は、後述のリモート接続による作業を行って下さい。


図3.11.2-2 jconsole画面

「ローカルプロセス」をクリックし、接続候補リストの中から「名前」列に“com.nec.webotx.enterprise.bootstrap.ASMain -domainname domain1”(JMXエージェントへの接続) が表示されている行を選択し、「接続」ボタンを押します。

※上記以外のJavaプロセスを監視する場合には、 [ 1. WebOTXの構成 > 1.2. 動作プロセス ] で記載されている引数情報を参考に対象のプロセスを選択してください。

jconsoleをWebOTXと異なるマシン(リモート)で動作させている場合


図3.11.2-4 jconsole画面

「リモートプロセス」をクリックし、入力フィールドに<ホスト名>:<ポート>の形式で入力します。「ユーザ名」と「パスワード」には、ドメインに対して設定されている運用ユーザ名とパスワードを入力します。

パラメータ指定後、「接続」ボタンを押します。

接続に成功すると、以下のような画面が表示されます。


図3.11.2-6 jconsole画面

初期表示画面では「概要」タブが選択されており、監視対象のJVMに関するパフォーマンス情報とリソース消費情報、およびOSに関するリソース情報が表示されます。

この他の画面では、カテゴリ毎に情報が細分化され、それらの監視項目がグラフィカルに表示されます。以下に、各表示項目について簡潔に説明します。

gaiyo
図3.11.2-7

(※)WebOTXでは、高機能化の実現にあたり、独自にJMX仕様を拡張させたMBeanを使用しています。そのため、そのMBeanを示すツリーノードは画面左側に表示されますが、ノードをクリックした場合、jconsoleでは対応しきれず以下のエラーメッセージが表示されます。

JMXError
図3.11.2-8

これらのMBeanは通常システム内部でのみ使用するため、ユーザが参照する必要はありません。これらのMBeanは、システム内部および「統合運用管理ツール」や「運用管理コマンド」などから参照されます。

3.11.3. 統計レポート出力

運用管理コマンドを使用して、Javaプロセスに対する様々な監視項目をレポート形式で出力します。
この方法では、次のJavaプロセスが監視・管理の対象となります。

対象のドメインにログイン後、以下の指定方法によりコマンドを入力することで、ドメイン内のJavaプロセスに対する監視項目を画面に表示することができます。

otxadmin> generate-jvm-report --type <監視項目のタイプ名> <サーバ名>

<監視項目のタイプ名>には、summary、memory、class、thread のいずれかを指定します。<サーバ名>には、情報取得の対象とするサーバ(Javaプロセス)の名前を指定します。サーバ名は次のようになります。

監視項目の取得対象がJava用TPPプロセスである場合、次の指定方法によっても同じ結果を得ることができます。

otxadmin> generate-jvm-report --apgroup <アプリケーショングループ名> --pgroup <プロセスグループ名> --type <監視項目のタイプ名> <プロセスID>

<プロセスID>には、Java用TPPプロセスに割り当てられているプロセスIDを指定します。プロセスIDの確認方法については [ [参考1]Java用TPPプロセスに対するプロセスIDの確認方法 ] をご覧ください

さらに、Java用TPPプロセスに対するコマンド指定方法の詳細に関しては [ [参考2]Java用TPPプロセスに対する監視項目を取得する場合のコマンド指定方法 ] をご覧ください。

なお、--type オプションが省略された場合は、<監視項目のタイプ名>に "summary" がデフォルトとして指定されます。また、<サーバ名>が省略された場合は、"server" がデフォルトとして指定されます。

プロンプトの設定状況によっては記述の途中で改行されて読み辛くなる場合や、最初の方の出力結果が表示されなくなる場合があります。一方で、出力結果をファイルに保存したい場合があります。その際は、コマンドの実行結果を任意のファイルにリダイレクトする等の方法が有効です。

otxadmin generate-jvm-report --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <ポート番号> --type thread server > <出力先ファイルパス>

なお、いずれの取得情報においても、Java用TPPプロセスを対象とした場合、アプリケーショングループ、プロセスグループ、プロセスIDの情報が追加でタイトル行に表示されます。複数のプロセスを情報取得の対象とした場合、この表示を参考にプロセス単位で読み分けてください。

例) アプリケーショングループ名 : apg、プロセスグループ名 : pg、プロセスID : 12345、取得対象 : summary の場合

**** Java Virtual Machine [Application Server Instance Name: apg-pg] Summary ****
(Application Group : apg, Process Group : pg, Process ID : 12345)
    :
[参考1]Java用TPPプロセスに対するプロセスIDの確認方法

Java用TPPプロセスのプロセスIDについては、以下のコマンドを実行することで確認できます。

otxadmin> list --monitor tpsystem.applicationGroups.<アプリケーショングループ名>.processGroups.<プロセスグループ名>.processes.*

例) アプリケーショングループ名 : apg、プロセスグループ名 : pg の場合

otxadmin> list --monitor tpsystem.applicationGroups.apg.processGroups.pg.processes.*
tpsystem.applicationGroups.apg.processGroups.pg.processes.14348.jvm
tpsystem.applicationGroups.apg.processGroups.pg.processes.21380.jvm
    :

この時、表示される識別名の後部に示されている数値(14348、21380、...)が、実行中のJava用TPPプロセスのIDです。

[参考2]Java用TPPプロセスに対する監視項目を取得する場合のコマンド指定方法

Java用TPPプロセスの監視項目を取得する場合のコマンド指定方法について、幾つかの例を示します。

例) アプリケーショングループ名 : apg、プロセスグループ名 : pg、プロセスID : 12345、取得対象 : summary の場合

コマンドの詳細については、[ generate-jvm-report ]をご覧ください。

3.11.4. GCログ出力

JavaプロセスにおけるGC処理の様子をファイルへ出力します。
この方法では、次のJavaプロセスが監視・管理の対象となります。

統合運用管理ツール

ドメインに接続後、「<ドメイン名>」-「アプリケーションサーバ」-「JVM構成」を選択し、画面右側に表示される「GC」タブ内の設定項目-「GC情報の出力」にチェックを入れます。この状態では、標準出力用のログファイルであるserver.log(${INSTANCE_ROOT}/logs配下)に出力されますので、任意のファイルにGCログ情報を出力するためには、さらに同タブ内の項目「GC情報の出力先」にて、ファイル出力先のフルパスを指定して下さい(ファイル名のみ指定した場合は、${INSTANCE_ROOT}/config配下に出力されます)。
設定後、「更新」ボタンを押します。設定は、ドメインの再起動後に反映されます。

admingui
図3.11.4-1

運用管理コマンド

ドメインにログイン後、次のコマンドを実行します。

otxadmin> set server.java-config.verbose-gc-enabled=true

任意のファイルにGCログ情報を出力するためには、さらに次のコマンドを実行します。
ここでは、出力先のファイルパスを D:\WebOTX\domains\domain1\logs\gc.log とします。

otxadmin> set server.java-config.gc-logfile="D:\WebOTX\domains\domain1\logs\gc.log"

※GCログの採取を終了する場合は、設定を元の状態に戻します(運用管理コマンドの場合はtrueで設定した値をfalseに更新します)。

なお、ドメイン再起動の度に過去のGCログファイルは上書きされますので、ログを残す場合にはドメイン起動の前にファイルを別の場所に退避するか、リネームするなどの処置を行ってください。

出力結果例
3.886: [GC 16446K->3056K(62848K), 0.0165272 secs]
9.617: [GC 19504K->4723K(62848K), 0.0174459 secs]
16.169: [GC 21171K->7358K(62848K), 0.0296354 secs]
17.911: [GC 11882K->7984K(62848K), 0.0125603 secs]
17.924: [Full GC 7984K->7787K(62848K), 0.1311320 secs]
        :

上記出力例の場合、1行目のログは、JVMが起動してから3.886秒後に、GCによってJavaヒープ領域内のオブジェクトの合計サイズが16,446K(≒16M)バイトから3,056K(≒3M)バイトに減少したことを示します。すなわち、このGCにより13,390K(≒13M)バイトの領域が解放されたことになります。また、カッコ内の数値は、現在のJavaヒープ全体のサイズが62,848K(≒62M)バイトであることを示します。最後の数値は、このGCに要した時間で、0.0165272(≒17ミリ)秒となります。
なお、ログ中の "GC" は、Scavenge GC、"Full GC" は、フルGC が発生したことを示します。

GC
図3.11.4-2

より詳細なGC情報を参照するためには、JVMオプションを追加します。オプションに応じて、次のような情報を参照することができます。

表3.11.4-1
オプション 説明
-XX:+PrintGCDetails GCに関する詳細情報を表示します。
-XX:+PrintGCTimeStamps GCの詳細情報にタイムスタンプを追加します。
-XX:+PrintHeapAtGC GC前後のヒープの使用状況を表示します。
-XX:+PrintTenuringDistribution オブジェクトの生存回数や殿堂入りに関する情報を表示します。
統合運用管理ツール

「<ドメイン名>」-「アプリケーションサーバ」-「JVM構成」を選択し、画面右側に表示される「JVMオプション」タブ内の設定項目-「JVMオプション」に上述のオプションを追加し、「更新」ボタンを押します。

運用管理コマンド

次のコマンドを実行します(上述のオプションを全て指定する場合)。

otxadmin> create-jvm-options -- "-XX\:+PrintGCTimeStamps"
otxadmin> create-jvm-options -- "-XX\:+PrintGCDetails"
otxadmin> create-jvm-options -- "-XX\:+PrintHeapAtGC"
otxadmin> create-jvm-options -- "-XX\:+PrintTenuringDistribution"

GCログの採取を終了する場合は、オプションを削除します(運用管理コマンドの場合は delete-jvm-options コマンドにて各オプションを指定し削除)。

上述のオプションを全て指定した場合の出力結果例
3.970: [GC {Heap before gc invocations=0:
 def new generation   total 19648K, used 17472K [0x10010000, 0x11560000, 0x1aab0000)
  eden space 17472K, 100% used [0x10010000, 0x11120000, 0x11120000)
  from space 2176K,   0% used [0x11120000, 0x11120000, 0x11340000)
  to   space 2176K,   0% used [0x11340000, 0x11340000, 0x11560000)
 tenured generation   total 43712K, used 0K [0x1aab0000, 0x1d560000, 0x30010000)
   the space 43712K,   0% used [0x1aab0000, 0x1aab0000, 0x1aab0200, 0x1d560000)
 compacting perm gen  total 65536K, used 7519K [0x30010000, 0x34010000, 0x38010000)
   the space 65536K,  11% used [0x30010000, 0x30767e60, 0x30768000, 0x34010000)
No shared spaces configured.
3.971: [DefNew
Desired survivor size 1114112 bytes, new threshold 1 (max 15)
- age   1:    2228224 bytes,    2228224 total
: 17472K->2176K(19648K), 0.0265893 secs] 17472K->3213K(63360K)Heap after gc invocations=1:
 def new generation   total 19648K, used 2176K [0x10010000, 0x11560000, 0x1aab0000)
  eden space 17472K,   0% used [0x10010000, 0x10010000, 0x11120000)
  from space 2176K, 100% used [0x11340000, 0x11560000, 0x11560000)
  to   space 2176K,   0% used [0x11120000, 0x11120000, 0x11340000)
 tenured generation   total 43712K, used 1037K [0x1aab0000, 0x1d560000, 0x30010000)
   the space 43712K,   2% used [0x1aab0000, 0x1abb3790, 0x1abb3800, 0x1d560000)
 compacting perm gen  total 65536K, used 7519K [0x30010000, 0x34010000, 0x38010000)
   the space 65536K,  11% used [0x30010000, 0x30767e60, 0x30768000, 0x34010000)
No shared spaces configured.
}
, 0.0268294 secs]
        :

この場合のログは、ヒープ内のメモリ領域ごとに非常に詳細なGC情報が出力されますが、JVMのベンダによってその出力形式が異なるため、解析の際には各ベンダが提供する専用のツールなどをご利用ください。

3.12. 接続プロトコルの変更

クライアントからドメインに接続を行う際に使用するプロトコルはデフォルトではJRMPとなっています。WebOTXではJRMP以外にも下位互換用のプロトコルとしてJMXMPを提供しています。また、SSLを利用した接続もサポートしています。

3.12.1. JMXMPを利用する手順

下位互換用のプロトコルJMXMPを利用する手順について説明します。

3.12.2. SSLを利用する手順

SSLを利用してクライアントからドメインに接続する手順について説明します。SSLはJMXMP利用時は使用することはできません。JRMP利用時のみ可能です。

SSLを有効にするために、以下のコマンドを実行し、ドメインを再起動してください。

otxadmin> set server.admin-service.jmx-connector.system.security-enabled=true

SSLを利用してドメインに接続するにはコマンドに--secureオプションでtrueを指定してください。loginコマンドの実行例を以下に示します。

otxadmin> login --user admin --password adminadmin --port 6212 --secure=true

3.13. ドメインの自動再起動復旧

障害によりドメインが停止した場合に自動的に再起動する機能について説明します。

3.13.1. 再起動復旧機能

再起動復旧機能は、障害により突如ドメインが停止した場合に、対象ドメインの残存プロセスの終了と再起動を自動で行う機能です。自動復旧はユーザドメインの監視を行っている管理ドメインが行います。そのため、本機能を有効にするためには、運用中に管理ドメインが起動している必要があります。

本機能が復旧対象とする監視項目はユーザドメインのエージェントプロセスに対するもので、主に以下の3つが該当します。

上記に該当する障害が発生した場合、管理ドメインはユーザプロセスの停止を行います。停止処理は2段階に分かれており、まずは通常の停止処理を試みます。この停止処理にはタイムアウト時間を設定可能です。通常の停止処理が完了しなかった場合、強制停止処理が行われます。強制停止処理ではOS層での残存プロセスの強制停止を行います。

停止処理が完了すると、ユーザドメインの起動処理に移ります。この起動処理にはタイムアウト時間を設定可能です。なお、復旧処理にはリトライ回数を設定することができ、起動処理に失敗した場合やタイムアウト時間を経過しても起動しない場合には、再び停止処理および起動処理を試みることができます。

本機能は既定では無効化されています。そのため、本機能を利用するためには、以下の設定を行ってください。

  1. 再起動復旧機能の有効化
  2.  リトライ回数、startTimeout値、stopTimeout値の設定

設定方法については、次節を参照してください。

また、各設定項目(リトライ回数、startTimeout値、stopTimeout値)の内容は以下の通りです。

40
図3.13.1-1

(注1) [ リファレンス集 運用管理・設定編 > 4. 運用管理コマンドリファレンス > 4.2. 運用管理コマンド(otxadmin) > 4.2.1. 使用方法 > 4.2.1.17. コマンドのタイムアウト設定 ]で記載されている otxadmin.propertiesの設定を行っている場合、本機能のタイムアウト値より優先してotxadm.propertiesの設定が反映されます。復旧設定のタイムアウト値を有効にしたい場合は、otxadmin.propertiesの設定を${INSTANCE}/config/から退避するなどして、無効化してください。

なお、必要以上にリトライを行うと以下の問題が発生する可能性があります。

リトライ回数を変更する場合は上記の問題が発生しない範囲で設定を行ってください。また、構築中の環境の場合、本機能により予期しない再起動処理が行われないようご注意ください。

また、Windows OS の場合、[ ドメイン構築・基本設定ガイド > 3. ドメイン > 3.4. ドメインの起動・停止 > 3.4.4. サービスでの運用とコマンドでの運用の違い ] の説明にあるように、起動方法によってドメインプロセスの起動ユーザが異なります。

本機能により、管理ドメインからユーザドメインを起動した場合、ユーザドメインは管理ドメインの起動ユーザと同じユーザのプロセスとして起動します。意図して管理ドメインとユーザドメインを別々のユーザプロセスとして起動している場合にはご注意ください。

3.13.2. 自動再起動復旧機能の設定方法

運用管理コマンド

対象ドメインの再起動復旧機能の有効化

otxadmin> invoke --port <管理ドメインの管理ポート> domain.setRecoveryEnabled domain1 true

リトライ回数の設定

otxadmin> invoke --port <管理ドメインの管理ポート> domain.setRetryCount domain1 <リトライカウント数>

起動タイムアウト[秒]の設定

otxadmin> invoke --port <管理ドメインの管理ポート> domain.setStartTimeout domain1 <タイムアウト秒>

停止タイムアウト[秒]の設定

otxadmin> invoke --port <管理ドメインの管理ポート> domain.setStopTimeout domain1 <タイムアウト秒>
運用管理ツール

34
図3.13.2-1

対象ドメインを選択し、「実行」を押してください。

35
図3.13.2-2

3.13.3. 自動再起動復旧機能の設定解除方法

運用管理コマンド

対象ドメインの再起動復旧機能の無効化

otxadmin> invoke --port <管理ドメインの管理ポート> domain.setRecoveryEnabled domain1 false
運用管理ツール

36
図3.13.3-1

対象ドメインを選択し、「実行」を押してください。

37
図3.13.3-2

3.13.4. 自動再起動復旧機能の設定確認方法

運用管理コマンド

対象ドメインの再起動復旧機能の確認

otxadmin> invoke --port <管理ドメインの管理ポート> domain.getRecoveryEnabled domain1

リトライ回数の確認

otxadmin> invoke --port <管理ドメインの管理ポート> domain.getRetryCount domain1

起動タイムアウト[秒]の確認

otxadmin> invoke --port <管理ドメインの管理ポート> domain.getStartTimeout domain1

停止タイムアウト[秒]の確認

otxadmin> invoke --port <管理ドメインの管理ポート> domain.getStopTimeout domain1
運用管理ツール

38
図3.13.4-1

対象ドメインを選択し、「実行」を押してください。

39
図3.13.4-2