2016-06-23 2 views
1

Я хочу, чтобы динамически конфигурировать следующий раздел в wildfly-8.2.0 в standalone.xml:Wildfly: Как настроить рабочие потоки в подсистеме ввода-вывода динамически

<worker name="default" io-threads="100" task-max-threads="100"/> 

В принципе я не хочу, чтобы эти ценности будут зашиты и вычислить их во время запуска сервера и передать их в качестве параметров загрузки jboss. Я сделал что-то вроде этого:

<worker name="default" io-threads="${my.io.threads:100}" task-max-threads="${my.task.max.threads:1000}"/> 

Я передаю эти параметры -Dmy.io.threads и -Dmy.task.max.threads при запуске wildfly сервера. Но это не в состоянии разобрать standalone.xml со следующим исключением:

ERROR [org.jboss.as.server] (Controller Boot Thread) JBAS015956: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: JBAS014676: Failed to parse configuration 
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:112) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.server.ServerService.boot(ServerService.java:331) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:259) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_45] 
Caused by: java.lang.NumberFormatException: For input string: "${my.io.threads:100}" 
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) [rt.jar:1.8.0_45] 
    at java.lang.Integer.parseInt(Integer.java:569) [rt.jar:1.8.0_45] 
    at java.lang.Integer.parseInt(Integer.java:615) [rt.jar:1.8.0_45] 
    at org.jboss.dmr.StringModelValue.asInt(StringModelValue.java:139) [jboss-dmr-1.2.0.Final.jar:1.2.0.Final] 
    at org.jboss.dmr.ModelNode.asInt(ModelNode.java:240) [jboss-dmr-1.2.0.Final.jar:1.2.0.Final] 
    at org.jboss.as.controller.AttributeParser.parse(AttributeParser.java:116) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.controller.AttributeParser.parse(AttributeParser.java:82) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.controller.AttributeParser$DiscardOldDefaultValueParser.parse(AttributeParser.java:177) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.controller.AttributeParser.parseAndSetParameter(AttributeParser.java:61) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.controller.PersistentResourceXMLDescription.parse(PersistentResourceXMLDescription.java:83) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.controller.PersistentResourceXMLDescription.parseChildren(PersistentResourceXMLDescription.java:135) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.controller.PersistentResourceXMLDescription.parse(PersistentResourceXMLDescription.java:107) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    at org.wildfly.extension.io.IOSubsystemParser_1_0.readElement(IOSubsystemParser_1_0.java:71) 
    at org.wildfly.extension.io.IOSubsystemParser_1_0.readElement(IOSubsystemParser_1_0.java:41) 
    at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final] 
    at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final] 
    at org.jboss.as.server.parsing.StandaloneXml.parseServerProfile(StandaloneXml.java:1131) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.server.parsing.StandaloneXml.readServerElement_1_4(StandaloneXml.java:458) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:145) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:107) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final] 
    at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final] 
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:104) [wildfly-controller-8.2.0.Final.jar:8.2.0.Final] 
    ... 3 more 

Я прочитал, что подсистема ввода-вывода не поддерживает выражения. Есть ли другой способ достичь этого? Есть ли какой-либо внутренний параметр, который при передаче во время загрузки будет переопределять эти значения?

ответ

2

Wildfly-8.2.0 не поддерживает выражения для io-threads и task-max-threads атрибутов в рабочем разделе подсистемы ввода-вывода. Я поднял Jira ticket в рамках проекта WFCORE, чтобы решить эту проблему командой Jboss.

2

Поскольку он не поддерживает выражения, нет возможности динамически его конфигурировать. Однако в WildFly 10.0.0.Final он динамически генерируется, если он оставлен пустым.

Укажите количество потоков ввода-вывода для создания для рабочего. Если не указано, то по умолчанию будет выбран, который рассчитывается по CPUCount * 2

Смежные вопросы