[jboss-as7-dev] Domain mode server launch command

Brian Stansberry brian.stansberry at redhat.com
Tue Aug 14 13:03:08 EDT 2012


That's along the lines of what I was thinking for the "different user 
account" case.

Something to think about is whether "java" should be in the 
launch-command[1] value (with a default value of just "java".) If not 
it's really a launch-command-prefix, and then is there a use case for 
launch-command-suffix?

I think using a separate child element for this instead of an attribute 
is better.

Another question is whether it makes sense to allow this to be 
configured at the server-group level, with servers by default inheriting 
that config. My vote is "no." KISS. If there is demand for doing it at 
the server-group level, we'll here about it and can add it later.

As for validation, I doubt we can do much there. I think this would be 
an advanced feature where users are going to have to be careful and test 
things.

[1] Note our schema uses lower case names with "-" as a separator, not 
camel case. So "launch-command" not "launchCommand".

On 8/14/12 11:49 AM, John O'Hara wrote:
> When running AS7 in a domain, we need to be able to bind each host to
> explicit numa nodes when the process is launched. We need to be able to
> insert a numa command before the java command for each server process
> that is launched by the HostController. The numa command needs to be
> configurable for each host, i.e. we might want to bind hosts to
> different numa nodes or the same numa node.
>
> Another use case that I am aware of is running the server process under
> a different user account to the HostController, e.g. prefixing the java
> command with something like "sudo joe java"
>
> Having thought about our use case and a use case where the host should
> start start under a different account , a possible solution could be to
> modify the AS config schema to allow a generic "launch command" for each
> server entity, so that the host.xml would look something like;
>
>            <server name="server-one" group="main-server-group"
> launchCommand="numactl --membind 0 --cpubind 0"/>
>            <server name="server-two" group="main-server-group"
> auto-start="true" launchCommand="numactl --membind 1 --cpubind 1">
>                <!-- server-two avoids port conflicts by incrementing the
> ports in
>                     the default socket-group declared in the server-group
> -->
>                <socket-bindings port-offset="150"/>
>            </server>
>            <server name="server-three" group="main-server-group"
> auto-start="true" launchCommand="sudo joe">
>                <!-- server-two avoids port conflicts by incrementing the
> ports in
>                     the default socket-group declared in the server-group
> -->
>                <socket-bindings port-offset="150"/>
>            </server>
>
> If a launchCommand attribute was defined for a server, you could parse
> the attribute value and add the parsed commands to the ProcessBuilder
> before the java command.
>
> The main difficulty would be validating any commands added in
> launchCommand attribute, not sure how problematic this would be?
>
> Regards,
>
> John
>


-- 
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat


More information about the jboss-as7-dev mailing list