JBoss AS 7 обновляет системное свойство через cli - PullRequest
15 голосов
/ 22 марта 2012

Я могу прочитать системные свойства через интерфейс CLI по

/system-property=propertyname:read-attribute(name="value")

Есть ли простой способ обновить свойство через интерфейс CLI?

Ответы [ 3 ]

14 голосов
/ 22 марта 2012

Вы можете использовать операцию write-attribute для изменения значений системных свойств.

/system-property=propertyname:write-attribute(name="value", value="newValue")

См. Ответ ниже для более подробного описания.

12 голосов
/ 13 апреля 2012

Вы можете использовать операцию write-attribute.

Здоровый рабочий процесс для CLI управления заключается в открытии, чтении и записи атрибутов ресурса.Чтобы привести пример этого рабочего процесса, мы собираемся выполнить следующие шаги при новой установке по умолчанию JBoss Application Server 7.1.0Beta1.

Шаги для идентификации и записи атрибута системного ресурса

  1. Чтение всех системных свойств
  2. Более подробное чтение определенного системного свойства
  3. Предоставление примера атрибута системного свойства
  4. Запись примера атрибута системного свойства
  5. Предоставьте изменение, чтобы подтвердить его
  6. Сбросить атрибут до исходного значения

1.Читать все свойства системы

Мы не всегда знаем точное название того, что ищем.Мы можем использовать сочетание завершения табуляции и подстановочного поиска, чтобы упростить раскрытие ресурсов и атрибутов.Операция read-resource является отличным началом любого рабочего процесса, поскольку она предоставляет все существующие сущности.

[domain@localhost:9999 /] /system-property=*:read-resource
{
    "outcome" => "success",
    "result" => [{
        "address" => [("system-property" => "java.net.preferIPv4Stack")],
        "outcome" => "success",
        "result" => {
            "boot-time" => true,
            "value" => "true"
        }
    }]
}

2.Подробнее о конкретном системном свойстве

Операция read-resource открыла свойство java.net.preferIPv4Stack.Мы можем запросить это далее, используя операцию read-resource-description.

[domain@localhost:9999 /] /system-property=java.net.preferIPv4Stack:read-resource-description 
{
    "outcome" => "success",
    "result" => {
        "description" => "A system property to set on all servers in the domain.",
        "head-comment-allowed" => true,
        "tail-comment-allowed" => false,
        "attributes" => {
            "value" => {
                "type" => STRING,
                "description" => "The value of the system property.",
                "required" => false,
                "access-type" => "read-write",
                "storage" => "configuration",
                "restart-required" => "no-services"
            },
            "boot-time" => {
                "type" => BOOLEAN,
                "description" => "If true the system property is passed on the command-line to the started server jvm. If false, it will be pushed to the server as part of the startup sequence.",
                "required" => false,
                "default" => true,
                "access-type" => "read-write",
                "storage" => "configuration",
                "restart-required" => "no-services"
            }
        }
    }
}

3.Предоставьте пример атрибута системного свойства

Операция read-resource-description выводит информацию о ресурсе, включая его атрибуты.Мы можем специально запросить эти атрибуты с помощью операции read-attribute.Опять же, завершение табуляции облегчает составление этих строк операций, когда вы начинаете печатать, и нажимаете клавишу табуляции, чтобы завершить строку или предложить доступные дополнения.

[domain @ localhost: 9999 /] / system-property = java.net.preferIPv4Stack: атрибут чтения (имя = время загрузки)
{"исход" => "успех", "результат" => истина}

4.Напишите пример атрибута системного свойства

Так же, как мы только что запросили атрибут, мы можем его изменить.В этом случае мы можем использовать операцию write-attribute с учетом предполагаемого типа значения, указанного в операции read-resource-description.Эта операция объявила, что атрибут приписан как BOOLEAN, но вы можете решить эту проблему, просто взглянув на существующее значение в команде read-attribute (где оно определено).

[domain@localhost:9999 /] /system-property=java.net.preferIPv4Stack:write-attribute(name=boot-time, value=false)
{
    "outcome" => "success",
    "result" => {
        "domain-results" => {"step-1" => undefined},
        "server-operations" => undefined
    }
}

5.Чтобы подтвердить это, выставьте изменения

Мы можем запустить операцию read-attribute еще раз, чтобы показать изменение значения.

[domain@localhost:9999 /] /system-property=java.net.preferIPv4Stack:read-attribute(name=boot-time)              
{
    "outcome" => "success",
    "result" => false
}

6.Сброс атрибута к исходному значению

Просто для того, чтобы изящно завершить пример, давайте вернем значение обратно в исходное состояние.

[domain@localhost:9999 /] /system-property=java.net.preferIPv4Stack:write-attribute(name=boot-time, value=true) 
{
    "outcome" => "success",
    "result" => {
        "domain-results" => {"step-1" => undefined},
        "server-operations" => undefined
    }
}

Сводка

Да, выМожно записать значения атрибутов.Чтобы сделать процесс проще, привычка рабочего процесса предоставления значений атрибутов и определений типов файлов является хорошей практикой и должна сделать процесс более понятным.

2 голосов
/ 24 ноября 2016

А для полноты вот как удалить (отменить) атрибут свойства:

/system-property=propertyname:undefine-attribute(name=attribute-name)
...