但是不知道怎么得到我要的监控指标,是还要注册相应的Mbean?
我认为连接池、线程数、JMS明细、EJB明细这些统计功能在Server已经有了。
也就是说实现这些功能的MBean已经被注册到MBeanServer上了。现在你已经获得“MBeanServerConnection mbeanserverconnection”了。
你可以用这个mbeanserverconnection执行很多操作,比如获得Server端的MBean,调用server端MBean的方法。这里有一点你必须明白:
MBeanServerConnection 是可以调用Server的MBean的方法的,但是前提是你要知道被注册的MBean的ObjectName。ObjectName是很重要的,你要注册MBean到MBeanServer上时,是需要指定一个可以唯一标示你的MBean的ObjectName,也就是说实际上ObjectName就代表着一个MBean。所以我给你的建议是,
1,先通过mbeanserverconnection 获得所有MBean的ObjectName。
代码:Set objectNameSet = mbeanserverconnection.queryNames(null,null),
参数都设置为NULL代表你要查询所有的ObjectName,
2,通过以上的信息确定实现你需要的功能的MBean的ObjectName,
通过OBjectName这个表示去调用相应的方法
代码:mbeanserverconnection.invoke(ObjectName "能实现你要的功能的MBean的ObjectName", String "比如:get线程数", Object[] params, String[] signature) 
关于invoke()方法的各参数请参照JDK补充说一下,你要获得线程数的话,JDK已经有自己的MBean,而且这个MBean的ObjectName为:你去java.lang.management包里面去看,那里有好多个实用的MBean以及他们的说明。

解决方案 »

  1.   

    连接池、线程数、JMS明细、EJB明细这些是不需要注册的,直接去查找官网查询对应的MBean就可以了,还有很多都是。
    首先你可以创建好顶级的ObjectName,好像有个三个不同类型:可以参考一下http://edocs.bea.com.cn/wls/docs92/jmx/accessWLS.html
    这里可以举个例子:如
    ObjectName o = new ObjectNam("com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean");
    因为这个ObjectName下面有很多其他的MBean:JVMRuntimeMBean就是其中一个,当然JVMRuntimeMBean下面可能还有其他
    那么获取JVMRuntimeMBean的ObjectName就可以如下:
    ObjectName jvm = (ObjectName) connection.getAttribute(server, "JVMRuntime");
    通过调用getAttribute方法就可以去获取各个参数。
    connection.getAttribute(jvm,"Name")
    参数名称在官网对应的MBean有说明的。上面是针对weblogic9.x的监控,如果对于weblogic8.1等版本就跟weblogic9.x完全不一样。weblogic9.x和weblogic8.1对应的JMX版本不一样
    且JDK1.5及以后把JMX包括到JDK的rt.jar中了.weblogic8.1对应的JMX为1.0在自己所带的weblogic.jar包,JDK为1.4没有实现
    固在不同的JDK中还需要根据监控的weblogic不同版本考虑实现的兼容性问题。
      

  2.   

    查看WLS的e-docs,里面有比较详细的说明与代码示例
      

  3.   

    你说的这些wls应当已经提供了相应的mbean,不需要你重新注册一个你自己的mbean,这个应当有一个标准叫做jsr77的,你可以看看。
      

  4.   

    这个例子应该可以作为一个starting point了:http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jmx/accessWLS.html#wp1114746
    -------------------------------------------------
    爱问易 - 非官方技术支持互助平台
    http://www.iaskengineer.com
    -------------------------------------------------
    几块钱就能解决的问题,何必困扰好几天?
    -------------------------------------------------