第4章 リクエストの作成および実行

JBoss EAP の設定は、アドレス可能なリソースの階層ツリーとして示され、アドレス可能なリソースはそれぞれ独自の操作セットを提供します。管理 CLI 操作のリクエストによって、管理モデルとの低レベルな対話が可能になり、制御された状態でサーバー設定を編集する方法を提供します。

操作リクエストは以下の書式を使用します。

/NODE_TYPE=NODE_NAME:OPERATION_NAME(PARAMETER_NAME=PARAMETER_VALUE)

操作リクエストは 3 つの部分で設定されます。

アドレス
アドレスは、操作を実行するリソースノードを指定します。NODE_TYPE は要素名にマップし、NODE_NAME は設定 XML にあるその要素の name 属性にマップします。リソースツリーの各レベルは、スラッシュ (/) によって区切られます。
操作名
リソースノードで実行する操作。コロン (:) が最初に付けられます。
パラメーター
操作によって異なる必須または任意のパラメーターのセット。これらのパラメーターはかっこ (()) で囲まれます。

操作リクエストの作成

  1. アドレスの特定

    XML 設定ファイル (standalone.xmldomain.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
  2. 操作の特定

    利用できる操作は、各型のリソースノードによって異なります。リソースアドレス上で :read-operation-names 操作を使用すると、利用可能な操作を表示できます。また、タブ補完を使用することも可能です。

    リソースに対する特定操作の情報を取得するには、:read-operation-description 操作を使用します。

    以下の操作は (適切なパラメーターが含まれた場合)、ExampleDS データソースの属性の値を設定します。

    /subsystem=datasources/data-source=ExampleDS:write-attribute
  3. パラメーターの特定

    各操作には利用できる独自のパラメーターのセットがあります。必要なパラメーターを指定せずに操作を実行しようとすると、パラメーターを 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-enableddefault-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}
    }
}