技术开发 频道

精通 Grails: 在企业中使用 Grails

  启用远程 JMX 代理

  要设置 JMX 代理以接受远程连接,需要向 JVM 传递另外几个与 JMX 相关的标志。这几个标志打开一个管理端口并配置安全设置(或本例中的 lack thereof)。

  向 Grails 启动脚本添加三个新行,如清单 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 远程代理标志  

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

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

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

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

0
相关文章