Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

管理および設定ガイド

Red Hat JBoss Enterprise Application Platform 6.4

Red Hat JBoss Enterprise Application Platform 6 向け

概要

本書は、Red Hat JBoss Enterprise Application Platform 6 およびそのパッチリリースに関する管理および設定ガイドです。

第1章 はじめに

1.1. Red Hat JBoss Enterprise Application Platform 6

Red Hat JBoss Enterprise Application Platform 6(JBoss EAP 6)は、オープン標準に構築されたミドルウェアプラットフォームで、Java Enterprise Edition 6 仕様に準拠します。JBoss Application Server 7 と高可用性クラスタリング、メッセージング、分散キャッシングなどのテクノロジーを統合します。
JBoss EAP 6 には、必要な場合にのみサービスを有効にできる新しいモジュラー構造が含まれ、起動速度が改善されます。
管理コンソールと管理コマンドラインインターフェースにより、XML 設定ファイルの編集が不必要になり、タスクをスクリプト化および自動化する機能が追加されました。
また、JBoss EAP 6 には、セキュアでスケーラブルな Java EE アプリケーションの迅速な開発を可能にする API と開発フレームワークが含まれます。

1.2. JBoss EAP 6 の機能

表1.1 JBoss EAP 6 の機能

機能 説明
Java 証明書 認定された Java Enterprise Edition 6 の Full Profile と Web Profile。
管理対象ドメイン
  • 複数のサーバーインスタンスおよび物理ホストを一元管理し、スタンドアロンサーバーで単一のサーバーインスタンスを使用することを可能にします。
  • 設定、デプロイメント、ソケットバインディング、モジュール、拡張機能、およびシステムプロパティーをサーバーグループごとに管理します。
  • アプリケーションのセキュリティー (セキュリティードメインを含む) の管理を一元化および簡略化します。
管理コンソールおよび管理 CLI 新しいドメインまたはスタンドアロンサーバー管理インターフェースです。XML 設定ファイルの編集は不要になりました。管理 CLI には、管理タスクをスクリプト化および自動化できるバッチモードも含まれています。
簡素化されたディレクトリーのレイアウト modules ディレクトリーにすべてのアプリケーションサーバーモジュールが含まれるようになりました。共通ディレクトリーおよびサーバー固有の lib ディレクトリーは非推奨になりました。ドメイン ディレクトリーと スタンドアロン ディレクトリーには、それぞれドメインデプロイメントとスタンドアロンデプロイメントのアーティファクトおよび設定ファイルが含まれます。
モジュラークラスローディングメカニズム モジュールは必要に応じてロードおよびアンロードされます。これにより、パフォーマンスが向上します。
簡略化されたデータソース管理 データベースドライバーは他のサービスと同様にデプロイされます。さらに、データソースは管理コンソールまたは管理 CLI で直接作成および管理されます。
リソース使用の削減と効率化 JBoss EAP 6 はより少ないシステムリソースを使用し、以前のバージョンよりも効率的に使用します。その他の利点の他にも、JBoss EAP 6 は JBoss EAP 5 よりも起動および停止します。

1.3. JBoss EAP 6 の操作モード

JBoss EAP 6 は、JBoss EAP 6 インスタンスに対してスタンドアローンサーバーと管理対象ドメインの 2 つの操作モードを提供します。
2 つのモードはサーバーの管理方法が異なりますが、エンドユーザーの要求に対応する能力ではありません。高可用性(HA)クラスター機能は、どちらの操作モードでも利用できることに注意してください。スタンドアロンサーバーのグループは、HA クラスターを形成するように設定できます。

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

スタンドアロンサーバーモードは独立したプロセスで、以前のバージョンの JBoss EAP で唯一存在した実行モードと似ています。
スタンドアロンサーバーとして実行する JBoss EAP のインスタンスは単一インスタンスのみですが、オプションとしてクラスター化された設定で実行することも可能です。

1.5. 管理対象ドメイン

図1.1 管理対象ドメインを表す図

1 つのドメインコントローラー、3 つのホストコントローラー、および 3 つのサーバーグループが含まれる管理対象ドメイン。サーバーはサーバーグループのメンバーで、ドメインのホストコントローラーのいずれかにある可能性があります。
管理対象ドメイン操作モードでは、単一の制御点から複数の JBoss EAP 6 インスタンスを管理できます。
一元管理された JBoss EAP 6 サーバーは、ドメインのメンバーと呼ばれます。ドメインの JBoss EAP 6 インスタンスはすべて共通の管理ポリシーを共有します。
各ドメインは 1 つの<firstterm>ドメインコントローラー</firstterm>、1 つ以上の<firstterm>ホストコントローラー</firstterm>、およびホスト毎に 0 個以上のサーバーグループによって構成されます。
ドメインコントローラーは、ドメインが制御される中心点です。ドメインの管理ポリシーに従って各サーバーが設定されるようにします。ドメインコントローラーはホストコントローラーでもあります。
ホストコントローラーは、domain.sh または domain.bat スクリプトが実行される物理ホストまたは仮想ホストです。ホストコントローラーは、ドメイン管理タスクをドメインコントローラーに委譲するように設定されています。
各ホスト上のホストコントローラーはドメインコントローラーと対話し、ホスト上で実行されているアプリケーションサーバーインスタンスのライフサイクルを制御し、ドメインコントローラーがそれらを管理できるようにします。各ホストに複数のサーバーグループが含まれるようにすることが可能です。
サーバーグループとは、JBoss EAP 6 が JBoss EAP 6 がインストールされ、1 つとして管理および設定されるサーバーインスタンスのセットです。ドメインコントローラーはサーバーグループにデプロイされたアプリケーションとその設定を管理します。そのため、サーバーグループの各サーバーは同じ設定とデプロイメントを共有します。
同じ物理システム上の同じ JBoss EAP 6 インスタンス内で、単一のドメインコントローラー、単一のホストコントローラー、および複数のサーバーを実行できます。
ホストコントローラーは特定の物理(または仮想)ホストに割り当てられます。異なる設定を使用する場合は、同じハードウェア上で複数のホストコントローラーを実行でき、ポートとその他のリソースが競合しないようにします。

1.6. ドメインコントローラー

ドメインコントローラーは、ドメインの集中管理点として動作する JBoss EAP 6 サーバーインスタンスです。1 つのホストコントローラーインスタンスがドメインコントローラーとして動作するよう設定されます。
ドメインコントローラーの主な役割は次のとおりです。
  • ドメインの集中管理ポリシーを維持する。
  • すべてのホストコントローラーが現在のコンテンツを認識するようにする。
  • 実行中のすべての JBoss EAP 6 インスタンスがこのポリシーに従って設定されるよう、ホストコントローラーをサポートする。
デフォルトでは、集中管理ポリシーは domain/configuration/domain.xml ファイルに保存されます。このファイルは、ドメインコントローラーのホストのファイルシステムに展開した JBoss EAP 6 インストールファイルにあります。
domain.xml ファイルは、ドメインコントローラーとして実行するよう設定されたホストコントローラーの domain/configuration/ ディレクトリーに配置する必要があります。このファイルは、ドメインコントローラーとして実行されないホストコントローラーへのインストールには必要ありません。このようなサーバーに domain.xml ファイルが存在すると、害はありません。
domain.xml ファイルには、ドメインのサーバーインスタンスで実行できるプロファイル設定が含まれています。プロファイル設定には、プロファイルを構成するさまざまなサブシステムの詳細設定が含まれます。ドメイン設定には、ソケットグループの定義とサーバーグループの定義も含まれます。

1.7. ドメインコントローラーの検索およびフェールオーバー

管理対象ドメインの設定時、ドメインコントローラーに接続するために必要な情報を使用して各ホストコントローラーを設定する必要があります。JBoss EAP 6 では、ドメインコントローラーを検索する複数のオプションを使用して各ホストコントローラーを設定できます。ホストコントローラーは、適切なオプションが見つかるまでオプションのリストを繰り返し処理します。
これにより、バックアップドメインコントローラーのコンタクト情報とともにホストコントローラーを事前設定できます。プライマリードメインコントローラーに問題がある場合は、バックアップホストコントローラーをマスターに昇格でき、昇格後にホストコントローラーを新規マスターに自動的にフェイルオーバーできます。
以下は、ドメインコントローラー検索の複数のオプションを持つホストコントローラーを設定する方法の例になります。

例1.1 複数のドメインコントローラーオプションで設定されたホストコントローラー

<domain-controller>  
    <remote security-realm="ManagementRealm">  
          <discovery-options>  
              <static-discovery name="primary" host="172.16.81.100" port="9999"/>  
              <static-discovery name="backup" host="172.16.81.101" port="9999"/>  
          </discovery-options>  
    </remote>  
</domain-controller>
静的検出オプションには、以下の必須属性が含まれます。

name
このドメインコントローラー検索オプションの名前。
host
リモートドメインコントローラーのホスト名。
port
リモートドメインコントローラーのポート。
上記の例では、最初の検出オプションが指定されることが予想されます。2 つ目のオプションはフフェイルオーバーの状況で使用される可能性があります。
プライマリードメインコントローラーで問題が発生した場合、--backup オプションで開始されたホストコントローラーを昇格してドメインコントローラーとして動作することができます。
注記
--backup オプションを指定してホストコントローラーを起動すると、そのコントローラーはドメイン設定のローカルコピーを維持します。この設定は、ホストコントローラーがドメインコントローラーとして動作するよう再設定された場合に使用されます。

手順1.1 ホストコントローラーを昇格してドメインコントローラーにする

  1. 元のドメインコントローラーが停止した状態であることを確認します。
  2. 管理 CLI を使用して、新しいドメインコントローラーとなるホストコントローラーへ接続します。
  3. 以下のコマンドを実行してホストコントローラーを設定し、新しいドメインコントローラーとして動作するようにします。
    /host=HOST_NAME:write-local-domain-controller
  4. 以下のコマンドを実行し、ホストコントローラーをリロードします。
    reload --host=HOST_NAME
2. で選択したホストコントローラーがドメインコントローラーとして動作するようになります。

1.8. ホストコントローラー

ホストコントローラーは、domain.sh または domain.bat スクリプトをホストで実行する際に起動します。
ホストコントローラーの主な役割はサーバーを管理することです。ドメイン管理タスクを委譲し、ホスト上で実行される個別のアプリケーションサーバープロセスを開始および停止します。
ホストコントローラーはドメインコントローラーと対話し、サーバーとドメインコントローラー間の通信を管理できるようにします。ドメインの複数のホストコントローラーは 1 つのドメインコントローラーのみと対話できます。そのため、単一のドメインモード上で実行されるホストコントローラーおよびサーバーインスタンスはすべて単一のドメインコントローラーを持ち、同じドメインに属する必要があります。
デフォルトでは、各ホストコントローラーは、ホストのファイルシステムの未展開の JBoss EAP 6 インストールファイルにある domain/configuration/host.xml ファイルから設定を読み取ります。host.xml ファイルには、特定のホストに固有する以下の設定情報が含まれます。
  • このインストールから実行される JBoss EAP 6 インスタンスの名前。
  • 次の設定のいずれか。
    • ホストコントローラーがドメインコントローラーへ通知して、ホストコントローラー自体を登録し、ドメイン設定へアクセスする方法。
    • リモートドメインコントローラーの検索および通知方法。
    • ホストコントローラーはドメインコントローラーとして動作する。
  • ローカルの物理インストールに固有する設定。たとえば、domain.xml で宣言された名前付きインターフェース定義は、host.xml の実際のマシン固有の IP アドレスにマップできます。また、domain.xml の抽象パス名を host.xml の実際のファイルシステムパスにマッピングできます。

1.9. サーバーグループ

サーバーグループとは、1 つのグループとして管理および設定される複数のサーバーインスタンスのことです。管理対象ドメインでは、各アプリケーションサーバーインスタンスは唯一のメンバーである場合でも 1 つのサーバーグループに属します。グループのサーバーインスタンスは同じプロファイル設定とデプロイされたコンテンツを共有します。
ドメインコントローラーとホストコントローラーは、ドメインにある各サーバーグループのすべてのインスタンスに標準設定を強制します。
ドメインを複数のサーバーグループで構成できます。異なるサーバーグループを異なるプロファイルやデプロイメントで設定できます。ドメインは、異なるサービスを提供する異なるサーバー層で設定できます。
異なるサーバーグループが同じプロファイルやデプロイメントを持つこともできます。これにより、最初のサーバーグループでアプリケーションがアップグレードされた後に 2 つ目のサーバーグループでアプリケーションがアップデートされるアプリケーションのローリングアップグレードが可能になり、サービスの完全停止を防ぎます。
以下はサーバーグループ定義の例になります。

例1.2 サーバーグループ定義

<server-group name="main-server-group" profile="default">
 <socket-binding-group ref="standard-sockets"/>
  <deployments>
   <deployment name="foo.war_v1" runtime-name="foo.war"/>
   <deployment name="bar.ear" runtime-name="bar.ear"/>
  </deployments>
</server-group>
サーバーグループに含まれる必須の属性は次のとおりです。
  • name: サーバーグループの名前。
  • profile: サーバーグループのプロファイル名。
  • socket-binding-group: グループのサーバーに使用されるデフォルトのソケットバインディンググループ。この名前は、host.xml のサーバーごとに上書きできます。ただし、これはすべてのサーバーグループに必須要素であり、存在しない場合はドメインを開始できません。
サーバーグループに含まれる任意の属性は次のとおりです。
  • deployments: グループのサーバー上にデプロイするデプロイメントコンテンツ。
  • system-properties: グループのサーバーに設定するシステムプロパティー。
  • jvm: グループのすべてのサーバーに対するデフォルトの JVM 設定。ホストコントローラーはこれらの設定を host.xml の他の設定とマージし、サーバーの JVM を起動するために使用される設定を作成します。
  • socket-binding-port-offset: ソケットバインディンググループによって提供されたポート値に追加するデフォルトのオフセット。
  • management-subsystem-endpoint: true に設定され、Remoting サブシステムからエンドポイントを使用してサーバーグループに属するサーバーがホストコントローラーに接続し直します(Remoting サブシステムが機能するためにはサブシステムが存在する必要があります)。

1.10. JBoss EAP 6 プロファイル

以前のバージョンの JBoss EAP で使用されたプロファイルの概念は使用されなくなりました。JBoss EAP 6 は、少数の設定ファイルを使用してその設定に関する情報をすべて保持するようになりました。
モジュールとドライバーが必要に応じて読み込まれるようになりました。そのため、以前のバージョンの JBoss EAP 6 で使用されていたデフォルトのプロファイルの概念により、サーバーをより効率的に起動するのではなく、適用されません。
デプロイメント時に、サーバーまたはドメインコントローラーによってモジュールの依存関係が決定、順序付け、解決され、正しい順序でロードされます。モジュールは、デプロイメントが必要なくなったときにアンロードされます。
設定からサブシステムを削除して、モジュールを無効にしたり、ドライバーやその他のサービスを手作業でアンロードしたりできます。ただし、ほとんどの場合、これは必要ありません。どのアプリケーションもモジュールを使用しない場合はロードされません。

1.11. 異なるバージョンのサーバーの管理

注記
異なるバージョンの JBoss EAP サーバーを管理するには、JBoss EAP の最新リリースがドメインコントローラーとして動作する必要があります。
  • JBoss EAP スキーマは異なるバージョンを使用します。そのため、新しいバージョンの JBoss EAP ドメインコントローラーには、下位バージョンの JBoss EAP ホストを制御する問題は必要ありませんが、domain.xml は使用中のすべてのバージョンが 最も古いもの である必要があります。
  • クラスターがある場合、クラスターのすべてのメンバーサーバーは同じバージョンの JBoss EAP に属する必要があります。
  • ドメインのすべてのホストには、Process Controller、Host Controller、および managed server などの Java プロセスが複数存在します。これらの Java プロセスは JBoss EAP の同じインストールから起動する必要があるため、同じバージョンが使用されます。
警告
しかし、JBoss EAP 6.3 のドメインコントローラーが JBoss EAP 6.2 以上のスレーブを管理する場合は、若干非互換性があります。この問題を修正する必要があります。[named-formatter] 属性はターゲットモデルバージョンで認識されず、古い属性に置き換える必要があります。詳細は以下を参照してください。 https://access.redhat.com/solutions/1238073

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

2.1. JBoss EAP ドキュメントの規則

本ガイドのすべてのインスタンスは、使用するインストール方法によって異なる JBoss EAP ルートインストールディレクトリーを参照します。

zip インストール方法
EAP_HOME は、JBoss EAP ZIP ファイルが抽出されたディレクトリーを参照します。
インストーラーメソッド
EAP_HOME は、JBoss EAP のインストールを選択したディレクトリーを参照します。
RPM インストール方法
EAP_HOME は、/usr/share/jbossas ディレクトリーを参照します。
注記
この表記法 は、JBoss EAP で 説明されている規則と同じ規則に従って、JBoss Warehouse のインストール場所を参照するために使用されます。

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

2.2.1. JBoss EAP 6 の起動

JBoss EAP は、スタンドアロンサーバーまたは管理対象ドメイン 2 つのモードのいずれかで実行され、Red Hat Enterprise Linux と Microsoft Windows Server の 2 つのプラットフォームでサポートされます。JBoss EAP を起動するコマンドは、基礎となるプラットフォームと目的のモードによって異なります。

表2.1 JBoss EAP を起動するコマンド

Operating System スタンドアロンサーバー 管理対象ドメイン
Red Hat Enterprise Linux EAP_HOME/bin/standalone.sh EAP_HOME/bin/domain.sh
Microsoft Windows Server EAP_HOME\bin\standalone.bat EAP_HOME\bin\domain.bat
JBoss EAP 6 の起動方法に関する詳細は、「JBoss EAP 6 をスタンドアロンサーバーとして起動」 および 「JBoss EAP 6 を管理対象ドメインとして起動」 を参照してください。

2.2.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.2.3. 1 台のマシンで複数の JBoss EAP スタンドアロンサーバーを実行

概要

このトピックでは、1 台のマシンで複数の JBoss EAP スタンドアロンサーバーを実行する手順を説明します。

手順2.2 1 台のマシンで JBoss EAP スタンドアロンサーバーの複数のインスタンスを実行

  1. 各スタンドアロンサーバーの EAP_HOME/standalone/ ディレクトリーを直接 EAP_HOME/ の下に作成します。たとえば、スタンドアロンサーバーの node1 および node2 のディレクトリーを作成するには、以下のコマンドを入力します。
    $ cd EAP_HOME
    $ cp -a ./standalone ./node1 
    $ cp -a ./standalone ./node2
  2. ノード名、IP アドレス、サーバーディレクトリー、オプションのサーバー設定ファイル、および任意のポートオフセットを指定して、各 JBoss EAP スタンドアロンインスタンスを起動します。このコマンドは、以下の構文を使用します。
    $ ./bin/standalone.sh -Djboss.node.name=UNIQUE_NODENAME -Djboss.server.base.dir=EAP_HOME/NODE_DIRECTORY -b IP_ADDRESS -bmanagement MGMT_IP_ADDRESS --server-config=SERVER_CONFIGURATION_FILE -Djboss.socket.binding.port-offset=PORT_OFFSET
    1. この例では、node1を起動します。
      $ cd EAP_HOME
      $ ./bin/standalone.sh -Djboss.node.name=node1 -Djboss.server.base.dir=EAP_HOME/node1 -b 10.10.10.10 -bmanagement 127.0.0.1
      
    2. node2 を起動する例は、マシンが複数の IP アドレスをサポートするかどうかによって異なります。
      • マシンが複数の IP アドレスをサポートする場合、以下のコマンドを使用します。
        $ cd EAP_HOME
        $ ./bin/standalone.sh -Djboss.node.name=node2 -Djboss.server.base.dir=EAP_HOME/node2 -b 10.10.10.40 -bmanagement 127.0.0.40
        
      • マシンが複数の IP アドレスをサポートしない場合は、jboss.socket.binding.port-offset プロパティーを指定してポートの競合を避ける必要があります。
        $ cd EAP_HOME
        $ ./bin/standalone.sh -Djboss.node.name=node2 -Djboss.server.base.dir=EAP_HOME/node2 -b 10.10.10.10 -bmanagement 127.0.0.1 -Djboss.socket.binding.port-offset=100
        
注記
2 つのノードを同時に管理する場合、または同じ設定を持つ 2 つのノードを管理する場合は、スタンドアロンサーバーを実行するのではなく、管理対象ドメインで実行することが推奨されます。

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

操作の順序

ドメイン内のサーバーグループのスレーブサーバーを起動する前にドメインコントローラーを起動する必要があります。最初に、最初に、関連するホストコントローラーと、ドメインに関連付けられたその他のホストで使用します。

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

  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.2.5. 管理対象ドメインのホストの名前設定

概要

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

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

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

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

  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.5 特定の名前を用いたホスト名の設定

  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 ファイルのホスト 属性が以下のように変更されます。
    <host name="host-slave01" xmlns="urn:jboss:domain:1.6">
  4. この処理を完了するには、変更前のホスト名を使用してサーバー設定をリロードする必要があります。
    reload --host=EXISTING_HOST_NAME
    以下に例を示します。
    reload --host=master

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

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

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

  1. マシン 1 での作業

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

    1. EAP_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. ホストを起動します。
      EAP_HOME/bin/domain.sh --host-config=host-slave.xml  -Djboss.domain.master.address=$IP1 -b=$IP2
  3. ドメインを管理します。

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

2.2.7. 1 台のマシンで管理対象ドメインを作成

jboss.domain.base.dir プロパティーを使用すると、複数のホストコントローラーを 1 台のマシンで実行できます。
重要
複数の JBoss EAP ホストコントローラーを 1 台のマシン上でシステムサービスとして設定することはサポートされません。

手順2.7 1 台のマシンで複数のホストコントローラーを実行する

  1. ドメインコントローラーの EAP_HOME/domain ディレクトリーをコピーします。
    cp -r EAP_HOME/domain /path/to/domain1
  2. ホストコントローラーの EAP_HOME/domain ディレクトリーをコピーします。
    cp -r EAP_HOME/domain /path/to/host1
  3. /path/to/domain1 を使用してドメインコントローラーを起動します。
    EAP_HOME/bin/domain.sh --host-config=host-master.xml -Djboss.domain.base.dir=/path/to/domain1
  4. /path/to/host1 を使用してホストコントローラーを起動します。
    EAP_HOME/bin/domain.sh --host-config=host-slave.xml -Djboss.domain.base.dir=/path/to/host1 -Djboss.domain.master.address=IP_ADDRESS -Djboss.management.native.port=PORT

結果

このように起動された各インスタンスは、ベースインストールディレクトリー( EAP_HOME/モジュール/)の残りのリソースを共有しますが、jboss.domain.base.dir で指定されたディレクトリーからドメイン設定を使用します。

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

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

前提条件

  • 代替の設定ファイルを使用する前に、デフォルト設定をテンプレートとして使用して準備します。
  • 管理対象ドメインの場合、代替の設定ファイルは EAP_HOME/domain/configuration/ ディレクトリーに保存されます。
  • スタンドアロンサーバーの場合、代替の設定ファイルは EAP_HOME/standalone/configuration/ ディレクトリーに保存されます。
設定例
設定例は EAP_HOME/docs/examples/configs/ ディレクトリーに含まれています。これらの例を使用して、クラスタリングやトランザクション XTS API などの機能を有効にします。

代替設定でインスタンスの起動

スタンドアロンサーバー

スタンドアロンサーバーの場合は、--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 設定ファイルを使用します。

管理対象ドメイン

管理対象ドメインの場合は、--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 設定ファイルを使用します。

2.2.9. JBoss EAP 6 の停止

JBoss EAP 6 を停止する方法は、起動方法によって異なります。このタスクでは、対話的に起動したインスタンスを停止し、サービスが開始したインスタンスを停止して、スクリプトによりバックグラウンドにフォークされたインスタンスを停止します。
注記
管理対象ドメインでサーバーまたはサーバーグループを停止する方法は、「管理コンソールを使用したサーバーの停止」 を参照してください。管理 CLI を使用してサーバーを停止する方法は、「管理 CLI を使用したサーバーの起動および停止」 を参照してください。

手順2.8 JBoss EAP 6 のインスタンスの停止

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

    JBoss EAP 6 が稼働しているターミナルで Ctrl-C を押します。

手順2.9 オペレーティングシステムサービスとして起動されたインスタンスの停止

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

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

      Microsoft Windows では、net service コマンドを使用するか、コントロールパネルの Services アプレットからサービスを停止します。

手順2.10 バックグラウンドで実行されているインスタンスの停止 (Red Hat Enterprise Linux)

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

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

      複数の EAP インスタンスが実行されている場合、正しいプロセスを識別するには、さらに包括的なコマンドを使用する必要があります。
      • jps コマンドは冗長モードで使用して、見つかった java プロセスに関する詳細情報を提供できます。
        以下は、PID およびロールによって実行されている EAP プロセスを特定する、詳細な 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 インスタンスに関する情報を返すこともできます。
        以下は、PID およびロールによって実行されている EAP プロセスを特定する、冗長 ps aux コマンドの出力です。
        $ 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.2.10. Server Runtime で渡されるスイッチおよび引数の参照

アプリケーションサーバーの起動スクリプトは実行時に引数とスイッチを受け入れます。これにより、standalone.xmldomain.xml、および host.xml 設定ファイルに定義される設定の代替設定でサーバーを起動できます。
他の設定には、ソケットバインディングの代替セットを持つサーバーの起動や 2 次設定が含まれていることがあります。
起動時に help スイッチ -h または --help を渡すと、利用可能なパラメーター一覧にアクセスできます。

表2.2 ランタイムスイッチおよび引数

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

2.3. サーバーの起動と停止

2.3.1. 管理 CLI を使用したサーバーの起動および停止

サーバーは、管理 CLI または管理コンソールを使用して起動および停止できます。どちらのツールでも、単一のスタンドアロンサーバーインスタンスを制御し、管理対象ドメインのデプロイメント全体で複数のサーバーを管理できます。
管理コンソールを使用する場合は、「管理コンソールを使用したサーバーの起動」 を参照してください。管理 CLI を使用する場合、スタンドアロンサーバーおよび管理対象ドメインインスタンスでプロセスは異なります。

管理 CLI を用いたスタンドアロンサーバーの停止

スクリプトまたはシェルプロンプトで手動で起動するスタンドアロンサーバーは、shutdown コマンドを使用して管理 CLI からシャットダウンできます。

例2.5 管理 CLI よりスタンドアロンサーバーインスタンスを停止する

[standalone@localhost:9999 /] shutdown
JBoss EAP 6 スタンドアロンサーバーインスタンスを再起動するには、「JBoss EAP 6 をスタンドアロンサーバーとして起動」 の説明に従ってインスタンスの起動スクリプトを実行するか、手動で起動します。

管理 CLI を用いた管理対象ドメインの起動および停止

管理コンソールは、ドメイン内の特定サーバーを選択的に起動または停止できます。これには、ドメイン全体にわたるサーバーグループや、ホスト上の特定サーバーインスタンスが含まれます。

例2.6 管理 CLI より管理対象ドメインのサーバーホストを停止する

スタンドアロンサーバーインスタンスと同様に、shutdown コマンドを使用して、宣言された管理対象ドメインホストをシャットダウンします。この例では、シャットダウン操作を呼び出す前にインスタンス名を宣言して master という名前のサーバーホストを停止します。
[domain@localhost:9999 /] shutdown --host=master

例2.7 管理 CLI より管理対象ドメインのサーバーホストを起動および停止する

この例では、start および stop 操作を呼び出す前にグループを宣言することで、main-server-group という名前のデフォルトのサーバーグループを起動します。
[domain@localhost:9999 /] /server-group=main-server-group:start-servers
[domain@localhost:9999 /] /server-group=main-server-group:stop-servers

例2.8 管理 CLI より管理対象ドメインのサーバーインスタンスを起動および停止する

この例では、起動および停止操作を呼び出す前にホストとサーバー設定を宣言することで、マスター ホストの server-one という名前のサーバーインスタンスを 起動 して 停止 します。
[domain@localhost:9999 /] /host=master/server-config=server-one:start
[domain@localhost:9999 /] /host=master/server-config=server-one:stop
注記
タブ キーを使用して文字列を補完し、利用可能なホストおよびサーバー設定の値などの可視変数を表示します。

2.3.2. 管理コンソールを使用したサーバーの起動

手順2.11 管理対象ドメイン向けのサーバーの起動

  1. コンソール上部の ドメイン タブを選択し、TOPOLOGY タブを選択します。左側のナビゲーションバーの DomainOverview を選択します。
  2. Server Instances リストから、起動するサーバーを選択します。実行中のサーバーはチェックマークで表示されます。
    このリストにあるインスタンスにカーソルを合わせ、サーバーの詳細の下に青色でオプションを表示します。
  3. インスタンスを起動するには、表示された時に Start Server テキストをクリックします。確認ダイアログボックスが開きます。確認 をクリックしてサーバーを起動します。

結果

選択したサーバーが起動し、稼働状態になります。

2.3.3. 管理コンソールを使用したサーバーの停止

手順2.12 管理コンソールを使用した管理対象ドメインのサーバーの停止

  1. コンソール上部の ドメイン タブを選択し、TOPOLOGY タブを選択します。左側のナビゲーションバーの DomainOverview を選択します。
  2. 利用可能なサーバーインスタンスの 一覧は 、ホスト、グループ、およびサーバーインスタンス の表に表示されます。実行中のサーバーはチェックマークで表示されます。
  3. 選択したサーバーにカーソルを合わせます。表示される Stop Server テキストをクリックします。確認ダイアログウインドウが表示されます。
  4. 確認 をクリックしてサーバーを停止します。

結果

選択されたサーバーが停止します。

2.4. 設定ファイル

2.4.1. JBoss EAP 6 の設定ファイル

JBoss EAP 6 の設定は以前のバージョンから大幅に変更されました。最も明確な違いの 1 つは、以下のファイルが 1 つ以上含まれる簡素化された設定ファイル構造を使用することです。

表2.3 設定ファイルの場所

サーバーモード 場所 目的
domain.xml EAP_HOME/domain/configuration/domain.xml これは、管理対象ドメインの主要設定ファイルです。ドメインマスターのみがこのファイルを読み取ります。他のドメインメンバーでは削除できます。
host.xml EAP_HOME/domain/configuration/host.xml このファイルには、管理対象ドメインの物理ホスト固有の設定情報が含まれています (ネットワークインターフェース、ソケットバインディング、ホスト名、その他のホスト固有の詳細など)。host.xml ファイルには、host-master.xmlhost-slave.xml の両方の機能がすべて含まれています。これについては以下で説明します。このファイルはスタンドアロンサーバーには存在しません。
host-master.xml EAP_HOME/domain/configuration/host-master.xml このファイルには、サーバーを管理対象ドメインのマスターサーバーとして実行するために必要な設定情報のみが含まれています。このファイルはスタンドアロンサーバーには存在しません。
host-slave.xml EAP_HOME/domain/configuration/host-slave.xml このファイルには、サーバーを管理対象ドメインのスレーブサーバーとして実行するために必要な設定情報のみが含まれています。このファイルはスタンドアロンサーバーには存在しません。
standalone.xml EAP_HOME/standalone/configuration/standalone.xml スタンドアロンサーバーのデフォルト設定ファイルです。これには、サブシステム、ネットワーキング、デプロイメント、ソケットバインディング、およびその他の設定可能な詳細など、スタンドアロンサーバーに関するすべての情報が含まれます。この設定は、スタンドアロンサーバーの起動時に自動的に使用されます。
standalone-full.xml EAP_HOME/standalone/configuration/standalone-full.xml スタンドアロンサーバーの設定例になります。これには、高可用性に必要なサブシステムを除くすべてのサブシステムのサポートが含まれます。これを使用するには、サーバーを停止し、次のコマンドを使用して再起動します。 EAP_HOME/bin/standalone.sh -c standalone-full.xml
standalone-ha.xml EAP_HOME/standalone/configuration/standalone-ha.xml この設定ファイルの例では、デフォルトのサブシステムをすべて有効にし、高可用性または負荷分散クラスターに参加できるようにスタンドアロンサーバーの mod_cluster および JGroups サブシステムを追加します。このファイルは管理対象ドメインには適用されません。この設定を使用するには、以下のコマンドを実行してサーバーを停止し、再起動します。 EAP_HOME/bin/standalone.sh -c standalone-ha.xml
standalone-full-ha.xml EAP_HOME/standalone/configuration/standalone-full-ha.xml スタンドアロンサーバーの設定例になります。これには、高可用性に必要なサブシステムを含むすべてのサブシステムのサポートが含まれます。これを使用するには、サーバーを停止し、次のコマンドを使用して再起動します。 EAP_HOME/bin/standalone.sh -c standalone-full-ha.xml
これらはデフォルトの場所です。ランタイム時に別の設定ファイルを指定できます。
注記
JBoss EAP 6 の設定データのバックアップに関する詳細は、「JBoss EAP 設定データのバックアップ」 を参照してください。

2.4.2. JBoss EAP 設定データのバックアップ

概要

このトピックでは、後で JBoss EAP サーバー設定を復元するためにバックアップする必要のあるファイルについて説明します。

手順2.13 設定データのバックアップ

  1. ユーザーおよびプロファイルデータ、ドメイン、ホスト、スレーブ、およびロギング設定を保持するには、以下のディレクトリーの内容全体をバックアップします。
    • EAP_HOME/standalone/configuration/
    • EAP_HOME/domain/configuration
  2. EAP_HOME/modules/system/layers/base/ ディレクトリーに作成されたカスタムモジュールをバックアップします。
  3. EAP_HOME/welcome-content/ ディレクトリーの Welcome コンテンツをバックアップします。
  4. EAP_HOME/bin/ ディレクトリーに作成されたカスタムスクリプトをバックアップします。

2.4.3. 記述子ベースのプロパティー置換

アプリケーションの設定(データソース接続パラメーターなど)は、通常は開発、テスト、および実稼働デプロイメントによって異なります。Java EE 仕様にはこれらの設定を外部化するメソッドが含まれていないため、このような違いはビルドシステムスクリプトで対応することがあります。JBoss EAP 6 では、記述子ベースのプロパティー置換 を使用して設定を外部で管理できます。
記述子ベースのプロパティー置換は、記述子を基にプロパティーを置き換えるため、アプリケーションやビルドチェーンから環境に関する仮定を除外できます。環境固有の設定は、アノテーションやビルドシステムスクリプトでなく、デプロイメント記述子に指定できます。設定はファイルに指定したり、パラメーターとしてコマンドラインで提供したりできます。
記述子ベースのプロパティー置換は、standalone.xml または domain.xml を介してグローバルに有効になります。

例2.9 記述子ベースのプロパティー置換

<subsystem xmlns="urn:jboss:domain:ee:1.2">
  <spec-descriptor-property-replacement>
    true
  </spec-descriptor-property-replacement>
  <jboss-descriptor-property-replacement>
    true
  </jboss-descriptor-property-replacement>
</subsystem>
Java EE 記述子置換はデフォルトで 無効 になっています。有効にすると、ejb-jar.xml および persistence.xml 設定ファイルで記述子を置き換えることができます。
JBoss 固有の記述子置換はデフォルトで 有効 になっています。有効にすると、以下の設定ファイルで記述子を置換できます。
  • jboss-ejb3.xml
  • jboss-app.xml
  • jboss-web.xml
  • *-jms.xml
  • *-ds.xml
たとえば、以下のアノテーションを持つ Bean があるとします。

例2.10 アノテーションの例

@ActivationConfigProperty(propertyName = "connectionParameters", propertyValue = "host=192.168.1.1;port=5445")
記述子ベースのプロパティー置換を有効にすると、以下のようにコマンドラインから connectionParameters を指定できます。
./standalone.sh -DconnectionParameters='host=10.10.64.1;port=5445'
システムプロパティーを使用して同じことを実現するには、literal の値の代わりに を使用します。式は ${パラメーター:default} の形式を取ります。式が設定で使用されると、そのパラメーターの値がその意味になります。パラメーターが存在しない場合は、代わりに指定されたデフォルト値が使用されます。

例2.11 記述子で式の使用

<activation-config>
  <activation-config-property>
    <activation-config-property-name>
      connectionParameters
      </activation-config-property-name>
    <activation-config-property-value>
      ${jms.connection.parameters:'host=10.10.64.1;port=5445'}
    </activation-config-property-value>
  </activation-config-property>
</activation-config>
${jms.connection.parameters:'host=10.10.64.1;port=5445'} により、デフォルト値を提供しながらコマンドラインが提供するパラメーターで接続パラメーターを上書きできます。

2.4.4. 記述子ベースのプロパティー置換の有効化または無効化

概要

記述子プロパティー置換の finite コントロールが jboss-as-ee_1_1.xsd に導入されました。ここでは、記述子ベースのプロパティー置換を設定するのに必要な手順を説明します。

記述子ベースのプロパティー置換フラグはブール値を持ちます。
  • true に設定すると、プロパティー置換が有効になります。
  • false に設定すると、プロパティー置換が無効になります。

手順2.14 jboss-descriptor-property-replacement

jboss-descriptor-property-replacement 以下の記述子でプロパティー置換を有効または無効にするために使用されます。
  • jboss-ejb3.xml
  • jboss-app.xml
  • jboss-web.xml
  • *-jms.xml
  • *-ds.xml
jboss-descriptor-property-replacement のデフォルト値は true です。
  1. 管理 CLI で以下のコマンドを実行し、jboss-descriptor-property-replacement の値を確認します。
    /subsystem=ee:read-attribute(name="jboss-descriptor-property-replacement")
  2. 次のコマンドを実行して動作を設定します。
    /subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)

手順2.15 spec-descriptor-property-replacement

spec-descriptor-property-replacement 以下の記述子でプロパティー置換を有効または無効にするために使用されます。
  • ejb-jar.xml
  • persistence.xml
  • application.xml
  • web.xml
spec-descriptor-property-replacement のデフォルト値は false です。
  1. 管理 CLI で以下のコマンドを実行し、spec-descriptor-property-replacement の値を確認します。
    /subsystem=ee:read-attribute(name="spec-descriptor-property-replacement")
  2. 次のコマンドを実行して動作を設定します。
    /subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)

結果

記述子ベースのプロパティー置換が正常に設定されます。

2.4.5. ネストされた式

式はネスト化できるため、固定値の代わりにさらに高度な式を使用できます。ネストされた式の書式は、通常の式の場合と同様ですが、ある式が別の式に組み込まれます。 例を以下に示します。

例2.12 ネストされた式

${system_value_1${system_value_2}}
ネストされた式は、再帰的に評価されるため、最初に 内部の式が評価され、次に 外部の式が評価されます。ネストされた式は式が許可された場所であればどこでも許可されます(ただし、管理 CLI コマンドを除く)。
通常式と同様に、ネストされた式の解決でサポートされるソースはシステムプロパティー、環境変数、および Vault になります。デプロイメントのみの場合、デプロイメントアーカイブの META-INF/jboss.properties ファイルにリストされたプロパティーをソースとすることができます。サブデプロイメントをサポートする EAR またはその他のデプロイメントタイプでは、META-INF/jboss.properties が外部デプロイメント(EAR など)にある場合、解決はすべてのサブデプロイメントにスコープが設定され、META-INF/jboss.properties が EAR 内のサブデプロイメントアーカイブ(例: EAR 内の WAR)にある場合はサブデプロイメントに対してスコープ指定されます。

例2.13 設定ファイルでのネストされた式の使用

ネストされた式の実際のライフサイクルアプリケーションはデータソース定義にあります。データソース定義で使用されるパスワードがマスクされている場合は、データソース定義で生成される行は以下のようになります。
<password>${VAULT::ds_ExampleDS::password::1}</password>
ネストされた式を使用すると、ds_ExampleDS の値をシステムプロパティーに置き換えることができます。システムプロパティー datasource_nameds_ExampleDS の値が割り当てられている場合、データソース定義の行は以下のようになります。
<password>${VAULT::${datasource_name}::password::1}</password>
JBoss EAP は最初に式 ${datasource_name} を評価し、次にこれを大きな式に入力し、結果となる式を評価します。この設定の利点は、データソースの名前が固定された設定から抽象化されることです。
式が再帰的になれば、式が式に解決され、その後解決されます。ネストされた式と再帰式は間接的な形です。管理 CLI コマンドでは再帰式が許可されないことに注意してください。

例2.14 再帰式

前の例を続行すると、式 ${ VAULT::ds_ExampleDS::password::1} に解決される ${ foo} 式が使用され、Vault: シークレット に含まれる値に解決されます。

2.4.6. ファイルの履歴設定

アプリケーションサーバーの設定ファイルには、standalone.xmldomain.xml ファイル、および host.xml ファイルが含まれます。これらのファイルは直接編集して変更できますが、管理 CLI や管理コンソールなど、利用可能な管理操作でアプリケーションサーバーモデルを設定する方法が推奨されます。
サーバーインスタンスの保守および管理を容易にするために、アプリケーションサーバーは起動時に元の設定ファイルのタイムスタンプバージョンを作成します。管理操作によってその他の設定変更が行われると、元のファイルが自動的にバックアップされ、インスタンスの作業用コピーが参照およびロールバック用に保持されます。このアーカイブ機能では、サーバー設定のスナップショットの保存、読み込み、および削除が拡張され、再利用およびロールバックシナリオが可能になります。

2.4.7. 以前の設定でのサーバーの起動

以下の例は、standalone.xml を使用してスタンドアロンサーバーの以前の設定でアプリケーションサーバーを起動する方法を示しています。同じ概念が domain.xmlhost.xml の管理対象ドメインにそれぞれ適用されます。
この例では、管理操作によってサーバーモデルが変更される場合にアプリケーションサーバーにより自動的に保存される以前の設定が呼び出されます。

例2.15 保存した設定でサーバーを起動します。

  1. 起動するバックアップバージョンを特定します。この例では、起動に成功すると最初の変更の前にサーバーモデルのインスタンスが呼び出されます。
    EAP_HOME/standalone/configuration/standalone_xml_history/current/standalone.v1.xml
  2. jboss.server.config.dir 下で相対ファイル名を渡し、バックアップモデルのこの設定を用いてサーバーを起動します。
    EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/current/standalone.v1.xml

結果

アプリケーションサーバーが、選択された設定で起動されます。

注記
ドメイン設定履歴は EAP_HOME/domain/configuration/domain_xml_history/current/domain.v1.xml にあります
jboss.domain.config.dir 下で相対ファイル名を渡し、バックアップモデルのこの設定を用いてサーバーを起動します。
この設定を用いてドメインを起動するには、以下を実行します。
EAP_HOME/bin/domain.sh --domain-config=domain_xml_history/current/domain.v1.xml

2.4.8. 管理 CLI を使用した設定スナップショットの保存

概要

設定スナップショットは、現在のサーバー設定の特定の時点のコピーです。これらのコピーは管理者が保存およびロードできます。

以下の例では、standalone.xml 設定ファイルを使用しますが、同じプロセスが domain.xml および host.xml 設定ファイルにも適用されます。

手順2.16 設定スナップショットの撮影および保存

  • スナップショットの保存

    take-snapshot 操作を実行し、現在のサーバー設定のコピーを取得します。
    [standalone@localhost:9999 /] :take-snapshot
    {
        "outcome" => "success",
        "result" => "/home/User/EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20110630-172258657standalone.xml"
    

結果

現在のサーバー設定のスナップショットが保存されます。

2.4.9. 管理 CLI を使用した設定スナップショットのロード

設定スナップショットは、現在のサーバー設定の特定の時点のコピーです。これらのコピーは管理者が保存およびロードできます。スナップショットを読み込むプロセスは、スナップショットの作成、一覧表示、および削除に使用される管理 CLI インターフェースではなく、コマンドラインから使用する方法と似ています。「以前の設定でのサーバーの起動」
以下の例は standalone.xml ファイルを使用しますが、同じプロセスが domain.xml および host.xml ファイルに適用されます。

手順2.17 設定スナップショットのロード

  1. ロードするスナップショットを特定します。この例では、スナップショットディレクトリーから以下のファイルを呼び出します。スナップショットファイルのデフォルトのパスは以下のとおりです。
    EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20110812-191301472standalone.xml
    スナップショットは相対パスにより表されます。たとえば、上記の例は次のように記述できます。
    jboss.server.config.dir/standalone_xml_history/snapshot/20110812-191301472standalone.xml
  2. ファイル名を渡し、選択したスナップショットを用いてサーバーを起動します。
    EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20110913-164449522standalone.xml

結果

ロードしたスナップショットに選択された設定を用いてサーバーが再起動します。

2.4.10. 管理 CLI を使用した設定スナップショットの削除

設定スナップショットは、現在のサーバー設定の特定の時点のコピーです。これらのコピーは管理者が保存およびロードできます。
以下の例は standalone.xml ファイルを使用しますが、同じプロセスが domain.xml および host.xml ファイルに適用されます。

手順2.18 特定のスナップショットの削除

  1. 削除するスナップショットを特定します。この例では、スナップショットディレクトリーから以下のファイルを削除します。
    EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20110630-165714239standalone.xml
  2. 以下の例のようにスナップショットの名前を指定して、:delete-snapshot コマンドを実行して特定のスナップショットを削除します。
    [standalone@localhost:9999 /] :delete-snapshot(name="20110630-165714239standalone.xml")
    {"outcome" => "success"}
    

結果

スナップショットが削除されます。

手順2.19 スナップショットすべてを削除

  • 以下の例のように、:delete-snapshot(name="all") コマンドを実行して、すべてのスナップショットを削除します。
    [standalone@localhost:9999 /] :delete-snapshot(name="all")
    {"outcome" => "success"}
    

結果

スナップショットがすべて削除されます。

2.4.11. 管理 CLI を使用したすべての設定スナップショットのリスト

設定スナップショットは、現在のサーバー設定の特定の時点のコピーです。これらのコピーは管理者が保存およびロードできます。
以下の例は standalone.xml ファイルを使用しますが、同じプロセスが domain.xml および host.xml ファイルに適用されます。

手順2.20 すべての設定スナップショットのリスト

  • すべてのスナップショットのリスト

    :list-snapshots コマンドを実行して、保存されたすべてのスナップショットを一覧表示します。
    [standalone@localhost:9999 /] :list-snapshots
    {
        "outcome" => "success",
        "result" => {
            "directory" => "/home/hostname/EAP_HOME/standalone/configuration/standalone_xml_history/snapshot",
            "names" => [
                "20110818-133719699standalone.xml",
                "20110809-141225039standalone.xml",
                "20110802-152010683standalone.xml",
                "20110808-161118457standalone.xml",
                "20110912-151949212standalone.xml",
                "20110804-162951670standalone.xml"
            ]
        }
    }
    

結果

スナップショットがリストされます。

2.5. ファイルシステムパス

JBoss EAP 6 は、ファイルシステムパスに論理名を使用します。domain.xmlhost.xml、および standalone.xml 設定ファイルには、パスを宣言するセクションが含まれます。
各ファイルの他のセクションは論理名を使用してパスを参照できます。そのため、各インスタンスに絶対パスを使用する必要がなく、特定のホスト設定が汎用論理名に解決できます。
たとえば、デフォルトの logging サブシステム設定は jboss.server.log.dir をサーバーの ログ ディレクトリーの論理名として宣言します。

例2.16 ロギングディレクトリーの相対パス例

<file relative-to="jboss.server.log.dir" path="server.log"/>
JBoss EAP 6 では、複数の標準的なパスが自動的に提供されるため、ユーザーが設定ファイルでこれらのパスを設定する必要はありません。

表2.4 標準的なパス

Value 説明
java.ext.dirs Java Development Kit 拡張ディレクトリーパス。
jboss.home.dir JBoss EAP 6 ディストリビューションのルートディレクトリー。
user.home ユーザーのホームディレクトリー。
user.dir ユーザーのカレントワーキングディレクトリー。
java.home Java インストールディレクトリー。
jboss.server.base.dir 各サーバーインスタンスのルートディレクトリー。
jboss.server.data.dir サーバーが永続データファイルストレージに使用するディレクトリー。
jboss.server.config.dir サーバー設定が含まれるディレクトリー。
jboss.server.log.dir サーバーがファイルストレージに使用するディレクトリー。
jboss.server.temp.dir サーバーが一時ファイルストレージに使用するディレクトリー。
jboss.server.deploy.dir サーバーがデプロイされたコンテンツの格納に使用するディレクトリー。
jboss.controller.temp.dir ホストコントローラーが一時的なファイルストレージとして使用するディレクトリー。
jboss.domain.base.dir ドメインコンテンツのベースディレクトリー。
jboss.domain.config.dir ドメイン設定が含まれるディレクトリー。
jboss.domain.data.dir ドメインが永続データファイルの格納に使用するディレクトリー。
jboss.domain.log.dir ドメインが永続ログファイルの格納に使用するディレクトリー。
jboss.domain.temp.dir ドメインが一時ファイルの格納に使用するディレクトリー。
jboss.domain.deployment.dir ドメインがデプロイ済みコンテンツの格納に使用するディレクトリー。
jboss.domain.servers.dir ドメインが管理対象ドメインインスタンスの出力を格納するために使用するディレクトリー。

パスのオーバーライド

スタンドアロンサーバーを実行している場合は、2 つの方法のいずれかですべての jboss.server.* パスを上書きできます。

  • サーバーの起動時にコマンドライン引数を渡すことができます。以下に例を示します。
    bin/standalone.sh -Djboss.server.log.dir=/var/log
  • サーバー設定ファイルで JAVA_OPTS 変数を変更できます。EAP_HOME/bin/standalone.conf ファイルを開き、ファイルの最後に以下の行を追加します。
    JAVA_OPTS="$JAVA_OPTS -Djboss.server.log.dir=/var/log"
パスのオーバーライドは、管理対象ドメインで実行しているサーバーでサポートされます。たとえば、jboss.domain.servers.dir を使用して管理対象ドメインのサーバーのベースディレクトリーを変更できます。

カスタムパスの追加

また、独自のカスタムパスを作成することもできます。たとえば、ロギングに使用する相対パスを定義できます。次に、ログハンドラーを変更して my.relative.path を使用することができます。

例2.17 カスタムロギングパス

my.relative.path=/var/log

2.5.1. ディレクトリーのグループ化

ドメインモードでは、各サーバーのファイルは EAP_HOME/domain/ ディレクトリーに保存されます。サブディレクトリーの名前は、server または file タイプのいずれかで directory-grouping 属性に従って付けられます。

サーバーを基にしたディレクトリーのグループ化

デフォルトのディレクトリーグルーピング はサーバー です。管理作業がサーバー中心である場合はこの設定が推奨されます。たとえば、サーバーインスタンスごとにバックアップやログファイルの処理を設定することができます。

例2.18 サーバーを基にしたディレクトリーのグループ化

Zip メソッドを使用して JBoss EAP がインストールされ、すべてのデフォルトオプションが適用されると、ドメインモードのディレクトリー構造は以下のようになります。
EAP_HOME/domain
             └─ servers
                  ├── server-one
                  │   ├── data
                  │   ├── tmp
                  │   └── log
                  └── server-two
                      ├── data
                      ├── tmp
                      └── log
directory-grouping 属性をデフォルトから変更し、リセットする場合は、以下の管理 CLI コマンドを入力します。
/host=master:write-attribute(name="directory-grouping",value="by-server")
これにより、コントローラーの host.xml 設定ファイルが更新されます。
<servers directory-grouping="by-server">
  <server name="server-one" group="main-server-group" >
  </server>
  <server name="server-two" group="main-server-group" auto-start="true">
  </server>
</servers>

タイプを基にしたディレクトリーのグループ化

各サーバーのディレクトリーをサーバーごとにグループ化するのではなく、ファイルタイプでグループ化することもできます。管理作業がファイルタイプ中心である場合は、この設定が推奨されます。たとえば、データファイルのみを含める場合は、バックアップ設定が簡単になります。

タイプ 別にドメインデータディレクトリーをグループ化するには、以下の管理 CLI コマンドを入力します。
/host=master:write-attribute(name="directory-grouping",value="by-type")
これにより、コントローラーの host.xml 設定ファイルが更新されます。
<servers directory-grouping="by-type">
  <server name="server-one" group="main-server-group" >
  </server>
  <server name="server-two" group="main-server-group" auto-start="true">
  </server>
</servers>

例2.19 タイプを基にしたディレクトリーのグループ化

Zip メソッドを使用して JBoss EAP がインストールされ、ドメインのファイルがタイプを基にグループ化された場合、ドメインモードのディレクトリー構造は以下のようになります。
EAP_HOME/domain
            ├── data
            │   └── servers
            │       ├── server-one
            │       └── server-two
            ├── log
            │   └── servers
            │       ├── server-one
            │       └── server-two
            └── tmp
                └── servers
                    ├── server-one
                    └── server-two

2.5.2. ユースケース: ディレクトリーの上書き

この例の目的は、/opt/jboss_eap/data/domain_data ディレクトリーにドメインファイルを格納し、各最上位ディレクトリーにカスタム名を付けることです。使用されるディレクトリーのグループ化は、デフォルトの by-server です。
  • サブディレクトリー all_logsに保存されているログファイル
  • サブディレクトリー all_dataに保存されているデータファイル
  • all_tempサブディレクトリーに格納されている一時ファイル
  • all_serversサブディレクトリーに格納されているサーバーのファイル
この設定を行うには、JBoss EAP の起動時に複数のシステムプロパティーを上書きします。
./domain.sh \
      -Djboss.domain.temp.dir=/opt/jboss_eap/data/domain_data/all_temp \
      -Djboss.domain.log.dir=/opt/jboss_eap/data/domain_data/all_logs \
      -Djboss.domain.data.dir=/opt/jboss_eap/data/domain_data/all_data\
      -Djboss.domain.servers.dir=/opt/jboss_eap/data/domain_data/all_servers
この結果、パス構造は次のようになります。
/opt/jboss_eap/data/domain_data/
├── all_data
│   └── content
├── all_logs
│   ├── host-controller.log
│   └── process-controller.log
├── all_servers
│   ├── server-one
│   │   ├── data
│   │   │   ├── content
│   │   │   ├── logging.properties
│   │   ├── log
│   │   │   └── server.log
│   │   └── tmp
│   │       ├── vfs
│   │       │   └── temp
│   │       └── work
│   │           └── jboss.web
│   │               └── default-host
│   └── server-two
│       ├── data
│       │   ├── content
│       │   ├── logging.properties
│       ├── log
│       │   └── server.log
│       └── tmp
│           ├── vfs
│           │   └── temp
│           └── work
│               └── jboss.web
│                   └── default-host
└── all_temp
    └── auth
          ...

第3章 管理インターフェース

3.1. アプリケーションサーバーの管理

JBoss EAP 6 は、サーバー設定に XML ファイルを使用し、JBoss EAP 6 サーバーの設定および管理の 3 つの方法(Web インターフェース、コマンドラインクライアント、および XML 設定ファイルの直接編集)を提供します。
設定ファイルを編集するのに推奨される方法は、管理 CLI と新しい Web ベースの管理コンソールです。XML 設定ファイルに加えた編集は引き続き可能ですが、管理コンソールと管理 CLI を使用して設定および管理することで、サーバーインスタンスの管理に追加の検証および高度な機能が提供されます。
3 つの方法のいずれかでサーバー設定に加えた編集は、異なるビュー全体で同期されます。
注記
ただし、サーバーインスタンスの実行中に XML 設定ファイルに加えた編集は、サーバーモデルによって上書きされます。サーバーインスタンスの実行中に XML 設定ファイルに追加されたコメントもすべて削除されます。
Web ブラウザーでグラフィカルユーザーインターフェースを使用してサーバーを管理するには、管理コンソールを使用します。コマンドラインインターフェースを使用してサーバーを管理するには、管理 CLI を使用します。
管理コンソールと管理 CLI の推奨管理ツールとして、上級ユーザーが希望する場合に独自のツールを開発できるようにする基礎となる管理 API の例も提供されています。

3.2. 管理アプリケーションプログラミングインターフェース (API)

HTTP API

管理コンソールは、Google Web Toolkit(GWT)で構築された Web インターフェースです。HTTP 管理インターフェースを使用してサーバーと通信します。

HTTP API エンドポイントは、管理レイヤーと統合するために HTTP プロトコルに依存する管理クライアントのエントリーポイントです。
HTTP プロトコルに依存する管理クライアントは、JSON でエンコードされたプロトコルとデタイプを使用しない RPC スタイルの API を使用して、管理対象ドメインまたはスタンドアロンサーバーに対して管理操作を記述および実行します。
HTTP API は管理コンソールによって使用されますが、他のクライアントの統合機能も提供します。
HTTP API エンドポイントはドメインコントローラーまたはスタンドアロンサーバーインスタンスと同じ場所に置かれます。管理操作を実行するコンテキストと、Web インターフェースにアクセスするためのコンテキストが 2 つあります。デフォルトでは、HTTP API エンドポイントはポート 9990 で実行されます。

例3.1 HTTP API 設定ファイルの例

<management-interfaces>
  [...]
  <http-interface security-realm="ManagementRealm">
     <socket-binding http="management-http"/>
  </http-interface>
</management-interfaces>
管理コンソールは、HTTP 管理 API と同じポートで提供されます。デフォルトの localhost でアクセスされる管理コンソール、特定のホストとポートの組み合わせによってリモートでアクセスされる管理コンソール、および公開されるドメイン API を区別することが重要です。

表3.1 管理コンソールまたは公開される HTTP API へのアクセスに使用する URL

URL 説明
http://localhost:9990/console ローカルホストでアクセスされる管理コンソール (管理対象ドメイン設定を制御します)。
http://hostname:9990/console リモートでアクセスされる管理コンソール (ホストを指定し、管理対象ドメイン設定を制御します)。
http://hostname:9990/management HTTP 管理 API は管理コンソールと同じポートで実行され、API に公開された raw 属性と値を表示します。

例3.2 HTTP API を使用した属性値の取得

以下の URL は HTTP Web コネクター属性値を取得します(デフォルトの操作は read-resourceです)。
http://hostname:9990/management/subsystem/web/connector/http

例3.3 HTTP API を使用した単一の属性値の取得

以下の URL は、ExampleDS データソースの enabled 属性を取得します。
http://hostname:9990/management/subsystem/datasources/data-source/ExampleDS?operation=attribute&name=enabled
HTTP API を使用してアプリケーションをデプロイする方法は、「HTTP API を使用したアプリケーションのデプロイ」 を参照してください。

ネイティブ API

管理 CLI はネイティブ API ツールです。これは管理対象ドメインまたはスタンドアロンサーバーインスタンスで利用でき、管理者はドメインコントローラーまたはスタンドアロンサーバーインスタンスに接続し、デタイプな管理モデルを介して利用可能な管理操作を実行できます。

ネイティブ API エンドポイントは、ネイティブプロトコルに依存して管理レイヤーと統合する管理クライアントのエントリーポイントです。管理操作の記述および実行には、非常に少数の Java タイプに基づいた、オープンバイナリープロトコルと RPC スタイルの API を使用します。これは、管理 CLI 管理ツールによって使用されますが、他のクライアントの統合機能も提供します。
ネイティブ API エンドポイントはホストコントローラーまたはスタンドアロンサーバーと共存します。管理 CLI を使用するには、これを有効にする必要があります。デフォルトでポート 9999 で実行されます。

例3.4 ネイティブ API 設定ファイルの例

<management-interfaces>
  <native-interface security-realm="ManagementRealm">
    <socket-binding native="management-native"/>
  </native-interface>
  [...]
</management-interfaces>

3.3. 管理コンソール

3.3.1. 管理コンソール

管理コンソールは JBoss EAP 6 の Web ベースの管理ツールです。
管理コンソールを使用して、サーバーの起動および停止、アプリケーションのデプロイおよびアンデプロイ、システム設定の調整、サーバー設定への永続的な変更を行います。管理コンソールは管理タスクも実行でき、変更があればサーバーインスタンスの再起動またはリロードが必要な場合はライブ通知も行います。
管理対象ドメインでは、同じドメイン内のサーバーインスタンスやサーバーグループをドメインコントローラーの管理コンソールから集中管理できます。

3.3.2. 管理コンソールへのログイン

前提条件

  • JBoss EAP 6 が稼働している必要があります。
  • コンソールにアクセスするためのパーミッションを持つユーザーがすでに作成されている必要があります。
  1. Web ブラウザーを起動し、以下のアドレスに移動します。 http://localhost:9990/console/App.html
    注記
    ポート 9990 は、管理コンソールソケットバインディングとして事前定義されています。
  2. 管理コンソールにログインするためのユーザー名とパスワードを入力します。

    図3.1 管理コンソールのログイン画面

    管理コンソールのログイン画面

結果

ログインすると、以下のアドレスにリダイレクトされ、管理コンソールのランディングページが表示されます。 http://localhost:9990/console/App.html#home

3.3.3. 管理コンソールの言語の変更

Web ベースの管理コンソールの言語設定では、デフォルトで英語が使用されます。以下の言語のいずれかを選択できます。

サポートされている言語

  • ドイツ語 (de)
  • 簡体中国語 (zh-Hans)
  • ブラジルポルトガル語 (pt-BR)
  • フランス語 (fr)
  • スペイン語 (es)
  • 日本語 (ja)

手順3.1 Web ベース管理コンソールの言語の変更

  1. 管理コンソールへのログイン

    Web ベースの管理コンソールにログインします。
  2. Settings ダイアログを開きます。

    画面の右下付近には Settings ラベルがあります。クリックして管理コンソールの設定を開きます。
  3. 必要な言語を選択します。

    Locale 選択ボックスから希望の言語を選択します。Save を選択します。確認ボックスに、アプリケーションのリロードが必要であると表示されます。Confirm をクリックします。システムは、Web ブラウザーを自動的に更新し、新しいロケールを使用します。

3.3.4. JBoss EAP コンソールの分析

Google Analytics とは

Google Analytics は、Web サイトに包括的な使用統計を提供する、無料の Web 分析サービスです。サイトへのアクセス、ページビュー、アクセスごとのページ、およびサイトに費やした平均時間など、サイトに関する重要なデータを提供します。Google Analytics を使用すると、Web サイトの存在と、その機能をより明確に把握することができます。

JBoss EAP 管理コンソールの Google Analytics

JBoss EAP 6 では、管理コンソールで Google Analytics を有効または無効にするオプションを利用できます。Google Analytics 機能は、お客様がコンソールをどのように使用するか、コンソールのどの部分がお客様の最も重要かについて、Red Hat EAP チームが理解できるようにしています。この情報は、チームがコンソールの設計、機能、およびコンテンツを顧客の即時のニーズに適応させるのに役立つものです。

備考
デフォルトでは、JBoss EAP 6 コンソールで Google Analytics が無効になり、その使用は任意です。

3.3.5. JBoss EAP コンソールでの Google Analytics の有効化

JBoss EAP 管理コンソールで Google Analytics を有効にするには、以下を行います。
  • 管理コンソールへのログイン
  • 管理 コンソールの設定 をクリック

    図3.2 管理コンソールのログイン画面

    説明
  • Settings ダイアログで Enable Usage Data Collection チェックボックスを選択し、Save ボタンをクリックします。アプリケーションのリロードを確認し、新しい設定を有効にします。

    図3.3 Settings ダイアログ(使用率データの収集を有効化)

    説明

3.3.6. JBoss EAP コンソールでの Google Analytics の無効化

JBoss EAP 管理コンソールで Google Analytics を無効にするには、以下を行います。
  • 管理コンソールへのログイン
  • 管理 コンソールの設定 をクリック

    図3.4 管理コンソールのログイン画面

    説明
  • Settings ダイアログの Enable Usage Data Collection オプションの選択を解除して、選択を削除します。Save ボタンをクリックします。アプリケーションのリロードを確認し、新しい設定を有効にします。

    図3.5 Settings ダイアログ(使用率データの収集を無効化)

    説明

3.3.7. 管理コンソールを使用したサーバーの設定

手順3.2 サーバーの設定

  1. コンソールの上部から ドメイン タブを選択します。利用可能なサーバーインスタンスが表に表示されます。
  2. Server Configurations をクリックします。
    関連するホストの Server Configurations パネルが表示されます。
  3. Available Server Configurations テーブルからサーバーインスタンスを選択します。
  4. 選択したサーバーの詳細の上に Edit をクリックします。
  5. 設定属性を変更します。
  6. Save をクリックして終了します。

図3.6 サーバー構成

サーバー構成

結果

サーバー設定が変更され、サーバーが次回再起動したときに変更が反映されます。

3.3.8. 管理コンソールでのデプロイメントの追加

  1. コンソールの上部にある Deployments タブを選択します。
  2. コンテンツリポジトリー タブで 追加 を選択します。Create Deployment ダイアログボックスが表示されます。

    図3.7 スタンドアロンデプロイメントの管理

    スタンドアロンサーバーの Manage Deployments パネル。
  3. ダイアログボックスで、Browse をクリックします。デプロイするファイルを参照し、これを選択してアップロードします。Next をクリックして先に進みます。

    図3.8 デプロイメントの選択

    デプロイメント用のファイルを要求する Upload ダイアログボックス。
  4. Create Deployments ダイアログボックスで表示されるデプロイメント名とランタイム名を確認します。名前を確認したら、Save をクリックしてファイルをアップロードします。

結果

選択したコンテンツがサーバーにアップロードされ、デプロイメント可能になります。

3.3.9. 管理コンソールでのサーバーの新規作成

手順3.3 サーバー設定の新規作成

  1. 管理コンソールの Server Configurations ページに移動します。

    コンソールの上部から ドメイン タブを選択します。

    図3.9 サーバー設定

    サーバー設定
  2. 左側のメニューの Server Configurations をクリックします。
  3. 設定の新規作成

    1. Available Server Configurations の表の上にある Add ボタンを選択します。
    2. 「サーバー構成の 作成 」ダイアログに、基本的なサーバー設定を入力します。
    3. Save ボタンを選択して、新しいサーバー設定を保存します。

    図3.10 設定の新規作成

    設定の新規作成

3.3.10. 管理コンソールを使用したデフォルトログレベルの変更

手順3.4 ロギングレベルの編集

  1. 管理コンソールの Logging パネルに移動します。

    1. 管理対象ドメインを使用している場合は、コンソールの上部にある Configuration タブを選択し、コンソールの左側にあるドロップダウンリストから関連するプロファイルを選択します。
    2. 管理対象ドメインまたはスタンドアロンサーバーの場合は、コンソールの左側にある一覧から Core メニューを展開し、Logging エントリーをクリックします。
    3. コンソールの上部にある Log Categories タブをクリックします。

    図3.11 ロギングパネル

    ロギングパネル
  2. ロガー詳細の編集

    ログカテゴリー テーブルのエントリーの詳細を編集します。
    1. Log Categories テーブルのエントリーを選択し、以下の Details セクションで Edit をクリックします。
    2. Log Level ドロップダウンボックスでカテゴリーのログレベルを設定します。終了したら Save ボタンをクリックします。

結果

該当するカテゴリーのログレベルが更新されます。

3.3.11. 管理コンソールでのサーバーグループの新規作成

手順3.5 サーバーグループの新規作成および追加

  1. Server Groups ビューに移動します。

    コンソールの上部から ドメイン タブを選択します。
  2. 左側の列で Server Groups を選択します。

    図3.12 サーバー グループ ビュー

    管理対象ドメインのサーバー グループ ビュー。
  3. サーバーグループの追加

    追加 ボタンをクリックして、新しいサーバーグループを追加します。
  4. サーバーグループの設定

    1. サーバーグループ名を入力します。
    2. サーバーグループのプロファイルを選択します。
    3. サーバーグループのソケットバインディングを選択します。
    4. Save ボタンをクリックして、新規グループを保存します。

    図3.13 サーバー グループの作成 ダイアログ

    サーバー グループの作成 ダイアログ。main-server-group テンプレートに基づいて、new-server-group という名前のサーバーが作成されます。

結果

新規サーバーグループが管理コンソールに表示されるようになります。

3.3.12. 管理コンソールでのログの表示

JBoss EAP 6 管理コンソールでサーバーおよびアプリケーションログを表示して、エラー、パフォーマンスの問題、およびその他の問題の診断に役立ちます。管理コンソールログビューアーでログを表示できるようにするには、サーバーの jboss.server.log.dir ディレクトリーにある必要があります。JBoss EAP 6 の Log Viewer はユーザー RBAC ロールの割り当ても考慮するため、管理コンソールにログインしているユーザーはアクセスが許可されているログのみを表示できます。

手順3.6 管理コンソールでの JBoss EAP 6 ログの表示

  1. 管理コンソールの上部から Runtime タブを選択します。
    1. 管理対象ドメインを使用している場合は、左側のメニューの Change Server ボタンを使用して、ログを表示する JBoss EAP 6 サーバーを選択します。
  2. 左側の Platform メニューを展開し、Log Viewer を選択します。
  3. 一覧からログファイルを選択し、表示 ボタンをクリックします。
    Download をクリックして、ログファイルをローカルマシンにダウンロードすることもできます。
    注記
    管理コンソールログビューアーは、15MB を超えるログファイルを開こうとすると確認を表示します。
    管理コンソールログビューアーは、非常に大きなログファイル(>100MB)を表示するテキストエディターの代わりとして使用するものではありません。管理コンソールログビューアーで非常に大きなログファイルを開くと Web ブラウザーがクラッシュする可能性があるため、大きなログファイルを常にダウンロードして、テキストエディターで開く必要があります。
  4. 選択したログは、管理コンソールの新しいタブとして開きます。LOG FILES タブに戻り、直前の手順を繰り返すと、他のタブで複数のログファイルを開くことができます。

3.3.13. 管理コンソールでのカスタマーポータルの統合

access.redhat.com インターフェースを使用して、JBoss EAP インストールの管理コンソールを残さずに Red Hat カスタマーポータルのセクションを参照できます。
管理コンソールのトップナビゲーションバーには、Red Hat Access のドロップダウンメニューが含まれます。このメニューをクリックすると、カスタマーポータルへのタスク固有の 3 つのリンクが表示されます。
  • カスタマーポータルの検索
  • ケースの作成
  • ケースの修正
これらの各リンクの機能は、以下で詳しく説明されています。
注記
これらのリンクのいずれかをクリックすると、カスタマーポータルにログインしていない場合は、ダイアログボックスが表示され、ログインが求められます。管理コンソールへのアクセスに使用するブラウザーセッションで、カスタマーポータルにログインする必要があります。あるブラウザーでカスタマーポータルにログインしていて、別のブラウザーを使用して管理コンソールにアクセスする場合は、ログインするよう要求されます。

カスタマーポータルの検索

Search Customer Portal をクリックすると、検索ボックスが含まれるページが表示されます。検索用語またはフレーズを入力して、ナレッジベースのアーティクルを見つけることができます。
検索を実行したら、結果の一覧から項目を選択し、別のペインに表示される記事全体を表示できます。

ケースの作成

Open Case ページでは、新しいサポートケースを作成できます。
新しいサポートケースを作成するには、完了するフォームが表示されます。推奨されるナレッジベースアーティクルの一覧がフォームのほかに提供されています。この一覧は、サポートケースに指定された詳細に基づいて更新されます。

ケースの修正

Modify Case ページでは、既存のサポートケースを表示および変更できます。
結果を絞り込むには、検索を分類またはグループ化解除します。また、ケースの状態(オープン、クローズ、またはいずれか)で検索を限定することができます。
特定のサポートケースを選択したら、サポートケースの詳細を表示または更新し、コメントを追加できます。

3.4. 管理 CLI

3.4.1. 管理コマンドラインインターフェース (CLI)

管理コマンドラインインターフェース (CLI) は、JBoss EAP 6 のコマンドライン管理ツールです。
管理 CLI を使用して、サーバーの起動および停止、アプリケーションのデプロイおよびアンデプロイ、システム設定の構成、他の管理タスクの実行を行います。操作はバッチモードで実行可能で、複数のタスクをグループとして実行できます。

3.4.2. 管理 CLI の起動

手順3.7 Linux または Microsoft Windows Server での CLI の起動

    • Linux での CLI の起動

      EAP_HOME/bin/jboss-cli.sh ファイルをコマンドラインで入力して実行します。
      $ EAP_HOME/bin/jboss-cli.sh
    • Microsoft Windows Server での CLI の起動

      EAP_HOME\bin\jboss-cli.bat ファイルをダブルクリックするか、コマンドラインで以下のコマンドを入力して実行します。
      C:\>EAP_HOME\bin\jboss-cli.bat

3.4.3. 管理 CLI の終了

管理 CLI で、quit コマンドを入力します。
[domain@localhost:9999 /] quit

3.4.4. 管理 CLI を使用した管理対象サーバーインスタンスへの接続

手順3.8 管理対象サーバーインスタンスへの接続

  • connect コマンドの実行

    管理 CLI で connect コマンドを入力します。
    [disconnected /] connect
    Connected to domain controller at localhost:9999
    • Linux システムで管理 CLI を起動するときに管理対象サーバーに接続するには、--connect パラメーターを使用します。
      $ EAP_HOME/bin/jboss-cli.sh --connect
    • --connect パラメーターを使用すると、サーバーのホストとポートを指定できます。ポート値 9999 でアドレス 192.168.0.1 に接続するには、以下が適用されます。
      $ EAP_HOME/bin/jboss-cli.sh --connect --controller=192.168.0.1:9999

3.4.5. 管理 CLI でのヘルプの取得

概要

CLI コマンドを学習したり、何ができるかわからない場合に、ガイダンスが必要になる場合があります。管理 CLI は、一般的なオプションおよびコンテキスト依存オプションに関するヘルプダイアログを特長としています。(操作コンテキストに依存する help コマンドには、スタンドアロンまたはドメインコントローラーへの確立された接続が必要になることに注意してください。接続が確立されない限り、これらのコマンドはリストに表示されません。)

  1. 一般的なヘルプの場合

    管理 CLI で、help コマンドを入力します。
    [standalone@localhost:9999 /] help
  2. 状況依存ヘルプの取得

    管理 CLI で、help -commands extended コマンドを入力します。
    [standalone@localhost:9999 /] help --commands
  3. 特定のコマンドの詳細な説明については、コマンドを入力してから --help を付けてください。
    [standalone@localhost:9999 /] deploy --help

結果

CLI ヘルプ情報が表示されます。

3.4.6. バッチモードでの管理 CLI の使用

概要

バッチ処理により、複数の操作リクエストをシーケンスにグループ化し、ユニットとして一緒に実行できます。シーケンスの操作リクエストのいずれかが失敗すると、操作のグループ全体がロールバックされます。

注記
バッチモードは条件付きステートメントをサポートしません。

手順3.9 バッチモードのコマンドおよび操作

  1. バッチモードの開始

    batch コマンドでバッチモードを 開始 します。
    [standalone@localhost:9999 /] batch
    バッチモードになると、プロンプトにハッシュ (#) が表示されます。
  2. バッチへの操作要求の追加

    バッチモードでは、通常通りに操作リクエストを入力します。操作リクエストは、入力順にバッチに追加されます。
    操作リクエストのフォーマットに関する詳細は、「管理 CLI での操作およびコマンドの使用」 を参照してください。
  3. バッチの実行

    操作リクエストのシーケンス全体を入力したら、run-batch コマンドでバッチを実行します。
    [standalone@localhost:9999 / #] run-batch
    The batch executed successfully.
    バッチ処理で使用できるコマンドの完全リストは、「CLI のバッチモードコマンド」 を参照してください。
  4. 外部ファイルに保存されたバッチコマンド

    頻繁に実行する batch コマンドは、外部テキストファイルに保存できます。batch コマンドの引数として完全パスをファイルに渡すか、run- batch コマンドの引数として直接実行することができます。
    テキストエディターを使用して、batch コマンドファイルを作成できます。各コマンドは 1 行で記載する必要があり、CLI はこれにアクセスできる必要があります。
    以下のコマンドは、myscript.txt ファイルをバッチモードで読み込みます。このファイルのすべてのコマンドを編集または削除できるようになりました。新しいコマンドを挿入することもできます。このバッチセッションでの変更は、myscript.txt ファイルに永続化されません。
    [standalone@localhost:9999 /] batch --file=myscript.txt
    次のコマンドは、myscript.txtファイルに保存されている batch コマンドを即座に実行します。
    [standalone@localhost:9999 /] run-batch --file=myscript.txt

結果

入力された操作リクエストのシーケンスがバッチとして完了します。

3.4.7. CLI のバッチモードコマンド

以下の表は、JBoss EAP 6 CLI で使用できる有効なバッチコマンドのリストを示しています。これらのコマンドはバッチ処理のみに使用できます。

表3.2 CLI のバッチモードコマンド

コマンド名 説明
list-batch 現在のバッチのコマンドおよび操作のリスト
edit-batch-line line-number edited-command 編集する行番号と編集されたコマンドを提供して、現在のバッチの行を編集します。例: edit-batch-line 2 data-source disable --name=ExampleDS.
move-batch-line fromline toline 最初の引数としたい行番号と 2 つ目の引数としての新たポジションを指定して、バッチの行の順番を変えます。例: move-batch-line 3 1
remove-batch-line linenumber 指定の行で batch コマンドを削除します。例: remove-batch-line 3
holdback-batch [batchname]
このコマンドを使用すると、現在のバッチを延期または保存できます。バッチ以外の CLI で何かを突然実行する場合は、これを使用します。この保留されたバッチに戻るには、CLI コマンドラインで再度 batch を入力します。
holdback-batch コマンドの使用中にバッチ名を指定すると、バッチはその名前の下に保存されます。名前付きのバッチに戻るには、コマンド batchname を使用します。batchname なしで batch コマンドを呼び出すと、新しい(名前のない)バッチが開始されます。名前のない保留されたバッチは 1 つのみ存在できます。
保留されたすべてのバッチの一覧を表示するには、batch -l コマンドを使用します。
discard-batch 現在アクティブなバッチを破棄します。

3.4.8. 管理 CLI での操作およびコマンドの使用

手順3.10 要求の作成、設定、および実行

  1. 操作要求の構築

    操作リクエストを使用すると、管理モデルとの低レベルの対話が可能になります。サーバー設定を編集する制御方法を提供します。操作リクエストは 3 つの部分で構成されます。
    • スラッシュ(/)で始まる アドレス
    • コロン(:)で始まる 操作名
    • 括弧()内の任意の パラメーター セット。
    1. アドレスの特定

      設定はアドレス指定可能なリソースの階層ツリーとして表されます。各リソースノードは異なる操作のセットを提供します。アドレスは、操作を実行するリソースノードを指定します。アドレスは以下の構文を使用します。
      /node-type=node-name
      • node-type は、リソースノード種別です。これは、設定 XML の要素名にマッピングされます。
      • node-name はリソースノード名です。これは、設定 XML の要素の name 属性にマッピングされます。
      • リソースツリーの各レベルは、スラッシュ(/)で区切ります。
      設定 XML ファイルを参照して、必要なアドレスを判断します。EAP_HOME/standalone/configuration/standalone.xml ファイルはスタンドアロンサーバーの設定を保持し、EAP_HOME/domain/configuration/domain.xml ファイルおよび EAP_HOME/domain/configuration/host.xml ファイルは管理対象ドメインの設定を保持します。
      注記
      ドメインモードで CLI コマンドを実行するには、ホストおよびサーバー仕様が必要です。例: /host=master/server=server-one/subsystem=logging

      例3.5 操作アドレスの例

      ロギングサブシステムで操作を実行するには、操作要求に以下のアドレスを使用します。
      /subsystem=logging
      Java データソースに対して操作を実行するには、操作要求に以下のアドレスを使用します。
      /subsystem=datasources/data-source=java
    2. 操作の特定

      操作は異なるタイプのリソースノードによって異なります。操作では、以下の構文を使用します。
      :operation-name
      • operation-name はリクエストする操作の名前です。
      スタンドアロンサーバーのリソースアドレスで read-operation-names 操作を使用して、利用可能な操作を一覧表示します。

      例3.6 利用可能な操作

      ロギングサブシステムのすべての利用可能な操作をリストするために、スタンドアロンサーバーの以下の要求を入力します。
      [standalone@localhost:9999 /] /subsystem=logging:read-operation-names
      {
          "outcome" => "success",
          "result" => [
              "add",
              "read-attribute",
              "read-children-names",
              "read-children-resources",
              "read-children-types",
              "read-operation-description",
              "read-operation-names",
              "read-resource",
              "read-resource-description",
              "remove",
              "undefine-attribute",
              "whoami",
              "write-attribute"
          ]
      }
    3. パラメーターの決定

      各操作では異なるパラメーターが必要な場合があります。
      パラメーターは以下の構文を使用します。
      (parameter-name=parameter-value)
      • parameter-name は、パラメーターの名前です。
      • parameter-value は、パラメーターの値です。
      • 複数のパラメーターはコンマ (,) で区切られます。
      必要なパラメーターを確認するには、リソースノードで read-operation-description コマンドを実行し、操作名をパラメーターとして渡します。詳細は、例3.7「操作パラメーターの決定」 を参照してください。

      例3.7 操作パラメーターの決定

      ロギングサブシステムで read-children-types 操作に必要なパラメーターを決定するには、以下のように read-operation-description コマンドを入力します。
      [standalone@localhost:9999 /] /subsystem=logging:read-operation-description(name=read-children-types)
      {
          "outcome" => "success",
          "result" => {
              "operation-name" => "read-children-types",
              "description" => "Gets the type names of all the children under the selected resource",
              "reply-properties" => {
                  "type" => LIST,
                  "description" => "The children types",
                  "value-type" => STRING
              },
              "read-only" => true
          }
      }
  2. 完全操作要求の入力

    アドレス、操作、およびパラメーターが決定されたら、完全操作要求を入力します。

    例3.8 操作要求の例

    [standalone@localhost:9999 /] /subsystem=web/connector=http:read-resource(recursive=true)

結果

管理インターフェースは、サーバー設定の操作要求を実行します。

3.4.9. 管理 CLI で if-else 制御フローを使用

管理 CLI は、条件に基づいて実行するコマンドおよび操作のセットを選択できる if - other 制御フローをサポートします。if 条件は、of キーワードの後に指定された管理コマンドまたは操作の応答を評価するブール式です。
以下の項目をどれでも式に含めることができます。
  • 条件演算子(&&, ||)
  • 比較演算子(>, >=, <=, ==, !=)
  • 式をグループ化および優先付けするかっこ

例3.9 管理 CLI コマンドでの if ステートメントの使用

この例では、システムプロパティー test の読み取りを試みます。outcomesuccess でない場合 (プロパティーが存在しないことを意味します)、システムプロパティーが追加され、true に設定されます。
if (outcome != success) of /system-property=test:read-resource
    /system-property=test:add(value=true)
end-if
上記の条件は、outcome を使用します。 これは、以下のように of キーワードの後の CLI コマンドが実行されると返されます。
[standalone@localhost:9999 /] /system-property=test:read-resource
{
    "outcome" => "failed",
    "failure-description" => "JBAS014807: Management resource '[(\"system-property\" => \"test\")]' not found",
    "rolled-back" => true
}

例3.10 if-else statement with 管理 CLI コマンドの使用

この例では、サーバープロセスの起動タイプ(STANDALONE または DOMAIN)をチェックし、適切な CLI コマンドを実行して ExampleDS データソースを有効にします。
if (result == STANDALONE) of /:read-attribute(name=launch-type)
    /subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled, value=true)
else
    /profile=full/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled, value=true)
end-if
if-else control flow をファイルに指定すると(各行に 1 つずつ)管理 CLI コマンドを指定し、非対話的に実行するために jboss-cli.sh スクリプトに渡すことができます。
EAP_HOME/bin/jboss-cli.sh --connect --file=CLI_FILE
注記
入れ子の if-else ステートメントの使用はサポートされません。

3.4.10. 管理 CLI 設定オプション

管理 CLI 設定ファイル( jboss-cli.xml )は、CLI が起動されるたびにロードされます。$EAP_HOME/bin ディレクトリー、またはシステムプロパティー jboss.cli.config で指定されたディレクトリーのいずれかに存在する必要があります。
default-controller
connect コマンドがパラメーターなしで実行された場合に 接続 するコントローラーの設定。

default-controller パラメーター

host
コントローラーのホスト名。デフォルト: localhost
port
コントローラーに接続するポート番号。デフォルトは 9999 です。
validate-operation-requests
実行のためにリクエストがコントローラーに送信される前に、操作リクエストのパラメーターリストが検証されるかどうかを示します。Type: Booleanデフォルト: true
history
この要素には、コマンドおよび操作の履歴ログの設定が含まれます。

履歴 パラメーター

enabled
履歴 が有効になっているかどうかを示します。Type: Booleanデフォルト: true
file-name
履歴が保存されるファイルの名前。デフォルト = .jboss-cli-history.
file-dir
履歴が保存されるディレクトリー。Default = $USER_HOME
max-size
履歴ファイルの最大サイズ。デフォルトは 500 です。
resolve-parameter-values
操作リクエストをコントローラーに送信する前にコマンド引数(または操作パラメーター)の値として指定されたシステムプロパティーを解決するか、サーバー側で解決が発生するようにします。Type: BooleanDefault = false.
connection-timeout
コントローラーとの接続を確立できる時間。タイプ: 整数デフォルトは 5000 秒です。
ssl
この要素には、SSL に使用されるキーストアとトラストストアの設定が含まれます。
警告
Red Hat は、影響を受けるすべてのパッケージで TLSv1.1 または TLSv1.2 を利用するために SSL を明示的に無効にすることを推奨します。

SSL パラメーター

vault
タイプ: vaultType
key-store
タイプ: 文字列
key-store-password
タイプ: 文字列
alias
タイプ: 文字列
key-password
タイプ: 文字列
trust-store
タイプ: 文字列
trust-store-password
タイプ: 文字列
modify-trust-store
true に設定すると、認識されない証明書が受信されると、CLI はユーザーにプロンプトを表示し、トラストストアに保存できるようにします。Type: Booleanデフォルト: true

vaultType

code および module の指定がない場合、デフォルトの実装が使用されます。code は指定され、module は指定されていない場合、Picketbox モジュールで指定されたクラスを探します。モジュール コード が指定されている場合、「module」によって指定されたモジュールの コードによって指定されたクラスを探します。
code
タイプ: 文字列
module
型: 文字列
silent
情報およびエラーメッセージをターミナルに出力するかどうかを指定します。false が指定されている場合でも、設定が許可したり、出力ターゲットが > を使用してコマンドラインの一部として指定された場合、メッセージはロガーを使用してログに記録されます。デフォルトは False です。

3.4.11. 管理 CLI コマンドのリファレンス

概要

トピック 「管理 CLI でのヘルプの取得」 では、一般的なオプションおよびコンテキスト機密オプションに関するヘルプダイアログなど、管理 CLI ヘルプ機能にアクセスする方法を説明します。help コマンドは操作コンテキストに依存し、スタンドアロンまたはドメインコントローラーへの接続が確立されている必要があります。接続が確立されない限り、これらのコマンドはリストに表示されません。

表3.3

コマンド 説明
batch 新しいバッチを作成してバッチモードを開始するか、既存の保留中のバッチに応じてバッチモードを再度アクティブにします。保留されたバッチがない場合は、引数なしで呼び出されると新しいバッチが開始されます。名前のない保留されたバッチがある場合、このコマンドは再度アクティベートします。名前付きの保留されたバッチがある場合は、保留中のバッチ名を引数として指定することでアクティベートできます。
cd 現在のノードパスを引数に変更します。現在のノードパスは、アドレス部分を含まない操作要求のアドレスとして使用されます。操作要求にアドレスが含まれる場合、含まれるアドレスは現在のノードパスに対して相対的であると見なされます。現在のノードパスはノードタイプで終了します。この場合、logging:read-resource などの node-name を指定する操作を実行するには十分です。
明確な 画面を消去します。
command 既存の汎用タイプコマンドを追加、削除、および一覧表示できます。汎用型コマンドは、特定のノード型に割り当てられ、その型のインスタンスで実行できる操作の実行を可能にします。また、既存のインスタンスでその型によって公開されるプロパティーの編集も可能にします。
connect 指定されたホストおよびポートのコントローラに接続します。
connection-factory 接続ファクトリーを定義します。
data-source データソースサブシステムで JDBC データソース設定を管理します。
deploy ファイルパスで指定されたアプリケーションをデプロイするか、リポジトリーで無効にされている既存のアプリケーションを有効にします。引数を付けずに実行すると、既存のデプロイメントがすべて表示されます。
echo
JBoss EAP 6.4 からは、echo コマンドは指定されたテキストに出力されます。テキストはそのまま出力されるため、変数の使用は利用できません。
例:
echo Phase one complete
help ヘルプメッセージを表示します。--commands 引数と共に使用して、指定のコマンドにコンテキストの機密結果を提供できます。
history メモリーの CLI コマンド履歴を表示し、履歴の拡張が有効または無効であるかを表示します。引数と共に使用すると、必要に応じて履歴拡張を消去、無効化、および有効にできます。
jms-queue メッセージングサブシステムで JMS キューを定義します。
jms-topic メッセージングサブシステムで JMS トピックを定義します。
ls ノードパスの内容を一覧表示します。デフォルトでは、ターミナルの幅全体を使用して結果が列に出力されます。-l スイッチを使用すると、1 行に 1 つの名前で結果が出力されます。
pwd 現在の作業ノードの完全ノードパスを出力します。
quit コマンドラインインターフェースを終了します。
read-attribute 値を表示し、引数によっては管理されたリソースの属性の詳細も表示します。
read-operation 指定された操作の詳細を表示します。 指定がない場合は使用できる操作をすべて表示します。
undeploy 目的のアプリケーションの名前を指定して実行する場合にアプリケーションをアンデプロイします。引数を指定して実行し、アプリケーションをリポジトリーから削除することもできます。アプリケーションの指定なしで実行された既存デプロイメントの一覧を出力します。
version アプリケーションサーバーバージョンと環境情報を出力します。
xa-data-source データソースサブシステムで JDBC XA データソース設定を管理します。

3.4.12. 管理 CLI 操作のリファレンス

管理 CLI の操作の公開

管理 CLI の操作は、トピック 「管理 CLI を使用した操作名の表示」 で説明されている read-operation-names 操作を使用すると公開できます。操作の説明は、トピック 「管理 CLI を使用した操作説明の表示」 で説明されている read-operation-descriptions 操作を使用すると表示できます。

表3.4 管理 CLI の操作

操作名 説明
add-namespace namespaces 属性のマップに名前空間接頭辞のマッピングを追加します。
add-schema-location schema-locations 属性のマップにスキーマロケーションマッピングを追加します。
delete-snapshot snapshots ディレクトリーからサーバー設定のスナップショットを削除します。
full-replace-deployment 以前にアップロードしたデプロイメントコンテンツを使用可能なコンテンツの一覧に追加し、ランタイムの同じ名前の既存コンテンツを置き換え、利用可能なコンテンツの一覧から置き換えたコンテンツを削除します。詳細は、リンクを参照してください。
list-snapshots snapshots ディレクトリーに保存されているサーバー設定のスナップショットを一覧表示します。
read-attribute 選択したリソースの属性の値を表示します。
read-children-names 指定の型を持つ選択したリソースの配下にある子の名前をすべて表示します。
read-children-resources 指定のタイプであるすべての子リソースに関する情報を表示します。
read-children-types 選択したリソースの配下にある子すべての型名を表示します。
read-config-as-xml 現在の設定を読み込み、XML 形式で表示します。
read-operation-description 特定のリソースに対する操作の詳細を表示します。
read-operation-names 特定のリソースに対する全操作の名前を表示します。
read-resource モデルリソースの属性値および任意の子リソースの基本情報もしくは詳細情報を表示します。
read-resource-description リソースの属性、子リソースのタイプ、および操作についての詳細を表示します。
reload すべてのサービスを終了し、再起動することでサーバーをリロードします。
remove-namespace namespaces 属性マップから名前空間接頭辞のマッピングを削除します。
remove-schema-location schema-locations 属性マップからスキーマロケーションマッピングを削除します。
replace-deployment ランタイムの既存のコンテンツを新しいコンテンツに置き換えます。新しいコンテンツを事前にデプロイメントコンテンツリポジトリーにアップロードする必要があります。
resolve-expression 式を、式へ解析可能な入力または文字列として許可し、ローカルのシステムプロパティーおよび環境変数に対して解決する操作です。
resolve-internet-address インターフェース解決基準を取り、その基準と一致するローカルマシンの IP アドレスを見つけます。一致する IP アドレスが見つからない場合は失敗します。
server-set-restart-required 再起動が必要なモードにサーバーを設定します。
shutdown System.exit(0)への呼び出しにより、サーバーをシャットダウンします
start-servers 現在実行されていないすべての設定済みサーバーを管理対象ドメインで起動します。
stop-servers 管理対象ドメインで現在実行しているすべてのサーバーを停止します。
take-snapshot サーバー設定のスナップショットを作成し、snapshots ディレクトリーに保存します。
upload-deployment-bytes 含まれたバイトアレイのデプロイメントコンテンツをデプロイメントコンテンツリポジトリーに追加すべきであることを示します。この操作は、コンテンツをランタイムにデプロイすべきかは指定していません。
upload-deployment-stream 対象入力ストリームインデックスで利用可能なデプロイメントコンテンツをデプロイメントコンテンツレポジトリーに追加すべきか指定します。この操作は、コンテンツをランタイムにデプロイすべきかは指定していません。
upload-deployment-url 対象の URL で利用可能なデプロイメントコンテンツをデプロイメントコンテンツリポジトリーに追加すべきかを指定します。この操作は、コンテンツをランタイムにデプロイすべきかは指定していません。
validate-address 操作のアドレスを検証します。
write-attribute 選択したリソースの属性値を設定します。

3.4.13. 管理 CLI におけるプロパティーの置換

JBoss EAP 6 は、管理インターフェースの Preset 要素およびプロパティー式の使用をサポートします。これらの式は、コマンドの実行中に定義された値に解決されます。
以下のプロパティーは式に置き換えることができます。
  • 操作リクエストの操作アドレス部分(ノードタイプまたは名前として)。
  • 操作名。
  • 操作パラメーター名。
  • ヘッダー名および値。
  • コマンド名。
  • コマンド引数名。
デフォルトでは、CLI は引数またはパラメーターの値以外の各行に対してプロパティー置換を実行します。引数およびパラメーターの値は起動時にサーバーで解決されます。引数またはパラメーターの値のプロパティー置換を管理 CLI クライアントで行い、解決された値をサーバーに送信する必要がある場合は、以下の手順を実行します。

手順3.11 管理 CLI でのプロパティー置換の有効化

  1. EAP_HOME/bin/jboss-cli.xml ファイルを開きます。
  2. resolve-parameter-values パラメーターを見つけ、値を true に変更します(デフォルトは falseです)。
    <!-- whether to resolve system properties specified as command argument or operation parameter values in the Management CLI VM before sending the operation requests to the controller -->
        <resolve-parameter-values>true</resolve-parameter-values>
    
この要素は、操作リクエストのパラメーターの値とコマンド引数の値のみに影響します。他のコマンドラインには影響しません。これは、パラメーター/引数の値でない限り、resolve-parameter-values 要素の値に関係なく、コマンドラインに存在するシステムプロパティーが行の解析中に解決されることを意味します。
他の管理 CLI の設定オプションについては、「管理 CLI 設定オプション」 を参照してください。
管理 CLI コマンドで使用されるシステム値は、すでに定義されている必要があることに注意してください。管理 CLI インスタンスの起動時に、--properties=/path/to/file.properties 引数または 1 つ以上の -Dkey=VALUE パラメーターを含める必要があります。プロパティーファイルは標準の key=value 構文を使用します。
プロパティーキーは、構文 ${MY_VAR} を使用して管理 CLI コマンドに表示されます。

例3.11 例: 管理 CLI コマンドでのプロパティーの使用

/subsystem=datasources/data-source=${datasourcename}:add(connection-url=jdbc:oracle:thin:@server:1521:ora1, jndi-name=java:/jboss/${name}, driver-name=${drivername})

3.5. 管理 CLI 操作

3.5.1. 管理 CLI によるリソースの属性の表示

概要

read-attribute 操作は、選択した属性の現在のランタイム値を読み取るために使用されるグローバル操作です。これは、ユーザーが設定した値のみを公開するために使用できます(デフォルト値または未定義の値を無視します)。要求プロパティーには、以下のパラメーターが含まれます。

要求プロパティー

name
選択したリソース下で値を取得する属性の名前。
include-defaults
ユーザーが設定した属性のみを表示したり、デフォルト値を無視するように操作結果を制限したりするために false に設定されるブール値パラメーターです。

手順3.12 選択した属性の現在のランタイム値を表示

  • read-attribute 操作の実行

    管理 CLI で read-attribute 操作を使用してリソース属性の値を表示します。操作リクエストの詳細は、「管理 CLI での操作およびコマンドの使用」 のトピックを参照してください。
    [standalone@localhost:9999 /]:read-attribute(name=name-of-attribute)
read-attribute 操作の利点は、特定の属性の現在のランタイム値を公開する機能です。read-resource 操作でも同様の結果が得られますが、include-runtime 要求プロパティーを追加した場合のみ、そのノードで利用可能な全リソース一覧の一部としてしか実行できません。read-attribute 操作は、以下の例のように、詳細な属性クエリーを行うことを目的としています。

例3.12 read-attribute 操作を実行してパブリックインターフェース IP を公開します。

公開する属性の名前が分かっている場合は、read-attribute を使用して現在のランタイムの正確な値を返すことができます。
[standalone@localhost:9999 /] /interface=public:read-attribute(name=resolved-address)
{
    "outcome" => "success",
    "result" => "127.0.0.1"
}
resolved-address 属性はランタイムの値であるため、標準の read-resource 操作の結果には表示されません。
[standalone@localhost:9999 /] /interface=public:read-resource                        
{
    "outcome" => "success",
    "result" => {
        "any" => undefined,
        "any-address" => undefined,
        "any-ipv4-address" => undefined,
        "any-ipv6-address" => undefined,
        "inet-address" => expression "${jboss.bind.address:127.0.0.1}",
        "link-local-address" => undefined,
        "loopback" => undefined,
        "loopback-address" => undefined,
        "multicast" => undefined,
        "name" => "public",
        "nic" => undefined,
        "nic-match" => undefined,
        "not" => undefined,
        "point-to-point" => undefined,
        "public-address" => undefined,
        "site-local-address" => undefined,
        "subnet-match" => undefined,
        "up" => undefined,
        "virtual" => undefined
    }
}
resolved-address およびその他のランタイム値を表示するには、include-runtime リクエストプロパティーを使用する必要があります。
[standalone@localhost:9999 /] /interface=public:read-resource(include-runtime=true)
{
    "outcome" => "success",
    "result" => {
        "any" => undefined,
        "any-address" => undefined,
        "any-ipv4-address" => undefined,
        "any-ipv6-address" => undefined,
        "inet-address" => expression "${jboss.bind.address:127.0.0.1}",
        "link-local-address" => undefined,
        "loopback" => undefined,
        "loopback-address" => undefined,
        "multicast" => undefined,
        "name" => "public",
        "nic" => undefined,
        "nic-match" => undefined,
        "not" => undefined,
        "point-to-point" => undefined,
        "public-address" => undefined,
        "resolved-address" => "127.0.0.1",
        "site-local-address" => undefined,
        "subnet-match" => undefined,
        "up" => undefined,
        "virtual" => undefined
    }
}

結果

現在のランタイム属性値が表示されます。

3.5.2. 管理 CLI でのアクティブユーザーの表示

概要

whoami 操作は、現在アクティブなユーザーの属性を識別するために使用されるグローバル操作です。この操作は、ユーザー名の ID と、割り当てられたレルムを公開します。whoami 操作は、管理者が複数のレルムで複数のユーザーアカウントを管理する場合や、複数のターミナルセッションおよびユーザーアカウントを持つドメインインスタンス全体でアクティブなユーザーを追跡するのに役立ちます。

手順3.13 whoami 操作を使用した管理 CLI でのアクティブユーザーの表示

  • whoami 操作の実行

    管理 CLI で whoami 操作を使用してアクティブなユーザーアカウントを表示します。
    [standalone@localhost:9999 /] :whoami
    以下の例は、スタンドアロンサーバーインスタンスで whoami 操作を使用して、アクティブなユーザーが username で、ユーザーが ManagementRealm レルムに割り当てられていることを示しています。

    例3.13 スタンドアロンインスタンスでの whoami の使用

    [standalone@localhost:9999 /]:whoami
    {
        "outcome" => "success",
        "result" => {"identity" => {
            "username" => "username",
            "realm" => "ManagementRealm"
        }}
    }
    

結果

現在アクティブなユーザーのアカウントが表示されます。

3.5.3. 管理 CLI でのシステムおよびサーバー情報の表示

手順3.14 管理 CLI でのシステムおよびサーバー情報の表示

  • version コマンドの実行

    管理 CLI で version コマンドを入力します。
    [domain@localhost:9999 /] version

結果

アプリケーションサーバーのバージョンと環境情報が表示されます。

3.5.4. 管理 CLI を使用した操作説明の表示

手順3.15 管理 CLI でのコマンドの実行

  • read-operation-description 操作を実行します。

    管理 CLI から read-operation-description を使用して、操作に関する情報を表示します。操作には、表示する操作を示すために、キーと値のペアの形式で追加のパラメーターが必要です。操作リクエストの詳細は、「管理 CLI での操作およびコマンドの使用」 のトピックを参照してください。
    [standalone@localhost:9999 /]:read-operation-description(name=name-of-operation)

例3.14 list-snapshots 操作の説明表示

以下の例は、list-snapshots 操作を説明する方法を示しています。
[standalone@localhost:9999 /] :read-operation-description(name=list-snapshots)
{
    "outcome" => "success",
    "result" => {
        "operation-name" => "list-snapshots",
        "description" => "Lists the snapshots",
        "request-properties" => {},
        "reply-properties" => {
            "type" => OBJECT,
            "value-type" => {
                "directory" => {
                    "type" => STRING,
                    "description" => "The directory where the snapshots are stored",
                    "expressions-allowed" => false,
                    "required" => true,
                    "nillable" => false,
                    "min-length" => 1L,
                    "max-length" => 2147483647L
                },
                "names" => {
                    "type" => LIST,
                    "description" => "The names of the snapshots within the snapshots directory",
                    "expressions-allowed" => false,
                    "required" => true,
                    "nillable" => false,
                    "value-type" => STRING
                }
            }
        },
        "access-constraints" => {"sensitive" => {"snapshots" => {"type" => "core"}}},
        "read-only" => false
    }
}

結果

選択した操作に関する説明が表示されます。

3.5.5. 管理 CLI を使用した操作名の表示

手順3.16 管理 CLI でのコマンドの実行

  • read-operation-names 操作を実行します。

    管理 CLI から read-operation-names 操作を使用して、利用可能な操作の名前を表示します。操作リクエストの詳細は、「管理 CLI での操作およびコマンドの使用」 のトピックを参照してください。
    [standalone@localhost:9999 /]:read-operation-names

例3.15 管理 CLI を使用した操作名の表示

以下の例は、read-operation-names 操作を説明する方法を示しています。
[standalone@localhost:9999 /]:read-operation-names
{
    "outcome" => "success",
    "result" => [
        "add-namespace",
        "add-schema-location",
        "delete-snapshot",
        "full-replace-deployment",
        "list-snapshots",
        "read-attribute",
        "read-children-names",
        "read-children-resources",
        "read-children-types",
        "read-config-as-xml",
        "read-operation-description",
        "read-operation-names",
        "read-resource",
        "read-resource-description",
        "reload",
        "remove-namespace",
        "remove-schema-location",
        "replace-deployment",
        "resolve-expression",
        "resolve-internet-address",
        "server-set-restart-required",
        "shutdown",
        "take-snapshot",
        "undefine-attribute",
        "upload-deployment-bytes",
        "upload-deployment-stream",
        "upload-deployment-url",
        "validate-address",
        "validate-operation",
        "whoami",
        "write-attribute"
    ]
}

結果

利用可能な操作名が表示されます。

3.5.6. 管理 CLI を使用した利用可能なリソースの表示

概要

read-resource 操作は、リソース値を読み取るために使用されるグローバル操作です。これは、現在のノードまたは子ノードのリソースに関する基本情報または完全な情報のいずれかを、操作結果の範囲を拡張するか、または制限する要求プロパティーの範囲を公開するために使用できます。要求プロパティーには、以下のパラメーターが含まれます。

要求プロパティー

recursive
子リソースに関する詳細情報を再帰的に含めるかどうか。
recursive-depth
含まれる子リソースの情報の深さ。
proxies
再帰クエリーにリモートリソースを含めるかどうか。たとえば、ドメインコントローラーのクエリーにスレーブホストコントローラーからのホストレベルのリソースを追加します。
include-runtime
永続設定から取得されない属性値などの応答にランタイム属性を含めるかどうか。この要求プロパティーはデフォルトで false に設定されます。
include-defaults
デフォルト属性の読み取りを有効または無効にするブール値要求プロパティー。false に設定すると、ユーザーが設定した属性のみが返され、未定義のままの属性は無視されます。

管理 CLI でのコマンドの実行

read-resource 操作を実行します。

管理 CLI で read-resource 操作を使用して利用可能なリソースを表示します。

[standalone@localhost:9999 /]:read-resource
以下の例は、スタンドアロンサーバーインスタンスで read-resource 操作を使用して一般的なリソース情報を公開する方法を示しています。結果は standalone.xml 設定ファイルに類似し、サーバーインスタンスにインストールまたは設定されたシステムリソース、拡張、インターフェース、およびサブシステムを表示します。これらはさらに直接クエリーできます。

例3.16 ルートレベルでの read-resource 操作の使用

[standalone@localhost:9999 /]:read-resource
{
    "outcome" => "success",
    "result" => {
        "management-major-version" => 1,
        "management-micro-version" => 0,
        "management-minor-version" => 7,
        "name" => "localhost",
        "namespaces" => [],
        "product-name" => "EAP",
        "product-version" => "6.4.0.GA",
        "profile-name" => undefined,
        "release-codename" => "Janus",
        "release-version" => "7.5.0.Final-redhat-17",
        "schema-locations" => [],
        "core-service" => {
            "service-container" => undefined,
            "server-environment" => undefined,
            "module-loading" => undefined,
            "platform-mbean" => undefined,
            "management" => undefined,
            "patching" => undefined
        },
        "deployment" => undefined,
        "deployment-overlay" => undefined,
        "extension" => {
            "org.jboss.as.clustering.infinispan" => undefined,
            "org.jboss.as.connector" => undefined,
            "org.jboss.as.deployment-scanner" => undefined,
            "org.jboss.as.ee" => undefined,
            "org.jboss.as.ejb3" => undefined,
            "org.jboss.as.jaxrs" => undefined,
            "org.jboss.as.jdr" => undefined,
            "org.jboss.as.jmx" => undefined,
            "org.jboss.as.jpa" => undefined,
            "org.jboss.as.jsf" => undefined,
            "org.jboss.as.logging" => undefined,
            "org.jboss.as.mail" => undefined,
            "org.jboss.as.naming" => undefined,
            "org.jboss.as.pojo" => undefined,
            "org.jboss.as.remoting" => undefined,
            "org.jboss.as.sar" => undefined,
            "org.jboss.as.security" => undefined,
            "org.jboss.as.threads" => undefined,
            "org.jboss.as.transactions" => undefined,
            "org.jboss.as.web" => undefined,
            "org.jboss.as.webservices" => undefined,
            "org.jboss.as.weld" => undefined
        },
        "interface" => {
            "management" => undefined,
            "public" => undefined,
            "unsecure" => undefined
        },
        "path" => {
            "jboss.server.temp.dir" => undefined,
            "user.home" => undefined,
            "jboss.server.base.dir" => undefined,
            "java.home" => undefined,
            "user.dir" => undefined,
            "jboss.server.data.dir" => undefined,
            "jboss.home.dir" => undefined,
            "jboss.server.log.dir" => undefined,
            "jboss.server.config.dir" => undefined,
            "jboss.controller.temp.dir" => undefined
        },
        "socket-binding-group" => {"standard-sockets" => undefined},
        "subsystem" => {
            "jaxrs" => undefined,
            "jsf" => undefined,
            "jca" => undefined,
            "jmx" => undefined,
            "threads" => undefined,
            "webservices" => undefined,
            "sar" => undefined,
            "remoting" => undefined,
            "infinispan" => undefined,
            "weld" => undefined,
            "ejb3" => undefined,
            "transactions" => undefined,
            "datasources" => undefined,
            "deployment-scanner" => undefined,
            "logging" => undefined,
            "jdr" => undefined,
            "pojo" => undefined,
            "jpa" => undefined,
            "naming" => undefined,
            "ee" => undefined,
            "mail" => undefined,
            "web" => undefined,
            "resource-adapters" => undefined,
            "security" => undefined
        },
        "system-property" => undefined
    }
}

子ノードに対する read-resource 操作を実行します。

read-resource 操作を実行して、ルートから子ノードをクエリーできます。オペレーションの構造は最初に公開するノードを定義し、続いてこれに対して実行する操作を追加します。

[standalone@localhost:9999 /]/subsystem=web/connector=http:read-resource
以下の例では、特定の Web サブシステムノードに read-resource 操作を行うと、Web サブシステムコンポーネントに関する特定のリソース情報を公開できます。

例3.17 ルートノードからの子ノードリソースの公開

[standalone@localhost:9999 /] /subsystem=web/connector=http:read-resource                      
{
    "outcome" => "success",
    "result" => {
        "configuration" => undefined,
        "enable-lookups" => false,
        "enabled" => true,
        "executor" => undefined,
        "max-connections" => undefined,
        "max-post-size" => 2097152,
        "max-save-post-size" => 4096,
        "name" => "http",
        "protocol" => "HTTP/1.1",
        "proxy-name" => undefined,
        "proxy-port" => undefined,
        "redirect-port" => 443,
        "scheme" => "http",
        "secure" => false,
        "socket-binding" => "http",
        "ssl" => undefined,
        "virtual-server" => undefined
    }
}
cd コマンドを使用して子ノードに移動し、read-resource 操作を直接実行しても、同じ結果が得られます。

例3.18 ディレクトリーの変更による子ノードリソースの公開

[standalone@localhost:9999 /] cd subsystem=web
[standalone@localhost:9999 subsystem=web] cd connector=http
[standalone@localhost:9999 connector=http] :read-resource
{
    "outcome" => "success",
    "result" => {
        "configuration" => undefined,
        "enable-lookups" => false,
        "enabled" => true,
        "executor" => undefined,
        "max-connections" => undefined,
        "max-post-size" => 2097152,
        "max-save-post-size" => 4096,
        "name" => "http",
        "protocol" => "HTTP/1.1",
        "proxy-name" => undefined,
        "proxy-port" => undefined,
        "redirect-port" => 443,
        "scheme" => "http",
        "secure" => false,
        "socket-binding" => "http",
        "ssl" => undefined,
        "virtual-server" => undefined
    }
}

再帰的なパラメーターを使用して結果にアクティブな値を含める

再帰的なパラメーターを使用すると、すべての属性の値 (永続的でない値、起動時に渡された値、ランタイムモデルでアクティブな他の属性など) を公開できます。

[standalone@localhost:9999 /]/interface=public:read-resource(include-runtime=true)
以前の例と比較すると、include-runtime 要求プロパティーを含めると、HTTP コネクターによって送受信されたバイトなどの追加のアクティブな属性が公開されます。

例3.19 include-runtime パラメーターを使用して追加のアクティブな値を公開

[standalone@localhost:9999 /] /subsystem=web/connector=http:read-resource(include-runtime=true)
{
    "outcome" => "success",
    "result" => {
        "any" => undefined,
        "any-address" => undefined,
        "any-ipv4-address" => undefined,
        "any-ipv6-address" => undefined,
        "inet-address" => expression "${jboss.bind.address:127.0.0.1}",
        "link-local-address" => undefined,
        "loopback" => undefined,
        "loopback-address" => undefined,
        "multicast" => undefined,
        "name" => "public",
        "nic" => undefined,
        "nic-match" => undefined,
        "not" => undefined,
        "point-to-point" => undefined,
        "public-address" => undefined,
        "resolved-address" => "127.0.0.1",
        "site-local-address" => undefined,
        "subnet-match" => undefined,
        "up" => undefined,
        "virtual" => undefined
    }
}

3.5.7. 管理 CLI を使用した利用可能なリソース説明の表示

管理 CLI でのコマンドの実行

read-resource-description 操作を実行します。

管理 CLI から read-resource-description 操作を使用して、利用可能なリソースを読み取りおよび表示します。操作リクエストの詳細は、「管理 CLI での操作およびコマンドの使用」 のトピックを参照してください。

[standalone@localhost:9999 /]:read-resource-description

オプションパラメーターの使用

read-resource-description 操作では、追加のパラメーターを使用できます。

  • operations パラメーターを使用して、リソースの操作の説明を追加します。
    [standalone@localhost:9999 /]:read-resource-description(operations=true)
  • 継承された パラメーターを使用して、リソースの継承された操作の説明を追加または除外します。デフォルトの状態は true です。
    [standalone@localhost:9999 /]:read-resource-description(inherited=false)
  • recursive パラメーターを使用して、子リソースの再帰的な記述を追加します。
    [standalone@localhost:9999 /]:read-resource-description(recursive=true)
  • locale パラメーターを使用して、リソースの説明を取得します。null の場合、デフォルトのロケールが使用されます。
    [standalone@localhost:9999 /]:read-resource-description(locale=true)
  • access-control パラメーターを使用して、このリソースの現在の呼び出し元が持つパーミッションに関する情報を取得します。
    [standalone@localhost:9999 /]:read-resource-description(access-control=none)

結果

利用可能なリソースの説明が表示されます。

3.5.8. 管理 CLI を使用したアプリケーションサーバーのリロード

管理 CLI で reload 操作を使用してすべてのサービスをシャットダウンし、JBoss EAP インスタンスを再起動します。JVM 自体は再起動されないことに注意してください。リロード が完了すると、管理 CLI は自動的に再接続します。
操作リクエストの詳細は、「管理 CLI での操作およびコマンドの使用」 を参照してください。

例3.20 アプリケーションのリロード

[standalone@localhost:9999 /]reload
{"outcome" => "success"}

3.5.9. 管理 CLI を使用したアプリケーションサーバーのシャットダウン

手順3.17 アプリケーションサーバーのシャットダウン

  • シャットダウン 操作の実行

    • 管理 CLI で シャットダウン 操作を使用し、System.exit(0) システムコールを介してサーバーをシャットダウンします。操作リクエストの詳細は、「管理 CLI での操作およびコマンドの使用」 のトピックを参照してください。
      • スタンドアロンモードでは、次のコマンドを使用します。
        [standalone@localhost:9999 /]shutdown
      • ドメインモードでは、適切なホスト名を指定して次のコマンドを使用します。
        [domain@localhost:9999 /]shutdown --host=master
    • デタッチした CLI インスタンスへ接続し、サーバーをシャットダウンするには、次のコマンドを実行します。
      jboss-cli.sh --connect command=shutdown
      
    • リモート CLI インスタンスへ接続し、サーバーをシャットダウンするには、次のコマンドを実行します。
      [disconnected /] connect IP_ADDRESS
      [standalone@IP_ADDRESS:9999 /] shutdown
      
      IP_ADDRESS はインスタンスの IP アドレスに置き換えます。
注記
shutdown コマンドに --restart=true 引数を追加すると(以下に示されるように)、サーバーを再起動するよう要求されます。
[standalone@localhost:9999 /]shutdown --restart=true

結果

アプリケーションサーバーがシャットダウンしている。ランタイムが利用できないため、管理 CLI は切断されます。

3.5.10. 管理 CLI での属性の設定

概要

write-attribute 操作は、選択したリソース属性の書き込みまたは変更に使用されるグローバル操作です。操作を使用して永続的な変更を行い、管理対象サーバーインスタンスの設定を変更できます。要求プロパティーには、以下のパラメーターが含まれます。

要求プロパティー

名前
選択されたリソース下で値を設定する属性の名前。
選択したリソース下の属性の必要な値。基礎となるモデルが null 値をサポートする場合は null にすることができます。

手順3.18 管理 CLI でのリソース属性の設定

  • write-attribute 操作の実行

    管理 CLI で write-attribute 操作を使用してリソース属性の値を変更します。操作は、リソースの子ノードまたは完全なリソースパスが指定された管理 CLI のルートノードで実行できます。

例3.21 write-attribute 操作を使用したデプロイメントスキャナーの無効化

以下の例は、write-attribute 操作を使用してデプロイメントスキャナーを無効にします。タブ補完を使用して正しいリソースパスの設定を支援することにより、操作はルートノードから実行されます。
[standalone@localhost:9999 /] /subsystem=deployment-scanner/scanner=default:write-attribute(name=scan-enabled,value=false)
{"outcome" => "success"}
操作の結果は、read-attribute 操作を直接使用して確認できます。
[standalone@localhost:9999 /] /subsystem=deployment-scanner/scanner=default:read-attribute(name=scan-enabled)
{
    "outcome" => "success",
    "result" => false
}
結果は、read-resource 操作ですべてのノードで利用可能なリソース属性を一覧表示することによって確認することもできます。以下の例では、この特定の設定は scan-enabled 属性が false に設定されていることを示しています。
[standalone@localhost:9999 /] /subsystem=deployment-scanner/scanner=default:read-resource                                 
{
    "outcome" => "success",
    "result" => {
        "auto-deploy-exploded" => false,
        "auto-deploy-xml" => true,
        "auto-deploy-zipped" => true,
        "deployment-timeout" => 600,
        "path" => "deployments",
        "relative-to" => "jboss.server.base.dir",
        "scan-enabled" => false,
        "scan-interval" => 5000
    }
}

結果

リソース属性が更新されます。

3.5.11. 管理 CLI を使用したシステムプロパティーの設定

手順3.19 管理 CLI を使用したシステムプロパティーの設定

  1. JBoss EAP サーバーを起動します。
  2. ご使用のオペレーティングシステム向けのコマンドを使用して、管理 CLI を起動します。
    Linux の場合
    EAP_HOME/bin/jboss-cli.sh --connect
    Windows の場合:
    EAP_HOME\bin\jboss-cli.bat --connect
  3. システムプロパティーを追加します。
    使用するコマンドは、スタンドアロンサーバーと管理対象ドメインのどちらを実行しているかによって異なります。管理対象ドメインを実行している場合は、そのドメインで実行しているすべてのサーバーへシステムプロパティーを追加できます。
    • 以下の構文を使用して、スタンドアロンサーバーにシステムプロパティーを追加します。
      /system-property=PROPERTY_NAME:add(value=PROPERTY_VALUE)

      例3.22 システムプロパティーをスタンドアロンサーバーへ追加

      [standalone@localhost:9999 /] /system-property=property.mybean.queue:add(value=java:/queue/MyBeanQueue)
      {"outcome" => "success"}
    • 以下の構文を使用して、管理対象ドメインのすべてのホストおよびサーバーにシステムプロパティーを追加します。
      /system-property=PROPERTY_NAME:add(value=PROPERTY_VALUE)

      例3.23 管理対象ドメインのすべてのサーバーへシステムプロパティーを追加

      [domain@localhost:9999 /] /system-property=property.mybean.queue:add(value=java:/queue/MyBeanQueue)
      {
          "outcome" => "success",
          "result" => undefined,
          "server-groups" => {"main-server-group" => {"host" => {"master" => {
              "server-one" => {"response" => {"outcome" => "success"}},
              "server-two" => {"response" => {"outcome" => "success"}}
          }}}}
      }
    • 以下の構文を使用して、管理対象ドメインのホストおよびそのサーバーインスタンスにシステムプロパティーを追加します。
      /host=master/system-property=PROPERTY_NAME:add(value=PROPERTY_VALUE)

      例3.24 システムプロパティーをドメインのホストおよびそのサーバーへ追加

      [domain@localhost:9999 /] /host=master/system-property=property.mybean.queue:add(value=java:/queue/MyBeanQueue)
      {
          "outcome" => "success",
          "result" => undefined,
          "server-groups" => {"main-server-group" => {"host" => {"master" => {
              "server-one" => {"response" => {"outcome" => "success"}},
              "server-two" => {"response" => {"outcome" => "success"}}
          }}}}
      }
    • 以下の構文を使用して、管理対象ドメインのサーバーインスタンスにシステムプロパティーを追加します。
      /host=master/server-config=server-one/system-property=PROPERTY_NAME:add(value=PROPERTY_VALUE)

      例3.25 システムプロパティーを管理対象ドメインのサーバーインスタンスへ追加

      [domain@localhost:9999 /] /host=master/server-config=server-one/system-property=property.mybean.queue:add(value=java:/queue/MyBeanQueue)
      {
          "outcome" => "success",
          "result" => undefined,
          "server-groups" => {"main-server-group" => {"host" => {"master" => {"server-one" => {"response" => {"outcome" => "success"}}}}}}
      }
      
  4. システムプロパティーを読み取ります。
    使用するコマンドは、スタンドアロンサーバーと管理対象ドメインのどちらを実行しているかによって異なります。
    • 以下の構文を使用して、スタンドアロンサーバーからシステムプロパティーを読み取ります。
      /system-property=PROPERTY_NAME:read-resource

      例3.26 スタンドアロンサーバーからシステムプロパティーの読み取り

      [standalone@localhost:9999 /] /system-property=property.mybean.queue:read-resource
      {
          "outcome" => "success",
          "result" => {"value" => "java:/queue/MyBeanQueue"}
      }
      
    • 以下の構文を使用して、管理対象ドメインのすべてのホストおよびサーバーからシステムプロパティーを読み取ります。
      /system-property=PROPERTY_NAME:read-resource

      例3.27 管理対象ドメインのすべてのサーバーからシステムプロパティーを読み取り

      [domain@localhost:9999 /] /system-property=property.mybean.queue:read-resource
      {
          "outcome" => "success",
          "result" => {
              "boot-time" => true,
              "value" => "java:/queue/MyBeanQueue"
          }
      }
    • 以下の構文を使用して、管理対象ドメインのホストおよびそのサーバーインスタンスからシステムプロパティーを読み取ります。
      /host=master/system-property=PROPERTY_NAME:read-resource

      例3.28 ドメインのホストおよびそのサーバーからシステムプロパティーを読み取り

      [domain@localhost:9999 /] /host=master/system-property=property.mybean.queue:read-resource
      {
          "outcome" => "success",
          "result" => {
              "boot-time" => true,
              "value" => "java:/queue/MyBeanQueue"
          }
      }
      
    • 以下の構文を使用して、管理対象ドメインのサーバーインスタンスからシステムプロパティーを読み取ります。
      /host=master/server-config=server-one/system-property=PROPERTY_NAME:read-resource

      例3.29 管理対象ドメインのサーバーインスタンスからシステムプロパティーを読み取り

      [domain@localhost:9999 /] /host=master/server-config=server-one/system-property=property.mybean.queue:read-resource
      {
          "outcome" => "success",
          "result" => {
              "boot-time" => true,
              "value" => "java:/queue/MyBeanQueue"
          }
      }
  5. システムプロパティーを削除します。
    使用するコマンドは、スタンドアロンサーバーと管理対象ドメインのどちらを実行しているかによって異なります。
    • 以下の構文を使用して、スタンドアロンサーバーからシステムプロパティーを削除します。
      /system-property=PROPERTY_NAME:remove

      例3.30 スタンドアロンサーバーからシステムプロパティーを削除

      [standalone@localhost:9999 /] /system-property=property.mybean.queue:remove
      {"outcome" => "success"}
    • 以下の構文を使用して、管理対象ドメインのすべてのホストおよびサーバーからシステムプロパティーを削除します。
      /system-property=PROPERTY_NAME:remove

      例3.31 ドメインのホストおよびそのサーバーからシステムプロパティーを削除

      [domain@localhost:9999 /] /system-property=property.mybean.queue:remove
      {
          "outcome" => "success",
          "result" => undefined,
          "server-groups" => {"main-server-group" => {"host" => {"master" => {
              "server-one" => {"response" => {"outcome" => "success"}},
              "server-two" => {"response" => {"outcome" => "success"}}
          }}}}
      }
      
    • 以下の構文を使用して、管理対象ドメインのホストおよびそのサーバーインスタンスからシステムプロパティーを削除します。
      /host=master/system-property=PROPERTY_NAME:remove

      例3.32 ドメインのホストおよびそのインスタンスからシステムプロパティーを削除

      [domain@localhost:9999 /] /host=master/system-property=property.mybean.queue:remove
      {
          "outcome" => "success",
          "result" => undefined,
          "server-groups" => {"main-server-group" => {"host" => {"master" => {
              "server-one" => {"response" => {"outcome" => "success"}},
              "server-two" => {"response" => {"outcome" => "success"}}
          }}}}
      }
      
    • 以下の構文を使用して、管理対象ドメインのサーバーインスタンスからシステムプロパティーを削除します。
      /host=master/server-config=server-one/system-property=PROPERTY_NAME:remove

      例3.33 管理対象ドメインのサーバーからシステムプロパティーを削除

      [domain@localhost:9999 /] /host=master/server-config=server-one/system-property=property.mybean.queue:remove
      {
          "outcome" => "success",
          "result" => undefined,
          "server-groups" => {"main-server-group" => {"host" => {"master" => {"server-one" => {"response" => {"outcome" => "success"}}}}}}
      }
      
「パスワード」システムプロパティーのマスク
テキストパスワードが含まれるシステムプロパティー(大文字と小文字を区別しない)は、ロギングによる出力時に リダクション されたテキストに置き換えられます。これにより、ログファイルにパスワードをプレーンテキストで出力しないようにするため、セキュリティーが向上します。

3.5.12. 管理 CLI を使用したサーバーの新規作成

以下の例では、ホスト マスター に新しいサーバーを作成し、clustered-server-group に追加します。
[domain@localhost:9999 /] /host=master/server-config=clustered-server-1:add(group=clustered-server-group)

3.6. 管理 CLI コマンド履歴

3.6.1. 管理 CLI コマンド履歴

管理 CLI にはコマンド履歴機能があり、アプリケーションサーバーインストールではデフォルトで有効になっています。履歴は、アクティブな CLI セッションの揮発性メモリーにレコードとして保持され、.jboss-cli-history としてユーザーのホームディレクトリーに自動的に保存されるログファイルに追加されます。この履歴ファイルは、デフォルトで最大 500 の CLI コマンドを記録するように設定されています。
history コマンド自体は現在のセッションの履歴を返します。また、管理 CLI にはキーボードの矢印キーを使用してコマンドおよび操作の履歴を移動できる機能も含まれています。

3.6.2. 管理 CLI コマンド履歴の表示

手順3.20 管理 CLI コマンド履歴の表示

  • history コマンドを実行します。

    管理 CLI で 履歴 コマンドを入力します。
    [standalone@localhost:9999 /] history

結果

CLI の起動後または履歴削除コマンドの実行後にメモリーに格納された CLI コマンドの履歴が表示されます。

3.6.3. 管理 CLI コマンド履歴の消去

手順3.21 管理 CLI コマンド履歴の消去

  • history --clear コマンドを実行します。

    管理 CLI で 履歴 --clear コマンドを入力します。
    [standalone@localhost:9999 /] history --clear

結果

CLI の起動後に記録されたコマンドの履歴がセッションメモリーから削除されます。コマンド履歴は、ユーザーのホームディレクトリーに保存されている .jboss-cli-history ファイルに残ります。

3.6.4. 管理 CLI コマンド履歴の無効化

手順3.22 管理 CLI コマンド履歴の無効化

  • history --disable コマンドを実行します。

    管理 CLI で history --disable コマンドを入力します。
    [standalone@localhost:9999 /] history --disable

結果

CLI で実行されたコマンドは、メモリー内またはユーザーのホームディレクトリーに保存された .jboss-cli-history ファイルに記録されません。

3.6.5. 管理 CLI コマンド履歴の有効化

手順3.23 管理 CLI コマンド履歴の有効化

  • history --enable コマンドを実行します。

    管理 CLI で history --enable コマンドを入力します。
    [standalone@localhost:9999 /] history --enable

結果

CLI で実行されたコマンドは、メモリーと、ユーザーのホームディレクトリーに保存された .jboss-cli-history ファイルに記録されます。

3.7. 管理インターフェース監査ロギング

3.7.1. 管理インターフェース監査ロギング

監査ロギングを有効にすると、管理コンソール、管理 CLI インターフェース、またはカスタム作成の管理アプリケーションを使用して実行されるすべての操作は監査ロギングの対象となります。
監査ログエントリーは JSON 形式で保存され、設定に基づいて、syslog サーバーまたは両方に送信するファイルに格納できます。監査ロギングは管理 CLI を使用してのみ設定でき、デフォルトでは無効になっています。
EAP には 'authenticated session' がないため、ログインおよびログアウトイベントは監査できません。代わりに、ユーザーから操作を受信すると監査メッセージがログに記録されます。
注記
デフォルトでは、監査ロギングはアクティブではありません。監査ロギングは管理 CLI を使用してのみ設定できます。
利用可能な管理インターフェース監査ロギング設定オプションとその現在の値を一覧表示するには、以下の管理 CLI コマンドを入力します。
注記
管理対象ドメインのコマンドに、プレフィックス /host=HOST_NAME を追加します。
[... /] /core-service=management/access=audit:read-resource(recursive=true)

3.7.2. ファイルへの管理インターフェース監査ロギングの有効化

ファイルへの監査ロギング出力を有効にするには、以下の管理 CLI コマンドを入力します。
注記
管理対象ドメインに変更を適用する場合は、以下のコマンドにプレフィックス /host=HOST_NAME を追加します。
/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
管理操作がファイルに記録されるようになりました。
  • スタンドアロンモード: EAP_HOME/standalone/data/audit-log.log
  • ドメインモード: EAP_HOME/domain/data/audit-log.log
すべてのファイルハンドラー属性の詳細は、「管理インターフェース監査ロギングリファレンス」 を参照してください。

3.7.3. syslog サーバーへの管理インターフェース監査ロギングの有効化

デフォルトでは、監査ロギングが有効である場合にファイルへ出力するよう事前設定されています。この手順では、syslog サーバーへ出力を設定し、ファイルへの監査ロギングを有効にします。すべての Syslog ハンドラー属性の詳細は、「管理インターフェース監査ロギングリファレンス」 を参照してください。
注記
管理対象ドメインに変更を適用する場合は、プレフィックス /host=HOST_NAME/core-service コマンドに追加します。

手順3.24 Syslog サーバーへの監査ロギングの有効化

  1. 監査ロギングの有効化

    以下のコマンドを実行します。
    [.. /]/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
  2. syslog ハンドラーの作成

    この例では、syslog サーバーが JBoss EAP インスタンスと同じサーバーで、ポート 514 で実行します。ホスト 属性の値を、実際の環境に適した値に置き換えます。

    例3.34 syslog ハンドラーの例

    [.. /]batch
    [.. / #]/core-service=management/access=audit/syslog-handler=mysyslog:add(formatter=json-formatter)
    [.. / #]/core-service=management/access=audit/syslog-handler=mysyslog/protocol=udp:add(host=localhost,port=514)
    [.. /]run-batch
  3. syslog ハンドラーへの参照の追加

    以下のコマンドを実行します。
    [.. /]/core-service=management/access=audit/logger=audit-log/handler=mysyslog:add

結果

管理インターフェースの監査ログエントリーが syslog サーバーに記録されます。

注記
オペレーティングシステムでロギングが有効になっていない限り、JBoss EAP の Syslog サーバーへの監査ロギングを有効にしても動作しません。
Red Hat Enterprise Linux の rsyslog 設定に関する詳細は、Red Hat Enterprise Linux の『 システム管理者 のガイド』の「rsyslog の 基本設定」 セクションを参照してください。 https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/

3.7.4. 管理インターフェース監査ロギングの無効化

ファイルまたは syslog サーバーへの監査ロギングは、以下のコマンドを実行して無効にできます。
/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=false)

3.7.5. 管理インターフェース監査ログの読み取り

ファイルに出力される監査ログエントリーは、テキスト ビューアー で参照するのが最適ですが、syslog サーバーへ出力される監査ログエントリーは syslog ビューアーアプリケーションを使用して参照するのが最適です。
注記
ログファイルの参照にテキストエディターを使用することは推奨されません。 これは、追加のログエントリーがログファイルに書き込まれなくなることがあるためです。
管理インターフェース監査ログは JSON 形式で出力されます。各ログエントリーは任意のタイムスタンプで始まり、『管理インターフェースの監査ログフィールド の表に記載されている』 フィールドです。

表3.5 管理インターフェース監査ログフィールド

フィールド名 説明
type 管理操作であることを示す core または jmx は JMX サブシステムからの意味を持つことができます(JMX サブシステムの監査ロギングの設定については JMX サブシステムを参照してください)。
r/o 操作によって管理モデルが変更されない場合は、値が true になります。そうでない場合は false になります。
起動 起動プロセス中に操作が実行された場合は、値が true になります。サーバーの起動後に操作が実行された場合は false になります。
version JBoss EAP インスタンスのバージョン番号。
user 認証されたユーザーのユーザー名。実行中のサーバーと同じマシンの管理 CLI で操作を行う場合は、特別な $local ユーザーが使用されます。
domainUUID ドメインコントローラーからサーバー、スレーブホストコントローラー、およびスレーブホストコントローラーサーバーへ伝播されるすべての操作をリンクする ID。
access 以下のいずれかの値を使用できます。
  • NATIVE - 操作が管理 CLI などのネイティブ管理インターフェースから実行されます。
  • HTTP - 操作が管理コンソールなどのドメイン HTTP インターフェースから実行されます。
  • JMX - 操作が JMX サブシステムから実行されます。JMX の監査ロギングの設定方法は JMX を参照してください。
remote-address この操作を実行するクライアントのアドレス。
success 操作に成功した場合は値が true になります。ロールバックされた場合は false になります。
ops 実行される操作。JSON へシリアライズ化された操作のリストになります。起動時は、XML の解析で生じた演算です。通常、一覧を起動するとエントリーが 1 つ含まれます。

第4章 ユーザー管理

4.1. JBoss EAP ユーザー管理

JBoss EAP 6 のインストール方法によっては、管理インターフェースにアクセスできるユーザーアカウントが初期設定できない場合があります。
グラフィカルインストーラーを使用してプラットフォームをインストールする場合は、インストール時に JBoss EAP 6 管理インターフェースにアクセスするために必要な権限を持つユーザーアカウント 1 つのみが作成されます。
ZIP アーカイブを使用してプラットフォームを手動でインストールした場合には、インストール時に適切な権限を持つユーザーアカウントが作成されません。
コンソールで JAR インストーラーを使用してプラットフォームを手動でインストールする場合は、インストール時に適切な権限を持つユーザーアカウントを 1 つ作成します。
トラフィックの送信元がローカルホストであっても、JBoss EAP 6 との HTTP ベースの通信はリモートアクセスと見なされます。したがって、管理コンソールを使用するには、少なくとも 1 人の管理ユーザーを作成する必要があります。ユーザーを追加する前に管理コンソールにアクセスしようとすると、ユーザーが追加されるまでデプロイされないのでエラーが発生します。
本ガイドでは、add-user.sh スクリプトを使用して JBoss EAP 6 の簡単なユーザー管理について説明します。LDAP やロールベースアクセス制御(RBAC)などの高度な認証および承認オプションは、JBoss EAP『 『セキュリティーアーキテクチャー』 』の「 『コア管理認証』 」を参照してください。

4.2. ユーザーの作成

4.2.1. 管理インターフェースのユーザーの追加

以下の手順では、選択したインストール方法でユーザーが作成されていない場合に、最初の管理ユーザーを作成する方法を説明します。この初期管理ユーザーは、Web ベースの管理コンソールおよび管理 CLI のリモートインスタンスを使用して、リモートシステムから JBoss EAP 6 を設定および管理できます。

手順4.1 リモート管理インターフェース用の最初の管理ユーザーを作成

  1. add-user.sh または add-user.bat スクリプトを実行します。

    EAP_HOME/bin/ ディレクトリーに移動します。オペレーティングシステムに適したスクリプトを実行します。
    Red Hat Enterprise Linux
    [user@host bin]$ ./add-user.sh
    Microsoft Windows Server
    C:\bin>  add-user.bat
  2. 管理ユーザーの追加を選択します。

    ENTER を押して、デフォルトのオプション a を選択し、管理ユーザーを追加します。
    このユーザーは ManagementRealm に追加され、Web ベースの管理コンソールまたはコマンドラインベースの管理 CLI を使用して管理操作を実行することが承認されます。もう 1 つの選択肢は b で、ユーザーを ApplicationRealm に追加し、特定のパーミッションは提供されません。そのレルムはアプリケーションで使用するために提供されます。
  3. ユーザー名とパスワードを入力します。

    プロンプトが表示されたら、ユーザー名とパスワードを入力します。入力後、パスワードを確認するよう指示されます。
  4. グループ情報を入力します。

    ユーザーが属するグループを追加します。ユーザーが複数のグループに属する場合は、コンマ区切りリストを入力します。ユーザーがグループに属さない場合は空白のままにします。
  5. 情報を確認します。

    情報を確認するよう求められます。問題がなければ、yes を入力します。
  6. ユーザーがリモート JBoss EAP 6 サーバーインスタンスを表すかどうかを選択します。

    管理者以外に、ManagementRealm の JBoss EAP 6 の別のインスタンスを表すユーザーである で JBoss EAP 6 に追加する必要がある他のタイプのユーザーは、メンバーとしてクラスターに参加することを認証できる必要があります。次のプロンプトでは、この目的のために追加したユーザーを指定できます。yes を選択すると、ユーザーのパスワードを表すハッシュ化された secret 値が表示されます。これは別の設定ファイルに追加する必要があります。このタスクの目的上、この質問には no と回答します。
  7. 追加ユーザーを入力します。

    必要な場合は、この手順を繰り返すと追加のユーザーを入力できます。実行中のシステムのいつでも追加することもできます。デフォルトのセキュリティーレルムを選択する代わりに、他のレルムにユーザーを追加すると、承認を微調整できます。
  8. 非対話的にユーザーを作成します。

    コマンドラインで各パラメーターを渡すと、非対話的にユーザーを作成できます。ログや履歴ファイルにパスワードが表示されるため、この方法は共有システムでは推奨されません。管理レルムを使用したコマンドの構文は次のとおりです。
    [user@host bin]$ ./add-user.sh username password
    アプリケーションレルムを使用するには、-a パラメーターを使用します。
    [user@host bin]$ ./add-user.sh -a username password
  9. --silent パラメーターを渡すと、add-user スクリプトの通常の出力は抑制できます。これは、最小限のパラメーターの username および password が指定されている場合にのみ該当します。エラーメッセージが表示されます。

結果

追加したユーザーは、指定したセキュリティーレルム内でアクティベートされます。ManagementRealm レルム内でアクティブなユーザーは、リモートシステムから JBoss EAP 6 を管理できます。

4.2.2. ユーザー管理の add-user スクリプトへ引数を渡す

add-user.sh または add-user.bat コマンドを対話的に実行することも、コマンドラインで引数を渡すこともできます。本セクションでは、コマンドライン引数を add-user スクリプトに渡す際に利用可能なオプションを説明します。
add-user.sh または add-user.bat コマンドで使用できるコマンドライン引数の一覧は、「add-user コマンド引数」 を参照してください。
代替のプロパティーファイルおよび場所を指定する方法は、「ユーザー管理情報の代替プロパティーファイルの指定」 を参照してください。

4.2.3. add-user コマンド引数

以下の表は、add-user.sh または add-user.bat コマンドで使用できる引数を示しています。

表4.1 add-user コマンド引数

コマンドライン引数 引数の値 説明
-a
該当なし
この引数は、アプリケーションレルムでユーザーを作成するように指定します。省略した場合、デフォルトでは管理レルムでユーザーが作成されます。
-dc
DOMAIN_CONFIGURATION_DIRECTORY
この引数は、プロパティーファイルが含まれるドメイン設定ディレクトリーを指定します。省略した場合、デフォルトのディレクトリーは EAP_HOME/domain/configuration/ になります。
-sc
SERVER_CONFIGURATION_DIRECTORY
この引数は、プロパティーファイルが含まれる代替のスタンドアロンサーバー設定ディレクトリーを指定します。省略した場合、デフォルトのディレクトリーは EAP_HOME/standalone/configuration/ になります。
-up
--user-properties
USER_PROPERTIES_FILE
この引数は、代替のユーザープロパティーファイルの名前を指定します。絶対パスを使用でき、代替の設定ディレクトリーを指定する -sc または -dc 引数と共に使用されるファイル名を使用することもできます。
-g
--group
GROUP_LIST
このユーザーに割り当てるグループのコンマ区切りリスト。
-gp
--group-properties
GROUP_PROPERTIES_FILE
この引数は、代替のグループプロパティーファイルの名前を指定します。絶対パスを使用でき、代替の設定ディレクトリーを指定する -sc または -dc 引数と共に使用されるファイル名を使用することもできます。
-p
--password
PASSWORD
ユーザーのパスワード。パスワードは以下の要件を満たす必要があります。
  • 8 文字以上でなければなりません。
  • 1 文字以上のアルファベットが含まれなくてはなりません。
  • 1 文字以上の数字が含まれなければなりません。
  • 英数字以外の記号が 1 つ以上含まれなければなりません。
-u
--user
USER_NAME
ユーザーの名前。英数字と以下のシンボルのみを使用できます: ,./=@\.
-r
--realm
REALM_NAME
管理インターフェースをセキュアにするために使用されるレルムの名前。省略した場合、デフォルト値は ManagementRealm です。
-s
--silent
該当なし
コンソールへ出力せずに add-user スクリプトを実行します。
-h
--help
該当なし
add-user スクリプトの使用情報を表示します。

4.2.4. ユーザー管理情報の代替プロパティーファイルの指定

概要

デフォルトでは、add-user.sh または add-user.bat スクリプトを使用して作成されたユーザーおよびロール情報は、サーバー設定ディレクトリーにあるプロパティーファイルに保存されます。サーバー設定情報は EAP_HOME/standalone/configuration/ ディレクトリーに保存され、ドメイン設定情報は EAP_HOME/domain/configuration/ ディレクトリーに保存されます。このトピックでは、デフォルトのファイル名および場所を上書きする方法について説明します。

代替プロパティーファイルの指定

  • サーバー設定の代替ディレクトリーを指定するには、-sc 引数を使用します。この引数は、サーバー設定プロパティーファイルが含まれる代替のディレクトリーを指定します。
  • ドメイン設定の代替ディレクトリーを指定するには、-dc 引数を使用します。この引数は、ドメイン設定プロパティーファイルを含む代替ディレクトリーを指定します。
  • 代替のユーザー設定プロパティーファイルを指定するには、-up 引数または --user-properties 引数を使用します。絶対パスを使用でき、代替の設定ディレクトリーを指定する -sc または -dc 引数と共に使用されるファイル名を使用することもできます。
  • 代替のグループ設定プロパティーファイルを指定するには、-gp 引数または --group-properties 引数を使用します。絶対パスを使用でき、代替の設定ディレクトリーを指定する -sc または -dc 引数と共に使用されるファイル名を使用することもできます。
注記
add-user コマンドは、既存のプロパティーファイルでの操作を行うことを目的としています。コマンドライン引数に指定された代替のプロパティーファイルが存在しない場合は、以下のエラーが表示されます。
JBAS015234: No appusers.properties files found
コマンド引数の詳細は、「add-user コマンド引数」 を参照してください。

4.3. add-user スクリプトのコマンドラインの例

4.3.1. デフォルトのプロパティーファイルを使用した単一のグループに属するユーザーの作成

例4.1 単一グループに属するユーザーの作成

EAP_HOME/bin/add-user.sh -a -u 'appuser1' -p 'password1!' -g 'guest'
この例では、以下の結果を表示しています。
  • ユーザー appuser1 は、ユーザー情報が保存される以下のデフォルトプロパティーファイルに追加されます。
    EAP_HOME/standalone/configuration/application-users.properties
    EAP_HOME/domain/configuration/application-users.properties
  • グループ guest を持つユーザー appuser1 が、グループ情報を格納するデフォルトのプロパティーファイルに追加されます。
    EAP_HOME/standalone/configuration/application-roles.properties
    EAP_HOME/domain/configuration/application-roles.properties

4.3.2. デフォルトのプロパティーファイルを使用した複数のグループへのユーザーの作成

例4.2 複数のグループに属するユーザーの作成

EAP_HOME/bin/add-user.sh -a -u 'appuser1' -p 'password1!' -g 'guest,app1group,app2group'
この例では、以下の結果を表示しています。
  • ユーザー appuser1 は、ユーザー情報が保存される以下のデフォルトプロパティーファイルに追加されます。
    EAP_HOME/standalone/configuration/application-users.properties
    EAP_HOME/domain/configuration/application-users.properties
  • グループ guestapp1group、および app2group を持つユーザー appuser1 が、グループ情報を格納するデフォルトのプロパティーファイルに追加されます。
    EAP_HOME/standalone/configuration/application-roles.properties
    EAP_HOME/domain/configuration/application-roles.properties

4.3.3. デフォルトのプロパティーファイルを使用したデフォルトのレルムの管理者権限でのユーザーの作成

例4.3 デフォルトレルムで管理者権限を持つユーザーの作成

EAP_HOME/bin/add-user.sh -u 'adminuser1' -p 'password1!' -g 'admin'
この例では、以下の結果を表示しています。
  • ユーザー adminuser1 は、ユーザー情報が保存される以下のデフォルトプロパティーファイルに追加されます。
    EAP_HOME/standalone/configuration/mgmt-users.properties
    EAP_HOME/domain/configuration/mgmt-users.properties
  • グループ admin のユーザー adminuser1 は、グループ情報を格納するデフォルトのプロパティーファイルに追加されます。
    EAP_HOME/standalone/configuration/mgmt-groups.properties
    EAP_HOME/domain/configuration/mgmt-groups.properties

4.3.4. 代替プロパティーファイルを使用した情報の保存における単一グループへのユーザーの作成

例4.4 代替のプロパティーファイルを使用した単一グループに属するユーザーの作成

EAP_HOME/bin/add-user.sh -a -u appuser1 -p password1! -g app1group -sc /home/someusername/userconfigs/ -up appusers.properties -gp appgroups.properties 
この例では、以下の結果を表示しています。
  • ユーザー appuser1 は以下のプロパティーファイルに追加され、このファイルがユーザー情報を保存するデフォルトファイルになります。
    /home/someusername/userconfigs/appusers.properties
  • app1group グループを持つユーザー appuser1 が以下のプロパティーファイルに追加され、このファイルがグループ情報を保存するデフォルトファイルになりました。
    /home/someusername/userconfigs/appgroups.properties

第5章 ネットワークおよびポート設定

5.1. インターフェース

5.1.1. インターフェース

JBoss EAP は設定全体で名前付きインターフェース参照を使用します。これにより、使用ごとにインターフェースの完全な詳細を必要とせずに、論理名で個々のインターフェース宣言を参照する機能が提供されます。
論理名を使用すると、名前付きインターフェースへのグループ参照の整合性も可能にします。この場合、管理対象ドメインのサーバーインスタンスには複数のマシン間でさまざまなインターフェースの詳細が含まれる可能性があります。論理名では、各サーバーインスタンスが論理名グループに対応しているため、インターフェースグループの管理が容易になります。
ネットワークインターフェースは、物理インターフェースの論理名と選択基準を指定して宣言されます。
JBoss EAP のデフォルト設定には、管理 インターフェースと パブリック インターフェース名の両方が含まれます。管理 インターフェース名は、管理レイヤーを必要とするすべてのコンポーネントおよびサービス(HTTP 管理エンドポイントを含む)に使用できます。public インターフェース名は、Web や Messaging などのアプリケーション関連のネットワーク通信すべてに使用できます。
デフォルト名の使用は必須ではありません。新しい論理名を作成し、デフォルト名に置き換えることができます。
domain.xmlhost.xml、および standalone.xml 設定ファイルには、インターフェース宣言が含まれます。宣言基準はワイルドカードアドレスを参照したり、有効な一致となるためにインターフェースまたはアドレスで必要となる 1 つ以上の特性のセットを指定したりできます。
3 つの設定ファイルは直接編集可能ですが、手動編集は不要になりました。管理 CLI および管理コンソールは、設定の変更にセキュアで制御された永続的な環境を提供します。
以下の例は、通常は standalone.xml または host.xml 設定ファイルのいずれかで定義されるインターフェース宣言の複数の設定を示しています。これらのファイルを使用すると、リモートホストグループが特定のインターフェース属性を維持でき、引き続きドメインコントローラーインターフェースへの参照が許可されます。
以下の例は、管理およびパブリックの相対名グループに指定された特定の inet-address 値を示しています。

例5.1 inet-address 値で作成されたインターフェースグループ

<interfaces>
  <interface name="management">
   <inet-address value="127.0.0.1"/>
  </interface>
  <interface name="public">
   <inet-address value="127.0.0.1"/>
  </interface>
</interfaces>
以下の例は、グローバルインターフェースグループを示しています。any-address 要素を使用してワイルドカードアドレスを宣言します。

例5.2 ワイルドカード宣言で作成されたグローバルグループ

<interface name="global">
   <!-- Use the wild-card address -->
   <any-address/>
</interface>
以下の例では、external という相対グループの下でネットワークインターフェースカード(eth0)を宣言します。

例5.3 NIC 値で作成された外部グループ

<interface name="external">
   <nic name="eth0"/>
</interface>
以下の例では、要件のあるデフォルトグループを宣言します。これらの要件は、インターフェースの条件を有効な一致に設定します。これは、JBoss EAP がインターフェースの名前を使用して参照できる特定のプロパティーを持つインターフェース宣言グループの作成を許可する方法の例になります。これは、複数のサーバーインスタンスにおける設定の複雑さおよび管理オーバーヘッドを軽減するのに役立ちます。

例5.4 特定の条件値で作成されたデフォルトグループ

<interface name="default">
   <!-- Match any interface/address on the right subnet if it's
        up, supports multicast, and isn't point-to-point -->
   <subnet-match value="192.168.0.0/16"/>
   <up/>
   <multicast/>
   <not>
      <point-to-point/>
   </not>
</interface>

5.1.2. インターフェースの設定

standalone.xml および host.xml 設定ファイルのデフォルトのインターフェース設定は、それぞれ相対的なインターフェーストークンを持つ 3 つの名前付きインターフェースを提供します。以下の表にあるように、管理コンソールまたは管理 CLI を使用して追加の属性および値を設定します。必要に応じて、相対インターフェースバインディングは特定の値に置き換えることができますが、これを行う場合は、-b スイッチが相対値しか上書きできないため、サーバー実行時にインターフェース値を渡すことができないことに注意してください。

例5.5 デフォルトインターフェース設定

<interfaces>
  <interface name="management">
    <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
  </interface>
  <interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
  </interface>
  <interface name="unsecure">
    <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
  </interface>
</interfaces>
管理対象ドメインで複数のサーバーを実行している間、インターフェースバインディングはそれぞれの host.xml ファイルの個別のサーバーに割り当てることができます。以下に例を示します。
<servers>
  <server name="server-name" group="main-server-group">
    <interfaces>
      <interface name="public">
        <inet-address value="ip-address"/>
      </interface>
    </interfaces>
  </server>
</servers>
注記
上記の例では、server-name を実際のサーバー名に置き換え、ip-address を実際の IP アドレスに置き換えます。

表5.1 インターフェース属性と値

インターフェース要素 説明
any インターフェースの選択基準の一部は、最低でも基準のネストされたセットの 1 つ (すべてとは限らない) を満たす必要があることを示す要素。
any-address
このインターフェースを使用するソケットをワイルドカードアドレスにバインドする必要があることを示す空の要素。
java.net.preferIpV4Stack システムプロパティーが true に設定されていない限り、IPv6 ワイルドカードアドレス(::)が使用されます。true に設定すると、IPv4 ワイルドカードアドレス(0.0.0.0)が使用されます。
ソケットがデュアルスタックマシンの IPv6 anylocal アドレスにバインドされた場合は、IPv6 および IPv4 トラフィックを受け入れることができます。 IPv4 (IPv4 マッピング) anylocal アドレスにバインドされた場合は、IPv4 トラフィックのみを受け入れることができます。
any-ipv4-address このインターフェースを使用するソケットを IPv4 ワイルドカードアドレス (0.0.0.0) にバインドする必要があることを示す空の要素。
any-ipv6-address このインターフェースを使用するソケットを IPv6 ワイルドカードアドレス (::) にバインドする必要があることを示す空の要素。
inet-address IPv6 または IPv4 のドット区切り表記の IP アドレス、または IP アドレスに解決できるホスト名。
link-local-address インターフェースの選択基準の一部として、関連付けられたアドレスがリンクローカルであるかどうかを示す空の要素。
loopback インターフェースの選択基準の一部として、ループバックインターフェースであるかどうかを示す空の要素。
loopback-address マシンのループバックインターフェースで実際には設定できないループバックアドレス。IP アドレスが関連付けられた NIC が見つからない場合であっても該当する値が使用されるため、inet-address タイプとは異なります。
multicast インターフェースの選択基準の一部として、マルチキャストをサポートするかどうかを示す空の要素。
nic ネットワークインターフェースの名前 (eth0、eth1、lo など)。
nic-match 使用できるインターフェースを見つけるために、マシンで利用可能なネットワークインターフェースの名前を検索する正規表現。
not インターフェースの選択基準の一部は、基準のネストされたセットを満たしてはならないことを示す要素。
point-to-point インターフェースの選択基準の一部として、ポイントツーポイントインターフェースであるかどうかを示す空の要素。
public-address インターフェースの選択基準の一部として、公開されたルーティング可能なアドレスを持つかどうかを示す空の要素。
site-local-address インターフェースの選択基準の一部として、関連付けられたアドレスがサイトローカルであるかどうかを示す空の要素。
subnet-match 「スラッシュ表記法」で記述されたネットワーク IP アドレスとアドレスのネットワーク接頭辞のビット数(例:"192.168.0.0/16".
up インターフェースの選択基準の一部として、現在稼動しているかどうかを示す空の要素。
virtual インターフェースの選択基準の一部として、仮想インターフェースであるかどうかを示す空の要素。
  • インターフェース属性の設定

    • 管理 CLI でのインターフェース属性の設定

      タブ補完を使用して、入力しながらコマンド文字列を補完したり、利用可能な属性を表示したりできます。
      管理 CLI を使用して、新しいサーバーを追加してインスタンスをそのサーバーに設定し、同じ設定を XML に追加します。server-name を実際のサーバー名に置き換え、ip-address を実際の IP アドレスに置き換えます。
      /host=master/server-config=server-name:add(group=main-server-group)
      /host=master/server-config=server-name/interface=public:add(inet-address=ip-address)
      管理 CLI を使用して、新しいインターフェースを追加し、インターフェース属性に新しい値を書き込みます。
      1. 新しいインターフェースの追加

        add 操作は必要に応じて新しいインターフェースを作成します。add コマンドは、管理 CLI セッションのルートから実行され、以下の例では interfacename というタイトルの新しいインターフェース名を作成し、inet-address12.0.0.2 として宣言されます。
        /interface=interfacename/:add(inet-address=12.0.0.2)
      2. インターフェース属性の編集

        write-attribute 操作は、新しい値を属性に書き込みます。以下の例では、inet-address の値を 12.0.0.8 に更新します。
        /interface=interfacename/:write-attribute(name=inet-address, value=12.0.0.8)
      3. インターフェース属性の検証

        include-runtime=true パラメーターを指定して read-resource 操作を実行し、サーバーモデルでアクティブな現在の値をすべて公開して、属性値が変更されたことを確認します。以下に例を示します。
        [standalone@localhost:9999 interface=public] :read-resource(include-runtime=true)
    • 管理コンソールでのインターフェース属性の設定

      1. 管理コンソールへのログイン

        管理対象ドメインまたはスタンドアロンサーバーインスタンスの管理コンソールにログインします。
      2. Configuration タブに移動します。

        画面上部の Configuration タブを選択します。
        注記
        ドメインモードの場合は、画面左上の Profile ドロップダウンメニューからプロファイルを選択します。
      3. ナビゲーションメニュー から インターフェース を選択します。

        ナビゲーションメニューから Interfaces メニュー項目を選択します。
      4. 新しいインターフェースの追加

        1. Add をクリックします。
        2. NameInet Address、および Address Wildcard に、必要な値を入力します。
        3. Save をクリックします。
      5. インターフェース属性の編集

        1. 利用可能なインターフェース の一覧から編集する必要があるインターフェースを選択し編集 をクリックします。
        2. NameInet Address、および Address Wildcard に、必要な値を入力します。
        3. Save をクリックします。

5.2. ソケットバインディンググループ

5.2.1. ソケットバインディンググループ

ソケットバインディングとソケットバインディンググループを使用することにより、ネットワークポートと、JBoss EAP 6 の設定で必要なネットワーキングインターフェースとの関係を定義できます。
ソケットバインディングはソケットの名前付き設定です。これらの名前付き設定の宣言は domain.xmlstandalone.xml 設定ファイルの両方にあります。設定の他のセクションは、ソケット設定の完全な詳細を含めるのではなく、論理名でこれらのソケットを参照できます。これにより、マシンごとに異なる可能性のある相対ソケット設定を参照できます。
ソケットバインディングはソケットバインディンググループで収集されます。ソケットバインディンググループは、ある論理名でグループ化されたソケットバインディング宣言のコレクションです。named グループは、設定全体で参照できます。スタンドアロンサーバーにはこのようなグループが 1 つだけ含まれますが、管理対象ドメインインスタンスには複数のグループを含めることができます。管理対象ドメインで各サーバーグループのソケットバインディンググループを作成するか、複数のサーバーグループ間でソケットバインディンググループを共有することができます。
命名グループを使用すると、管理対象ドメインの場合にサーバーグループを設定するときにソケットバインディングの特定のグループに、簡素化された参照を使用できます。もう 1 つの一般的な使用方法は、1 つのシステム上のスタンドアロンサーバーの複数のインスタンスの設定および管理です。以下の例は、スタンドアロンおよびドメインインスタンスの設定ファイルのデフォルトのソケットバインディンググループを示しています。

例5.6 スタンドアロン設定のデフォルトソケットバインディング

standalone.xml 設定ファイルのデフォルトのソケットバインディンググループは、standard-sockets でグループ化されます。このグループは、同じ論理参照方法を使用して パブリック インターフェースでも参照されます。
   
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        <socket-binding name="management-native" interface="management" port="${jboss							.management.native.port:9999}"/>
        <socket-binding name="management-http" interface="management" port="${jboss								.management.http.port:9990}"/>
        <socket-binding name="management-https" interface="management" port="${jboss							.management.https.port:9443}"/>
        <socket-binding name="ajp" port="8009"/>
        <socket-binding name="http" port="8080"/>
        <socket-binding name="https" port="8443"/>
        <socket-binding name="remoting" port="4447"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
</socket-binding-group>

例5.7 ドメイン設定のデフォルトソケットバインディング

domain.xml 設定ファイルのデフォルトのソケットバインディンググループには、standard-socketsha-socketsfull-socketsfull-ha-sockets グループの 4 つのグループが含まれます。これらのグループは、public という名前のインターフェースでも参照されます。
<socket-binding-groups>
        <socket-binding-group name="standard-sockets" default-interface="public">
            <!-- Needed for server groups using the 'default' profile  -->
            <socket-binding name="ajp" port="8009"/>
            <socket-binding name="http" port="8080"/>
            <socket-binding name="https" port="8443"/>
            <socket-binding name="remoting" port="4447"/>
            <socket-binding name="txn-recovery-environment" port="4712"/>
            <socket-binding name="txn-status-manager" port="4713"/>
            <outbound-socket-binding name="mail-smtp">
                <remote-destination host="localhost" port="25"/>
            </outbound-socket-binding>
        </socket-binding-group>
        <socket-binding-group name="ha-sockets" default-interface="public">
            <!-- Needed for server groups using the 'ha' profile  -->
            <socket-binding name="ajp" port="8009"/>
            <socket-binding name="http" port="8080"/>
            <socket-binding name="https" port="8443"/>
            <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss									.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
            <socket-binding name="jgroups-tcp" port="7600"/>
            <socket-binding name="jgroups-tcp-fd" port="57600"/>
            <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss								.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
            <socket-binding name="jgroups-udp-fd" port="54200"/>
            <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" 								multicast-port="23364"/>
            <socket-binding name="remoting" port="4447"/>
            <socket-binding name="txn-recovery-environment" port="4712"/>
            <socket-binding name="txn-status-manager" port="4713"/>
            <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
            </outbound-socket-binding>
        </socket-binding-group>
        <socket-binding-group name="full-sockets" default-interface="public">
            <!-- Needed for server groups using the 'full' profile  -->
            <socket-binding name="ajp" port="8009"/>
            <socket-binding name="http" port="8080"/>
            <socket-binding name="https" port="8443"/>
            <socket-binding name="jacorb" interface="unsecure" port="3528"/>
            <socket-binding name="jacorb-ssl" interface="unsecure" port="3529"/>
            <socket-binding name="messaging" port="5445"/>
            <socket-binding name="messaging-group" port="0" multicast-address="${jboss								.messaging.group.address:231.7.7.7}" multicast-port="${jboss.messaging.group.port:9876}"/>
            <socket-binding name="messaging-throughput" port="5455"/>
            <socket-binding name="remoting" port="4447"/>
            <socket-binding name="txn-recovery-environment" port="4712"/>
            <socket-binding name="txn-status-manager" port="4713"/>
            <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
            </outbound-socket-binding>
        </socket-binding-group>
        <socket-binding-group name="full-ha-sockets" default-interface="public">
            <!-- Needed for server groups using the 'full-ha' profile  -->
            <socket-binding name="ajp" port="8009"/>
            <socket-binding name="http" port="8080"/>
            <socket-binding name="https" port="8443"/>
            <socket-binding name="jacorb" interface="unsecure" port="3528"/>
            <socket-binding name="jacorb-ssl" interface="unsecure" port="3529"/>
            <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss									.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
            <socket-binding name="jgroups-tcp" port="7600"/>
            <socket-binding name="jgroups-tcp-fd" port="57600"/>
            <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss								.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
            <socket-binding name="jgroups-udp-fd" port="54200"/>
            <socket-binding name="messaging" port="5445"/>
            <socket-binding name="messaging-group" port="0" multicast-address="${jboss								.messaging.group.address:231.7.7.7}" multicast-port="${jboss.messaging.group.port:9876}"/>
            <socket-binding name="messaging-throughput" port="5455"/>
            <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" 								multicast-port="23364"/>
            <socket-binding name="remoting" port="4447"/>
            <socket-binding name="txn-recovery-environment" port="4712"/>
            <socket-binding name="txn-status-manager" port="4713"/>
            <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
            </outbound-socket-binding>
        </socket-binding-group>
    </socket-binding-groups>
ソケットバインディングインスタンスは、アプリケーションサーバーディレクトリーの standalone.xml および domain.xml ソースファイルで作成および編集できます。バインディングの管理方法として、管理コンソールまたは管理 CLI の使用が推奨されます。管理コンソールを使用する利点として、General Configuration セクションの下に専用の Socket Binding Group 画面を備えたグラフィカルユーザーインターフェースがあります。管理 CLI は、アプリケーションサーバー設定の高いレベルで、バッチ処理とスクリプトの使用を可能にするコマンドラインアプローチに基づいて API およびワークフローを提供します。両方のインターフェースにより、変更を永続化するか、サーバー設定に保存できます。

5.2.2. ソケットバインディングの設定

ソケットバインディングは固有のソケットバインディンググループで定義できます。スタンドアロンサーバーにはこのようなグループである standard-sockets グループが含まれ、さらにグループを作成することができません。代わりに、代替のスタンドアロンサーバー設定ファイルを作成できます。ただし、管理対象ドメインでは、複数のソケットバインディンググループを作成し、必要に応じて含まれるソケットバインディングを設定できます。以下の表は、各ソケットバインディングで使用できる属性を示しています。

表5.2 ソケットバインディング属性

属性 説明 ロール
name 設定の他の場所で使用する必要があるソケット設定の論理名。 必須
port この設定に基づいたソケットをバインドする必要があるベースポート。すべてのポート値にインクリメントまたはデクリメントを適用して、サーバーがこのベース値をオーバーライドするように設定できます。 必須
interface この設定に基づいたソケットをバインドする必要があるインターフェースの論理名。定義されないと、エンクロージングソケットバインディンググループからの default-interface の値が使用されます。 任意
multicast-address マルチキャストにソケットが使用される場合は、使用するマルチキャストアドレス。 任意
multicast-port マルチキャストにソケットが使用される場合は、使用するマルチキャストポート。 任意
fixed-port true の場合、port の値を常にソケットに使用する必要があり、インクリメントまたはデクリメントを適用して上書きしないでください。 任意
  • ソケットバインディンググループのソケットバインディングの設定

    管理 CLI または管理コンソールを選択して、必要に応じてソケットバインディングを設定します。
    • 管理 CLI を使用したソケットバインディングの設定

      管理 CLI を使用してソケットバインディングを設定します。
      1. 新しいソケットバインディングの追加

        必要に応じて add 操作を使用して新規アドレス設定を作成します。管理 CLI セッションのルートからこのコマンドを実行できます。以下の例では、newsocket という新しいソケットバインディングが作成され、port 属性は 1234 として宣言されています。この例は、以下に示すように、スタンドアロンサーバーと、standard-sockets ソケットバインディンググループで編集される管理対象ドメインの両方に適用されます。
        [domain@localhost:9999 /] /socket-binding-group=standard-sockets/socket-binding=newsocket/:add(port=1234)
      2. パターン属性の編集

        write-attribute 操作を使用して、新しい値を属性に書き込みます。タブ補完を使用すると、入力時のコマンド文字列の補完に役立つほか、利用可能な属性を明らかにできます。以下の例では、port の値を 2020に更新します。
        [domain@localhost:9999 /] /socket-binding-group=standard-sockets/socket-binding=newsocket/:write-attribute(name=port,value=2020)
      3. パターン属性の確認

        値が変更されたことを確認するには、include-runtime=true パラメーターを指定して read-resource 操作を実行し、サーバーモデルでアクティブな現在の値をすべて公開します。
        [domain@localhost:9999 /] /socket-binding-group=standard-sockets/socket-binding=newsocket/:read-resource
    • 管理コンソールを使用したソケットバインディングの設定

      管理コンソールを使用してソケットバインディングを設定します。
      1. 管理コンソールへのログイン

        管理対象ドメインまたはスタンドアロンサーバーの管理コンソールにログインします。
      2. Configuration タブに移動します。

        画面上部の Configuration タブを選択します。
      3. ナビゲーションメニューから Socket Binding アイテムを選択します。

        General Configuration メニューを展開します。Socket Binding を選択します。管理対象ドメインを使用している場合は、Socket Binding Groups リストで対象のグループを選択します。
      4. 新しいソケットバインディングの追加

        1. 追加 ボタンをクリックします。
        2. NamePort、および Binding Group に必要な値を入力します。
        3. Save をクリックして終了します。
      5. ソケットバインディングの編集

        1. 一覧からソケットバインディングを選択し、Edit をクリックします。
        2. NameInterfacePort などの必要な値を入力します。
        3. Save をクリックして終了します。

5.2.3. JBoss EAP 6 により使用されるネットワークポート

JBoss EAP 6 のデフォルト設定で使用されるポートは、次の複数の要因によって異なります。
  • サーバーグループがデフォルトのソケットバインディンググループのいずれかを使用するか、またはカスタムグループを使用するかどうか。
  • 個別デプロイメントの要件。
数値ポートオフセット
同じ物理サーバーで複数のサーバーを実行する際にポートの競合を軽減するために、数値ポートオフセットを設定できます。サーバーが数値ポートオフセットを使用する場合は、サーバーグループのソケットバインディンググループのデフォルトのポート番号にオフセットを追加します。たとえば、ソケットバインディンググループの HTTP ポートが 8080 で、サーバーが 100 のポートオフセットを使用する場合、HTTP ポートは 8180 になります。
特に指定がない限り、ポートは TCP プロトコルを使用します。

デフォルトのソケットバインディンググループ

  • full-ha-sockets
  • full-sockets
  • ha-sockets
  • standard-sockets
これらのソケットバインディンググループは domain.xml でのみ利用できます。スタンドアロンサーバープロファイルには、標準のソケットバインディンググループのみが含まれます。このグループは standalone.xml の standard-sockets、standalone-ha.xmlha-socketsstandalone-full.xml の場合はfull-socketsstandalone-full-ha.xml の場合は full-ha-sockets に対応します。スタンドアロンプロファイルには、management-{native,http,https} などのソケットバインディングが含まれます。

表5.3 デフォルトのソケットバインディングの参照

名前 ポート マルチキャストポート 説明 full-ha-sockets full-sockets ha-socket standard-socket
ajp 8009 Apache JServ プロトコル。HTTP クラスタリングおよび負荷分散に使用します。 はい はい はい はい
http 8080 デプロイされた Web アプリケーションのデフォルトポート。 はい はい はい はい
https 8443 デプロイされた Web アプリケーションとクライアント間の SSL 暗号化接続。 はい はい はい はい
jacorb 3528 JTS トランザクションおよび他の ORB 依存サービス用の CORBA サービス。 はい はい いいえ いいえ
jacorb-ssl 3529 SSL 暗号化 CORBA サービス。 はい はい いいえ いいえ
jgroups-diagnostics 7500 マルチキャスト。HA クラスターでのピア検出に使用されます。管理インターフェースを使用して設定できません。 はい いいえ はい いいえ
jgroups-mping 45700 マルチキャスト。HA クラスターでの初期メンバーシップの検出に使用されます。 はい いいえ はい いいえ
jgroups-tcp 7600 TCP を使用した、HA クラスター内でのユニキャストピア検出。 はい いいえ はい いいえ
jgroups-tcp-fd 57600 TCP を介した HA 障害検出に使用されます。 はい いいえ はい いいえ
jgroups-udp 55200 45688 UDP を使用した、HA クラスター内でのマルチキャストピア検出。 はい いいえ はい いいえ
jgroups-udp-fd 54200 UDP を介した HA 障害検出に使用されます。 はい いいえ はい いいえ
messaging 5445 JMS サービス。 はい はい いいえ いいえ
messaging-group 0 9876 HornetQ JMS ブロードキャストと検出グループにより参照されます。 はい はい いいえ いいえ
messaging-throughput 5455 JMS Remoting により使用されます。 はい はい いいえ いいえ
mod_cluster 23364 JBoss EAP 6 と HTTP ロードバランサー間の通信に対するマルチキャストポート。 はい いいえ はい いいえ
remoting 4447 リモート EJB の呼び出しに使用されます。 はい はい はい はい
txn-recovery-environment 4712 JTA トランザクションリカバリーマネージャー。 はい はい はい はい
txn-status-manager 4713 JTA / JTS トランザクションマネージャー。 はい はい はい はい

管理ポート

ソケットバインディンググループの他に、各ホストコントローラーによって 2 つのポートが管理目的で開かれます。

  • 9990 - Web 管理コンソールポート
  • 9999 - 管理コンソールと管理 API が使用するポート
さらに、管理コンソールに対して HTTPS が有効になっている場合、9443 もデフォルトポートとして開かれます。

5.2.4. ソケットバインディンググループのポートオフセット

ポートオフセットは、そのサーバーのソケットバインディンググループによって提供されたポート値に追加される数値オフセットです。これにより、単一のサーバーは所属するサーバーグループのソケットバインディングを継承でき、オフセットを使用してグループ内の他のサーバーと競合しないようにできます。たとえば、ソケットバインディンググループの HTTP ポートが 8080 で、サーバーが 100 のポートオフセットを使用する場合、HTTP ポートは 8180 になります。

5.2.5. ポートオフセットの設定

  • ポートオフセットの設定

    管理 CLI または管理コンソールを選択してポートオフセットを設定します。
    • 管理 CLI を使用したポートオフセットの設定

      管理 CLI を使用してポートオフセットを設定します。
      1. ポートオフセットの編集

        write-attribute 操作を使用して、新しい値をポートオフセットに書き込みます。以下の例では、server-twosocket-binding-port-offset 値を 250 に更新しています。このサーバーは、デフォルトのローカルホストグループのメンバーです。変更を有効にするには、再起動が必要です。
        [domain@localhost:9999 /] /host=master/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)
      2. ポートオフセット属性の確認

        値が変更されたことを確認するには、include-runtime=true パラメーターを指定して read-resource 操作を実行し、サーバーモデルでアクティブな現在の値をすべて公開します。
        [domain@localhost:9999 /] /host=master/server-config=server-two/:read-resource(include-runtime=true)
    • 管理コンソールを使用したポートオフセットの設定

      管理コンソールを使用してポートオフセットを設定します。
      1. 管理コンソールへのログイン

        管理対象ドメインの管理コンソールにログインします。
      2. ドメイン タブの選択

        画面上部の ドメイン タブを選択します。
      3. ポートオフセット属性の編集

        1. Available Server Configurations リストでサーバーを選択し、以下のアセンブリーリストの上部にある Edit をクリックします。
        2. Port Offset フィールドに任意の値を入力します。
        3. Save をクリックして終了します。

5.3. IPv6

5.3.1. IPv6 ネットワーキング向け JVM スタック設定の指定

概要
このトピックでは、JBoss EAP 6 インストールでの IPv6 ネットワーキングの有効化について説明します。

手順5.1 IPv4 Stack Java プロパティーの無効化

  1. インストールに関連するファイルを開きます。
    • スタンドアロンサーバーの場合:

      Open EAP_HOME/bin/standalone.conf.
    • 管理対象ドメインの場合:

      Open EAP_HOME/bin/domain.conf.
  2. IPv4 Stack Java プロパティーを false に変更します。
    -Djava.net.preferIPv4Stack=false
    以下に例を示します。

    例5.8 JVM オプション

    # Specify options to pass to the Java VM.
    #
    if [ "x$JAVA_OPTS" = "x" ]; then
       JAVA_OPTS="-Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=false 
       -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 
       -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv6Addresses=true"
    fi
    

5.3.2. IPv6 ネットワークに対するインターフェース宣言の設定

概要

次の手順に従って、インターフェース inet アドレスを IPv6 のデフォルトに設定します。

手順5.2 IPv6 ネットワーキングのインターフェースの設定

  1. 画面上部の Configuration タブを選択します。
  2. General Configuration メニューを展開し、Interfaces を選択します。
  3. Available Interfaces リストからインターフェースを選択します。
  4. 詳細一覧で Edit をクリックします。
  5. 下記の inet アドレスを設定します。
    ${jboss.bind.address.management:[ADDRESS]}
  6. Save をクリックして終了します。
  7. サーバーを再起動し、変更を実装します。

5.3.3. IPv6 アドレス用 JVM スタック設定の指定

概要
このトピックでは、JBoss EAP 6 インストールで IPv6 アドレスを優先するよう設定ファイルで設定する方法について説明します。

手順5.3 IPv6 アドレスを優先するよう JBoss EAP 6 インストールを設定する

  1. インストールに関連するファイルを開きます。
    • スタンドアロンサーバーの場合:

      Open EAP_HOME/bin/standalone.conf.
    • 管理対象ドメインの場合:

      Open EAP_HOME/bin/domain.conf.
  2. 以下の Java プロパティーを Java VM オプションに追加します。
    -Djava.net.preferIPv6Addresses=true
    以下に例を示します。

    例5.9 JVM オプション

    # Specify options to pass to the Java VM.
    #
    if [ "x$JAVA_OPTS" = "x" ]; then
       JAVA_OPTS="-Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=false 
       -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 
       -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv6Addresses=true"
    fi
    

5.4. remoting

5.4.1. リモーティングのメッセージサイズの設定

remoting サブシステムは、リモーティングプロトコルのメッセージのサイズを制限するオプションを提供します。最大インバウンドメッセージサイズ(MAX_INBOUND_MESSAGE_SIZE)および最大送信メッセージサイズ(MAX_OUTBOUND_MESSAGE_SIZE)を設定して、適切なサイズ制限内でメッセージが受信され、送信されるようにすることができます。
MAX_INBOUND_MESSAGE_SIZE および MAX_OUTBOUND_MESSAGE_SIZE は ejb3 サブシステムで設定でき、値はバイト単位です。
<subsystem xmlns="urn:jboss:domain:ejb3:1.5">
......
	<remote connector-ref="remoting-connector" thread-pool-name="default">
		<channel-creation-options>
			<option name="MAX_INBOUND_MESSAGE_SIZE" value="xxxxx" type="remoting"/>
			<option name="MAX_OUTBOUND_MESSAGE_SIZE" value="xxxxx" type="remoting"/>
		</channel-creation-options>
	</remote>
......
</subsystem>
リモーティングプロトコルのメッセージサイズを設定すると、システムメモリーが効率的に使用され、重要な操作の実行中にメモリー不足が発生しないようになります。
送信側が最大許容制限(MAX_OUTBOUND_MESSAGE_SIZE)を超えるメッセージを送信する場合、サーバーは例外をスローし、データの送信を取り消します。しかし、コネクションは開いたままとなり、必要に応じて送信側はメッセージを閉じることができます。
受信したメッセージが最大許容制限(MAX_INBOUND_MESSAGE_SIZE)を超える場合、接続が開いたまま、メッセージは非同期に閉じられます。

5.4.2. Remoting サブシステムの設定

概要

JBoss Remoting には、ワーカースレッドプール、1 つ以上のコネクター、および一連のローカルおよびリモート接続 URI の 3 つのトップレベル設定可能な要素があります。このトピックでは、設定可能な各項目の説明、各項目の設定方法についての CLI コマンドの例、および完全に設定されたサブシステムの XML の例を紹介します。この設定はサーバーにのみ適用されます。独自のアプリケーションにカスタムコネクターを使用しない限り、ほとんどのユーザーは Remoting サブシステムをまったく設定する必要はありません。EJB などの Remoting クライアントとして動作するアプリケーションには、特定のコネクターに接続するための個別の設定が必要です。

注記
Remoting サブシステム設定は Web ベースの管理コンソールに公開されませんが、コマンドラインベースの管理 CLI から完全に設定可能です。手作業による XML の編集は推奨されません。

CLI コマンドの適合

CLI コマンドは、デフォルト のプロファイルの設定時に管理対象ドメインに対して式化されます。別のプロファイルを設定するには、その名前を置き換えます。スタンドアロンサーバーの場合は、コマンドの /profile=default 部分を省略します。

Remoting サブシステム外の設定

remoting サブシステム以外の設定側面がいくつかあります。

ネットワークインターフェース
remoting サブシステムによって使用されるネットワークインターフェースは、domain/configuration/domain.xml または standalone/configuration/standalone.xml で定義された パブリック インターフェースです。
<interfaces>
   <interface name="management"/>
   <interface name="public"/>
   <interface name="unsecure"/>
</interfaces>        

パブリック インターフェースのホストごとの定義は、domain.xml または standalone.xml と同じディレクトリーの host.xml で定義されます。このインターフェースは、他のサブシステムによっても使用されます。変更時には注意が必要です。
<interfaces>
   <interface name="management">
      <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
   </interface>
   <interface name="public">
      <inet-address value="${jboss.bind.address:127.0.0.1}"/>
   </interface>
   <interface name="unsecure">
      <!-- Used for IIOP sockets in the standard configuration.
         To secure JacORB you need to setup SSL -->
      <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
   </interface>
</interfaces>             

socket-binding
remoting サブシステムによって使用されるデフォルトの socket-binding は TCP ポート 4447 にバインドされます。これを変更する必要がある場合は、ソケットバインディングおよびソケットバインディンググループのドキュメントを参照してください。
ソケットバインディンググループとソケットバインディンググループに関する情報は、JBoss EAP 『管理ガイドのソケットバインディンググループの章を参照し』 てください。『https://access.redhat.com/documentation/ja-jp/red_hat_jboss_enterprise_application_platform/?version=6.4
EJB のリモーティングコネクターリファレンス
EJB サブシステムには、リモートメソッド呼び出しに対するリモーティングコネクターへの参照が含まれます。デフォルト設定は次のとおりです。
<remote connector-ref="remoting-connector" thread-pool-name="default"/>            

セキュアなトランスポート設定
リモーティングトランスポートは、クライアントが要求した場合に StartTLS を使用してセキュアな(HTTPS、Secure Servlet など)接続を使用します。セキュアな接続とセキュアでない接続に同じソケットバインディング(ネットワークポート)が使用されるため、サーバー側の追加設定は必要ありません。クライアントは必要に応じてセキュアなトランスポートまたはセキュアでないトランスポートを要求します。EJB、ORB、JMS プロバイダーなどの Remoting を使用する JBoss EAP 6 コンポーネントは、デフォルトでセキュアなインターフェースを要求します。
警告: StartTLS セキュリティーに関する考慮事項
StartTLS は、クライアントが要求した場合にセキュアな接続をアクティベートし、セキュアでない接続にデフォルト設定することで機能します。これは、攻撃者がクライアントの要求をインターセプト してセキュアでない接続を要求するために Middle スタイルの不正使用における Man に悪影響を与えることが本質的に行われます。セキュアでない接続が実際に適切なフォールバックである場合を除き、クライアントがセキュアな接続を受信しない場合、適切に失敗するよう記述する必要があります。

ワーカースレッドプール

ワーカースレッドプールは、Remoting コネクターを介して提供される作業の処理に使用できるスレッドのグループです。これは単一の要素 &lt ;worker-thread-pool> で、複数の属性を取ります。ネットワークタイムアウトの取得、スレッドの不足、またはメモリー使用量の制限が必要な場合には、これらの属性をチューニングします。特定の推奨事項は、特定の状況によって異なります。詳細は Red Hat グローバルサポートサービスまでお問い合わせください。

表5.4 ワーカースレッドプールの属性

属性 説明 CLI コマンド
read-threads
リモーティングワーカーに対して作成する読み取りスレッドの数。デフォルトは1です。
/profile=default/subsystem=remoting/:write-attribute(name=worker-read-threads,value=1)
write-threads
リモーティングワーカーに作成する書き込みスレッドの数。デフォルトは1です。
/profile=default/subsystem=remoting/:write-attribute(name=worker-write-threads,value=1)
task-keepalive
コアでないリモーティングワーカーのタスクスレッドにキープアライブを使用する期間 (ミリ秒単位)。デフォルトは 60 です。
/profile=default/subsystem=remoting/:write-attribute(name=worker-task-keepalive,value=60)
task-max-threads
リモーティングワーカーのタスクスレッドプールに対するスレッドの最大数。デフォルトは 16 です。
/profile=default/subsystem=remoting/:write-attribute(name=worker-task-max-threads,value=16)
task-core-threads
リモーティングワーカーのタスクスレッドプールに対するコアスレッドの数。デフォルトは 4 です。
/profile=default/subsystem=remoting/:write-attribute(name=worker-task-core-threads,value=4)
task-limit
許可するリモーティングワーカータスクの最大数。 この数を超えるリモーティングワーカータスクは拒否されます。デフォルトは 16384 です。
/profile=default/subsystem=remoting/:write-attribute(name=worker-task-limit,value=16384)

コネクター

コネクターは主な Remoting 設定要素です。複数のコネクターを設定できます。それぞれは複数のサブ要素を持つ & lt;connector > 要素といくつかの属性で構成されます。デフォルトのコネクターは、JBoss EAP 6 の複数のサブシステムによって使用されます。カスタムコネクターの要素や属性の設定はアプリケーションに依存するため、詳細は Red Hat グローバルサポートサービスにお問い合わせください。

表5.5 コネクターの属性

属性 説明 CLI コマンド
socket-binding このコネクターに使用するソケットバインディングの名前。
/profile=default/subsystem=remoting/connector=remoting-connector/:write-attribute(name=socket-binding,value=remoting)
authentication-provider
このコネクターで使用するJASPIC(Java Authentication Service Provider Interface for Containers)モジュール。モジュールはクラスパスにある必要があります。
/profile=default/subsystem=remoting/connector=remoting-connector/:write-attribute(name=authentication-provider,value=myProvider)
security-realm
オプション。アプリケーションのユーザー、パスワード、およびロールが含まれるセキュリティーレルム。EJB または Web アプリケーションはセキュリティーレルムに対して認証できます。ApplicationRealm はデフォルトの JBoss EAP 6 インストールで利用できます。
/profile=default/subsystem=remoting/connector=remoting-connector/:write-attribute(name=security-realm,value=ApplicationRealm)

表5.6 コネクター要素

属性 説明 CLI コマンド
sasl
SASL(Simple Authentication and Security Layer)認証メカニズムの組み込み要素
該当なし
properties
1 つ以上の &lt ;property&gt; 要素が含まれ、それぞれ name 属性と任意の value 属性が含まれます。
/profile=default/subsystem=remoting/connector=remoting-connector/property=myProp/:add(value=myPropValue)

送信接続

3 種類のアウトバウンド接続を指定することができます。

  • URI への送信接続。
  • ローカルアウトバウンド接続: ソケットなどのローカルリソースに接続します。
  • リモートアウトバウンド接続: リモートリソースに接続し、セキュリティーレルムを使用して認証します。
すべてのアウトバウンド接続は < outbound-connections> 要素に囲まれて います。これらの各接続タイプは outbound-socket-binding-ref 属性を取ります。outbound-connection は uri 属性を取ります。リモートアウトバウンド接続は、承認に使用する任意の username および security-realm 属性を取ります。

表5.7 送信接続要素

属性 説明 CLI コマンド
outbound-connection 汎用アウトバウンド接続。
/profile=default/subsystem=remoting/outbound-connection=my-connection/:add(uri=http://my-connection)
local-outbound-connection 暗黙的な local:// URI スキームを使用した送信接続。
/profile=default/subsystem=remoting/local-outbound-connection=my-connection/:add(outbound-socket-binding-ref=remoting2)
remote-outbound-connection
セキュリティーレルムで basic/digest 認証を使用した remote:// URI スキームの送信接続。
/profile=default/subsystem=remoting/remote-outbound-connection=my-connection/:add(outbound-socket-binding-ref=remoting,username=myUser,security-realm=ApplicationRealm)

SASL 要素

SASL 子要素を定義する前に、最初の SASL 要素を作成する必要があります。以下のコマンドを使用します。

/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl:add
SASL 要素の子要素は以下の表で説明されています。

表5.8 SASL 子要素

属性 説明 CLI コマンド
include-mechanisms
SASL メカニズムのリストである value 属性が含まれます。
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl:write-attribute(name=include-mechanisms,value=["DIGEST","PLAIN","GSSAPI"])
qop
優先順で SASL Quality of 保護値のリストである value 属性が含まれます。
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl:write-attribute(name=qop,value=["auth"])
strength
value 属性が含まれます。これは SASL 暗号強度の値のリストで優先順で表されます。
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl:write-attribute(name=strength,value=["medium"])
reuse-session
ブール値である value 属性が含まれます。true の場合、セッションを再利用しようとします。
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl:write-attribute(name=reuse-session,value=false)
server-auth
ブール値である value 属性が含まれます。true の場合、サーバーはクライアントに対して認証します。
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl:write-attribute(name=server-auth,value=false)
policy
ゼロ以上の要素が含まれるローカリング要素。それぞれが単一の を取ります。
  • forward-secrecy: 前方機密性の実装にメカニズムが必要であるかどうか(1 つのセッションに分割しても、今後のセッションに侵入するための情報が自動的に提供されない)
  • 非アクティブ - 辞書攻撃を受けやすいメカニズムを許可するかどうか。false を指定すると許可され、true は拒否されます。
  • no-anonymous: 匿名ログインを受け入れるメカニズムを許可するかどうか。false を指定すると許可され、true は拒否されます。
  • no-dictionary: パッシブ辞書攻撃を受けやすいメカニズムを許可するかどうか。false を指定すると許可され、true は拒否されます。
  • no-plain-text: 単純なプレーンテキスト攻撃を受けやすいメカニズムを許可するかどうか。false を指定すると許可され、true は拒否されます。
  • pass-credentials: クライアントのクレデンシャルを渡すメカニズムを許可するかどうか。
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl/sasl-policy=policy:add
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl/sasl-policy=policy:write-attribute(name=forward-secrecy,value=true)
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl/sasl-policy=policy:write-attribute(name=no-active,value=false)
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl/sasl-policy=policy:write-attribute(name=no-anonymous,value=false)
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl/sasl-policy=policy:write-attribute(name=no-dictionary,value=true)
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl/sasl-policy=policy:write-attribute(name=no-plain-text,value=false)
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl/sasl-policy=policy:write-attribute(name=pass-credentials,value=true)
properties
1 つ以上の &lt ;property&gt; 要素が含まれ、それぞれ name 属性と任意の value 属性が含まれます。
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl/property=myprop:add(value=1)
/profile=default/subsystem=remoting/connector=remoting-connector/security=sasl/property=myprop2:add(value=2)

例5.10 設定例

以下の例は、JBoss EAP 6 に同梱されるデフォルトの remoting サブシステムを示しています。
<subsystem xmlns="urn:jboss:domain:remoting:1.1">
    <connector name="remoting-connector" socket-binding="remoting" security-realm="ApplicationRealm"/>
</subsystem>    

この例には多くのハイフン的な値が含まれており、前述の要素と属性をコンテキストに配置するように提示されています。
<subsystem xmlns="urn:jboss:domain:remoting:1.1">
    <worker-thread-pool read-threads="1" task-keepalive="60" task-max-threads="16" task-core-thread="4" task-limit="16384" write-threads="1" />
    <connector name="remoting-connector" socket-binding="remoting" security-realm="ApplicationRealm">
        <sasl>
            <include-mechanisms value="GSSAPI PLAIN DIGEST-MD5" />
            <qop value="auth" />
            <strength value="medium" />
            <reuse-session value="false" />
            <server-auth value="false" />
            <policy>
                <forward-secrecy value="true" />
                <no-active value="false" />
                <no-anonymous value="false" />
                <no-dictionary value="true" />
                <no-plain-text value="false" />
                <pass-credentials value="true" />
            </policy>
            <properties>
                <property name="myprop1" value="1" />
                <property name="myprop2" value="2" />
            </properties>
        </sasl>
        <authentication-provider name="myprovider" />
        <properties>
            <property name="myprop3" value="propValue" />
        </properties>
    </connector>
    <outbound-connections>
        <outbound-connection name="my-outbound-connection" uri="http://myhost:7777/"/>
        <remote-outbound-connection name="my-remote-connection" outbound-socket-binding-ref="my-remote-socket" username="myUser" security-realm="ApplicationRealm"/>
        <local-outbound-connection name="myLocalConnection" outbound-socket-binding-ref="my-outbound-socket"/>
    </outbound-connections>
</subsystem>    

設定イントロスペクションが文書化されていない

  • JNDI およびマルチキャストの自動検出

第6章 データソース管理

6.1. はじめに

6.1.1. JDBC

JDBC API は、Java アプリケーションがデータベースにアクセスする方法を定義する基準です。アプリケーションは JDBC ドライバーを参照するデータソースを設定します。その後、データベースではなくドライバーに対してアプリケーションを記述できます。ドライバーはコードをデータベース言語に変換します。そのため、適切なドライバーがインストールされていればアプリケーションをサポートされるデータベースで使用できます。
JDBC 4.0 仕様は、に定義されてい http://jcp.org/en/jsr/detail?id=221 ます。

手順6.1 管理コンソールを使用したデータソースプール接続のテスト

  1. 管理コンソールの上部から Runtime タブを選択します。
  2. 左側の Subsystems メニューを展開し、Datasources を選択します。
  3. Test Connection ボタンをクリックしてデータソースへの接続をテストし、設定が正しいことを確認します。

手順6.2 管理 CLI を使用したデータソース接続のテスト

  1. CLI ツールを起動し、サーバーに接続します。
  2. 以下の管理 CLI コマンドを実行して接続をテストします。
    • スタンドアロンモードでは、以下のコマンドを入力します。
      /subsystem=datasources/data-source=ExampleDS:test-connection-in-pool
      
    • ドメインモードでは、以下のコマンドを入力します。
      host=master/server=server-one/subsystem=datasources/data-source=ExampleDS:test-connection-in-pool
JDBC とデータソースの使用を開始するにあたっては、JBoss EAP 6 の管理設定ガイドの JDBC ドライバーのセクションを参照してください。

6.1.2. JBoss EAP 6 でサポートされるデータベース

JBoss EAP 6 でサポートされる JDBC 準拠のデータベースの一覧は、を参照し https://access.redhat.com/articles/111663 てください。

6.1.3. データソースの型

リソースの一般的なタイプには、データソースと XA データソース があります
非 XA データソースは、トランザクションを使用しないアプリケーション、または単一のデータベースでトランザクションを使用するアプリケーションに使用されます。
XA データソースは、トランザクションが複数のデータベースにわたって分散されるアプリケーションによって使用されます。XA データソースを使用すると追加のオーバーヘッドが発生します。
管理コンソールあるいは管理 CLI でデータソースを作成するときに、データソースの型を指定します。

6.1.4. データソースの例

JBoss EAP 6 には H2 データベースが含まれています。これは、開発者がアプリケーションを迅速に構築できるように、軽量でリレーショナルデータベース管理システムであり、プラットフォームのデータソースの例になります。
警告
ただし、実稼働環境では使用しないでください。これは、アプリケーションをテストおよび構築するために必要なすべての標準をサポートする非常に小さい自己完結型のデータソースです。ただし、本番稼働用として堅牢または拡張性はありません。
サポートされるデータソースおよび認定済みのデータソースのリストは、「JBoss EAP 6 でサポートされるデータベース」 を参照してください。

6.1.5. -ds.xml ファイルのデプロイメント

JBoss EAP 6 では、データソースは server サブシステムのリソースとして定義されます。以前のバージョンでは、サーバー設定のデプロイメントディレクトリーに *-ds.xml データソース設定ファイルが必要でした。*-ds.xml ファイルは、以下の 『Schemas』 で利用可能な 1.1 データソーススキーマに従って JBoss EAP 6 にデプロイでき http://www.ironjacamar.org/documentation.html ます。
警告
この機能は開発目的でのみ使用してください。JBoss の管理ツールではサポートされないため、本番環境では推奨されません。この機能は JBoss EAP 6.4 で非推奨となり、製品の次期メジャーリリースではサポートされません。
重要
*-ds.xml ファイルのデプロイ時に、すでにデプロイ/定義された <driver> エントリーへの参照を使用する必要があります。

6.2. JDBC ドライバー

6.2.1. 管理コンソールを用いた JDBC ドライバーのインストール

概要

アプリケーションが JDBC データソースに接続する前に、データソースベンダーの JDBC ドライバーを JBoss EAP 6 が使用できる場所にインストールする必要があります。JBoss EAP 6 では、これらのドライバーを他のデプロイメントと同じようにデプロイできます。これは、管理対象ドメインを使用する場合、サーバーグループの複数のサーバーにデプロイできることを意味します。

前提条件

このタスクを実行する前に、以下の前提条件を満たしている必要があります。

  • データベースのベンダーから JDBC ドライバーをダウンロードする必要があります。
注記
JDBC 4 準拠のドライバーは自動的に認識され、名前とバージョンでシステムにインストールされます。JDBC JAR は、Java サービスプロバイダーメカニズムを使用して識別されます。このような JAR には、JAR の Driver クラスの名前が含まれる META-INF/services/java.sql.Driver テキストが含まれます。

手順6.3 JDBC ドライバー JAR の編集

JDBC ドライバー JAR が JDBC 4 未対応である場合、以下の方法でデプロイ可能にすることができます。
  1. 空の一時ディレクトリーに移動するか、空の一時ディレクトリーを作成します。
  2. META-INF サブディレクトリーを作成します。
  3. META-INF/services サブディレクトリーを作成します。
  4. JDBC ドライバーの完全修飾クラス名を示す 1 行が含まれる、META-INF/services/java.sql.Driver ファイルを作成します。
  5. JAR コマンドラインツールを使用して、次のように JAR を更新します。
    jar \-uf jdbc-driver.jar META-INF/services/java.sql.Driver
  6. 管理対象ドメインを使用する場合は、JAR ファイルをサーバーグループにデプロイします。それ以外の場合は、サーバーにデプロイします。「管理コンソールを使用してデプロイされたアプリケーションを有効化」を参照してください。

結果:

JDBC ドライバーがデプロイされ、アプリケーションが使用できるようになります。

6.2.2. コアモジュールとしての JDBC ドライバーのインストール

前提条件

このタスクを実行する前に、以下の前提条件を満たしている必要があります。

手順6.4 管理 CLI を使用してコアモジュールとしての JDBC ドライバーのインストール

  1. サーバーを起動します。
  2. 管理 CLI を起動しますが、稼働中のインスタンスへの接続に --connect 引数または -c 引数を使用しないでください。
  3. module add CLI コマンドを使用して、新しいモジュールを追加します。

    例6.1 MySQL JDBC ドライバーモジュールを追加する CLI コマンドの例

    module add --name=com.mysql --resources=/path/to/mysql.jar --dependencies=javax.api,javax.transaction.api
    注記
    module 管理 CLI コマンドを使用してモジュールの追加および削除は テクノロジープレビュー としてのみ提供されるため、リモート JBoss EAP インスタンスにモジュールを追加しないでください。本番環境では、モジュールを手作業で追加および削除する必要があります。
    以下の手順に従って、モジュールを手動で追加します。
    1. ファイルパス構造は EAP_HOME/modules/ ディレクトリーの下に作成されます。たとえば、MySQL JDBC ドライバーの場合は、EAP_HOME/modules/com/mysql/main/ のようになります。
    2. リソースとして指定された JAR ファイルは main/ サブディレクトリーにコピーされます。
    3. 指定の依存関係を持つ module.xml ファイルが main/ サブディレクトリーに作成されます。module.xml ファイルの例は、「モジュール」 を参照してください。
    このコマンドを使用してモジュールを追加および削除する方法は、module --help を実行します。
  4. CLI コマンド connect を使用して、実行中のインスタンスに接続します。
  5. CLI コマンドを実行して JDBC ドライバーモジュールをサーバー設定に追加します。
    選択するコマンドは、JDBC ドライバー JAR にある /META-INF/services/java.sql.Driver ファイルにリストされているクラスの数によって異なります。たとえば、MySQL 5.1.20 JDBC JAR の /META-INF/services/java.sql.Driver ファイルには、2 つのクラスが一覧表示されます。
    • com.mysql.jdbc.Driver
    • com.mysql.fabric.jdbc.FabricMySQLDriver
    複数のエントリーがある場合は、ドライバークラスの名前も指定する必要があります。これを実行しないと、以下のようなエラーが発生します。

    例6.2 ドライバークラスエラー

    JBAS014749: Operation handler failed: Service jboss.jdbc-driver.mysql is already registered
    • 1 つのクラスエントリーを含む JDBC JAR に対して CLI コマンドを実行します。
      /subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME)

      例6.3 1 つのドライバークラスを持つ JDBC JAR に対するスタンドアロンモードの CLI コマンド

      /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource)

      例6.4 1 つのドライバークラスを持つ JDBC JAR に対するドメインモードの CLI コマンド

      /profile=ha/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource)
    • 複数のクラスエントリーを含む JDBC JAR に対して CLI コマンドを実行します。
      /subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME, driver-class-name=DRIVER_CLASS_NAME)

      例6.5 複数のドライバークラスエントリーを持つ JDBC JAR に対するスタンドアロンモードの CLI コマンド

      /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource, driver-class-name=com.mysql.jdbc.Driver)

      例6.6 複数のドライバークラスエントリーを持つ JDBC JAR に対するドメインモードの CLI コマンド

      /profile=ha/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource, driver-class-name=com.mysql.jdbc.Driver)

      例6.7 複数の非 XA ドライバークラスエントリーを持つ JDBC JAR に対するドメインモードの CLI コマンド

      /profile=ha/subsystem=datasources/jdbc-driver=oracle/:add(driver-module-name=com.oracle,driver-name=oracle,jdbc-compliant=true,driver-datasource-class-name=oracle.jdbc.OracleDriver)

結果

JDBC ドライバーがインストールされ、コアモジュールとして設定されます。アプリケーションのデータソースが JDBC ドライバーを参照できる状態になります。

6.2.3. JDBC ドライバーをダウンロードできる場所

以下の表は、JBoss EAP 6 で使用される一般的なデータベースの JDBC ドライバーをダウンロードできる場所を示しています。
注記
これらのリンク先は他社の Web サイトであるため、Red Hat は管理しておらず、積極的に監視も行っていません。データベースの最新ドライバーについては、データベースベンダーのドキュメントおよび Web サイトを確認してください。

6.2.4. ベンダー固有クラスへのアクセス

概要

このトピックでは、JDBC 固有クラスを使用するために必要な手順について説明します。これは、アプリケーションが JDBC API の一部ではないベンダー固有の機能を使用する必要がある場合はに必要です。

警告
これは高度な使用法です。JDBC API に含まれない機能を必要とするアプリケーションのみこれを実装します。
重要
このプロセスは、再認証メカニズムを使用し、ベンダー固有のクラスにアクセスする場合に必要です。
重要
接続は IronJacamar コンテナーによって制御されるため、ベンダー固有の API ガイドラインに厳密に従ってください。

手順6.5 アプリケーションへの依存関係の追加

以下の方法のいずれかを使用して、依存関係をアプリケーションに追加できます。任意の方法を選択します。
    • MANIFEST.MF ファイルの設定

      1. テキストエディターでアプリケーションの META-INF/MANIFEST.MF ファイルを開きます。
      2. JDBC モジュールの依存関係を追加し、ファイルを保存します。
        Dependencies: MODULE_NAME

        例6.8 com.mysql が依存関係として宣言されている MANIFEST.MF ファイル

        Dependencies: com.mysql
      1. jboss-deployment-structure.xml ファイルの作成

        アプリケーションの META-INF/ または WEB-INF フォルダーに jboss-deployment-structure.xml というファイルを作成します。

        例6.9 com.mysql が依存関係として宣言されている jboss-deployment-structure.xml ファイル

        <jboss-deployment-structure>
          <deployment>
            <dependencies>
              <module name="com.mysql" />
            </dependencies>
          </deployment>
        </jboss-deployment-structure>

例6.10 ベンダー固有 API へのアクセス

以下のサンプルは MySQL API にアクセスします。
import java.sql.Connection;
import org.jboss.jca.adapters.jdbc.WrappedConnection;

  Connection c = ds.getConnection();
  WrappedConnection wc = (WrappedConnection)c;
  com.mysql.jdbc.Connection mc = wc.getUnderlyingConnection();

6.3. 非 XA データソース

6.3.1. 管理インターフェースによる非 XA データソースの作成

概要

ここでは、管理コンソールまたは管理 CLI のいずれかを使用して非 XA データソースを作成する手順について取り上げます。

前提条件

  • JBoss EAP 6 サーバーが稼働している必要があります。
Oracle のデータソース
バージョン 10.2 以前の Oracle データソースでは、トランザクション以外の接続とトランザクション接続が混在するとエラーが発生するため、<no-tx-separate-pools/> パラメーターが必要でした。特定のアプリケーションでこのパラメーターが不要になる場合があります。
ドメインモード
ドライバーリストの重複などの問題を防ぐために、選択したドライバーがプロファイルで利用できないか、JBoss EAP 6.4 以降ではプロファイルのサーバーが実行されていない場合に表示されないため、JBoss EAP 6.4 以降ではモジュールとしてインストールされ、プロファイルから適切に参照される JDBC ドライバーのみが、ドメインモードで管理コンソールを使用してデータソースを作成する時に検出可能です。

手順6.6 管理 CLI または管理コンソールのいずれかを使用したデータソースの作成

    • 管理 CLI

      1. CLI ツールを起動し、サーバーに接続します。
      2. 以下の管理 CLI コマンドを実行して非 XA データソースを作成し、適切に変数を設定します。
        注記
        DRIVER_NAME の値は、JDBC ドライバー JAR にある /META-INF/services/java.sql.Driver ファイルにリストされているクラスの数によって異なります。クラスが 1 つしかない場合、値は JAR の名前になります。複数のクラスがある場合、値は JAR + driverClassName + "_" + majorVersion +"_" + minorVersion の名前になります。これを実行しないと、以下のエラーがログに記録されます。
        JBAS014775:    New missing/unsatisfied dependencies
        たとえば、MySQL 5.1.31 ドライバーに必要な DRIVER_NAME 値は mysql-connector-java-5.1.31-bin.jarcom.mysql.jdbc.Driver_5_1 です。
        data-source add --name=DATASOURCE_NAME --jndi-name=JNDI_NAME --driver-name=DRIVER_NAME  --connection-url=CONNECTION_URL
      3. データソースを有効にします。
        data-source enable --name=DATASOURCE_NAME
    • 管理コンソール

      1. 管理コンソールへログインします。
      2. 管理コンソールの Datasources パネルに移動します。

        1. コンソールの上部にある Configuration タブを選択します。
        2. ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
        3. コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
        4. コンソールの左側にあるメニューから Datasources を選択します。
      3. 新しいデータソースを作成します。

        1. Datasources パネルの上部にある Add をクリックします。
        2. Create Datasource ウィザードに新しいデータソース属性を入力し、Next ボタンをクリックします。
        3. Create Datasource ウィザードに JDBC ドライバーの詳細を入力し、Next をクリックして続行します。
        4. Create Datasource ウィザードにコネクション設定を入力します。
        5. Test Connection ボタンをクリックしてデータソースへの接続をテストし、設定が正しいことを確認します。
        6. 完了 をクリック て終了します。

結果

非 XA データソースがサーバーに追加されます。これで、standalone.xml ファイルまたは domain.xml ファイル、および管理インターフェースが表示されます。

6.3.2. 管理インターフェースによる非 XA データソースの編集

概要

ここでは、管理コンソールまたは管理 CLI のいずれかを使用して非 XA データソースを編集する手順について取り上げます。

JTA の統合
非 XA データソースは JTA トランザクションと統合できます。データソースを JTA と統合するには、jta パラメーターが true に設定されていることを確認します。

手順6.7 非 XA データソースの編集

    • 管理 CLI

      1. write-attribute コマンドを使用してデータソース属性を設定します。
        /subsystem=datasources/data-source=DATASOURCE_NAME:write-attribute(name=ATTRIBUTE_NAME,value=ATTRIBUTE_VALUE)
      2. サーバーを再ロードして変更を確認します。
        reload
    • 管理コンソール

      1. 管理コンソールの Datasources パネルに移動します。

        1. コンソールの上部にある Configuration タブを選択します。
        2. ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
        3. コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
        4. 拡張されたメニューから Datasources を選択します。
      2. データソースを編集します。

        1. Available Datasources リストからデータソースを選択します。データソース属性は以下に表示されます。
        2. Edit をクリックしてデータソース属性を編集します。
        3. Save をクリックして終了します。

結果

非 XA データソースが設定されている。変更が、standalone.xml ファイルまたは domain.xml ファイルのいずれかと管理インターフェースで表示されるようになりました。

6.3.3. 管理インターフェースによる非 XA データソースの削除

概要

ここでは、管理コンソールまたは管理 CLI を使用して、JBoss EAP 6 より非 XA データソースを削除するために必要な手順について説明します。

手順6.8 非 XA データソースの削除

    • 管理 CLI

      1. 次のコマンドを実行して非 XA データソースを削除します。
        data-source remove --name=DATASOURCE_NAME
    • 管理コンソール

      1. 管理コンソールの Datasources パネルに移動します。

        1. コンソールの上部にある Configuration タブを選択します。
        2. ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
        3. コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
        4. Datasources を選択します。
      2. 削除 するデータソースを選択し、Remove をクリックします。

結果

非 XA データソースがサーバーより削除されます。

6.4. XA データソース

6.4.1. 管理インターフェースによる XA データソースの作成

概要

ここでは、管理コンソールまたは管理 CLI のいずれかを使用して XA データソースを作成する手順について取り上げます。

Oracle のデータソース
バージョン 10.2 以前の Oracle データソースでは、トランザクション以外の接続とトランザクション接続が混在するとエラーが発生するため、<no-tx-separate-pools/> パラメーターが必要でした。特定のアプリケーションでこのパラメーターが不要になる場合があります。

手順6.9 管理 CLI または管理コンソールのいずれかを使用した XA データソースの作成

    • 管理 CLI

      1. 以下の管理 CLI コマンドを実行して XA データソースを作成し、適切に変数を設定します。
        注記
        DRIVER_NAME の値は、JDBC ドライバー JAR にある /META-INF/services/java.sql.Driver ファイルにリストされているクラスの数によって異なります。クラスが 1 つしかない場合、値は JAR の名前になります。複数のクラスがある場合、値は JAR + driverClassName + "_" + majorVersion +"_" + minorVersion の名前になります。これを実行しないと、以下のエラーがログに記録されます。
        JBAS014775:    New missing/unsatisfied dependencies
        たとえば、MySQL 5.1.31 ドライバーに必要な DRIVER_NAME 値は mysql-connector-java-5.1.31-bin.jarcom.mysql.jdbc.Driver_5_1 です。
        xa-data-source add --name=XA_DATASOURCE_NAME --jndi-name=JNDI_NAME --driver-name=DRIVER_NAME --xa-datasource-class=XA_DATASOURCE_CLASS
      2. XA データソースプロパティーの設定

        1. サーバー名の設定

          次のコマンドを実行し、ホストのサーバー名を設定します。
          /subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=ServerName:add(value=HOSTNAME)
        2. データベース名の設定

          次のコマンドを実行し、データベース名を設定します。
          /subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=DatabaseName:add(value=DATABASE_NAME)
      3. データソースを有効にします。
        xa-data-source enable --name=XA_DATASOURCE_NAME
    • 管理コンソール

      1. 管理コンソールの Datasources パネルに移動します。

        1. コンソールの上部にある Configuration タブを選択します。
        2. ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
        3. コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
        4. Datasources を選択します。
      2. XA Datasource タブを選択します。
      3. 新しい XA データソースを作成します。

        1. Add をクリックします。
        2. Create XA Datasource ウィザードで新しい XA データソース属性を入力し、Next をクリックします。
        3. Create XA Datasource ウィザードに JDBC ドライバーの詳細を入力し、Next をクリックします。
        4. XA プロパティーを入力し、Next をクリックします。
        5. Create XA Datasource ウィザードで接続設定を入力します。
        6. テスト接続 ボタンをクリックして XA データソースへの接続をテストし、設定が正しいことを確認します。
        7. 完了 をクリック て終了します。

結果

XA データソースがサーバーに追加されている。これで、standalone.xml ファイルまたは domain.xml ファイル、および管理インターフェースが表示されます。

6.4.2. 管理インターフェースによる XA データソースの編集

概要

ここでは、管理コンソールまたは管理 CLI のいずれかを使用して XA データソースを編集する手順について取り上げます。

手順6.10 管理 CLI または管理コンソールのいずれかを使用した XA データソースの編集

    • 管理 CLI

      1. XA データソース属性の設定

        write-attribute コマンドを使用してデータソース属性を設定します。
        /subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME:write-attribute(name=ATTRIBUTE_NAME,value=ATTRIBUTE_VALUE)
      2. XA データソースプロパティーの設定

        次のコマンドを実行して XA データソースサブリソースを設定します。
        /subsystem=datasources/xa-data-source=DATASOURCE_NAME/xa-datasource-properties=PROPERTY_NAME:add(value=PROPERTY_VALUE)
      3. サーバーを再ロードして変更を確認します。
        reload
    • 管理コンソール

      1. 管理コンソールの Datasources パネルに移動します。

        1. コンソールの上部にある Configuration タブを選択します。
        2. ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
        3. コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
        4. Datasources を選択します。
      2. XA Datasource タブを選択します。
      3. データソースを編集します。

        1. Available XA Datasources リストから関連する XA データソースを選択します。XA データソース属性は、その下の Attributes パネルに表示されます。
        2. Edit ボタンを選択してデータソース属性を編集します。
        3. XA データソース属性を編集し、作業が完了したら Save ボタンを選択します。

結果

XA データソースが設定されている。変更が、standalone.xml ファイルまたは domain.xml ファイルのいずれかと管理インターフェースで表示されるようになりました。

6.4.3. 管理インターフェースによる XA データソースの削除

概要

ここでは、管理コンソールまたは管理 CLI を使用して、JBoss EAP 6 から XA データソースを削除するために必要な手順について説明します。

手順6.11 管理 CLI または管理コンソールのいずれかを使用した XA データソースの削除

    • 管理 CLI

      1. 次のコマンドを実行して XA データソースを削除します。
        xa-data-source remove --name=XA_DATASOURCE_NAME
    • 管理コンソール

      1. 管理コンソールの Datasources パネルに移動します。

        1. コンソールの上部にある Configuration タブを選択します。
        2. ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
        3. コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
        4. Datasources を選択します。
      2. XA Datasource タブを選択します。
      3. 削除する登録済みの XA データソースを選択し、Remove をクリックして XA データソースを永続的に 削除 します。

結果

XA データソースがサーバーより削除されます。

6.4.4. XA リカバリー

6.4.4.1. XA リカバリーモジュール

各 XA リソースにはその設定に関連付けられたリカバリーモジュールが必要です。リカバリーモジュールはクラス com.arjuna.ats.jta.recovery.XAResourceRecovery を拡張する必要があります。
JBoss EAP 6 は、JDBC および JMS XA リソースのリカバリーモジュールを提供します。このようなタイプのリソースでは、リカバリーモジュールは自動的に登録されます。カスタムモジュールを使用する必要がある場合は、データソースに登録できます。

6.4.4.2. XA リカバリーモジュールの設定

ほとんどの JDBC および JMS リソースでは、リカバリーモジュールはリソースに自動的に関連付けられます。この場合は、リカバリーモジュールがリソースに接続してリカバリーを実行することを許可するオプションのみを設定する必要があります。
JDBC または JMS でないカスタムリソースの場合は、サポートされる設定について Red Hat グローバルサポートサービスにお問い合わせください。
これらの設定属性はデータソースの作成時または作成後に設定できます。Web ベースの管理コンソールまたはコマンドライン管理 CLI を使用して設定できます。XA データソースの設定に関する一般的な情報は、「管理インターフェースによる XA データソースの作成」 および 「管理インターフェースによる XA データソースの編集」 を参照してください。
一般的なデータソース設定属性と、特定のデータベースベンダーに関連する設定詳細については、以下の表を参照してください。

表6.2 一般的な設定属性

属性 説明
recovery-username
リソースに接続してリカバリー行うためにリカバリーモジュールが使用する必要があるユーザー名。
recovery-password
リソースに接続してリカバリーを行うためにリカバリーモジュールが使用する必要があるパスワード。
recovery-security-domain
リカバリーを行う目的でリカバリーモジュールがリソースに接続するために使用するセキュリティードメイン。
recovery-plugin-class-name
カスタムのリカバリーモジュールを使用する必要がある場合は、この属性をモジュールの完全修飾クラス名に設定します。モジュールはクラス com.arjuna.ats.jta.recovery.XAResourceRecovery を拡張する必要があります。
recovery-plugin-properties
プロパティーを設定する必要があるカスタムのリカバリーモジュールを使用する場合は、この属性をプロパティーのコンマ区切りの key=value ペアのリストに設定します。
注記
表6.2「一般的な設定属性」 で使用される名前は、データソースが CLI で設定されている場合に使用されるパラメーターです。XML 設定ファイルで使用される名前とは異なる場合があります。

ベンダー固有の設定情報

ここでは、特定のデータベースが JBoss EAP トランザクションマネージャーによって管理される XA トランザクションで連携するのに必要な特定の設定について説明します。詳細は、特定のデータベースのドキュメントを参照してください。
Oracle
Oracle データソースが不適切に設定された場合は、ログ出力に次のようなエラーが示されることがあります。

例6.11 誤った設定エラー

WARN  [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.xarecovery1] Local XARecoveryModule.xaRecovery  got XA exception javax.transaction.xa.XAException, XAException.XAER_RMERR
このエラーを解決するには、recovery-username で設定した Oracle ユーザーがリカバリーに必要なテーブルにアクセスできるようにします。以下の SQL ステートメントは、Oracle バグ 5945463 にパッチが適用された Oracle 11g または Oracle 10g R2 インスタンスに対する適切な付与を示しています。

例6.12 付与の設定

GRANT SELECT ON sys.dba_pending_transactions TO recovery-username;
GRANT SELECT ON sys.pending_trans$ TO recovery-username;
GRANT SELECT ON sys.dba_2pc_pending TO recovery-username;
GRANT EXECUTE ON sys.dbms_xa TO recovery-username;
11g より前の Oracle 11 バージョンを使用している場合は、最終的な EXECUTE ステートメントを以下のように変更します。
	GRANT EXECUTE ON sys.dbms_system TO recovery-username;
PostgreSQL および Postgres Plus Advanced Server
PostgreSQL が XA トランザクションを処理できるようにするには、設定パラメーター max_prepared_transactions を 0 よりも大きな値に変更します。
MySQL
特別な設定は必要ありません。詳細は MySQL のドキュメントを参照してください。
IBM DB2
特別な設定は必要ありません。詳細は IBM DB2 のドキュメントを参照してください。
Sybase
Sybase は、XA トランザクションがデータベース上で有効であることを想定します。XA トランザクションはデータベース設定が正しくないと動作しません。xact コーディネーションを有効 にすると、Adaptive Server トランザクションコーディネーションサービスを有効または無効にします。このパラメーターを有効にすると、リモート Adaptive Server データのアップデートが、確実に元のトラザクションでコミットまたはロールバックされるようになります。トラザクションコーディネーションを有効にするには、以下を使用します。
sp_configure 'enable xact coordination', 1
.
MSSQL
詳細は Microsoft ドキュメントを参照してください。また、開始点として参照 http://msdn.microsoft.com/en-us/library/aa342335.aspx することもできます。

ベンダー固有の問題とその結果

ここでは、XA トランザクションの処理に現在既知のデータベース固有の問題を説明します。これらの問題は、特定の EAP バージョンで現在対応しているデータベースバージョンおよび jdbc ドライバーを指します。
Oracle
データベースに関連する既知の問題はありません。
PostgreSQL
  • コミットメソッドプロトコルの呼び出し中にエラーが発生した場合、JDBC ドライバーは XAER_RMERR を返します。データベースはこのエラーコードを返し、トランザクションをデータベース側 でインダウト 状態のままにします。正しい戻りコードは XAER_RMFAIL または XAER_RETRY である必要があります。詳細はを参照してください https://github.com/pgjdbc/pgjdbc/issues/236。これにより、トランザクションは EAP 側で Heuristic 状態のままになり、データベースでロックが保持されるため、ユーザーの介入が必要になります。
  • jdbc ドライバーによって返される誤ったエラーコードにより、場合によってはデータの不整合が発生する可能性があります。詳細は、を参照して https://developer.jboss.org/thread/251537 ください。 https://github.com/pgjdbc/pgjdbc/issues/236
Postgres Plus Advanced Server
  • コミットメソッドプロトコルの呼び出し中にエラーが発生した場合、JDBC ドライバーは XAER_RMERR を返します。データベースはこのエラーコードを返し、トランザクションをデータベース側 でインダウト 状態のままにします。正しい戻りコードは XAER_RMFAIL または XAER_RETRY である必要があります。詳細はを参照してください https://github.com/pgjdbc/pgjdbc/issues/236。これにより、トランザクションは EAP 側で Heuristic 状態のままになり、データベースでロックが保持されるため、ユーザーの介入が必要になります。
  • jdbc ドライバーによって返される誤ったエラーコードにより、場合によってはデータの不整合が発生する可能性があります。詳細は以下を参照してください。 https://developer.jboss.org/thread/251537
  • 同じ XID に対して XAResource.rollback が呼び出されると、XAException がスローされます。同じ XID に対するロールバックを複数回呼び出しても JTS 仕様に準拠し、XAException はスローされません。詳細はを参照してください https://github.com/pgjdbc/pgjdbc/issues/78
MySQL
MySQL は XA トランザクションを処理できません。クライアントが MySQL を切断されると、このようなトランザクションに関する情報がすべて失われます。詳細はを参照してください http://bugs.mysql.com/bug.php?id=12161
IBM DB2
データベースに関連する既知の問題はありません。
Sybase
  • コミットメソッドプロトコルの呼び出し中にエラーが発生した場合、JDBC ドライバーは XAER_RMERR を返します。データベースはこのエラーコードを返し、トランザクションをデータベース側 でインダウト 状態のままにします。正しい戻りコードは XAER_RMFAIL または XAER_RETRY である必要があります。詳細はを参照してください https://github.com/pgjdbc/pgjdbc/issues/236。これにより、トランザクションは EAP 側で Heuristic 状態のままになり、データベースでロックが保持されるため、ユーザーの介入が必要になります。
  • 同じ XID に対して XAResource.rollback が呼び出されると、XAException がスローされます。同じ XID に対するロールバックを複数回呼び出しても JTS 仕様に準拠し、XAException はスローされません。詳細はを参照してください https://github.com/pgjdbc/pgjdbc/issues/78
MSSQL
  • コミットメソッドプロトコルの呼び出し中にエラーが発生した場合、JDBC ドライバーは XAER_RMERR を返します。データベースはこのエラーコードを返し、トランザクションをデータベース側 でインダウト 状態のままにします。正しい戻りコードは XAER_RMFAIL または XAER_RETRY である必要があります。詳細はを参照してください https://github.com/pgjdbc/pgjdbc/issues/236。これにより、トランザクションは EAP 側で Heuristic 状態のままになり、データベースでロックが保持されるため、ユーザーの介入が必要になります。
  • 同じ XID に対して XAResource.rollback が呼び出されると、XAException がスローされます。同じ XID に対するロールバックを複数回呼び出しても JTS 仕様に準拠し、XAException はスローされません。詳細はを参照してください https://github.com/pgjdbc/pgjdbc/issues/78
  • 同じ XID の XAResource.rollback の呼び出しにより、サーバーログファイルに以下のメッセージが記録されます。
    WARN [com.arjuna.ats.jtax] ...: XAResourceRecord.rollback caused an error from resource ... in transaction ...: java.lang.NullPointerException
Messaging

IBM Web Warehouse

  • JTS を使用する場合、定期的なリカバリー時に同じ XID に対するロールバックの 2 回目の呼び出しにより、エラーがログファイルに記録される可能性があります。同じ XID に対する 2 回目のロールバックは JTS の構成であり、無視できます。
    RAR がこのような XID が分からない場合は、XAER_NOTA の戻りコードが予想されます。ただし、IBM Web Warehouse は誤った戻りコード XAER_RMFAIL を返す可能性があります。
    The method 'xa_rollback' has failed with errorCode '-7' due to the resource being closed.'

ActiveMQ

  • コミットメソッドプロトコルの呼び出し中にエラーが発生した場合(ネットワークの切断など)は、XAER_RMERR を返します。リソースアダプターはこのエラーコードをトランザクションマネージャーに戻し、メッセージブローカー側でトランザクションが インダウト 状態のままになります。この動作は XA 仕様に対して行われ、正しい戻りコードは XAER_RMFAIL または XAER_RETRY である必要があります。誤ったエラーコードにより、場合によってはデータの不整合が発生する可能性があります。詳細は、を参照して https://developer.jboss.org/thread/251537 ください。
    WARN [com.arjuna.ats.jtax] ...: XAResourceRecord.rollback caused an XA error: ARJUNA016099: Unknown error code:0 from resource ...  in transaction ...: javax.transaction.xa.XAException: Transaction ...  has not been started.

TIBCO

  • JTS を使用する場合、定期的なリカバリー時に同じ XID に対するロールバックの 2 回目の呼び出しにより、エラーがログファイルに記録される可能性があります。同じ XID に対する 2 回目のロールバックは JTS の構成であり、無視できます。
    WARN [com.arjuna.ats.jtax] ...: XAResourceRecord.rollback caused an XA error: XAException.XAER_RMFAIL from resource ... in transaction ...: javax.transaction.xa.XAException

6.5. データソースセキュリティー

6.5.1. データソースセキュリティー

データソースセキュリティーとは、データソース接続のパスワードを暗号化したり分かりにくくすることを言います。これらのパスワードはプレーンテキストで設定ファイルに保存できますが、セキュリティーリスクが高くなります。
データソースセキュリティーの推奨ソリューションは、セキュリティードメインまたはパスワード vault を使用することです。以下には、各メソッドの例が含まれています。詳細は、セキュリティー 『アーキテクチャー』 およびその他の JBoss EAP セキュリティードキュメントを参照してください。

例6.13 セキュリティードメインの例

 <security-domain name="DsRealm" cache-type="default">  
  <authentication>  
    <login-module code="ConfiguredIdentity" flag="required">  
      <module-option name="userName" value="sa"/>  
      <module-option name="principal" value="sa"/>  
      <module-option name="password" value="sa"/>  
    </login-module>  
  </authentication>  
</security-domain>
DsRealm ドメインはデータソースによって参照されます。
<datasources>
  <datasource jndi-name="java:jboss/datasources/securityDs"
    pool-name="securityDs">
    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
      <driver>h2</driver>
      <new-connection-sql>select current_user()</new-connection-sql>
      <security>
        <security-domain>DsRealm</security-domain>
      </security>
    </datasource>
</datasources>
注記
セキュリティードメインが複数のデータソースと使用される場合は、セキュリティードメインでキャッシュを無効にする必要があります。これは、cache-type 属性の値を none に設定するか、この属性を削除します。ただし、キャッシュが必要な場合は、各データソースに個別のセキュリティードメインを使用する必要があります。

例6.14 パスワード vault の例

<security>
  <user-name>admin</user-name>
  <password>${VAULT::ds_ExampleDS::password::N2NhZDYzOTMtNWE0OS00ZGQ0LWE4MmEtMWNlMDMyNDdmNmI2TElORV9CUkVBS3ZhdWx0}</password>
</security>

6.6. データベース接続の検証

6.6.1. データベース接続検証設定の指定

概要

データベースのメンテナンス、ネットワークの問題、またはその他の障害により、JBoss EAP 6 がデータベースへの接続を失うことがあります。データベース接続の検証は、サーバー設定ファイルの &lt ; datasource> セクション内の <validation &gt; 要素を使用して有効にします。以下の手順に従ってデータソースを設定し、JBoss EAP 6 でデータベース接続検証を有効にします。

手順6.12 データベース接続検証設定の指定

  1. 検証方法の選択

    以下のいずれかの検証方法を選択します。
    • <validate-on-match>true</validate-on-match>

      < validate-on-match > オプションを true に設定すると、次の手順で指定された検証メカニズムを使用して接続プールからチェックアウトされるたびにデータベース接続が検証されます。
      接続が有効でない場合は、警告がログに書き込まれ、プール内の次の接続が取得されます。このプロセスは、有効な接続が見つかるまで続行します。プール内の各接続を繰り返し処理しない場合は、< use-fast-fail > オプションを使用できます。有効な接続がプールにない場合は、新しい接続が作成されます。接続の作成に失敗すると、例外が要求元アプリケーションに返されます。
      この設定により、最も早いリカバリーが実現されますが、データベースへの負荷が最も大きくなります。ただし、これは、パフォーマンスを気にする必要がない場合は最も安全な方法です。
    • <background-validation>true</background-validation>

      < background-validation > オプションを true に設定すると、< background-validation-millis > 値と組み合わせて、バックグラウンド検証が実行される頻度を決定します。< background-validation-millis > パラメーターのデフォルト値は 0 ミリ秒で、デフォルトでは無効になっています。この値は、< idle-timeout-minutes> 設定と同じ値に設定しないで ください。
      特定のシステムのoptum < background-validation-millis > 値を決定するためのバランス動作です。値が小さいほどプールの検証頻度が高くなり、より迅速に無効な接続がプールから削除されます。ただし、値が小さいほどデータベースリソースが多くなります。値が大きいほど接続検証チェックの頻度が低くなり、データベースリソースの使用量が減りますが、無効な接続が検出されない期間が長くなります。
    注記
    < validate-on-match > オプションを true に設定すると、< background-validation> オプションfalse に設定する必要があります。その逆も同様です。< background-validation> オプションtrue に設定すると、< validate-on-match> オプションfalse に設定する必要があります。
  2. 検証メカニズムの選択

    以下のいずれかの検証メカニズムを選択します。
    • <valid-connection-checker> クラス名の指定

      これは、使用中の特定の pid に対して最適化されているため、推奨されるメカニズムです。JBoss EAP 6 は以下の接続チェッカーを提供します。
      • org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLReplicationValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.novendor.JDBC4ValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker
    • <check-valid-connection-sql> の SQL の指定

      接続を検証するために使用する SQL ステートメントを提供します。
      以下は、Oracle 用接続を検証するために SQL ステートメントをどのように指定するかの例です。
      <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
      MySQL または PostgreSQL の場合は、以下の SQL ステートメントを指定する必要があります。
      <check-valid-connection-sql>select 1</check-valid-connection-sql>
  3. クラス名の <exception-sorter> 設定

    例外が致命的とマークされた場合、接続はトランザクションに参加していてもすぐに閉じられます。致命的な接続例外を適切に検出およびクリーンアップするには、例外ソータークラスオプションを使用します。JBoss EAP 6 は以下の例外ソーターを提供します。
    • org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter
    • org.jboss.jca.adapters.j