快速业务通道

精通Grails: 在企业中使用Grails - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
ains.each{println it} println "\nRegistered MBeans:" server.queryNames(null, null).each{println it}

如果 Grails 正在运行,应该可以看到如清单 14 所示的输出:

清单 14. testJmx.groovy 脚本的输出

$ groovy testJmx.groovy Number of registered MBeans: 20  Registered Domains: java.util.logging JMImplementation java.lang log4j  Registered MBeans: java.lang:type=MemoryManager,name=CodeCacheManager java.lang:type=Compilation java.lang:type=GarbageCollector,name=Copy java.lang:type=MemoryPool,name=Eden Space log4j:appender=stdout java.lang:type=Runtime log4j:hierarchy=default log4j:logger=root log4j:appender=stdout,layout=org.apache.log4j.PatternLayout java.lang:type=ClassLoading java.lang:type=MemoryPool,name=Survivor Space java.lang:type=Threading java.lang:type=GarbageCollector,name=MarkSweepCompact java.util.logging:type=Logging java.lang:type=Memory java.lang:type=OperatingSystem java.lang:type=MemoryPool,name=Code Cache java.lang:type=MemoryPool,name=Tenured Gen java.lang:type=MemoryPool,name=Perm Gen JMImplementation:type=MBeanServerDelegate

精通Grails: 在企业中使用Grails(11)

时间:2011-08-02 IBM Scott Davis

警告

testJmx.groovy 脚本可能会抛出一条类似清单 15 所示的 groovy.lang.MissingMethodException:

清单 15. 可能抛出的 JMX 异常

Caught: groovy.lang.MissingMethodException: No signature of method:   javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.queryNames()   is applicable for argument types: (java.lang.String, null)

如果发生这种情况,请从 $GROOVY_HOME/lib 中删除 mx4j-3.0.2.jar。它包含在 Groovy 发布版中, 以通过 JMX 支持 1.4 JDK,但它与 Java 平台的更高版本冲突。

这个脚本中有趣的部分来自 javax.management.MBeanServer,javax.management.MBeanServer 是调 用 connector.mBeanServerConnection 时返回的(记住,Java 中的 getFoo() 方法调用在 Groovy 中可 以简写为 foo)。调用 server.mBeanCount 返回已注册 MBean 的数量。调用 server.domains 返回一个 由域名组成的 String[]。域名是 MBean 标识符的第一部分 — 用逗号分隔的名/值对列表完全限定名称 。调用 server.queryNames(null, null) 返回一个由所有已注册 MBean 组成的 Set。

为了获得某个特定 MBean,请将清单 16 中的代码添加到脚本底部:

清单 16. 获得一个 MBean

println "\nHere is the Runtime MBean:" def mbean = new GroovyMBean(server, "java.lang:type=Runtime") println mbean

有了一个到 MBean 服务器的连接并知道 MBean 的名称后,使用一行即可获取一个新的 GroovyMBean 。清单 17 显示了脚本输出:

清单 17. GroovyMBean 输出

Here is the Runtime MBean: MBean Name:   java.lang:type=Runtime Attributes:   (r) javax.management.openmbean.TabularData SystemProperties   (r) java.lang.String VmVersion   (r) java.lang.String VmName   (r) java.lang.String SpecName   (r) [Ljava.lang.String; InputArguments   (r) java.lang.String ManagementSpecVersion   (r) java.lang.String SpecVendor   (r) long Uptime   (r) long StartTime   (r) java.lang.String LibraryPath   (r) java.lang.String BootClassPath   (r) j

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号