第2章 JBoss EAP の開始および停止

2.1. JBoss EAP の開始

JBoss EAP は、スタンドアロンサーバーと管理対象ドメインの 2 つの操作モードの 1 つで実行され、Red Hat Enterprise Linux、Windows Server、Oracle Solaris および Hewlett-Packard HP-UX でサポートされます。

JBoss EAP を起動するコマンドは、基盤のプラットフォームと選択する操作モードによって異なります。

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

$ EAP_HOME/bin/standalone.sh
注記

Windows Server の場合は EAP_HOME\bin\standalone.bat スクリプトを使用します。

この起動スクリプトは、EAP_HOME/bin/standalone.conf ファイル (Windows Server の場合は standalone.conf.bat) を使用して、JVM オプションなどのデフォルト設定の一部を設定します。このファイルの設定はカスタマイズすることができます。

JBoss EAP はデフォルトで standalone.xml 設定ファイルを使用しますが、別の設定ファイルを使用して起動することもできます。利用できるスタンドアロン設定ファイルとそれらの使用方法については、スタンドアロンサーバー設定ファイル の項を参照してください。

使用できる起動スクリプトの引数の完全リストとそれら引数の目的については、--help 引数を使用するか、サーバーランタイム引数を参照してください。

管理対象ドメインでの JBoss EAP の起動

ドメイン内のサーバーグループのサーバーを起動する前にドメインコントローラーを起動する必要があります。このスクリプトを使用して最初にドメインコントローラーを起動した後、関連するホストコントローラーに対して使用します。

$ EAP_HOME/bin/domain.sh
注記

Windows Server の場合は、EAP_HOME\bin\domain.bat スクリプトを使用します。

この起動スクリプトは、 EAP_HOME/bin/domain.conf ファイル (Windows Server の場合は domain.conf.bat) を使用して、JVM オプションなどのデフォルト設定の一部を設定します。このファイルの設定はカスタマイズすることができます。

JBoss EAP はデフォルトで host.xml ホスト設定ファイルを使用しますが、別の設定ファイルを使用して起動することもできます。利用できる管理対象ドメイン設定ファイルとそれらの使用方法については、管理対象ドメイン設定ファイル の項を参照してください。

管理対象ドメインを設定するとき、追加の引数を起動スクリプトに渡す必要があります。使用できる起動スクリプトの引数の完全リストとそれら引数の目的については、--help 引数を使用するか、サーバーランタイム引数 の項を参照してください。

2.2. JBoss EAP の停止

JBoss EAP の停止方法は、開始した方法によって異なります。

JBoss EAP の対話的なインスタンスの停止

JBoss EAP を起動したターミナルで Ctrl+C を押します。

JBoss EAP のバックグラウンドインスタンスの停止

管理 CLI を使用して、稼働中のインスタンスへ接続し、サーバーをシャットダウンします。

  1. 管理 CLI を起動します。

    $ EAP_HOME/bin/jboss-cli.sh --connect
  2. shutdown コマンドを実行します。

    shutdown
注記

管理対象ドメインで実行している場合、shutdown コマンドに --host 引数を使用してシャットダウンする、ホスト名を指定する必要があります。

2.3. JBoss EAP の管理専用モードでの実行

JBoss EAP は管理専用モードで起動することができます。管理専用モードでは、JBoss EAP は管理リクエストを実行および許可できますが、その他のランタイムサービスを起動したりエンドユーザーリクエストを許可したりすることはできません。管理専用モードはスタンドアロンサーバーと管理対象ドメインの両方で利用できます。管理対象ドメインの場合、ドメインコントローラーが管理専用モードで起動されると、スレーブホストコントローラーからの受信接続を許可しません。

JBoss EAP インスタンスを管理専用モードで起動するには、JBoss EAP インスタンスの起動時に --admin-only ランタイムスイッチを使用します。

注記

ここで使用する管理 CLI コマンドは、JBoss EAP スタンドアロンサーバーの実行を仮定しています。JBoss EAP 管理対象ドメインの管理 CLI を使用する場合の詳細は JBoss EAP Management CLI Guide を参照してください。

JBoss EAP の管理専用モードでの起動

$ EAP_HOME/bin/standalone.sh --admin-only

JBoss EAP が管理専用モードで実行されていることを確認

JBoss EAP インスタンスが管理専用モードで実行されているかを確認するには、以下を実行します。

注記

ここで使用する管理 CLI コマンドは、JBoss EAP スタンドアロンサーバーの実行を仮定しています。JBoss EAP 管理対象ドメインの管理 CLI を使用する場合の詳細は JBoss EAP Management CLI Guide を参照してください。

:read-attribute(name=running-mode)

JBoss EAP インスタンスが管理専用モードで実行されていると、結果は次のようになります。

{
  "outcome" => "success",
  "result" => "ADMIN_ONLY"
}

管理専用モードで実行されていない場合、結果は次のようになります。

{
  "outcome" => "success",
  "result" => "NORMAL"
}

管理 CLI からの別モードでの再起動

異なるランタイムスイッチを使用して JBoss EAP インスタンスを停止および起動するだけでなく、管理 CLI を使用してサーバーをリロードして異なるモードで起動することもできます。JBoss EAP インスタンスをリロードして管理専用モードで起動するには以下を実行します。

注記

ここで使用する管理 CLI コマンドは、JBoss EAP スタンドアロンサーバーの実行を仮定しています。JBoss EAP 管理対象ドメインの管理 CLI を使用する場合の詳細は JBoss EAP Management CLI Guide を参照してください。

reload --admin-only=true

JBoss EAP インスタンスをリロードして通常モードで起動するには以下を実行します。

reload --admin-only=false
注記

現在の実行モードではなく、最初の実行モードをチェックするには、コマンド /core-service=server-environment:read-attribute(name=initial-running-mode) を実行します。このコマンドは :read-attribute(name=running-mode) とは異なり、JBoss EAP が起動されたときの実行モードを表示するため、現在の実行モードは表示されません。

2.4. JBoss EAP の正常な中断およびシャットダウン

JBoss EAP は正常に中断およびシャットダウンできます。これにより、新しいリクエストを許可せずにアクティブなリクエストを正常に完了できます。タイムアウト値は、中断またはシャットダウン操作がアクティブなリクエストの完了まで待機する期間を指定します。サーバーが中断しても管理リクエストは処理されます。

正常なシャットダウンは、リクエストがサーバーに入るエントリーポイントを中心にサーバー全体のレベルで調整されます。以下のサブシステムが正常なシャットダウンをサポートします。

Undertow
undertow サブシステムはすべてのリクエストが終了するまで待機します。
mod_cluster
modcluster サブシステムは PRE_SUSPEND フェーズでサーバーが中断することをロードバランサーに通知します。
EJB
ejb3 サブシステムはすべてのリモート EJB リクエストおよび MDB メッセージ配信が終了するまで待機します。MDB への配信は PRE_SUSPEND フェーズで停止します。EJB タイマーは中断され、サーバーが再開したときにタイマーがアクティベートされます。
EE Concurrency

サーバーはすべてのアクティブなジョブが終了するまで待機します。キューに置かれたジョブはすべてスキップされます。現在、EE Concurrency には永続性がないため、キューに置かれスキップされたジョブは失われます。

サーバーが中断状態である間、スケジュールされたタスクはスケジュールどおりの時間に実行されますが、java.lang.IllegalStateException が発生します。サーバーが再開されると、スケジュールされたタスクは通常どおり実行され、ほとんどの場合でタスクのスケジュールを変更する必要はありません。

Batch
サーバーはタイムアウト期間内の実行中のジョブをすべて停止し、スケジュール済みのジョブをすべて延期します。
注記

現在、正常なシャットダウンはインバウンドのリモート分散トランザクションや新しいインバウンド JMS メッセージを拒否しません。インフライトアクティビティーによってスケジュールされた EE バッチジョブおよび EE 同時実行タスクは、現在実行の継続が許可されます。しかし、タイムアウトウィンドウを渡す EE 同時実行タスクが提出されると、実行時にエラーが発生します。

リクエストは request-controller サブシステムによって追跡されます。このサブシステムがないと、中断および再開機能が制限され、リクエストの完了を待たずにサーバーが中断またはシャットダウンします。しかし、この機能が必要ない場合は、request-controller サブシステムを削除してパフォーマンスを若干向上することができます。

2.4.1. サーバーの中断

JBoss EAP 7 には、サーバーの操作を正常に中断する suspend モードが導入されました。このモードでは、アクティブなリクエストがすべて正常に完了されますが、新しいリクエストは許可されません。サーバーが中断されたら、シャットダウンすることができます。さらに、元の実行状態に戻ったり、中断状態のままメンテナンスを実行することができます。

注記

管理インターフェースのサーバー中断による影響はありません。

管理コンソールまたは管理 CLI を使用するとサーバーを中断および再開できます。

サーバーの中断状態のチェック

以下の管理 CLI コマンドを使用するとサーバーの中断状態を表示できます。結果の値は、RUNNINGPRE_SUSPENDSUSPENDING、または SUSPENDED のいずれかになります。

  • スタンドアロンサーバーの中断状態をチェックします。

    :read-attribute(name=suspend-state)
  • 管理対象ドメインのサーバーの中断状態をチェックします。

    /host=master/server=server-one:read-attribute(name=suspend-state)
中断

アクティブなリクエストが完了するまでサーバーが待機するタイムアウト値を秒単位で指定し、以下の管理 CLI コマンドを使用してサーバーを中断します。デフォルト値は 0 で、即座に中断します。-1 を値として指定すると、サーバーはすべてのアクティブなリクエストが完了するまで無期限に待機します。

以下の各例は、リクエストが完了するまで最大 60 秒待機した後、中断します。

  • スタンドアロンサーバーを中断します。

    :suspend(timeout=60)
  • 管理対象ドメインのすべてのサーバーを中断します。

    :suspend-servers(timeout=60)
  • 管理対象ドメインの単一のサーバーを中断します。

    /host=master/server-config=server-one:suspend(timeout=60)
  • サーバーグループのすべてのサーバーを中断します。

    /server-group=main-server-group:suspend-servers(timeout=60)
再開

resume コマンドを適切なレベル (サーバー、サーバーグループ、ドメイン全体) で使用すると、サーバーが正常な実行状態に戻り、新しいリクエストを許可できるようになります。

:resume

2.4.2. サーバーの正常なシャットダウン

サーバーの停止時に適切なタイムアウト値を指定すると、サーバーは正常にシャットダウンされます。コマンドを実行するとサーバーが中断され、すべてのリクエストが完了するまで最大で指定のタイムアウトの期間待機し、その後シャットダウンします。

以下の管理 CLI コマンドを使用してサーバーを正常にシャットダウンします。アクティブなリクエストが完了するまでサーバーが待機するタイムアウト値を秒単位で指定します。デフォルト値は 0 で、即座にサーバーをシャットダウンします。-1 を値として指定すると、すべてのアクティブなリクエストが完了するまで無期限に待機した後、シャットダウンします。

以下の各例は、リクエストが完了するまで最大 60 秒待機した後、シャットダウンします。

  • スタンドアロンサーバーを正常にシャットダウンします。

    :shutdown(timeout=60)
  • 管理対象ドメインのすべてのサーバーを停止します。

    :stop-servers(timeout=60)
  • 管理対象ドメインの単一のサーバーを停止します。

    /host=master/server-config=server-one:stop(timeout=60)
  • サーバーグループのすべてのサーバーを正常に停止します。

    /server-group=main-server-group:stop-servers(timeout=60)

2.5. JBoss EAP の起動および停止 (RPM インストール)

RPM インストールの場合、JBoss EAP の起動と停止が ZIP またはインストーラーインストールの場合とは異なります。

2.5.1. JBoss EAP の起動 (RPM インストール)

RPM インストールの JBoss EAP を起動するコマンドは、開始する操作モード (スタンドアロンサーバーまたは管理対象ドメイン) や実行している Red Hat Enterprise Linux のバージョンによって異なります。

JBoss EAP をスタンドアロンサーバーとして起動 (RPM インストール)
  • Red Hat Enterprise Linux 6 の場合

    $ service eap7-standalone start
  • Red Hat Enterprise Linux 7 の場合

    $ systemctl start eap7-standalone.service

これにより、standalone.xml 設定ファイルをデフォルトで使用して JBoss EAP が起動されます。JBoss EAP を別の スタンドアロンサーバー設定ファイル で起動するには、RPM サービス設定ファイルにプロパティーを設定します。詳細は RPM サービスプロパティーの設定の項を参照してください。

管理対象ドメインでの JBoss EAP の起動 (RPM インストール)
  • Red Hat Enterprise Linux 6 の場合

    $ service eap7-domain start
  • Red Hat Enterprise Linux 7 の場合

    $ systemctl start eap7-domain.service

これにより、host.xml 設定ファイルをデフォルトで使用して JBoss EAP が起動されます。JBoss EAP を別の 管理対象ドメイン設定ファイル で起動するには、RPM サービス設定ファイルにプロパティーを設定します。詳細は RPM サービスプロパティーの設定の項を参照してください。

RPM サービスプロパティーの設定

本項では、RPM サービスプロパティーと JBoss EAP インストールのその他の起動オプションを設定する方法について説明します。変更を行う前に設定ファイルをバックアップすることが推奨されます。

RPM インストールで利用可能な起動オプションの完全リストは、 RPM サービス設定プロパティーの項を参照してください。

  • サーバー設定ファイルを指定します。

    スタンドアロンサーバーを起動する場合、デフォルトで standalone.xml ファイルが使用されます。管理対象ドメインで実行する場合、デフォルトで host.xml ファイルが使用されます。他の設定ファイルを使用して JBoss EAP を起動するには、適切な RPM 設定ファイル (例: eap7-standalone.conf) に WILDFLY_SERVER_CONFIG プロパティーを設定します。

    WILDFLY_SERVER_CONFIG=standalone-full.xml
  • 特定の IP アドレスにバインドします。

    デフォルトでは、JBoss EAP RPM インストールは 0.0.0.0 にバインドします。JBoss EAP を特定の IP アドレスにバインドするには、適切な RPM 設定ファイル (例: eap7-standalone.conf) に WILDFLY_BIND プロパティーを設定します。

    WILDFLY_BIND=192.168.0.1
    注記

    管理インターフェースを特定の IPアドレスにバインドする場合は、次の例のように JBoss EAP 起動設定ファイルに設定を追加します。

  • JVM オプションまたは Java プロパティーを設定します。

    JBoss EAP の起動スクリプトに渡す JVM オプションまたは Java プロパティーを指定するには、起動設定ファイルを編集します。スタンドアロンサーバーの場合、このファイルは EAP_HOME/bin/standalone.conf になります。管理対象ドメインの場合、このファイルは EAP_HOME/bin/domain.conf になります。以下の例は、ヒープサイズを設定し、JBoss EAP 管理インターフェースを指定の IP アドレスにバインドします。

    JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx2048m"
    JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address.management=192.168.0.1"
    注記

    場合によっては、標準の jboss.bind.address プロパティーを使用せずに WILDFLY_BIND プロパティーを使用して JBoss EAP バインドアドレスを設定する必要があります。

注記

同じ名前のプロパティーが RPM サービス設定ファイル (例: /etc/sysconfig/eap7-standalone) と JBoss EAP 起動設定ファイル (例: EAP_HOME/bin/standalone.conf) にある場合、JBoss EAP 起動設定ファイルのプロパティーの値が優先されます。このようなプロパティーの 1 つが JAVA_HOME です。

2.5.2. JBoss EAP の停止 (RPM インストール)

RPM インストールの JBoss EAP を停止するコマンドは、開始された操作モード (スタンドアロンサーバーまたは管理対象ドメイン) や実行している Red Hat Enterprise Linux のバージョンによって異なります。

JBoss EAP をスタンドアロンサーバーとして停止 (RPM インストール)
  • Red Hat Enterprise Linux 6 の場合

    $ service eap7-standalone stop
  • Red Hat Enterprise Linux 7 の場合

    $ systemctl stop eap7-standalone.service
管理対象ドメインでの JBoss EAP の停止 (RPM インストール)
  • Red Hat Enterprise Linux 6 の場合

    $ service eap7-domain stop
  • Red Hat Enterprise Linux 7 の場合

    $ systemctl stop eap7-domain.service

RPM インストールで利用可能な起動オプションの完全リストは、RPM サービス設定ファイルの項を参照してください。

2.6. PowerShell スクリプト

PowerShell スクリプトは技術プレビューとしてのみ使用でき、サポートされません。JBoss EAP は Windows Server 2008 R2 Enterprisex86_64 および Windows Server 2012 R2 Standard x86_64 でサポートされるため、PowerShell スクリプトはバージョン 2 以降で正確に動作するように設計されています。

  • デフォルトでは、Windows Server 2008 R2 Enterprisex86_64 は PowerShell バージョン 2 を使用します。これよりも新しいバージョンをインストールすることもできます。
  • デフォルトでは、Windows Server 2012 R2 Standard x86_64 は PowerShell バージョン 4 を使用します。これよりも新しいバージョンをインストールすることもできます。

PowerShell スクリプトのパスは EAP_HOME/bin で、Windows でモダンなスクリプト言語を使用したいときにこのスクリプトを使用できます。

注記

スクリプトの引数は、以下のように引用符で囲む必要があります。

PS C:\Users\Administrator\7.0.0.ER2\jboss-eap-7.0\bin> .\standalone.ps1 "-c=standalone-full.xml"