Re: Extend jcmd to java application level

Denghui Dong denghui.ddh at
Fri Oct 8 01:09:08 UTC 2021

Hi Yasumasa,

JVMTI.data_dump and DataDumpRequest can achieve the purpose of triggering.

IIUC, DataDumpRequest does not seem to be able to pass parameters.
And sometimes the action the user wants to trigger may not be a data dump.

In fact, I think that commands such as JFR.start/stop are such a mechanism, triggered by `jcmd`, and finally callback to the java layer.

Denghui Dong
From:Yasumasa Suenaga <suenaga at>
Send Time:2021年10月8日(星期五) 07:45
To:董登辉(卓昂) <denghui.ddh at>; serviceability-dev <serviceability-dev at>; hotspot-runtime-dev at <hotspot-runtime-dev at>
Subject:Re: Extend jcmd to java application level

Hi Denghui,

I think you can do it with combination of JVMTI.data_dump dcmd and DataDumpRequest event in JVMTI.
JVM(TM) Tool Interface 17.0.0 (


On 2021/10/07 22:58, Denghui Dong wrote:
Hi team,

The `jcmd` command can be used to call some built-in diagnostic commands in vm.
Can we consider extending it to the java layer like perf data, so that Java developers can
customize their diagnostic commands and then call them through `jcmd`?

One application scenario I can think of for this extension is that some statistical information
may be collected in a java application. Triggering the output of this statistical information through
the `jcmd` command seems to me relative to other mechanisms that trigger output (such as through
an HTTP service, or periodic Printing) is more convenient.

Any input is appreciated.

Denghui Dong

More information about the hotspot-runtime-dev mailing list