第2章 アプリケーションサーバー管理

2.1. JBoss EAP 6 の起動および停止

2.1.2. JBoss EAP 6 をスタンドアロンサーバーとして起動

概要

ここでは、JBoss EAP 6 をスタンドアロンサーバーとして起動する手順を説明します。

手順2.1 プラットフォームサービスをスタンドアロンサーバーとして起動

  1. Red Hat Enterprise Linux の場合

    次のコマンドを実行します: EAP_HOME/bin/standalone.sh
  2. Microsoft Windows Server の場合

    次のコマンドを実行します: EAP_HOME\bin\standalone.bat
  3. 別のパラメーターを指定します (任意)

    起動スクリプトに渡すことができる他のパラメーターの一覧を出力するには、-h パラメーターを使います。
結果

JBoss EAP 6 スタンドアロンサーバーインスタンスが起動します。

2.1.3. JBoss EAP 6 を管理対象ドメインとして起動

操作の順序

ドメイン内のサーバーグループのスレーブサーバーを起動する前にドメインコントローラーを起動する必要があります。最初に、この手順をドメインコントローラーで使用した後に、関連するホストコントローラーおよびドメインに関連する他のホストに対して使用してください。

手順2.2 プラットフォームサービスを管理対象ドメインとして起動

  1. Red Hat Enterprise Linux の場合

    次のコマンドを実行します: EAP_HOME/bin/domain.sh
  2. Microsoft Windows Server の場合

    次のコマンドを実行します: EAP_HOME\bin\domain.bat
  3. 他のパラメーターを起動スクリプトに渡します (任意)

    起動スクリプトに渡すことができる各種パラメーターを確認するには、-h パラメーターを使います。
結果

JBoss EAP 6 管理対象ドメインインスタンスが起動します。

2.1.4. 管理対象ドメインのホストの名前設定

概要

管理対象ドメインで実行されている各ホストには一意な名前を付ける必要があります。管理を容易にし、複数のホストで同じホスト設定ファイルを使用できるようにするため、以下の優先順位を用いてホスト名が決定されます。

  1. host.xml 設定ファイルにある host 要素 name 属性 (設定されている場合)。
  2. jboss.host.name システムプロパティーの値。
  3. jboss.qualified.host.name システムプロパティーの最後のピリオド (.) の後に続く値、または最後のピリオドがない場合は全体の値。
  4. POSIX ベースのオペレーティングシステムでは、HOSTNAME 環境変数のピリオド (.) の後に続く値。Microsoft Windows では COMPUTERNAME 環境変数のピリオドの後に続く値。最後のピリオドがない場合は、全体の値。

環境変数の設定方法は、ご使用のオペレーティングシステムのドキュメントを参照してください。システムプロパティーの設定方法は、「管理 CLI を使用したシステムプロパティーの設定」を参照してください。
本トピックでは、システムプロパティーまたはハードコードされた名前を使用して、設定ファイルのホストの名前を設定する方法について説明します。

手順2.3 システムプロパティーを用いたホスト名の設定

  1. 編集するホスト設定ファイル (例: host.xml) を開きます。
  2. ファイルにある host 要素を見つけます。以下に例を示します。
    <host name="master" xmlns="urn:jboss:domain:1.6">
  3. この要素が存在する場合は、name="HOST_NAME" 属性宣言を削除します。削除後、host 要素は以下のようになるはずです。
    <host xmlns="urn:jboss:domain:1.6">
  4. 以下の例のように、-Djboss.host.name 引数を渡してサーバーを起動します。
    -Djboss.host.name=HOST_NAME

手順2.4 特定の名前を用いたホスト名の設定

  1. 以下の構文を使用して、JBoss EAP スレーブホストを起動します。
    bin/domain.sh --host-config=HOST_FILE_NAME
    例:
    bin/domain.sh --host-config=host-slave01.xml
  2. 管理 CLI を起動します。
  3. 以下の構文を使用してホスト名を置き換えます。
    /host=EXISTING_HOST_NAME:write-attribute(name="name",value=UNIQUE_HOST_NAME)
    例:
    /host=master:write-attribute(name="name",value="host-slave01")
    次の結果が表示されるはずです。
     "outcome" => "success"
    これは、host-slave01.xml ファイルのホスト name 属性を以下のように変更します。
    <host name="host-slave01" xmlns="urn:jboss:domain:1.6">
  4. この処理を完了するには、変更前のホスト名を使用してサーバー設定をリロードする必要があります。
    reload --host=EXISTING_HOST_NAME
    例:
    reload --host=master

2.1.5. 2 台のマシンでの管理対象ドメインの作成

注記

この例の実行には、ファイアウォールの設定が必要になることがあります。
1 台のマシンがドメインコントローラーで、別のマシンがホストである 2 台のマシンで、管理対象ドメインを作成できます。詳細は、「ドメインコントローラー」を参照してください。
  • IP1 = ドメインコントローラーの IP アドレス (マシン 1)
  • IP2 = ホストの IP アドレス (マシン 2)

手順2.5 2 台のマシンで管理対象ドメインを作成

  1. マシン 1 での作業

    1. ホストがドメインコントローラーを認証できるようにするため、add-user.sh スクリプトを使用して管理ユーザー (例: slave01) を追加します。add-user 出力の SECRET_VALUE に注意してください。
    2. 専用のドメインコントローラー向けに事前設定された host-master.xml 設定ファイルでドメインを起動します。
    3. -bmanagement=$IP1 を使用して、他のマシンがドメインコントローラーを見えるようにします。
      [$JBOSS_HOME/bin]$ ./domain.sh --host-config=host-master.xml -bmanagement=$IP1
  2. マシン 2 での作業

    1. ユーザークレデンシャルを用いて $JBOSS_HOME/domain/configuration/host-slave.xml ファイルを更新します。
      	<?xml version='1.0' encoding='UTF-8'?>
              <host xmlns="urn:jboss:domain:1.6" name="slave01">   
              <!-- add user name here -->
               <management>
                  <security-realms>
                     <security-realm name="ManagementRealm">
                        <server-identities>
                          <secret value="$SECRET_VALUE" />   
                          <!-- use secret value from add-user.sh output-->
                        </server-identities> 
                        ...
    2. ホストを起動します。
      [$JBOSS_HOME/bin]$ ./domain.sh --host-config=host-slave.xml  -Djboss.domain.master.address=$IP1 -b=$IP2
  3. ドメインを管理します。

    CLI を使用する場合:
    [$JBOSS_HOME/bin]$ ./jboss-cli.sh -c --controller=$IP1
    
    Web コンソールを使用する場合:
    http://$IP1:9990
    
    サーバーのインデックスページへアクセスします。
    http://$IP2:8080/
    http://$IP2:8230/
    

2.1.6. 代替設定を用いた JBoss EAP 6 の起動

設定ファイルを指定しない場合、サーバーはデフォルトファイルで起動します。しかし、サーバーを起動してから設定を手動で指定することができます。この手順は管理対象ドメインとスタンドアロンサーバーのどちらを使用するか、またどのオペレーティングシステムを使用するかによって多少の違いがあります。

前提条件

  • 代替の設定ファイルを使用する前に、デフォルト設定をテンプレートとして使用して、代替の設定ファイルを作成します。管理対象ドメインの場合は、設定ファイルを EAP_HOME/domain/configuration/ ディレクトリーに置く必要があります。スタンドアロンサーバーの場合は、設定ファイルを EAP_HOME/standalone/configuration/ ディレクトリーに置く必要があります。

注記

EAP_HOME/docs/examples/configs/ ディレクトリーに複数の設定例が含まれています。これらの例を使用し、クラスタリングや Transaction XTS API などの追加機能を有効にします。

手順2.6 代替設定を用いたインスタンスの起動

  1. スタンドアロンサーバー

    スタンドアロンサーバーでは、--server-config パラメーターに設定ファイルのファイル名をオプションとして指定します。設定ファイルは EAP_HOME/standalone/configuration/ ディレクトリーに置く必要があり、このディレクトリーからの相対パスで設定ファイルを指定する必要があります。

    例2.1 Red Hat Enterprise Linux のスタンドアロンサーバーに別の設定ファイルを使用

    [user@host bin]$ ./standalone.sh --server-config=standalone-alternate.xml
    この例は、EAP_HOME/standalone/configuration/standalone-alternate.xml 設定ファイルを使用します。

    例2.2 Microsoft Windows Server のスタンドアロンサーバーに別の設定ファイルを使用

    C:\EAP_HOME\bin> standalone.bat --server-config=standalone-alternate.xml
    この例は、EAP_HOME\standalone\configuration\standalone-alternative.xml 設定ファイルを使用します。
  2. 管理対象ドメイン

    管理対象ドメインでは、設定ファイルのファイル名を --domain-config パラメーターのオプションとして指定します。設定ファイルは EAP_HOME/domain/configuration/ ディレクトリーに置く必要があり、このディレクトリーからの相対パスを指定する必要があります。

    例2.3 Red Hat Enterprise Linux の管理対象ドメインに別の設定ファイルを使用

    [user@host bin]$ ./domain.sh --domain-config=domain-alternate.xml
    この例は、EAP_HOME/domain/configuration/domain-alternate.xml 設定ファイルを使用します。

    例2.4 Microsoft Windows Server の管理対象ドメインに別の設定ファイルを使用

    C:\EAP_HOME\bin> domain.bat --domain-config=domain-alternate.xml
    
    
    この例は、EAP_HOME\domain\configuration\domain-alternate.xml 設定ファイルを使用します。
結果

代替の設定ファイルを使用して JBoss EAP が起動されます。

2.1.7. JBoss EAP 6 の停止

JBoss EAP 6 を停止する方法は、起動方法によって異なります。このタスクでは、対話的に起動されたインスタンスを停止し、サービスにより起動されたインスタンスを停止して、スクリプトによりバックグラウンドにフォークされたインスタンスを停止します。

注記

管理対象ドメインでサーバーまたはサーバーグループを停止する方法の詳細は「管理コンソールを使用したサーバーの停止」を参照してください。管理 CLI を使用してサーバーを停止する方法の詳細は「管理 CLI を使用したサーバーの起動および停止」を参照してください。
  • 手順2.7 JBoss EAP 6 のインスタンスの停止

    • コマンドラインプロンプトから対話的に起動したインスタンスの停止

      JBoss EAP 6 が実行されているターミナルで Ctrl-C を押します。
  • 手順2.8 オペレーティングシステムサービスとして起動されたインスタンスの停止

    オペレーティングシステムに応じて、以下のいずれかの手順を実行します。
      • Red Hat Enterprise Linux

        Red Hat Enterprise Linux でサービススクリプトを記述したときは、stop 機能を使用します。これは、スクリプトに記述する必要があります。次に、service scriptname stop を使用できます。ここで scriptname はスクリプトの名前に置き換えます。
      • Microsoft Windows Server

        Microsoft Windows の場合は、net service コマンドを使用するか、コントロールパネルの サービス アプレットからサービスを停止します。
  • 手順2.9 バックグラウンドで実行されているインスタンスの停止 (Red Hat Enterprise Linux)

    1. プロセスのプロセス ID (PID) を取得します。
      • 単一のインスタンスのみが実行されている場合 (スタンドアロンモード)

        以下のコマンドはいずれも JBoss EAP 6 の単一インスタンスの PID を返します。
        • pidof java
        • jps
          (jps コマンドは、jboss-modules.jarjps 自体の 2 つのプロセスに対する ID を返します。jboss-modules.jar の ID を使用して EAP インスタンスを停止します)。
      • 複数の EAP インスタンスが実行されている場合 (ドメインモード)

        複数の EAP インスタンスが実行されている場合、正しいプロセスを識別するには、さらに包括的なコマンドを使用する必要があります。
        • 詳細モードで jps コマンドを使用すると、見つかった java プロセスに関する詳細情報が提供されます。
          以下は、実行している EAP プロセスを PID およびロールで識別する、詳細な jps コマンドからの出力の一部になります。
          $ jps -v
          12155 jboss-modules.jar -D[Server:server-one] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1303m 
          ...
          
          12196 jboss-modules.jar -D[Server:server-two] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1303m 
          ...
          
          12096 jboss-modules.jar -D[Host Controller] -Xms64m -Xmx512m -XX:MaxPermSize=256m 
          ...
          
          11872 Main -Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=96m -XX:+UseCodeCacheFlushing 
          ...
          
          11248 jboss-modules.jar -D[Standalone] -XX:+UseCompressedOops -verbose:gc 
          ...
          
          12892 Jps 
          ...
          
          12080 jboss-modules.jar -D[Process Controller] -Xms64m -Xmx512m -XX:MaxPermSize=256m 
          ...
          
        • ps aux コマンドを使用して複数の EAP インスタンスの情報を返すこともできます。
          以下は、実行している EAP プロセスを PID およびロールで識別する、詳細な ps コマンドからの出力の一部になります。
          $ ps aux | grep java
          username 12080  0.1  0.9 3606588 36772 pts/0   Sl+  10:09   0:01 /path/to/java -D[Process Controller] -server -Xms128m -Xmx128m -XX:MaxPermSize=256m 
          ...
          
          username 12096  1.0  4.1 3741304 158452 pts/0  Sl+  10:09   0:13 /path/to/java -D[Host Controller] -Xms128m -Xmx128m -XX:MaxPermSize=256m 
          ...
          
          username 12155  1.7  8.9 4741800 344224 pts/0  Sl+  10:09   0:22 /path/to/java -D[Server:server-one] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1000m -Xmx1000m -server -
          ...
          
          username 12196  1.8  9.4 4739612 364436 pts/0  Sl+  10:09   0:22 /path/to/java -D[Server:server-two] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1000m -Xmx1000m -server 
          ...
          
        上記の例では、ドメイン全体を停止するには Process Controller プロセスを停止します。
        これらのコマンドに grep ユーティリティーを使用すると Process Controller を識別できます。
        jps -v | grep "Process Controller"
        ps aux | grep "Process Controller"
    2. kill PID を実行して、TERM シグナルをプロセスに送信します。PID は前述のコマンドの 1 つを使用して識別されたプロセス IDに置き換えます。
結果

JBoss EAP 6 がクリーンにシャットダウンされ、データは失われません。

2.1.8. サーバー実行時に渡すスイッチと引数のリファレンス

アプリケーションサーバーの起動スクリプトは実行時に追加の引数とスイッチを受け取ります。これらのパラメーターを使用すると、standalone.xmldomain.xml、および host.xml の設定ファイルで定義されたものとは別の設定でサーバーを起動できます。これには、ソケットバインディングの代替セットや二次設定でのサーバーの起動が含まれることがあります。起動時にヘルプスイッチを渡すと、利用可能なこれらのパラメーターのリストを表示できます。

例2.5

次の例は「JBoss EAP 6 をスタンドアロンサーバーとして起動」および「JBoss EAP 6 を管理対象ドメインとして起動」で説明されているサーバーの起動に似ていますが、-h または --help スイッチが追加されています。ヘルプスイッチの結果は下表を参照してください。
スタンドアロンモード:
[localhost bin]$ standalone.sh -h
ドメインモード:
[localhost bin]$ domain.sh -h

表2.1 実行時スイッチおよび引数

引数またはスイッチ モード 説明
--admin-only スタンドアロン サーバーの実行タイプを ADMIN_ONLY に設定します。これにより管理インターフェースが開かれ、管理リクエストが許可されますが、他のランタイムサービスは起動されず、エンドユーザーのリクエストは許可されません。
--admin-only ドメイン ホストコントローラーの実行タイプを ADMIN_ONLY に設定します。これにより管理インターフェースが開かれ、管理リクエストが許可されますが、サーバーは起動しません。ホストコントローラーがドメインのマスターである場合はスレーブホストコントローラーからの受信接続が許可されます。
-b <value>, -b=<value> スタンドアロン、ドメイン システムプロパティー jboss.bind.address を該当する値に設定します。
-b<interface>=<value> スタンドアロン、ドメイン システムプロパティー jboss.bind.address.<interface> を指定の値に設定します。
--backup ドメイン このホストがドメインコントローラーではない場合でも永続ドメイン設定のコピーを保持します。
-c <config>, -c=<config> スタンドアロン 使用するサーバー設定ファイルの名前。デフォルト値は standalone.xml です。
-c <config>, -c=<config> ドメイン 使用するサーバー設定ファイルの名前。デフォルトは domain.xml です。
--cached-dc ドメイン ホストがドメインコントローラーではなく、起動時にドメインコントローラーにコンタクトできない場合、ローカルでキャッシュされたドメイン設定のコピーを使用してブートします。
--debug [<port>] スタンドアロン オプションの引数を用いてデバッグモードを有効にし、ポートを指定します。起動スクリプトがサポートする場合のみ動作します。
-D<name>[=<value>] スタンドアロン、ドメイン システムプロパティーを設定します。
--domain-config=<config> ドメイン 使用するサーバー設定ファイルの名前。デフォルトは domain.xml です。
-h, --help スタンドアロン、ドメイン ヘルプメッセージを表示し、終了します。
--host-config=<config> ドメイン 使用するホスト設定ファイルの名前。デフォルトは host.xml です。
--interprocess-hc-address=<address> ドメイン ホストコントローラーがプロセスコントローラーからの通信をリッスンしなければならないアドレス。
--interprocess-hc-port=<port> ドメイン ホストコントローラーがプロセスコントローラーからの通信をリッスンしなければならないポート。
--master-address=<address> ドメイン システムプロパティー jboss.domain.master.address を指定の値に設定します。デフォルトのスレーブホストコントローラーの設定では、マスターホストコントローラーのアドレスを設定するために使用されます。
--master-port=<port> ドメイン システムプロパティー jboss.domain.master.port を指定の値に設定します。デフォルトのスレーブホストコントローラーの設定では、マスターホストコントローラーによるネイティブ管理の通信で使用されるポートを設定するために使用されます。
--read-only-server-config=<config> スタンドアロン 使用するサーバー設定ファイルの名前。元のファイルは上書きされないため、--server-config および -c とは異なります。
--read-only-domain-config=<config> ドメイン 使用するドメイン設定ファイルの名前。最初のファイルは上書きされないため、--domain-config および -c とは異なります。
--read-only-host-config=<config> ドメイン 使用するホスト設定ファイルの名前。最初のファイルは上書きされないため、--host-config とは異なります。
-P <url>, -P=<url>, --properties=<url> スタンドアロン、ドメイン 該当する URL からシステムプロパティーをロードします。
--pc-address=<address> ドメイン プロセスコントローラーが制御するプロセスからの通信をリッスンするアドレス。
--pc-port=<port> ドメイン プロセスコントローラーが制御するプロセスからの通信をリッスンするポート。
-S<name>[=<value>] スタンドアロン セキュリティープロパティーを設定します。
--server-config=<config> スタンドアロン 使用するサーバー設定ファイルの名前。デフォルト値は standalone.xml です。
-u <value>, -u=<value> スタンドアロン、ドメイン システムプロパティー jboss.default.multicast.address を指定の値に設定します。
-v, -V, --version スタンドアロン、ドメイン アプリケーションサーバーのバージョンを表示し、終了します。