Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
管理および設定ガイド
Red Hat JBoss Enterprise Application Platform 6 向け
概要
第1章 はじめに
1.1. Red Hat JBoss Enterprise Application Platform 6
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 の操作モード
1.4. スタンドアロンサーバー
1.5. 管理対象ドメイン
図1.1 管理対象ドメインを表す図

domain.sh
または domain.bat
スクリプトが実行される物理ホストまたは仮想ホストです。ホストコントローラーは、ドメイン管理タスクをドメインコントローラーに委譲するように設定されています。
1.6. ドメインコントローラー
- ドメインの集中管理ポリシーを維持する。
- すべてのホストコントローラーが現在のコンテンツを認識するようにする。
- 実行中のすべての JBoss EAP 6 インスタンスがこのポリシーに従って設定されるよう、ホストコントローラーをサポートする。
domain/configuration/domain.xml
ファイルに保存されます。このファイルは、ドメインコントローラーのホストのファイルシステムに展開した JBoss EAP 6 インストールファイルにあります。
domain.xml
ファイルは、ドメインコントローラーとして実行するよう設定されたホストコントローラーの domain/configuration/
ディレクトリーに配置する必要があります。このファイルは、ドメインコントローラーとして実行されないホストコントローラーへのインストールには必要ありません。このようなサーバーに domain.xml
ファイルが存在すると、害はありません。
domain.xml
ファイルには、ドメインのサーバーインスタンスで実行できるプロファイル設定が含まれています。プロファイル設定には、プロファイルを構成するさまざまなサブシステムの詳細設定が含まれます。ドメイン設定には、ソケットグループの定義とサーバーグループの定義も含まれます。
1.7. ドメインコントローラーの検索およびフェールオーバー
例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
- リモートドメインコントローラーのポート。
手順1.1 ホストコントローラーを昇格してドメインコントローラーにする
- 元のドメインコントローラーが停止した状態であることを確認します。
- 管理 CLI を使用して、新しいドメインコントローラーとなるホストコントローラーへ接続します。
- 以下のコマンドを実行してホストコントローラーを設定し、新しいドメインコントローラーとして動作するようにします。
/host=HOST_NAME:write-local-domain-controller
- 以下のコマンドを実行し、ホストコントローラーをリロードします。
reload --host=HOST_NAME
1.8. ホストコントローラー
domain.sh
または domain.bat
スクリプトをホストで実行する際に起動します。
domain/configuration/host.xml
ファイルから設定を読み取ります。host.xml
ファイルには、特定のホストに固有する以下の設定情報が含まれます。
- このインストールから実行される JBoss EAP 6 インスタンスの名前。
- 次の設定のいずれか。
- ホストコントローラーがドメインコントローラーへ通知して、ホストコントローラー自体を登録し、ドメイン設定へアクセスする方法。
- リモートドメインコントローラーの検索および通知方法。
- ホストコントローラーはドメインコントローラーとして動作する。
- ローカルの物理インストールに固有する設定。たとえば、
domain.xml
で宣言された名前付きインターフェース定義は、host.xml
の実際のマシン固有の IP アドレスにマップできます。また、domain.xml の抽象パス名をhost.xml
の実際のファイルシステムパスにマッピングできます。
1.9. サーバーグループ
例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 プロファイル
1.11. 異なるバージョンのサーバーの管理
- JBoss EAP スキーマは異なるバージョンを使用します。そのため、新しいバージョンの JBoss EAP ドメインコントローラーには、下位バージョンの JBoss EAP ホストを制御する問題は必要ありませんが、
domain.xml
は使用中のすべてのバージョンが最も古いもの
である必要があります。 - クラスターがある場合、クラスターのすべてのメンバーサーバーは同じバージョンの JBoss EAP に属する必要があります。
- ドメインのすべてのホストには、Process Controller、Host Controller、および managed server などの Java プロセスが複数存在します。これらの Java プロセスは JBoss EAP の同じインストールから起動する必要があるため、同じバージョンが使用されます。
[named-formatter]
属性はターゲットモデルバージョンで認識されず、古い属性に置き換える必要があります。詳細は以下を参照してください。 https://access.redhat.com/solutions/1238073
第2章 アプリケーションサーバー管理
2.1. JBoss EAP ドキュメントの規則
- zip インストール方法
- EAP_HOME は、JBoss EAP ZIP ファイルが抽出されたディレクトリーを参照します。
- インストーラーメソッド
- EAP_HOME は、JBoss EAP のインストールを選択したディレクトリーを参照します。
- RPM インストール方法
- EAP_HOME は、
/usr/share/jbossas
ディレクトリーを参照します。
2.2. JBoss EAP 6 の起動および停止
2.2.1. JBoss EAP 6 の起動
表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 |
2.2.2. JBoss EAP 6 をスタンドアロンサーバーとして起動
概要
ここでは、JBoss EAP 6 をスタンドアロンサーバーとして起動する手順を説明します。
手順2.1 プラットフォームサービスをスタンドアロンサーバーとして起動
Red Hat Enterprise Linux の場合
EAP_HOME/bin/standalone.shコマンドを実行します。Microsoft Windows Server の場合
EAP_HOME\bin\standalone.batコマンドを実行します。他のパラメーターを指定する (任意)
起動スクリプトで利用可能なパラメーターの一覧を表示するには、-h
パラメーターを使用します。
結果
JBoss EAP 6 スタンドアロンサーバーインスタンスが起動します。
2.2.3. 1 台のマシンで複数の JBoss EAP スタンドアロンサーバーを実行
概要
このトピックでは、1 台のマシンで複数の JBoss EAP スタンドアロンサーバーを実行する手順を説明します。
手順2.2 1 台のマシンで JBoss EAP スタンドアロンサーバーの複数のインスタンスを実行
- 各スタンドアロンサーバーの
EAP_HOME/standalone/
ディレクトリーを直接 EAP_HOME/ の下に作成します。たとえば、スタンドアロンサーバーのnode1
およびnode2
のディレクトリーを作成するには、以下のコマンドを入力します。$ cd EAP_HOME $ cp -a ./standalone ./node1 $ cp -a ./standalone ./node2
- ノード名、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
- この例では、
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
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.4. JBoss EAP 6 を管理対象ドメインとして起動
操作の順序
ドメイン内のサーバーグループのスレーブサーバーを起動する前にドメインコントローラーを起動する必要があります。最初に、最初に、関連するホストコントローラーと、ドメインに関連付けられたその他のホストで使用します。
手順2.3 プラットフォームサービスを管理対象ドメインとして起動
Red Hat Enterprise Linux の場合
EAP_HOME/bin/domain.shコマンドを実行します。Microsoft Windows Server の場合
EAP_HOME\bin\domain.batコマンドを実行します。他のパラメーターを起動スクリプトに渡す (任意)
起動スクリプトで利用可能なパラメーターの一覧を表示するには、-h
パラメーターを使用します。
結果
JBoss EAP 6 管理対象ドメインインスタンスが起動します。
2.2.5. 管理対象ドメインのホストの名前設定
概要
管理対象ドメインで実行されている各ホストには一意な名前を付ける必要があります。管理を容易にし、複数のホストで同じホスト設定ファイルを使用できるようにするために、以下の優先順位を用いてホスト名が決定されます。
- 設定された場合、
host
.xml名
属性。 jboss.host.name
システムプロパティーの値。jboss.qualified.host.name
システムプロパティーの最後のピリオド(.)の後に続く値。最後のピリオドがない場合は全体の値。- POSIX ベースのオペレーティングシステムでは、
HOSTNAME
環境変数のピリオド(.)の後に続く値。Microsoft Windows のCOMPUTERNAME
環境変数、最後のピリオドがない場合は全体の値。
手順2.4 システムプロパティーを用いたホスト名の設定
- 編集するホスト設定ファイル(例:
host.xml
)を開きます。 - 以下のように、ファイルで
host
要素を見つけます。<host name="master" xmlns="urn:jboss:domain:1.6">
- これが存在する場合は、
属性宣言を削除します。name
="HOST_NAME"host
要素は以下のようになります。<host xmlns="urn:jboss:domain:1.6">
- 以下のように、-Djboss.host.name 引数を渡すサーバーを起動します。
-Djboss.host.name=HOST_NAME
手順2.5 特定の名前を用いたホスト名の設定
- 以下の構文を使用して、JBoss EAP スレーブホストを起動します。
bin/domain.sh --host-config=HOST_FILE_NAME
以下に例を示します。bin/domain.sh --host-config=host-slave01.xml
- 管理 CLI を起動します。
- 以下の構文を使用してホスト名を置き換えます。
/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">
- この処理を完了するには、変更前のホスト名を使用してサーバー設定をリロードする必要があります。
reload --host=EXISTING_HOST_NAME
以下に例を示します。reload --host=master
2.2.6. 2 台のマシンでの管理対象ドメインの作成
- IP1 = ドメインコントローラーの IP アドレス (マシン 1)
- IP2 = ホストの IP アドレス (マシン 2)
手順2.6 2 台のマシンで管理対象ドメインを作成
マシン 1 での作業
- add-user.sh スクリプトを使用して管理ユーザーを追加します。たとえば、ホストがドメインコントローラーを認証できるため、
slave01
です。add-user
出力のSECRET_VALUE
をメモします。 - 専用のドメインコントローラー向けに事前設定された
host-master.xml
設定ファイルを使用してドメインを起動します。 -bmanagement=$IP1
を使用して、ドメインコントローラーを他のマシンが見えるようにします。EAP_HOME/bin/domain.sh --host-config=host-master.xml -bmanagement=$IP1
マシン 2 での作業
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> ...
- ホストを起動します。
EAP_HOME/bin/domain.sh --host-config=host-slave.xml -Djboss.domain.master.address=$IP1 -b=$IP2
ドメインを管理します。
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 台のマシンで実行できます。
手順2.7 1 台のマシンで複数のホストコントローラーを実行する
- ドメインコントローラーの
EAP_HOME/domain
ディレクトリーをコピーします。cp -r EAP_HOME/domain /path/to/domain1
- ホストコントローラーの
EAP_HOME/domain
ディレクトリーをコピーします。cp -r EAP_HOME/domain /path/to/host1
/path/to/domain1
を使用してドメインコントローラーを起動します。EAP_HOME/bin/domain.sh --host-config=host-master.xml -Djboss.domain.base.dir=/path/to/domain1
/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 の停止
手順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)
- プロセスのプロセス 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"
- kill PID を実行してプロセス
TERM
シグナルを送信します。ここで、PID は上記のコマンドの 1 つで識別されるプロセス ID です。
結果
JBoss EAP 6 がクリーンにシャットダウンされ、データは失われません。
2.2.10. Server Runtime で渡されるスイッチおよび引数の参照
standalone.xml
、domain.xml
、および host.xml
設定ファイルに定義される設定の代替設定でサーバーを起動できます。
-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 | アプリケーションサーバーのバージョンを表示し、終了します。 |
-b
、-u
)を処理するよう設定されます。スイッチによって制御されるシステムプロパティーを使用しないよう設定ファイルを変更した場合は、実行するコマンドにスイッチを追加しても効果はありません。
2.3. サーバーの起動と停止
2.3.1. 管理 CLI を使用したサーバーの起動および停止
前提条件
管理 CLI を用いたスタンドアロンサーバーの停止
スクリプトまたはシェルプロンプトで手動で起動するスタンドアロンサーバーは、shutdown コマンドを使用して管理 CLI からシャットダウンできます。
例2.5 管理 CLI よりスタンドアロンサーバーインスタンスを停止する
[standalone@localhost:9999 /] shutdown
管理 CLI を用いた管理対象ドメインの起動および停止
管理コンソールは、ドメイン内の特定サーバーを選択的に起動または停止できます。これには、ドメイン全体にわたるサーバーグループや、ホスト上の特定サーバーインスタンスが含まれます。
例2.6 管理 CLI より管理対象ドメインのサーバーホストを停止する
[domain@localhost:9999 /] shutdown --host=master
例2.7 管理 CLI より管理対象ドメインのサーバーホストを起動および停止する
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 管理対象ドメイン向けのサーバーの起動
- コンソール上部の ドメイン タブを選択し、TOPOLOGY タブを選択します。左側のナビゲーションバーの Domain で Overview を選択します。
- Server Instances リストから、起動するサーバーを選択します。実行中のサーバーはチェックマークで表示されます。このリストにあるインスタンスにカーソルを合わせ、サーバーの詳細の下に青色でオプションを表示します。
- インスタンスを起動するには、表示された時に Start Server テキストをクリックします。確認ダイアログボックスが開きます。確認 をクリックしてサーバーを起動します。
結果
選択したサーバーが起動し、稼働状態になります。
2.3.3. 管理コンソールを使用したサーバーの停止
手順2.12 管理コンソールを使用した管理対象ドメインのサーバーの停止
- コンソール上部の ドメイン タブを選択し、TOPOLOGY タブを選択します。左側のナビゲーションバーの Domain で Overview を選択します。
- 利用可能なサーバーインスタンスの 一覧は 、ホスト、グループ、およびサーバーインスタンス の表に表示されます。実行中のサーバーはチェックマークで表示されます。
- 選択したサーバーにカーソルを合わせます。表示される Stop Server テキストをクリックします。確認ダイアログウインドウが表示されます。
- 確認 をクリックしてサーバーを停止します。
結果
選択されたサーバーが停止します。
2.4. 設定ファイル
2.4.1. JBoss EAP 6 の設定ファイル
表2.3 設定ファイルの場所
サーバーモード | 場所 | 目的 |
---|---|---|
domain.xml | EAP_HOME/domain/configuration/domain.xml | これは、管理対象ドメインの主要設定ファイルです。ドメインマスターのみがこのファイルを読み取ります。他のドメインメンバーでは削除できます。 |
host.xml | EAP_HOME/domain/configuration/host.xml | このファイルには、管理対象ドメインの物理ホスト固有の設定情報が含まれています (ネットワークインターフェース、ソケットバインディング、ホスト名、その他のホスト固有の詳細など)。host.xml ファイルには、host-master.xml と host-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 |
2.4.2. JBoss EAP 設定データのバックアップ
概要
このトピックでは、後で JBoss EAP サーバー設定を復元するためにバックアップする必要のあるファイルについて説明します。
手順2.13 設定データのバックアップ
- ユーザーおよびプロファイルデータ、ドメイン、ホスト、スレーブ、およびロギング設定を保持するには、以下のディレクトリーの内容全体をバックアップします。
- EAP_HOME/standalone/configuration/
- EAP_HOME/domain/configuration
EAP_HOME/modules/system/layers/base/
ディレクトリーに作成されたカスタムモジュールをバックアップします。EAP_HOME/welcome-content/
ディレクトリーの Welcome コンテンツをバックアップします。EAP_HOME/bin/
ディレクトリーに作成されたカスタムスクリプトをバックアップします。
2.4.3. 記述子ベースのプロパティー置換
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>
ejb-jar.xml
および persistence.xml
設定ファイルで記述子を置き換えることができます。
jboss-ejb3.xml
jboss-app.xml
jboss-web.xml
*-jms.xml
*-ds.xml
例2.10 アノテーションの例
@ActivationConfigProperty(propertyName = "connectionParameters", propertyValue = "host=192.168.1.1;port=5445")
connectionParameters
を指定できます。
./standalone.sh -DconnectionParameters='host=10.10.64.1;port=5445'
${パラメーター: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
です。
- 管理 CLI で以下のコマンドを実行し、
jboss-descriptor-property-replacement
の値を確認します。/subsystem=ee:read-attribute(name="jboss-descriptor-property-replacement")
- 次のコマンドを実行して動作を設定します。
/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
です。
- 管理 CLI で以下のコマンドを実行し、
spec-descriptor-property-replacement
の値を確認します。/subsystem=ee:read-attribute(name="spec-descriptor-property-replacement")
- 次のコマンドを実行して動作を設定します。
/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)
結果
記述子ベースのプロパティー置換が正常に設定されます。
2.4.5. ネストされた式
例2.12 ネストされた式
${system_value_1${system_value_2}}
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_name
に ds_ExampleDS
の値が割り当てられている場合、データソース定義の行は以下のようになります。
<password>${VAULT::${datasource_name}::password::1}</password>
${datasource_name}
を評価し、次にこれを大きな式に入力し、結果となる式を評価します。この設定の利点は、データソースの名前が固定された設定から抽象化されることです。
例2.14 再帰式
VAULT::ds_ExampleDS::password::1} に解決される ${
foo}
式が使用され、Vault: シークレット
に含まれる値に解決されます。
2.4.6. ファイルの履歴設定
standalone.xml
、domain.xml
ファイル、および host.xml
ファイルが含まれます。これらのファイルは直接編集して変更できますが、管理 CLI や管理コンソールなど、利用可能な管理操作でアプリケーションサーバーモデルを設定する方法が推奨されます。
2.4.7. 以前の設定でのサーバーの起動
standalone.xml
を使用してスタンドアロンサーバーの以前の設定でアプリケーションサーバーを起動する方法を示しています。同じ概念が domain.xml
と host.xml
の管理対象ドメインにそれぞれ適用されます。
例2.15 保存した設定でサーバーを起動します。
- 起動するバックアップバージョンを特定します。この例では、起動に成功すると最初の変更の前にサーバーモデルのインスタンスが呼び出されます。
EAP_HOME/standalone/configuration/standalone_xml_history/current/standalone.v1.xml
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 を使用した設定スナップショットのロード
standalone.xml
ファイルを使用しますが、同じプロセスが domain.xml
および host.xml
ファイルに適用されます。
手順2.17 設定スナップショットのロード
- ロードするスナップショットを特定します。この例では、スナップショットディレクトリーから以下のファイルを呼び出します。スナップショットファイルのデフォルトのパスは以下のとおりです。
EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20110812-191301472standalone.xml
スナップショットは相対パスにより表されます。たとえば、上記の例は次のように記述できます。jboss.server.config.dir/standalone_xml_history/snapshot/20110812-191301472standalone.xml
- ファイル名を渡し、選択したスナップショットを用いてサーバーを起動します。
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 特定のスナップショットの削除
- 削除するスナップショットを特定します。この例では、スナップショットディレクトリーから以下のファイルを削除します。
EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20110630-165714239standalone.xml
- 以下の例のようにスナップショットの名前を指定して、: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. ファイルシステムパス
domain.xml
、host.xml
、および standalone.xml
設定ファイルには、パスを宣言するセクションが含まれます。
jboss.server.log.dir
をサーバーの ログ
ディレクトリーの論理名として宣言します。
例2.16 ロギングディレクトリーの相対パス例
<file relative-to="jboss.server.log.dir" path="server.log"/>
表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 サーバーを基にしたディレクトリーのグループ化
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>
タイプを基にしたディレクトリーのグループ化
各サーバーのディレクトリーをサーバーごとにグループ化するのではなく、ファイルタイプでグループ化することもできます。管理作業がファイルタイプ中心である場合は、この設定が推奨されます。たとえば、データファイルのみを含める場合は、バックアップ設定が簡単になります。
/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 タイプを基にしたディレクトリーのグループ化
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
サブディレクトリーに格納されているサーバーのファイル
./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. アプリケーションサーバーの管理
3.2. 管理アプリケーションプログラミングインターフェース (API)
HTTP API
管理コンソールは、Google Web Toolkit(GWT)で構築された Web インターフェースです。HTTP 管理インターフェースを使用してサーバーと通信します。
例3.1 HTTP API 設定ファイルの例
<management-interfaces> [...] <http-interface security-realm="ManagementRealm"> <socket-binding http="management-http"/> </http-interface> </management-interfaces>
表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 を使用した属性値の取得
read-resource
です)。
http://hostname:9990/management/subsystem/web/connector/http
例3.3 HTTP API を使用した単一の属性値の取得
enabled
属性を取得します。
http://hostname:9990/management/subsystem/datasources/data-source/ExampleDS?operation=attribute&name=enabled
ネイティブ API
管理 CLI はネイティブ API ツールです。これは管理対象ドメインまたはスタンドアロンサーバーインスタンスで利用でき、管理者はドメインコントローラーまたはスタンドアロンサーバーインスタンスに接続し、デタイプな管理モデルを介して利用可能な管理操作を実行できます。
例3.4 ネイティブ API 設定ファイルの例
<management-interfaces> <native-interface security-realm="ManagementRealm"> <socket-binding native="management-native"/> </native-interface> [...] </management-interfaces>
3.3. 管理コンソール
3.3.1. 管理コンソール
3.3.2. 管理コンソールへのログイン
前提条件
- JBoss EAP 6 が稼働している必要があります。
- コンソールにアクセスするためのパーミッションを持つユーザーがすでに作成されている必要があります。
- Web ブラウザーを起動し、以下のアドレスに移動します。 http://localhost:9990/console/App.html注記ポート 9990 は、管理コンソールソケットバインディングとして事前定義されています。
- 管理コンソールにログインするためのユーザー名とパスワードを入力します。
図3.1 管理コンソールのログイン画面
結果
ログインすると、以下のアドレスにリダイレクトされ、管理コンソールのランディングページが表示されます。 http://localhost:9990/console/App.html#home
3.3.3. 管理コンソールの言語の変更
サポートされている言語
- ドイツ語 (de)
- 簡体中国語 (zh-Hans)
- ブラジルポルトガル語 (pt-BR)
- フランス語 (fr)
- スペイン語 (es)
- 日本語 (ja)
手順3.1 Web ベース管理コンソールの言語の変更
管理コンソールへのログイン
Web ベースの管理コンソールにログインします。Settings ダイアログを開きます。
画面の右下付近には Settings ラベルがあります。クリックして管理コンソールの設定を開きます。必要な言語を選択します。
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 チームが理解できるようにしています。この情報は、チームがコンソールの設計、機能、およびコンテンツを顧客の即時のニーズに適応させるのに役立つものです。
3.3.5. JBoss EAP コンソールでの Google Analytics の有効化
- 管理コンソールへのログイン
- 管理 コンソールの設定 をクリック
図3.2 管理コンソールのログイン画面
Settings
ダイアログで Enable Usage Data Collection チェックボックスを選択し、Save ボタンをクリックします。アプリケーションのリロードを確認し、新しい設定を有効にします。図3.3 Settings ダイアログ(使用率データの収集を有効化)
3.3.6. JBoss EAP コンソールでの Google Analytics の無効化
- 管理コンソールへのログイン
- 管理 コンソールの設定 をクリック
図3.4 管理コンソールのログイン画面
Settings
ダイアログの Enable Usage Data Collection オプションの選択を解除して、選択を削除します。Save ボタンをクリックします。アプリケーションのリロードを確認し、新しい設定を有効にします。図3.5 Settings ダイアログ(使用率データの収集を無効化)
3.3.7. 管理コンソールを使用したサーバーの設定
手順3.2 サーバーの設定
- コンソールの上部から ドメイン タブを選択します。利用可能なサーバーインスタンスが表に表示されます。
- Server Configurations をクリックします。関連するホストの Server Configurations パネルが表示されます。
- Available Server Configurations テーブルからサーバーインスタンスを選択します。
- 選択したサーバーの詳細の上に Edit をクリックします。
- 設定属性を変更します。
- Save をクリックして終了します。
図3.6 サーバー構成

結果
サーバー設定が変更され、サーバーが次回再起動したときに変更が反映されます。
3.3.8. 管理コンソールでのデプロイメントの追加
前提条件
- コンソールの上部にある Deployments タブを選択します。
- コンテンツリポジトリー タブで 追加 を選択します。Create Deployment ダイアログボックスが表示されます。
図3.7 スタンドアロンデプロイメントの管理
- ダイアログボックスで、Browse をクリックします。デプロイするファイルを参照し、これを選択してアップロードします。Next をクリックして先に進みます。
図3.8 デプロイメントの選択
- Create Deployments ダイアログボックスで表示されるデプロイメント名とランタイム名を確認します。名前を確認したら、Save をクリックしてファイルをアップロードします。
結果
選択したコンテンツがサーバーにアップロードされ、デプロイメント可能になります。
3.3.9. 管理コンソールでのサーバーの新規作成
手順3.3 サーバー設定の新規作成
管理コンソールの Server Configurations ページに移動します。
コンソールの上部から ドメイン タブを選択します。図3.9 サーバー設定
- 左側のメニューの Server Configurations をクリックします。
設定の新規作成
- Available Server Configurations の表の上にある Add ボタンを選択します。
- 「サーバー構成の 作成 」ダイアログに、基本的なサーバー設定を入力します。
- Save ボタンを選択して、新しいサーバー設定を保存します。
図3.10 設定の新規作成
3.3.10. 管理コンソールを使用したデフォルトログレベルの変更
手順3.4 ロギングレベルの編集
管理コンソールの Logging パネルに移動します。
- 管理対象ドメインを使用している場合は、コンソールの上部にある Configuration タブを選択し、コンソールの左側にあるドロップダウンリストから関連するプロファイルを選択します。
- 管理対象ドメインまたはスタンドアロンサーバーの場合は、コンソールの左側にある一覧から Core メニューを展開し、Logging エントリーをクリックします。
- コンソールの上部にある Log Categories タブをクリックします。
図3.11 ロギングパネル
ロガー詳細の編集
ログカテゴリー テーブルのエントリーの詳細を編集します。- Log Categories テーブルのエントリーを選択し、以下の Details セクションで Edit をクリックします。
- Log Level ドロップダウンボックスでカテゴリーのログレベルを設定します。終了したら Save ボタンをクリックします。
結果
該当するカテゴリーのログレベルが更新されます。
3.3.11. 管理コンソールでのサーバーグループの新規作成
前提条件
手順3.5 サーバーグループの新規作成および追加
Server Groups ビューに移動します。
コンソールの上部から ドメイン タブを選択します。- 左側の列で Server Groups を選択します。
図3.12 サーバー グループ ビュー
サーバーグループの追加
追加 ボタンをクリックして、新しいサーバーグループを追加します。サーバーグループの設定
- サーバーグループ名を入力します。
- サーバーグループのプロファイルを選択します。
- サーバーグループのソケットバインディングを選択します。
- Save ボタンをクリックして、新規グループを保存します。
図3.13 サーバー グループの作成 ダイアログ
結果
新規サーバーグループが管理コンソールに表示されるようになります。
3.3.12. 管理コンソールでのログの表示
jboss.server.log.dir
ディレクトリーにある必要があります。JBoss EAP 6 の Log Viewer はユーザー RBAC ロールの割り当ても考慮するため、管理コンソールにログインしているユーザーはアクセスが許可されているログのみを表示できます。
前提条件
手順3.6 管理コンソールでの JBoss EAP 6 ログの表示
- 管理コンソールの上部から Runtime タブを選択します。
- 管理対象ドメインを使用している場合は、左側のメニューの Change Server ボタンを使用して、ログを表示する JBoss EAP 6 サーバーを選択します。
- 左側の Platform メニューを展開し、Log Viewer を選択します。
- 一覧からログファイルを選択し、表示 ボタンをクリックします。Download をクリックして、ログファイルをローカルマシンにダウンロードすることもできます。注記管理コンソールログビューアーは、15MB を超えるログファイルを開こうとすると確認を表示します。管理コンソールログビューアーは、非常に大きなログファイル(>100MB)を表示するテキストエディターの代わりとして使用するものではありません。管理コンソールログビューアーで非常に大きなログファイルを開くと Web ブラウザーがクラッシュする可能性があるため、大きなログファイルを常にダウンロードして、テキストエディターで開く必要があります。
- 選択したログは、管理コンソールの新しいタブとして開きます。LOG FILES タブに戻り、直前の手順を繰り返すと、他のタブで複数のログファイルを開くことができます。
3.3.13. 管理コンソールでのカスタマーポータルの統合
- カスタマーポータルの検索
- ケースの作成
- ケースの修正
カスタマーポータルの検索
ケースの作成
ケースの修正
3.4. 管理 CLI
3.4.1. 管理コマンドラインインターフェース (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 の終了
[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 コマンドには、スタンドアロンまたはドメインコントローラーへの確立された接続が必要になることに注意してください。接続が確立されない限り、これらのコマンドはリストに表示されません。)
前提条件
一般的なヘルプの場合
管理 CLI で、help コマンドを入力します。[standalone@localhost:9999 /] help
状況依存ヘルプの取得
管理 CLI で、help -commands extended コマンドを入力します。[standalone@localhost:9999 /] help --commands
- 特定のコマンドの詳細な説明については、コマンドを入力してから
--help
を付けてください。[standalone@localhost:9999 /] deploy --help
結果
CLI ヘルプ情報が表示されます。
3.4.6. バッチモードでの管理 CLI の使用
概要
バッチ処理により、複数の操作リクエストをシーケンスにグループ化し、ユニットとして一緒に実行できます。シーケンスの操作リクエストのいずれかが失敗すると、操作のグループ全体がロールバックされます。
手順3.9 バッチモードのコマンドおよび操作
バッチモードの開始
batch コマンドでバッチモードを 開始 します。[standalone@localhost:9999 /] batch
バッチモードになると、プロンプトにハッシュ (#
) が表示されます。バッチへの操作要求の追加
バッチモードでは、通常通りに操作リクエストを入力します。操作リクエストは、入力順にバッチに追加されます。操作リクエストのフォーマットに関する詳細は、「管理 CLI での操作およびコマンドの使用」 を参照してください。バッチの実行
操作リクエストのシーケンス全体を入力したら、run-batch コマンドでバッチを実行します。[standalone@localhost:9999 / #] run-batch The batch executed successfully.
バッチ処理で使用できるコマンドの完全リストは、「CLI のバッチモードコマンド」 を参照してください。外部ファイルに保存されたバッチコマンド
頻繁に実行する 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 のバッチモードコマンド
表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 要求の作成、設定、および実行
操作要求の構築
操作リクエストを使用すると、管理モデルとの低レベルの対話が可能になります。サーバー設定を編集する制御方法を提供します。操作リクエストは 3 つの部分で構成されます。- スラッシュ(
/
)で始まる アドレス。 - コロン(
:
)で始まる 操作名。 - 括弧
()
内の任意の パラメーター セット。
アドレスの特定
設定はアドレス指定可能なリソースの階層ツリーとして表されます。各リソースノードは異なる操作のセットを提供します。アドレスは、操作を実行するリソースノードを指定します。アドレスは以下の構文を使用します。/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
操作の特定
操作は異なるタイプのリソースノードによって異なります。操作では、以下の構文を使用します。: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" ] }
パラメーターの決定
各操作では異なるパラメーターが必要な場合があります。パラメーターは以下の構文を使用します。(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 } }
完全操作要求の入力
アドレス、操作、およびパラメーターが決定されたら、完全操作要求を入力します。例3.8 操作要求の例
[standalone@localhost:9999 /] /subsystem=web/connector=http:read-resource(recursive=true)
結果
管理インターフェースは、サーバー設定の操作要求を実行します。
3.4.9. 管理 CLI で if-else 制御フローを使用
if
- other 制御フローをサポートします。if
条件は、of
キーワードの後に指定された管理コマンドまたは操作の応答を評価するブール式です。
- 条件演算子(&&, ||)
- 比較演算子(>, >=, <=, ==, !=)
- 式をグループ化および優先付けするかっこ
例3.9 管理 CLI コマンドでの if
ステートメントの使用
test
の読み取りを試みます。outcome
が success
でない場合 (プロパティーが存在しないことを意味します)、システムプロパティーが追加され、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 設定オプション
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
|
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 におけるプロパティーの置換
- 操作リクエストの操作アドレス部分(ノードタイプまたは名前として)。
- 操作名。
- 操作パラメーター名。
- ヘッダー名および値。
- コマンド名。
- コマンド引数名。
手順3.11 管理 CLI でのプロパティー置換の有効化
EAP_HOME/bin/jboss-cli.xml
ファイルを開きます。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
要素の値に関係なく、コマンドラインに存在するシステムプロパティーが行の解析中に解決されることを意味します。
--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)
include-runtime
要求プロパティーを追加した場合のみ、そのノードで利用可能な全リソース一覧の一部としてしか実行できません。read-attribute 操作は、以下の例のように、詳細な属性クエリーを行うことを目的としています。
例3.12 read-attribute 操作を実行してパブリックインターフェース IP を公開します。
[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
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
例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 } }
例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)
例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 を使用したアプリケーションサーバーのリロード
前提条件
例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 アドレスに置き換えます。
--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 操作を使用したデプロイメントスキャナーの無効化
[standalone@localhost:9999 /] /subsystem=deployment-scanner/scanner=default:write-attribute(name=scan-enabled,value=false) {"outcome" => "success"}
[standalone@localhost:9999 /] /subsystem=deployment-scanner/scanner=default:read-attribute(name=scan-enabled) { "outcome" => "success", "result" => false }
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 を使用したシステムプロパティーの設定
- JBoss EAP サーバーを起動します。
- ご使用のオペレーティングシステム向けのコマンドを使用して、管理 CLI を起動します。Linux の場合
EAP_HOME/bin/jboss-cli.sh --connect
Windows の場合:EAP_HOME\bin\jboss-cli.bat --connect
- システムプロパティーを追加します。使用するコマンドは、スタンドアロンサーバーと管理対象ドメインのどちらを実行しているかによって異なります。管理対象ドメインを実行している場合は、そのドメインで実行しているすべてのサーバーへシステムプロパティーを追加できます。
- 以下の構文を使用して、スタンドアロンサーバーにシステムプロパティーを追加します。
/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"}}}}}} }
- システムプロパティーを読み取ります。使用するコマンドは、スタンドアロンサーバーと管理対象ドメインのどちらを実行しているかによって異なります。
- 以下の構文を使用して、スタンドアロンサーバーからシステムプロパティーを読み取ります。
/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" } }
- システムプロパティーを削除します。使用するコマンドは、スタンドアロンサーバーと管理対象ドメインのどちらを実行しているかによって異なります。
- 以下の構文を使用して、スタンドアロンサーバーからシステムプロパティーを削除します。
/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 コマンド履歴
.jboss-cli-history
としてユーザーのホームディレクトリーに自動的に保存されるログファイルに追加されます。この履歴ファイルは、デフォルトで最大 500 の 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. 管理インターフェース監査ロギング
/host=HOST_NAME
を追加します。
[... /] /core-service=management/access=audit:read-resource(recursive=true)
3.7.2. ファイルへの管理インターフェース監査ロギングの有効化
/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 サーバーへの管理インターフェース監査ロギングの有効化
手順3.24 Syslog サーバーへの監査ロギングの有効化
監査ロギングの有効化
以下のコマンドを実行します。[.. /]/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
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
syslog
ハンドラーへの参照の追加以下のコマンドを実行します。[.. /]/core-service=management/access=audit/logger=audit-log/handler=mysyslog:add
結果
管理インターフェースの監査ログエントリーが syslog
サーバーに記録されます。
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. 管理インターフェース監査ログの読み取り
表3.5 管理インターフェース監査ログフィールド
フィールド名 | 説明 |
---|---|
type | 管理操作であることを示す core または jmx は JMX サブシステムからの意味を持つことができます(JMX サブシステムの監査ロギングの設定については JMX サブシステムを参照してください)。 |
r/o | 操作によって管理モデルが変更されない場合は、値が true になります。そうでない場合は false になります。 |
起動 | 起動プロセス中に操作が実行された場合は、値が true になります。サーバーの起動後に操作が実行された場合は false になります。 |
version | JBoss EAP インスタンスのバージョン番号。 |
user | 認証されたユーザーのユーザー名。実行中のサーバーと同じマシンの管理 CLI で操作を行う場合は、特別な $local ユーザーが使用されます。 |
domainUUID | ドメインコントローラーからサーバー、スレーブホストコントローラー、およびスレーブホストコントローラーサーバーへ伝播されるすべての操作をリンクする ID。 |
access | 以下のいずれかの値を使用できます。
|
remote-address | この操作を実行するクライアントのアドレス。 |
success | 操作に成功した場合は値が true になります。ロールバックされた場合は false になります。 |
ops | 実行される操作。JSON へシリアライズ化された操作のリストになります。起動時は、XML の解析で生じた演算です。通常、一覧を起動するとエントリーが 1 つ含まれます。 |
第4章 ユーザー管理
4.1. JBoss EAP ユーザー管理
add-user.sh
スクリプトを使用して JBoss EAP 6 の簡単なユーザー管理について説明します。LDAP やロールベースアクセス制御(RBAC)などの高度な認証および承認オプションは、JBoss EAP『 『セキュリティーアーキテクチャー』 』の「 『コア管理認証』 」を参照してください。
4.2. ユーザーの作成
4.2.1. 管理インターフェースのユーザーの追加
手順4.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
管理ユーザーの追加を選択します。
ENTER を押して、デフォルトのオプションa
を選択し、管理ユーザーを追加します。このユーザーはManagementRealm
に追加され、Web ベースの管理コンソールまたはコマンドラインベースの管理 CLI を使用して管理操作を実行することが承認されます。もう 1 つの選択肢はb
で、ユーザーをApplicationRealm
に追加し、特定のパーミッションは提供されません。そのレルムはアプリケーションで使用するために提供されます。ユーザー名とパスワードを入力します。
プロンプトが表示されたら、ユーザー名とパスワードを入力します。入力後、パスワードを確認するよう指示されます。グループ情報を入力します。
ユーザーが属するグループを追加します。ユーザーが複数のグループに属する場合は、コンマ区切りリストを入力します。ユーザーがグループに属さない場合は空白のままにします。情報を確認します。
情報を確認するよう求められます。問題がなければ、yes
を入力します。ユーザーがリモート JBoss EAP 6 サーバーインスタンスを表すかどうかを選択します。
管理者以外に、ManagementRealm
の JBoss EAP 6 の別のインスタンスを表すユーザーである で JBoss EAP 6 に追加する必要がある他のタイプのユーザーは、メンバーとしてクラスターに参加することを認証できる必要があります。次のプロンプトでは、この目的のために追加したユーザーを指定できます。yes
を選択すると、ユーザーのパスワードを表すハッシュ化されたsecret
値が表示されます。これは別の設定ファイルに追加する必要があります。このタスクの目的上、この質問にはno
と回答します。追加ユーザーを入力します。
必要な場合は、この手順を繰り返すと追加のユーザーを入力できます。実行中のシステムのいつでも追加することもできます。デフォルトのセキュリティーレルムを選択する代わりに、他のレルムにユーザーを追加すると、承認を微調整できます。非対話的にユーザーを作成します。
コマンドラインで各パラメーターを渡すと、非対話的にユーザーを作成できます。ログや履歴ファイルにパスワードが表示されるため、この方法は共有システムでは推奨されません。管理レルムを使用したコマンドの構文は次のとおりです。[user@host bin]$
./add-user.sh username passwordアプリケーションレルムを使用するには、-a
パラメーターを使用します。[user@host bin]$
./add-user.sh -a username password--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
コマンドで引数を渡す方法を実証する例は、「デフォルトのプロパティーファイルを使用した単一のグループに属するユーザーの作成」、「デフォルトのプロパティーファイルを使用した複数のグループへのユーザーの作成」、「デフォルトのプロパティーファイルを使用したデフォルトのレルムの管理者権限でのユーザーの作成」、および 「代替プロパティーファイルを使用した情報の保存における単一グループへのユーザーの作成」 を参照してください。.
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
|
ユーザーのパスワード。パスワードは以下の要件を満たす必要があります。
|
-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
引数と共に使用されるファイル名を使用することもできます。
JBAS015234: No appusers.properties files found
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
- グループ
guest
、app1group
、および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. インターフェース
管理
インターフェースと パブリック
インターフェース名の両方が含まれます。管理
インターフェース名は、管理レイヤーを必要とするすべてのコンポーネントおよびサービス(HTTP 管理エンドポイントを含む)に使用できます。public
インターフェース名は、Web や Messaging などのアプリケーション関連のネットワーク通信すべてに使用できます。
domain.xml
、host.xml
、および standalone.xml
設定ファイルには、インターフェース宣言が含まれます。宣言基準はワイルドカードアドレスを参照したり、有効な一致となるためにインターフェースまたはアドレスで必要となる 1 つ以上の特性のセットを指定したりできます。
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>
例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>
表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 を使用して、新しいインターフェースを追加し、インターフェース属性に新しい値を書き込みます。新しいインターフェースの追加
add 操作は必要に応じて新しいインターフェースを作成します。add コマンドは、管理 CLI セッションのルートから実行され、以下の例では interfacename というタイトルの新しいインターフェース名を作成し、inet-address
が 12.0.0.2 として宣言されます。/interface=interfacename/:add(inet-address=12.0.0.2)
インターフェース属性の編集
write-attribute 操作は、新しい値を属性に書き込みます。以下の例では、inet-address
の値を 12.0.0.8 に更新します。/interface=interfacename/:write-attribute(name=inet-address, value=12.0.0.8)
インターフェース属性の検証
include-runtime=true
パラメーターを指定して read-resource 操作を実行し、サーバーモデルでアクティブな現在の値をすべて公開して、属性値が変更されたことを確認します。以下に例を示します。[standalone@localhost:9999 interface=public] :read-resource(include-runtime=true)
管理コンソールでのインターフェース属性の設定
管理コンソールへのログイン
管理対象ドメインまたはスタンドアロンサーバーインスタンスの管理コンソールにログインします。Configuration タブに移動します。
画面上部の Configuration タブを選択します。注記ドメインモードの場合は、画面左上の Profile ドロップダウンメニューからプロファイルを選択します。ナビゲーションメニュー から インターフェース を選択します。
ナビゲーションメニューから Interfaces メニュー項目を選択します。新しいインターフェースの追加
- Add をクリックします。
- Name、Inet Address、および Address Wildcard に、必要な値を入力します。
- Save をクリックします。
インターフェース属性の編集
- 利用可能なインターフェース の一覧から編集する必要があるインターフェースを選択し、編集 をクリックします。
- Name、Inet Address、および Address Wildcard に、必要な値を入力します。
- Save をクリックします。
5.2. ソケットバインディンググループ
5.2.1. ソケットバインディンググループ
domain.xml
と standalone.xml
設定ファイルの両方にあります。設定の他のセクションは、ソケット設定の完全な詳細を含めるのではなく、論理名でこれらのソケットを参照できます。これにより、マシンごとに異なる可能性のある相対ソケット設定を参照できます。
例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-sockets
、ha-sockets
、full-sockets
、full-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 を使用してソケットバインディングを設定します。新しいソケットバインディングの追加
必要に応じて add 操作を使用して新規アドレス設定を作成します。管理 CLI セッションのルートからこのコマンドを実行できます。以下の例では、newsocket という新しいソケットバインディングが作成され、port
属性は 1234 として宣言されています。この例は、以下に示すように、スタンドアロンサーバーと、standard-sockets
ソケットバインディンググループで編集される管理対象ドメインの両方に適用されます。[domain@localhost:9999 /] /socket-binding-group=standard-sockets/socket-binding=newsocket/:add(port=1234)
パターン属性の編集
write-attribute 操作を使用して、新しい値を属性に書き込みます。タブ補完を使用すると、入力時のコマンド文字列の補完に役立つほか、利用可能な属性を明らかにできます。以下の例では、port
の値を 2020に更新します。[domain@localhost:9999 /] /socket-binding-group=standard-sockets/socket-binding=newsocket/:write-attribute(name=port,value=2020)
パターン属性の確認
値が変更されたことを確認するには、include-runtime=true パラメーターを指定して read-resource 操作を実行し、サーバーモデルでアクティブな現在の値をすべて公開します。[domain@localhost:9999 /] /socket-binding-group=standard-sockets/socket-binding=newsocket/:read-resource
管理コンソールを使用したソケットバインディングの設定
管理コンソールを使用してソケットバインディングを設定します。管理コンソールへのログイン
管理対象ドメインまたはスタンドアロンサーバーの管理コンソールにログインします。Configuration タブに移動します。
画面上部の Configuration タブを選択します。ナビゲーションメニューから Socket Binding アイテムを選択します。
General Configuration メニューを展開します。Socket Binding を選択します。管理対象ドメインを使用している場合は、Socket Binding Groups リストで対象のグループを選択します。新しいソケットバインディングの追加
- 追加 ボタンをクリックします。
- Name、Port、および Binding Group に必要な値を入力します。
- Save をクリックして終了します。
ソケットバインディングの編集
- 一覧からソケットバインディングを選択し、Edit をクリックします。
- Name、Interface、Port などの必要な値を入力します。
- Save をクリックして終了します。
5.2.3. JBoss EAP 6 により使用されるネットワークポート
- サーバーグループがデフォルトのソケットバインディンググループのいずれかを使用するか、またはカスタムグループを使用するかどうか。
- 個別デプロイメントの要件。
8080
で、サーバーが 100
のポートオフセットを使用する場合、HTTP ポートは 8180
になります。
デフォルトのソケットバインディンググループ
full-ha-sockets
full-sockets
ha-sockets
standard-sockets
domain.xml
でのみ利用できます。スタンドアロンサーバープロファイルには、標準のソケットバインディンググループのみが含まれます。このグループは standalone.xml
の standard-sockets、standalone-ha.xml
のha-sockets
、standalone-full.xml
の場合はfull-sockets
、standalone-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 が使用するポート
5.2.4. ソケットバインディンググループのポートオフセット
5.2.5. ポートオフセットの設定
ポートオフセットの設定
管理 CLI または管理コンソールを選択してポートオフセットを設定します。管理 CLI を使用したポートオフセットの設定
管理 CLI を使用してポートオフセットを設定します。ポートオフセットの編集
write-attribute 操作を使用して、新しい値をポートオフセットに書き込みます。以下の例では、server-two のsocket-binding-port-offset
値を 250 に更新しています。このサーバーは、デフォルトのローカルホストグループのメンバーです。変更を有効にするには、再起動が必要です。[domain@localhost:9999 /] /host=master/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)
ポートオフセット属性の確認
値が変更されたことを確認するには、include-runtime=true パラメーターを指定して read-resource 操作を実行し、サーバーモデルでアクティブな現在の値をすべて公開します。[domain@localhost:9999 /] /host=master/server-config=server-two/:read-resource(include-runtime=true)
管理コンソールを使用したポートオフセットの設定
管理コンソールを使用してポートオフセットを設定します。管理コンソールへのログイン
管理対象ドメインの管理コンソールにログインします。ドメイン タブの選択
画面上部の ドメイン タブを選択します。ポートオフセット属性の編集
Available Server Configurations
リストでサーバーを選択し、以下のアセンブリーリストの上部にある Edit をクリックします。- Port Offset フィールドに任意の値を入力します。
- Save をクリックして終了します。
5.3. IPv6
5.3.1. IPv6 ネットワーキング向け JVM スタック設定の指定
- 概要
- このトピックでは、JBoss EAP 6 インストールでの IPv6 ネットワーキングの有効化について説明します。
手順5.1 IPv4 Stack Java プロパティーの無効化
- インストールに関連するファイルを開きます。
スタンドアロンサーバーの場合:
OpenEAP_HOME/bin/standalone.conf
.管理対象ドメインの場合:
OpenEAP_HOME/bin/domain.conf
.
- 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 ネットワーキングのインターフェースの設定
- 画面上部の Configuration タブを選択します。
- General Configuration メニューを展開し、Interfaces を選択します。
- Available Interfaces リストからインターフェースを選択します。
- 詳細一覧で Edit をクリックします。
- 下記の inet アドレスを設定します。
${jboss.bind.address.management:[ADDRESS]}
- Save をクリックして終了します。
- サーバーを再起動し、変更を実装します。
5.3.3. IPv6 アドレス用 JVM スタック設定の指定
- 概要
- このトピックでは、JBoss EAP 6 インストールで IPv6 アドレスを優先するよう設定ファイルで設定する方法について説明します。
手順5.3 IPv6 アドレスを優先するよう JBoss EAP 6 インストールを設定する
- インストールに関連するファイルを開きます。
スタンドアロンサーバーの場合:
OpenEAP_HOME/bin/standalone.conf
.管理対象ドメインの場合:
OpenEAP_HOME/bin/domain.conf
.
- 以下の 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. リモーティングのメッセージサイズの設定
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 クライアントとして動作するアプリケーションには、特定のコネクターに接続するための個別の設定が必要です。
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 コンポーネントは、デフォルトでセキュアなインターフェースを要求します。
ワーカースレッドプール
ワーカースレッドプールは、Remoting コネクターを介して提供される作業の処理に使用できるスレッドのグループです。これは単一の要素 < ;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 つ以上の <
;property> ; 要素が含まれ、それぞれ 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
表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 |
ゼロ以上の要素が含まれるローカリング要素。それぞれが単一の
値 を取ります。
|
/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 つ以上の <
;property> ; 要素が含まれ、それぞれ 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 設定例
<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
手順6.1 管理コンソールを使用したデータソースプール接続のテスト
- 管理コンソールの上部から Runtime タブを選択します。
- 左側の Subsystems メニューを展開し、Datasources を選択します。
- Test Connection ボタンをクリックしてデータソースへの接続をテストし、設定が正しいことを確認します。
手順6.2 管理 CLI を使用したデータソース接続のテスト
- CLI ツールを起動し、サーバーに接続します。
- 以下の管理 CLI コマンドを実行して接続をテストします。
- スタンドアロンモードでは、以下のコマンドを入力します。
/subsystem=datasources/data-source=ExampleDS:test-connection-in-pool
- ドメインモードでは、以下のコマンドを入力します。
host=master/server=server-one/subsystem=datasources/data-source=ExampleDS:test-connection-in-pool
6.1.2. JBoss EAP 6 でサポートされるデータベース
6.1.3. データソースの型
データソースと XA データソース
があります
。
6.1.4. データソースの例
6.1.5. -ds.xml ファイルのデプロイメント
*-ds.xml
データソース設定ファイルが必要でした。*-ds.xml
ファイルは、以下の 『Schemas』 で利用可能な 1.1 データソーススキーマに従って JBoss EAP 6 にデプロイでき http://www.ironjacamar.org/documentation.html ます。
*-ds.xml
ファイルのデプロイ時に、すでにデプロイ/定義された <driver> エントリーへの参照を使用する必要があります。
6.2. JDBC ドライバー
6.2.1. 管理コンソールを用いた JDBC ドライバーのインストール
概要
アプリケーションが JDBC データソースに接続する前に、データソースベンダーの JDBC ドライバーを JBoss EAP 6 が使用できる場所にインストールする必要があります。JBoss EAP 6 では、これらのドライバーを他のデプロイメントと同じようにデプロイできます。これは、管理対象ドメインを使用する場合、サーバーグループの複数のサーバーにデプロイできることを意味します。
前提条件
このタスクを実行する前に、以下の前提条件を満たしている必要があります。
- データベースのベンダーから JDBC ドライバーをダウンロードする必要があります。
手順6.3 JDBC ドライバー JAR の編集
- 空の一時ディレクトリーに移動するか、空の一時ディレクトリーを作成します。
- META-INF サブディレクトリーを作成します。
- META-INF/services サブディレクトリーを作成します。
- JDBC ドライバーの完全修飾クラス名を示す 1 行が含まれる、META-INF/services/java.sql.Driver ファイルを作成します。
- JAR コマンドラインツールを使用して、次のように JAR を更新します。
jar \-uf jdbc-driver.jar META-INF/services/java.sql.Driver
- 管理対象ドメインを使用する場合は、JAR ファイルをサーバーグループにデプロイします。それ以外の場合は、サーバーにデプロイします。「管理コンソールを使用してデプロイされたアプリケーションを有効化」を参照してください。
結果:
JDBC ドライバーがデプロイされ、アプリケーションが使用できるようになります。
6.2.2. コアモジュールとしての JDBC ドライバーのインストール
前提条件
このタスクを実行する前に、以下の前提条件を満たしている必要があります。
- データベースのベンダーから JDBC ドライバーをダウンロードする必要があります。JDBC ドライバーのダウンロード場所は、「JDBC ドライバーをダウンロードできる場所」 に記載されています。
- アーカイブを展開します。
手順6.4 管理 CLI を使用してコアモジュールとしての JDBC ドライバーのインストール
- サーバーを起動します。
- 管理 CLI を起動しますが、稼働中のインスタンスへの接続に
--connect
引数または-c
引数を使用しないでください。 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 インスタンスにモジュールを追加しないでください。本番環境では、モジュールを手作業で追加および削除する必要があります。以下の手順に従って、モジュールを手動で追加します。このコマンドを使用してモジュールを追加および削除する方法は、- ファイルパス構造は
EAP_HOME/modules/
ディレクトリーの下に作成されます。たとえば、MySQL JDBC ドライバーの場合は、EAP_HOME/modules/com/mysql/main/
のようになります。 - リソースとして指定された JAR ファイルは
main/
サブディレクトリーにコピーされます。 - 指定の依存関係を持つ module.xml ファイルが
main/
サブディレクトリーに作成されます。module.xml ファイルの例は、「モジュール」 を参照してください。
module --help
を実行します。- CLI コマンド
connect
を使用して、実行中のインスタンスに接続します。 - 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 ドライバーをダウンロードできる場所
表6.1 JDBC ドライバーをダウンロードできる場所
ベンダー | ダウンロード場所 |
---|---|
MySQL | |
PostgreSQL | |
Oracle | |
IBM | |
Sybase | |
Microsoft |
6.2.4. ベンダー固有クラスへのアクセス
概要
このトピックでは、JDBC 固有クラスを使用するために必要な手順について説明します。これは、アプリケーションが JDBC API の一部ではないベンダー固有の機能を使用する必要がある場合はに必要です。
手順6.5 アプリケーションへの依存関係の追加
MANIFEST.MF
ファイルの設定- テキストエディターでアプリケーションの
META-INF/MANIFEST.MF
ファイルを開きます。 - JDBC モジュールの依存関係を追加し、ファイルを保存します。
Dependencies: MODULE_NAME
例6.8 com.mysql が依存関係として宣言されている MANIFEST.MF ファイル
Dependencies: com.mysql
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 へのアクセス
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 サーバーが稼働している必要があります。
手順6.6 管理 CLI または管理コンソールのいずれかを使用したデータソースの作成
管理 CLI
- CLI ツールを起動し、サーバーに接続します。
- 以下の管理 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
- データソースを有効にします。
data-source enable --name=DATASOURCE_NAME
管理コンソール
- 管理コンソールへログインします。
管理コンソールの Datasources パネルに移動します。
- コンソールの上部にある Configuration タブを選択します。
- ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
- コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
- コンソールの左側にあるメニューから Datasources を選択します。
新しいデータソースを作成します。
- Datasources パネルの上部にある Add をクリックします。
- Create Datasource ウィザードに新しいデータソース属性を入力し、Next ボタンをクリックします。
- Create Datasource ウィザードに JDBC ドライバーの詳細を入力し、Next をクリックして続行します。
- Create Datasource ウィザードにコネクション設定を入力します。
- Test Connection ボタンをクリックしてデータソースへの接続をテストし、設定が正しいことを確認します。
- 完了 をクリック し て終了します。
結果
非 XA データソースがサーバーに追加されます。これで、standalone.xml
ファイルまたは domain.xml
ファイル、および管理インターフェースが表示されます。
6.3.2. 管理インターフェースによる非 XA データソースの編集
概要
ここでは、管理コンソールまたは管理 CLI のいずれかを使用して非 XA データソースを編集する手順について取り上げます。
前提条件
jta
パラメーターが true
に設定されていることを確認します。
手順6.7 非 XA データソースの編集
管理 CLI
write-attribute
コマンドを使用してデータソース属性を設定します。/subsystem=datasources/data-source=DATASOURCE_NAME:write-attribute(name=ATTRIBUTE_NAME,value=ATTRIBUTE_VALUE)
- サーバーを再ロードして変更を確認します。
reload
管理コンソール
管理コンソールの Datasources パネルに移動します。
- コンソールの上部にある Configuration タブを選択します。
- ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
- コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
- 拡張されたメニューから Datasources を選択します。
データソースを編集します。
- Available Datasources リストからデータソースを選択します。データソース属性は以下に表示されます。
- Edit をクリックしてデータソース属性を編集します。
- Save をクリックして終了します。
結果
非 XA データソースが設定されている。変更が、standalone.xml
ファイルまたは domain.xml
ファイルのいずれかと管理インターフェースで表示されるようになりました。
- 新しいデータソースを作成するには、「管理インターフェースによる非 XA データソースの作成」 を参照してください。
- データソースを削除するには、「管理インターフェースによる非 XA データソースの削除」 を参照してください。
6.3.3. 管理インターフェースによる非 XA データソースの削除
概要
ここでは、管理コンソールまたは管理 CLI を使用して、JBoss EAP 6 より非 XA データソースを削除するために必要な手順について説明します。
前提条件
手順6.8 非 XA データソースの削除
管理 CLI
- 次のコマンドを実行して非 XA データソースを削除します。
data-source remove --name=DATASOURCE_NAME
管理コンソール
管理コンソールの Datasources パネルに移動します。
- コンソールの上部にある Configuration タブを選択します。
- ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
- コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
- Datasources を選択します。
- 削除 するデータソースを選択し、Remove をクリックします。
結果
非 XA データソースがサーバーより削除されます。
- 新しいデータソースを追加するには、「管理インターフェースによる非 XA データソースの作成」 を参照してください。
6.4. XA データソース
6.4.1. 管理インターフェースによる XA データソースの作成
概要
ここでは、管理コンソールまたは管理 CLI のいずれかを使用して XA データソースを作成する手順について取り上げます。
手順6.9 管理 CLI または管理コンソールのいずれかを使用した XA データソースの作成
管理 CLI
- 以下の管理 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
XA データソースプロパティーの設定
サーバー名の設定
次のコマンドを実行し、ホストのサーバー名を設定します。/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=ServerName:add(value=HOSTNAME)
データベース名の設定
次のコマンドを実行し、データベース名を設定します。/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=DatabaseName:add(value=DATABASE_NAME)
- データソースを有効にします。
xa-data-source enable --name=XA_DATASOURCE_NAME
管理コンソール
管理コンソールの Datasources パネルに移動します。
- コンソールの上部にある Configuration タブを選択します。
- ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
- コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
- Datasources を選択します。
- XA Datasource タブを選択します。
新しい XA データソースを作成します。
- Add をクリックします。
- Create XA Datasource ウィザードで新しい XA データソース属性を入力し、Next をクリックします。
- Create XA Datasource ウィザードに JDBC ドライバーの詳細を入力し、Next をクリックします。
- XA プロパティーを入力し、Next をクリックします。
- Create XA Datasource ウィザードで接続設定を入力します。
- テスト接続 ボタンをクリックして XA データソースへの接続をテストし、設定が正しいことを確認します。
- 完了 をクリック し て終了します。
結果
XA データソースがサーバーに追加されている。これで、standalone.xml
ファイルまたは domain.xml
ファイル、および管理インターフェースが表示されます。
以下も参照してください。
6.4.2. 管理インターフェースによる XA データソースの編集
概要
ここでは、管理コンソールまたは管理 CLI のいずれかを使用して XA データソースを編集する手順について取り上げます。
前提条件
手順6.10 管理 CLI または管理コンソールのいずれかを使用した XA データソースの編集
管理 CLI
XA データソース属性の設定
write-attribute
コマンドを使用してデータソース属性を設定します。/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME:write-attribute(name=ATTRIBUTE_NAME,value=ATTRIBUTE_VALUE)
XA データソースプロパティーの設定
次のコマンドを実行して XA データソースサブリソースを設定します。/subsystem=datasources/xa-data-source=DATASOURCE_NAME/xa-datasource-properties=PROPERTY_NAME:add(value=PROPERTY_VALUE)
- サーバーを再ロードして変更を確認します。
reload
管理コンソール
管理コンソールの Datasources パネルに移動します。
- コンソールの上部にある Configuration タブを選択します。
- ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
- コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
- Datasources を選択します。
- XA Datasource タブを選択します。
データソースを編集します。
- Available XA Datasources リストから関連する XA データソースを選択します。XA データソース属性は、その下の Attributes パネルに表示されます。
- Edit ボタンを選択してデータソース属性を編集します。
- XA データソース属性を編集し、作業が完了したら Save ボタンを選択します。
結果
XA データソースが設定されている。変更が、standalone.xml
ファイルまたは domain.xml
ファイルのいずれかと管理インターフェースで表示されるようになりました。
- 新しいデータソースを作成するには、「管理インターフェースによる XA データソースの作成」 を参照してください。
- データソースを削除するには、「管理インターフェースによる XA データソースの削除」 を参照してください。
6.4.3. 管理インターフェースによる XA データソースの削除
概要
ここでは、管理コンソールまたは管理 CLI を使用して、JBoss EAP 6 から XA データソースを削除するために必要な手順について説明します。
前提条件
手順6.11 管理 CLI または管理コンソールのいずれかを使用した XA データソースの削除
管理 CLI
- 次のコマンドを実行して XA データソースを削除します。
xa-data-source remove --name=XA_DATASOURCE_NAME
管理コンソール
管理コンソールの Datasources パネルに移動します。
- コンソールの上部にある Configuration タブを選択します。
- ドメインモードの場合は、左上のドロップダウンボックスからプロファイルを選択します。
- コンソールの左側にある Subsystems メニューを展開し、Connector メニューを展開します。
- Datasources を選択します。
- XA Datasource タブを選択します。
- 削除する登録済みの XA データソースを選択し、Remove をクリックして XA データソースを永続的に 削除 します。
結果
XA データソースがサーバーより削除されます。
- 新しい XA データソースを追加するには、「管理インターフェースによる XA データソースの作成」 を参照してください。
6.4.4. XA リカバリー
6.4.4.1. XA リカバリーモジュール
com.arjuna.ats.jta.recovery.XAResourceRecovery
を拡張する必要があります。
6.4.4.2. 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 ペアのリストに設定します。
|
ベンダー固有の設定情報
- 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 することもできます。
ベンダー固有の問題とその結果
- 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. データソースセキュリティー
例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>
<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 がデータベースへの接続を失うことがあります。データベース接続の検証は、サーバー設定ファイルの < ;
; 要素を使用して有効にします。以下の手順に従ってデータソースを設定し、JBoss EAP 6 でデータベース接続検証を有効にします。
datasource> セクション内の <validation
>
手順6.12 データベース接続検証設定の指定
検証方法の選択
以下のいずれかの検証方法を選択します。<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
に設定する必要があります。検証メカニズムの選択
以下のいずれかの検証メカニズムを選択します。<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>
クラス名の <exception-sorter> 設定
例外が致命的とマークされた場合、接続はトランザクションに参加していてもすぐに閉じられます。致命的な接続例外を適切に検出およびクリーンアップするには、例外ソータークラスオプションを使用します。JBoss EAP 6 は以下の例外ソーターを提供します。- org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter
- org.jboss.jca.adapters.j