Some JMX MBean operations take a parameter of type javax.management.openmbean.TabularData. How can I provide that input through the UI? I think it's basically key-value pairs like a map, but I don't know how to specify them.
thanks
Hey John — your instinct is right: that parameter is the standard MXBean Map-to-TabularData mapping. A Map on an MXBean (here a String-to-String map) comes across JMX as a TabularData whose rows are CompositeData with two items literally named "key" and "value", and the table is indexed by "key". For setRecordingSettings the map is JFR setting-name to value, e.g. "jdk.ExecutionSample#enabled" maps to "true".
The catch — and the real answer to your question — is that a generic MBean console like the one in your screenshot (same with jconsole) can't build a TabularData from that text box. Those fields only take simple scalars; there's no string form the console will parse into a CompositeData/TabularData. So for this operation, through that UI specifically, you basically can't hand it the parameter. It's not a syntax you're missing — the console just doesn't construct open types.
What actually works, depending on what you've got:
So — what are you actually trying to do: configure a JFR recording (then I'd reach for setPredefinedConfiguration/setConfiguration or jcmd), or do you specifically need to drive arbitrary TabularData operations through a console? And is that console plain JMX-over-HTTP or Jolokia/HawtIO? That decides which path fits.