快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
如清单 4 所示:

清单 4. 在 Grails 启动脚本中启用远程 JMX 监控

export JAVA_OPTS="- Dcom.sun.management.jmxremote" export JAVA_OPTS=" $JAVA_OPTS -Djava.rmi.server.hostname=localhost" export JAVA_OPTS=" $JAVA_OPTS -Dcom.sun.management.jmxremote.port=9004" export JAVA_OPTS=" $JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false" export JAVA_OPTS=" $JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"

使用这些设置重新启动 Grails。还要重新启动 JConsole。这次,单击 Remote 选项卡并连接到端口 9004 上的 localhost,如图 3 所示:

图 3. 在 JConsole 中连接到远程 JMX 代理

这是一种验证是否连接上远程 JVM(即使它在同一系统上运行)的快速方法。单击 MBeans 选项卡。 展开左边的 java.lang 树。单击 Runtime 元素。然后在屏幕右侧的属性窗口中双击 InputArguments。 您应该看到所有远程 JMX 设置,如图 4 所示:

图 4. 传递给 JVM 的 JMX 远程代理标志

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

时间:2011-08-02 IBM Scott Davis

让这个窗口保持打开。单击 Connection 菜单打开一个新的连接。单击 Remote 选项卡,这次接受默 认值(端口 0 上的 localhost)。展开 Runtime MBean 的 InputArguments。注意这里没有远程 JMX 标 志(如图 5 所示):

图 5. 监控两个不同的 JMX 代理

如果标题栏(监控本身)的提示不够清楚,注意您刚打开的第二个 JConsole 窗口,它监控 JConsole 应用程序本身。

现在您启动了 JConsole 并监控 Grails 应用程序,此时应该使用它进行一些实际操作了,比如调整 登录设置,不过在进行该操作之前,必须先理解最后一个 JMX 难点:MBean 服务器。

MBean 服务器、Grails 和 Spring

您在 JConsole 上单击的 Runtime 元素是一个 MBean。为了让 MBean 呈现给 JMX 客户机,必须使用 一个内部运行有 JMX 代理的 MBean 服务器注册它。有些人将术语 “JMX 代理” 等同于 “MBean 服务 器”,但从技术上讲,MBean 服务器是在 JMX 代理内部运行的众多组件中的一个。

要以编程方式注册 MBean,需调用 MBeanServer.registerMBean()。不过,在 Grails 中,更准确地 说,这是由一个配置文件(一个 Spring 配置文件)管理的。

Spring 是 Grails 的核心。它是控制所有类如何交互的依赖项注入框架。

从 JMX 角度,您可能会想:我在用 MBean 服务器注册这个 MBean。但从 Spring 角度,您应该这样 考虑:我在将 MBean 注入到 MBean 服务器中。动作对象可能不同,但最终结果是一样的:MBean 变为对 JMX 客户机是可视的。

首先在 grails-app/conf/spring 中创建一个名为 resources.xml 的文件(在本文后面,您将明白 resources.groovy 和 resources.xml 的关系)。设置 resources.xml,如清单 5 所示:

清单 5. 在 resources.xml 中设置 Spring/JMX 基础设施

<beans  xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">   <bean id="mbeanServer"      class="org.springframework.jmx.support.MBeanServerFactoryBean">    <property name="locateExistingServerIfPossible" value="true" />   </bean>   <bean id="exp

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号