RFR: JDK-8187498: Add a -Xmanagement flag as syntactic sugar for -Dcom.sun.management.jmxremote.* properties

Harsha Wardhana B harsha.wardhana.b at oracle.com
Tue Feb 13 09:30:20 UTC 2018


Hi,

Please find below the revised webrev.

http://cr.openjdk.java.net/~hb/8187498/webrev.02/


On Friday 09 February 2018 05:07 AM, mandy chung wrote:
> On 2/7/18 1:19 AM, Harsha Wardhana B wrote:
> > 
> > --start-management-agent will not be recognized in the current format and
> > hence will not default to --start-management-agent=local=true.
>
> `--start-local-management-server` is one option as Alan suggests.
> Another option is to make `--start-management-agent` to accept
> an optional argument.  VM can accept `--start-management-agent`
> or `--start-management-agent=port=1234,ssl=on`.  It may require
> more launcher change to support it.
Yes. It requires lot more changes to launcher. Hence optional argument 
to --start-management-agent was not added in order to keep the launcher 
impact minimum.
> > Below is the webrev with above changes and corresponding tests.
> >
> > http://cr.openjdk.java.net/~hb/8187498/webrev.01/
>
> arguments.cpp
>
> 3216         if (FLAG_SET_CMDLINE(bool, ManagementServer, true) != Flag::SUCCESS) {
> 3217           return JNI_EINVAL;
> 3218         }
> 3219         // management agent in module jdk.management.agent
> 3220         if (!create_numbered_property("jdk.module.addmods", "jdk.management.agent", addmods_count++)) {
> 3221           return JNI_ENOMEM;
> 3222         }
>
> - you can consider refactor this to replace this block and line 2988-3994.
>
> 3224         jio_fprintf(defaultStream::output_stream(),
> 3225           "-Xmanagement is not supported in this VM.\n");
>
> -Xmanagement not yet renamed
> java.c
>    To set the precedence for future VM long form options, I suggest to
> rename IsManagementOption to IsVMLongFormOption and change the error
> message not specific to management agent.
Incorporated above changes.
> Agent.java
>   If --start-management-agent is set, -Dcom.sun.management.* takes
>   precedence.  Do you really want to do that?  The new VM option
>   intends to simplify the command-line to type in.  I think it's
>   cleaner and reasonable if --start-management-agent is specified,
>   -Dcom.sun.management.* are ignored (maybe worth emit a warning if set)
We can probably document that -D options will be overridden instead of 
emitting a warning.
>   The implementation uses VMManagement::getVmArguments and scan
>   the VM options for -start-management-agent.  The VM is the one
>   invoking jdk.internal.agent.Agent::startAgent.  A simpler option
>   is to change Agent::startAgent to take an argument parameter
>   that will be passed with the argument of --start-management-agent
>   or null if not set.
>
>   Similarly for startRemoteManagementAgent and startLocalAgent_name.
Implementing this change requires lot of changes to argument parsing in 
native code and hence it is simpler to handle this at java layer.
>   parseXmgmtArgs should be renamed as no longer -Xmgmt. Better not
>   to tightly coupled with the option name.
Ok.
>   291         if(args.startsWith("--start-management-agent")) {
>   292             return parseXmgmtArgs(args);
>   293         }
>
> What is this change for?
This is required when management agent is started via attach mechanism.
> Mandy
-Harsha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20180213/0347857c/attachment.html>


More information about the serviceability-dev mailing list