第4章 リクエストの作成および実行
JBoss EAP の設定は、アドレス可能なリソースの階層ツリーとして示され、アドレス可能なリソースはそれぞれ独自の操作セットを提供します。管理 CLI 操作のリクエストによって、管理モデルとの低レベルな対話が可能になり、制御された状態でサーバー設定を編集する方法を提供します。
操作リクエストは以下の書式を使用します。
/NODE_TYPE=NODE_NAME:OPERATION_NAME(PARAMETER_NAME=PARAMETER_VALUE)
操作リクエストは 3 つの部分で設定されます。
- アドレス
-
アドレスは、操作を実行するリソースノードを指定します。NODE_TYPE は要素名にマップし、NODE_NAME は設定 XML にあるその要素の
name
属性にマップします。リソースツリーの各レベルは、スラッシュ (/
) によって区切られます。 - 操作名
-
リソースノードで実行する操作。コロン (
:
) が最初に付けられます。 - パラメーター
-
操作によって異なる必須または任意のパラメーターのセット。これらのパラメーターはかっこ (
()
) で囲まれます。
操作リクエストの作成
アドレスの特定
XML 設定ファイル (
standalone.xml
、domain.xml
、またはhost.xml
) を参照すると、必要なアドレスを特定するのに便利です。タブ補完を使用して、利用できるアドレスを表示することもできます。ルート (
/
) レベルにあるリソースの一般的なアドレスは次のとおりです。-
/deployment=DEPLOYMENT_NAME
- デプロイメントの設定。 -
/socket-binding-group=SOCKET_BINDING_GROUP_NAME
- ソケットバインディングの設定。 -
/interface=INTERFACE_NAME
- インターフェイスの設定。 -
/subsystem=SUBSYSTEM_NAME
- スタンドアロンサーバー実行時のサブシステム設定。 -
/profile=PROFILE_NAME/subsystem=SUBSYSTEM_NAME
- 管理対象ドメイン実行時の選択したプロファイルのサブシステム設定。 -
/host=HOST_NAME
- 管理対象ドメイン実行時に選択したホストのサーバー設定。
以下は、
ExampleDS
データソースのアドレスになります。/subsystem=datasources/data-source=ExampleDS
-
操作の特定
利用できる操作は、各型のリソースノードによって異なります。リソースアドレス上で
:read-operation-names
操作を使用すると、利用可能な操作を表示できます。また、タブ補完を使用することも可能です。リソースに対する特定操作の情報を取得するには、
:read-operation-description
操作を使用します。以下の操作は (適切なパラメーターが含まれた場合)、
ExampleDS
データソースの属性の値を設定します。/subsystem=datasources/data-source=ExampleDS:write-attribute
パラメーターの特定
各操作には利用できる独自のパラメーターのセットがあります。必要なパラメーターを指定せずに操作を実行しようとすると、パラメーターを
null
にできないという内容のエラーメッセージが表示されます。複数のパラメーターはコンマ (
,
) で区切られます。操作にパラメーターがない場合、括弧は任意となります。:read-operation-description
操作をリソースで使用し、操作名を渡してその操作に必要なパラメーターを特定します。また、タブ補完を使用して利用できるパラメーターを表示することもできます。以下の操作は、
enabled
属性をfalse
に設定して、ExampleDS
データソースを無効にします。/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
入力後、管理インターフェイスはサーバー設定で操作リクエストを実行します。操作のリクエストに応じて、操作の出力と結果、または応答が含まれる出力がターミナルに表示されます。
ExampleDS
データソースの無効化に対する以下の応答は、操作に成功し、操作の反映にサーバーのリロードが必要であることを表しています。
{ "outcome" => "success", "response-headers" => { "operation-requires-reload" => true, "process-state" => "reload-required" } }
read-attribute
操作を使用すると、ExampleDS
データソースの enabled
属性の値を読み取りできます。
/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
以下の応答は、操作に成功し、enabled
の値が false
であることを表しています。
{ "outcome" => "success", "result" => false, }
4.1. リソース値の表示
read-resource
操作を使用して、リソースの属性値を表示できます。
:read-resource
パラメーターを指定して、子リソースに関する完全情報を再帰的に提供することができます。また、パラメーターを指定して、ランタイム属性の追加、式の解決、およびエイリアスの追加を行うこともできます。read-operation-description(name=read-resource)
を使用すると、read-resource
に使用できるすべてのパラメーターの説明を表示できます。
以下の例は、デプロイメントの属性を読み取ります。これには、デプロイメント名、有効あるいは無効であるか、最後に有効になった時間などの詳細が含まれます。
/deployment=DEPLOYMENT_NAME:read-resource { "outcome" => "success", "result" => { ... "enabled" => true, "enabled-time" => 1453929902598L, "enabled-timestamp" => "2016-01-27 16:25:02,598 EST", "name" => "DEPLOYMENT_NAME", "owner" => undefined, "persistent" => true, "runtime-name" => "DEPLOYMENT_NAME", "subdeployment" => undefined, "subsystem" => { "undertow" => undefined, "logging" => undefined } } }
ランタイム属性の追加
include-runtime
パラメーターを使用するとランタイム属性を取得できます。
以下の例は、デプロイメントの属性を読み取ります。永続属性の他に、デプロイメントの状態や最後に無効になった時間などのランタイム属性も含まれます。
/deployment=DEPLOYMENT_NAME:read-resource(include-runtime=true) { "outcome" => "success", "result" => { ... "disabled-time" => undefined, "disabled-timestamp" => undefined, "enabled" => true, "enabled-time" => 1453929902598L, "enabled-timestamp" => "2016-01-27 16:25:02,598 EST", "name" => "DEPLOYMENT_NAME", "owner" => undefined, "persistent" => true, "runtime-name" => "DEPLOYMENT_NAME", "status" => "OK", "subdeployment" => undefined, "subsystem" => { "undertow" => undefined, "logging" => undefined } } }
また、ブール値パラメーターに渡すときに 否定演算子 (!
) を使用することもできます。以下に例を示します。
-
:read-resource(include-runtime=false)
を:read-resource(!include-runtime)
と入力できます。 -
:read-resource(include-runtime=true)
は:read-resource(include-runtime)
と入力できます。
子リソースの再帰的な読み取り
recursive
パラメーターを使用すると、子リソースから再帰的に属性を読み出しできます。
以下の例は、デプロイメントの属性を読み取ります。リソース独自の属性の他に、undertow
サブシステムなどの子リソースの属性を再帰的に返します。
/deployment=DEPLOYMENT_NAME:read-resource(recursive=true) { "outcome" => "success", "result" => { ... "enabled" => true, "enabled-time" => 1453929902598L, "enabled-timestamp" => "2016-01-27 16:25:02,598 EST", "name" => "DEPLOYMENT_NAME", "owner" => undefined, "persistent" => true, "runtime-name" => "DEPLOYMENT_NAME", "subdeployment" => undefined, "subsystem" => { "undertow" => { "context-root" => "/test", "server" => "default-server", "virtual-host" => "default-host", "servlet" => undefined, "websocket" => undefined }, "logging" => {"configuration" => undefined} } } }
デフォルト値の除外
include-defaults
パラメーターを使用するとリソースの属性の読み取り時にデフォルト値を表示または非表示するにすることができます。デフォルトは true
で、read-resource
操作の使用時にデフォルト値が表示されます。
以下の例は、undertow
サブシステムで read-resource
操作を使用します。
/subsystem=undertow:read-resource { "outcome" => "success", "result" => { "default-security-domain" => "other", "default-server" => "default-server", "default-servlet-container" => "default", "default-virtual-host" => "default-host", "instance-id" => expression "${jboss.node.name}", "statistics-enabled" => false, "buffer-cache" => {"default" => undefined}, "configuration" => { "filter" => undefined, "handler" => undefined }, "server" => {"default-server" => undefined}, "servlet-container" => {"default" => undefined} } }
以下の例も、undertow
サブシステムで read-resource
操作を使用しますが、include-defaults
パラメーターを false
に設定します。この例では、statistics-enabled
や default-server
などの複数の属性がデフォルト値ではなく undefined
を表示します。
/subsystem=undertow:read-resource(include-defaults=false) { "outcome" => "success", "result" => { "default-security-domain" => undefined, "default-server" => undefined, "default-servlet-container" => undefined, "default-virtual-host" => undefined, "instance-id" => undefined, "statistics-enabled" => undefined, "buffer-cache" => {"default" => undefined}, "configuration" => { "filter" => undefined, "handler" => undefined }, "server" => {"default-server" => undefined}, "servlet-container" => {"default" => undefined} } }
式の解決
resolve-expressions
パラメーターを使用すると、返された属性の式をサーバーの値に解決することができます。
式を値として持つ属性は、${PARAMETER:DEFAULT_VALUE}
という形式を使用します。詳細は、設定ガイド のプロパティーの置換を参照してください。
以下の例は、デプロイメントの属性を読み取ります。instance-id
属性は、式 (${jboss.node.name}
) ではなく、解決された値 (test-name
) を表示します。
/subsystem=undertow:read-resource(resolve-expressions=true) { "outcome" => "success", "result" => { "default-security-domain" => "other", "default-server" => "default-server", "default-servlet-container" => "default", "default-virtual-host" => "default-host", "instance-id" => "test-name", "statistics-enabled" => false, "buffer-cache" => {"default" => undefined}, "configuration" => { "filter" => undefined, "handler" => undefined }, "server" => {"default-server" => undefined}, "servlet-container" => {"default" => undefined} } }