MBean浏览器
许多应用服务器和框架(如Apache Camel) 都使用JMX来暴露一些MBeans用于配置和监控。JVM本身也发布了一些 平台MXBeans, 显示关于JVM中低级操作的信息。
JProfiler包含一个MBean浏览器,它可以显示所有在被分析VM中注册的MBeans。不需要访问MBean服务器的JMX远程管理级别, 因为JProfiler代理已经在进程中运行,并且可以访问所有注册的MBean服务器。
JProfiler支持Open MBeans类型系统。除了定义一些简单的类型外,Open MBeans还可以定义不涉及自定义类的复杂数据类型。 另外,数组和表格也可以作为数据结构。通过MXBeans,JMX提供了一种从Java类自动创建Open MBeans的简单方法。 例如,JVM提供的MBeans就是MXBeans。
虽然MBeans没有层次结构,但JProfiler将它们组织成一棵树,把对象域名到第一个冒号作为树的第一个层级,
并将所有属性作为递归嵌套层级。属性值首先显示,属性键放在最后的括号内。type
属性被优先显示在顶层节点的正下方。
属性
在显示MBean内容的树表的顶层,你可以看到MBean的属性。
以下数据结构以嵌套行的形式显示:
数组
原始数组和对象数组的元素显示在嵌套行中以索引为键名。复合数据
复合数据类型中的所有项目都显示为嵌套行。每项都可以是任意类型,所以嵌套可以深入到任意深度。表列数据
在MXBeans中最常遇到的是表格数据,其中java.util.Map
的实例会被映射到具有 一个键列和一个值列的表格数据类型。如果键的类型是简单类型,则映射会"内联"显示,每个键值对都显示为嵌套行。 如果键的类型为复杂类型,则插入一层"映射条目"元素,该元素带有内嵌键值。 对于具有复合键和多值的一般表格类型也是如此。
某些MBean属性可以被编辑,在这种情况下,一个 编辑图标将紧挨它们的值显示,编辑值操作变为激活状态。复合类型和表格类型不能在MBean浏览器中编辑, 但数组或简单类型是可以编辑的。
如果一个值是可以为空(Null)的,比如一个数组,编辑器有一个复选框来选择空状态。
数组元素由分号分隔。尾部的分号可以被忽略,所以1
和1;
是等价的。
对于对象数组来说,分号前缺少值的话将被视为空值。对于字符串数组,你可以用双引号("")或引用分号(";")创建空元素,
字符串元素中的双引号必须对应。 例如,输入一个字符串数组值为
"Test";"";;"embedded "" quote";"A;B";;
创建字符串数组
new String[] {"Test", "", null, "embedded \" quote", "A;B", null}
JProfiler可以从数值MBean属性值创建自定义遥测。 当你为自定义遥测定义一个MBean遥测行时,将显示一个MBean属性浏览器, 让你选择一个提供遥测数据的属性。当你已经在MBean浏览器中工作时,上下文菜单中提供的为值添加遥测操作提供了创建一个新自定义遥测的便捷方式。
遥测还可以跟踪复合数据中的嵌套值,或者是简单键和单一值的表格数据。当你选择了嵌套行,就会建立一个值路径, 路径组件用正斜线分开。
操作
除了检查和修改MBean属性,你还可以调用MBean操作并检查它们的返回值。MBean操作是MBean接口上的方法, 它不是setters或getters。
操作的返回值可能有复合型、表型或数组型,因此显示的新窗口中显示的内容类似于MBean属性树表。 对于简单的返回类型,只有名为"返回值"的一行。对于其他类型,"返回值"是将结果添加到其中的根元素。
MBean操作可以有一个或多个参数。当你输入它们时,与应用于编辑MBean属性的规则和限制相同。