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


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

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

/NODE_TYPE=NODE_NAME:OPERATION_NAME(PARAMETER_NAME=PARAMETER_VALUE)
Copy to Clipboard Toggle word wrap

操作リクエストは 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
    Copy to Clipboard Toggle word wrap
  2. 操作の特定

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

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

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

    /subsystem=datasources/data-source=ExampleDS:write-attribute
    Copy to Clipboard Toggle word wrap
  3. パラメーターの特定

    各操作には利用できる独自のパラメータのセットがあります。必要なパラメーターを指定せずに操作を実行しようとすると、パラメーターを null にできないという内容のエラーメッセージが表示されます。

    複数のパラメーターはコンマ (,) で区切られます。操作にパラメーターがない場合、かっこは任意となります。

    :read-operation-description 操作をリソースで使用し、操作名を渡してその操作に必要なパラメーターを特定します。また、タブ補完を使用して利用できるパラメーターを表示することもできます。

    以下の操作は、enabled 属性を false に設定して、ExampleDS データソースを無効にします。

    /subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
    Copy to Clipboard Toggle word wrap

入力後、管理インターフェースはサーバー設定で操作リクエストを実行します。操作のリクエストに応じて、操作の出力と結果、または応答が含まれる出力がターミナルに表示されます。

ExampleDS データソースの無効化に対する以下の応答は、操作に成功し、操作の反映にサーバーのリロードが必要であることを表しています。

{
    "outcome" => "success",
    "response-headers" => {
        "operation-requires-reload" => true,
        "process-state" => "reload-required"
    }
}
Copy to Clipboard Toggle word wrap

read-attribute 操作を使用すると、ExampleDS データソースの enabled 属性の値を読み取りできます。

/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
Copy to Clipboard Toggle word wrap

以下の応答は、操作に成功し、enabled の値が false であることを表しています。

{
    "outcome" => "success",
    "result" => false,
}
Copy to Clipboard Toggle word wrap

3.1. リソース値の表示

read-resource 操作を使用して、リソースの属性値を表示できます。

:read-resource
Copy to Clipboard Toggle word wrap

パラメーターを指定して、子リソースに関する完全情報を再帰的に提供することができます。また、パラメーターを指定して、ランタイム属性の追加、式の解決、およびエイリアスの追加を行うこともできます。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
        }
    }
}
Copy to Clipboard Toggle word wrap

ランタイム属性の追加

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
        }
    }
}
Copy to Clipboard Toggle word wrap

また、ブール値パラメータに渡すときに not 演算子 (!) を使用することもできます。

  • :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}
        }
    }
}
Copy to Clipboard Toggle word wrap

デフォルト値の除外

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}
    }
}
Copy to Clipboard Toggle word wrap

以下の例も、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}
    }
}
Copy to Clipboard Toggle word wrap

式の解決

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}
    }
}
Copy to Clipboard Toggle word wrap

3.2. リソースの詳細表示

read-resource-description 操作を使用すると、リソースおよびその属性に関する詳細を表示できます。

:read-resource-description
Copy to Clipboard Toggle word wrap

パラメータを指定して、子リソースに関する完全詳細を再帰的に提供することができます。また、パラメーターを指定して、リソースの操作および通知の詳細を含めることもできます。read-operation-description(name=read-resource-description) を使用すると、read-resource-description に使用できるすべてのパラメーターの詳細を表示できます。

以下の例は、バッファーキャッシュの属性の詳細を表示します。

/subsystem=undertow/buffer-cache=default:read-resource-description
{
    "outcome" => "success",
    "result" => {
        "description" => "The buffer cache used to cache static content",
        "attributes" => {
            "buffer-size" => {
                "type" => INT,
                "description" => "The size of an individual buffer",
                "expressions-allowed" => true,
                "nillable" => true,
                "default" => 1024,
                "min" => 0L,
                "max" => 2147483647L,
                "access-type" => "read-write",
                "storage" => "configuration",
                "restart-required" => "resource-services"
            },
            "buffers-per-region" => {
                "type" => INT,
                "description" => "The numbers of buffers in a region",
                "expressions-allowed" => true,
                "nillable" => true,
                "default" => 1024,
                "min" => 0L,
                "max" => 2147483647L,
                "access-type" => "read-write",
                "storage" => "configuration",
                "restart-required" => "resource-services"
            },
            "max-regions" => {
                "type" => INT,
                "description" => "The maximum number of regions",
                "expressions-allowed" => true,
                "nillable" => true,
                "default" => 10,
                "min" => 0L,
                "max" => 2147483647L,
                "access-type" => "read-write",
                "storage" => "configuration",
                "restart-required" => "resource-services"
            }
        },
        "operations" => undefined,
        "notifications" => undefined,
        "children" => {}
    }
}
Copy to Clipboard Toggle word wrap

属性に対して返されたフィールドの詳細については、「リソース属性の詳細」を参照してください。

3.3. 属性値の表示

read-attribute 操作を使用すると、1 つの属性の現在の値を表示できます。

:read-attribute(name=ATTRIBUTE_NAME)
Copy to Clipboard Toggle word wrap

以下の例は、level 属性を読み取って、ルートロガーのログレベルを表示します。

/subsystem=logging/root-logger=ROOT:read-attribute(name=level)
{
    "outcome" => "success",
    "result" => "INFO"
}
Copy to Clipboard Toggle word wrap

read-attribute 操作を使用する利点の 1 つは、属性の現在のランタイム値を公開できることです。

/interface=public:read-attribute(name=resolved-address)
{
    "outcome" => "success",
    "result" => "127.0.0.1"
}
Copy to Clipboard Toggle word wrap

resolved-address 属性はランタイム属性です。この属性は、include-runtime パラメーターに渡さないと、read-resource 操作の使用時に表示されません。表示された場合でも、リソースの他の属性とともに表示されます。

include-defaults および resolve-expressions パラメーターを使用することもできます。これらのパラメーターに関する詳細は、「リソース値の表示」を参照してください。

3.4. 属性の更新

write-attribute 操作を使用して、リソースの属性の値を更新できます。

:write-attribute(name=ATTRIBUTE_NAME, value=ATTRIBUTE_VALUE)
Copy to Clipboard Toggle word wrap

以下の例は、scan-enabled 属性を false に設定して、デプロイメントスキャナーを無効にします。

/subsystem=deployment-scanner/scanner=default:write-attribute(name=scan-enabled,value=false)
{"outcome" => "success"}
Copy to Clipboard Toggle word wrap

操作リクエストからの応答は、この操作が成功したことを表しています。また、read-attribute 操作を使用して scan-enabled 属性を読み取り (現在は false と表示)、結果を確認することもできます。

/subsystem=deployment-scanner/scanner=default:read-attribute(name=scan-enabled)
{
    "outcome" => "success",
    "result" => false
}
Copy to Clipboard Toggle word wrap

3.5. 属性の定義削除

属性の値を undefined に設定できます。この属性にデフォルト値がある場合、デフォルト値が使用されます。

以下の例は、ルートロガーの level 属性の定義を削除します。

/subsystem=logging/root-logger=ROOT:undefine-attribute(name=level)
Copy to Clipboard Toggle word wrap

level 属性のデフォルト値は ALL です。read-resource 操作の実行時に、このデフォルトの使用を確認できます。

/subsystem=logging/root-logger=ROOT:read-resource
{
    "outcome" => "success",
    "result" => {
        "filter" => undefined,
        "filter-spec" => undefined,
        "handlers" => [
            "CONSOLE",
            "FILE"
        ],
        "level" => "ALL"
    }
}
Copy to Clipboard Toggle word wrap

デフォルト値を読み取らずにリソースを表示するには、include-defaults パラメーターを false に設定する必要があります。そうすると、level の値が undefined になります。

/subsystem=logging/root-logger=ROOT:read-resource(include-defaults=false)
{
    "outcome" => "success",
    "result" => {
        "filter" => undefined,
        "filter-spec" => undefined,
        "handlers" => [
            "CONSOLE",
            "FILE"
        ],
        "level" => undefined
    }
}
Copy to Clipboard Toggle word wrap

3.6. 操作名の表示

read-operation-names を使用すると、指定のリソースで使用できる操作を一覧表示できます。

:read-operation-names
Copy to Clipboard Toggle word wrap

以下の例は、デプロイメントで実行できる操作の一覧を表示します。

/deployment=DEPLOYMENT_NAME:read-operation-names
{
    "outcome" => "success",
    "result" => [
        "add",
        "deploy",
        "list-add",
        "list-clear",
        "list-get",
        "list-remove",
        "map-clear",
        "map-get",
        "map-put",
        "map-remove",
        "query",
        "read-attribute",
        "read-attribute-group",
        "read-attribute-group-names",
        "read-children-names",
        "read-children-resources",
        "read-children-types",
        "read-operation-description",
        "read-operation-names",
        "read-resource",
        "read-resource-description",
        "redeploy",
        "remove",
        "undefine-attribute",
        "undeploy",
        "whoami",
        "write-attribute"
    ]
}
Copy to Clipboard Toggle word wrap

read-operation-description 操作を使用して 操作の詳細を表示します

3.7. 操作の詳細表示

read-operation-description 操作を使用すると、リソースの特定操作の詳細を表示できます。これには、パラメーターの説明と必須のパラメーターが含まれます。

:read-operation-description(name=OPERATION_NAME)
Copy to Clipboard Toggle word wrap

以下の例は、システムプロパティーにおける add 操作の詳細およびパラメーター情報を提供します。

/system-property=SYSTEM_PROPERTY:read-operation-description(name=add)
{
    "outcome" => "success",
    "result" => {
        "operation-name" => "add",
        "description" => "Adds a system property or updates an existing one.",
        "request-properties" => {"value" => {
            "type" => STRING,
            "description" => "The value of the system property.",
            "expressions-allowed" => true,
            "required" => false,
            "nillable" => true,
            "min-length" => 0L,
            "max-length" => 2147483647L
        }},
        "reply-properties" => {},
        "read-only" => false,
        "runtime-only" => false
    }
}
Copy to Clipboard Toggle word wrap

3.8. 特殊文字を用いた値の追加

管理 CLI リクエストの作成時、特殊文字が含まれる値を追加する必要があることがあります。管理 CLI リクエストの構文に使われる特殊文字などの一部の特殊文字は、特定の方法で入力する必要があります。

多くの場合、値を二重引用符 ("") を囲めば適切に処理されます。使用する特殊文字が許可されるプロパティーであるかどうか分からない場合は、値を追加した後に属性またはリソースを読み取り、適切に保存されたことを確認してください。

以下の特殊文字の処理方法は、該当する項を参照してください。

空白文字

デフォルトでは、空白は管理 CLI で追加された値から取り除かれます。値に空白が含まれるようにするには、値を二重引用符 ("") または中かっこ ({}) で囲むか、バックスラッシュ (\) を使ってエスケープ処理します。

/system-property=test1:add(value="Hello World")
/system-property=test2:add(value={Hello World})
/system-property=test3:add(value=Hello\ World)
Copy to Clipboard Toggle word wrap

これにより、値が Hello World に設定されます。

引用符

値で単一引用符 (') を使用するには、値を二重引用符 ("") で囲むか、バックスラッシュ (\) を使用してエスケープ処理します。以下の例は、システムプロパティーの値を server's に設定します。

/system-property=test1:add(value="server's")
/system-property=test2:add(value=server\'s)
Copy to Clipboard Toggle word wrap

値で二重引用符 (") を使用するには、バックスラッシュ (\) を使用してエスケープ処理します。引用符の場所によっては、さらに二重引用符 ("") で値を囲む必要がある場合もあります。以下の例は、システムプロパティーの値を "quote" に設定します。

/system-property=test1:add(value="\"quote\"")
Copy to Clipboard Toggle word wrap

コンマ

値でコンマ (,) を使用するには、値を二重引用符 ("") で囲みます。

/system-property=test:add(value="Last,First")
Copy to Clipboard Toggle word wrap

これにより、値が Last,First に設定されます。

かっこ

値にかっこ (()) が含まれるようにするには、値を二重引用符 ("") または中かっこ ({}) で囲むか、バックスラッシュ (\) を使ってエスケープ処理します。

/system-property=test1:add(value="one(1)")
/system-property=test2:add(value={one(1)})
/system-property=test3:add(value=one\(1\))
Copy to Clipboard Toggle word wrap

これにより、値が one(1) に設定されます。

中かっこ

値に中かっこ ({}) が含まれるようにするには、値を二重引用符 ("") で囲みます。

/system-property=test:add(value="{braces}")
Copy to Clipboard Toggle word wrap

これにより、値が {braces} に設定されます。

角かっこ

値に角かっこ ([]) が含まれるようにするには、値を二重引用符 ("") で囲みます。

/system-property=test:add(value="[brackets]")
Copy to Clipboard Toggle word wrap

これにより、値が [brackets] に設定されます。

発音区別符号

ñřý などの発音区別符号は、管理 CLI を使用して値を追加するときに使用できます。

/system-property=test1:add(value=Año)
Copy to Clipboard Toggle word wrap

ただし、値は二重引用符 ("") で囲まないでください。二重引用符で囲むと、発音区別符号が疑問符 (?) に置き換えられます。値に空白文字が含まれる場合は、中かっこ ({}) で値を囲むか、バックスラッシュ (\) を使ってエスケープ処理します。

/system-property=test2:add(value={Dos años})
/system-property=test3:add(value=Dos\ años)
Copy to Clipboard Toggle word wrap

これにより、値が Dos años に設定されます。

3.9. 操作ヘッダーの指定

操作ヘッダーを指定すると、操作実行方法の特定の内容を制御することができます。以下の操作ヘッダーを使用することができます。

allow-resource-service-restart

操作の変更を反映するために、再起動な必要なランタイムサービスを再起動するかどうか。デフォルトは false です。

警告

allow-resource-service-restart=true ヘッダーを使用すると、必要なサービスが再起動するまでエンドユーザーリクエストの処理が中断される可能性があります。

blocking-timeout
操作がロールバックされる前に、操作の完了プロセス中の任意の時点で操作がブロックする最大時間 (秒単位)。デフォルトは 300 秒です。
roles
操作を呼び出すユーザーに通常関連付けられるロールの代わりに、アクセス制御の決定時に使用される RBAC ロールのリスト。これは、呼び出し側のパーミッションを減らす場合のみ使用され、増やす場合には使用されないことに注意してください。
rollback-on-runtime-failure
永続化設定の変更をランタイムサービスに適用できなかった場合に、設定の変更を元に戻すかどうか。デフォルトは true です。
rollout
管理対象ドメインのデプロイメントのロールアウト計画。詳細は、JBoss EAP『設定ガイド』の「ロールアウト計画の使用」を参照してください。

例: 操作ヘッダーを使用したアプリケーションのデプロイメント

deploy /path/to/deployment.war --headers={allow-resource-service-restart=true}
Copy to Clipboard Toggle word wrap

例: 操作ヘッダーを使用したリソースの削除

/subsystem=infinispan/cache-container=test:remove() {allow-resource-service-restart=true}
Copy to Clipboard Toggle word wrap

セミコロン(;) を使用して複数の操作ヘッダーを区切ります。

3.10. if-else 制御フローの使用

管理 CLI は、条件を基にして実行するコマンドおよび操作のセットを選択可能にする if-else 制御フローをサポートします。if 条件は、of キーワードの後に指定された管理コマンドまたは操作の応答を評価するブール式です。

注記

入れ子の if-else ステートメントの使用はサポートされません。

以下の項目をどれでも式に含めることができます。

  • 式をグループ化および優先付けするかっこ
  • 条件演算子

    • および (and) (&&)
    • または (or) (||)
  • 比較演算子

    • 等しい (==)
    • 等しくない (!=)
    • より大きい (>)
    • より大きいまたは等しい (>=)
    • より小さい (<)
    • より小さいまたは等しい (<=)
    • 正規表現と一致 (~=)
重要

正規表現と一致 (~=) の演算子はテクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジプレビュー機能のサポート範囲」を参照してください。

以下は、正規表現と一致 (~=) の演算子を使用して、features システムプロパティーの値に jgroups が含まれるかどうかをチェックします。

if (result ~= ".*jgroups.*") of /:resolve-expression(expression=${features})
  echo Configuring JGroups
end-if
Copy to Clipboard Toggle word wrap

以下の例は、システムプロパティー test の読み取りを試みます。outcomesuccess でない場合 (プロパティーが存在しないことを意味します)、システムプロパティーが追加され、true に設定されます。

if (outcome != success) of /system-property=test:read-resource
    /system-property=test:add(value=true)
end-if
Copy to Clipboard Toggle word wrap

上記の条件は、outcome を使用します。これは、以下のように of キーワードの後の CLI コマンドが実行されると返されます。

/system-property=test:read-resource
{
    "outcome" => "failed",
    "failure-description" => "JBAS014807: Management resource '[(\"system-property\" => \"test\")]' not found",
    "rolled-back" => true
}
Copy to Clipboard Toggle word wrap

以下の例は、サーバープロセスの起動型 (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
Copy to Clipboard Toggle word wrap

if-else 制御フローを使用する管理 CLI コマンドをファイルに指定することができ、ファイルには各コマンドを各行に個別に指定します。ファイルを jboss-cli スクリプトに渡すと、--file パラメーターを使用して非対話的に実行されます。

$ EAP_HOME/bin/jboss-cli.sh --connect --file=CLI_FILE
Copy to Clipboard Toggle word wrap

3.11. try-catch-finally 制御フローの使用

管理 CLI は簡単な try-catch-finally 制御フローを提供します。これは、trycatch、および finally ブロックに対応する 3 つの操作およびコマンドのセットで構成されます。catch および finally ブロックは任意ですが、最低でも 1 つが存在するべきで、1 つの catch ブロックのみを指定できます。

制御フローは try バッチの実行で始まります。try バッチが正常に完了すると、catch バッチはスキップされ、finally バッチが実行されます。java.io.IOException などが原因で try バッチが失敗すると、try-catch-finally 制御フローは即座に終了します。利用できる場合は catch バッチが実行されます。finally バッチは、try および catch バッチの実行に成功または失敗に関わらず、制御フロードサイドに実行されます。

try-catch-finally 制御フローを定義するコマンドは 4 つあります。

  • try コマンドは try バッチを開始します。try バッチは、catch または finally コマンドの 1 つが実行されるまで継続されます。
  • catch コマンドは try バッチの最後を示します。try バッチは引き止められ、catch バッチが開始されます。
  • finally コマンドは catch バッチまたは try バッチの最後を示し、 finally バッチを開始します。
  • end-trycatch または finally バッチを終了し、try-catch-finally 制御フローを実行するコマンドです。

以下の例はデータソースを作成または再作成し、有効化します。

try
/subsystem=datasources/data-source=myds:add(connection-url=CONNECTION_URL,jndi-name=java:/myds,driver-name=h2)

catch
/subsystem=datasources/data-source=myds:remove
/subsystem=datasources/data-source=myds:add(connection-url=CONNECTION_URL,jndi-name=java:/myds,driver-name=h2)

finally
/subsystem=datasources/data-source=myds:enable
end-try
Copy to Clipboard Toggle word wrap

3.12. リソースのクエリー

JBoss EAP 管理 CLI は、query 操作を提供してリソースをクエリーします。:read-resource 操作を使用して、リソースのすべての属性を読み取りできます。選択された属性のみを一覧表示するには、:query 操作を使用します。

たとえば、name および enabled 属性のリストを表示するには、以下のコマンドを実行します。

/deployment=jboss-modules.jar:query(select=["name","enabled"])
Copy to Clipboard Toggle word wrap

以下の応答は操作の成功を表しています。name および enabled 属性は jboss-modules.jar デプロイメントに対して表示されています。

{
    "outcome" => "success",
    "result" => {
        "name" => "jboss-modules.jar",
        "enabled" => true
    }
}
Copy to Clipboard Toggle word wrap

ワイルドカードを使用すると、すべてのデプロイメントの name および enabled 属性の表示など、複数のリソース全体でクエリーを制御できます。

/deployment=*:query(select=["name","enabled"])
Copy to Clipboard Toggle word wrap

以下の応答は、操作に成功したことを表しています。すべてのデプロイメントの name および enabled 属性が一覧表示されています。

{
     "outcome" => "success",
     "result" => [
         {
             "address" => [("deployment" => "helloworld.war")],
             "outcome" => "success",
             "result" => {
                 "name" => "helloworld.war",
                 "enabled" => true
             }
         },
         {
             "address" => [("deployment" => "kitchensink.war")],
             "outcome" => "success",
             "result" => {
                 "name" => "kitchensink.war",
                 "enabled" => true
             }
         },
         {
             "address" => [("deployment" => "xyz.jar")],
             "outcome" => "success",
             "result" => {
                 "name" => "xyz.jar",
                 "enabled" => false
             }
         }
     ]
 }
Copy to Clipboard Toggle word wrap

:query 操作は、関連するオブジェクトもフィルターします。たとえば、 enabledtrue である、デプロイメントの name および enabled 属性値を表示します。

/deployment=*:query(select=["name","enabled"],where=["enabled","true"])
Copy to Clipboard Toggle word wrap

以下の応答は、操作に成功したことを表しています。enabledtrue である、デプロイメントの name および enabled 属性値が表示されます。

{
     "outcome" => "success",
     "result" => [
         {
             "address" => [("deployment" => "helloworld.war")],
             "outcome" => "success",
             "result" => {
                 "name" => "helloworld.war",
                 "enabled" => true
             }
         },
         {
             "address" => [("deployment" => "kitchensink.war")],
             "outcome" => "success",
             "result" => {
                 "name" => "kitchensink.war",
                 "enabled" => true
             }
         }
     ]
 }
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る