Mercurial > hg > graal-compiler
diff src/share/vm/services/diagnosticCommand.hpp @ 5895:645162d94294
7110104: It should be possible to stop and start JMX Agent at runtime
Summary: Added a capability to start and stop JMX Agent by jcmd
Reviewed-by: acorn, mchung
author | dsamersoff |
---|---|
date | Wed, 22 Feb 2012 19:43:22 +0400 |
parents | a42c07c38c47 |
children | 5a1f452f8f90 |
line wrap: on
line diff
--- a/src/share/vm/services/diagnosticCommand.hpp Mon Feb 20 21:27:56 2012 -0800 +++ b/src/share/vm/services/diagnosticCommand.hpp Wed Feb 22 19:43:22 2012 +0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -214,4 +214,82 @@ virtual void execute(TRAPS); }; +// Enhanced JMX Agent support + +class JMXStartRemoteDCmd : public DCmdWithParser { + + // Explicitly list all properties that could be + // passed to Agent.startRemoteManagementAgent() + // com.sun.management is omitted + + DCmdArgument<char *> _config_file; + DCmdArgument<char *> _jmxremote_port; + DCmdArgument<char *> _jmxremote_rmi_port; + DCmdArgument<char *> _jmxremote_ssl; + DCmdArgument<char *> _jmxremote_registry_ssl; + DCmdArgument<char *> _jmxremote_authenticate; + DCmdArgument<char *> _jmxremote_password_file; + DCmdArgument<char *> _jmxremote_access_file; + DCmdArgument<char *> _jmxremote_login_config; + DCmdArgument<char *> _jmxremote_ssl_enabled_cipher_suites; + DCmdArgument<char *> _jmxremote_ssl_enabled_protocols; + DCmdArgument<char *> _jmxremote_ssl_need_client_auth; + DCmdArgument<char *> _jmxremote_ssl_config_file; + +public: + JMXStartRemoteDCmd(outputStream *output, bool heap_allocated); + + static const char *name() { + return "ManagementAgent.start"; + } + + static const char *description() { + return "Start remote management agent."; + } + + static int num_arguments(); + + virtual void execute(TRAPS); + +}; + +class JMXStartLocalDCmd : public DCmd { + + // Explicitly request start of local agent, + // it will not be started by start dcmd + + +public: + JMXStartLocalDCmd(outputStream *output, bool heap_allocated); + + static const char *name() { + return "ManagementAgent.start_local"; + } + + static const char *description() { + return "Start local management agent."; + } + + virtual void execute(TRAPS); + +}; + +class JMXStopRemoteDCmd : public DCmd { +public: + JMXStopRemoteDCmd(outputStream *output, bool heap_allocated) : + DCmd(output, heap_allocated) { + // Do Nothing + } + + static const char *name() { + return "ManagementAgent.stop"; + } + + static const char *description() { + return "Stop remote management agent."; + } + + virtual void execute(TRAPS); +}; + #endif // SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP