专业化管理 > 站点维护 > 使用 Java Management Extensions (JMX) > 远程 JMX 监控 > 存在防火墙时的远程连接
  
存在防火墙时的远程连接
一般情况下,会将防火墙配置为阻止 RMI。不幸的是,RMI 是 JDK 中用于 "JSR 160" JMX 远程通信的内置网络协议。JSR 160 为 JMX 远程协议指定了常规体系结构,但在 JDK 的最新支持版本中不包括任何其他协议。
Windchill 为 JMX JSR 160 远程通信提供了一个专用的、不透明的 HTTP(S) 代理,名为 JmxProxyServlet。在网络访问方面,这一代理仅需要对 Windchill web 应用程序进行正常的 HTTP(S) 访问。
要使用此 JSR 160 实用技能 JMX 控制台和按照本指南中前述章节的说明而建立的 JMX RMI 连接,请执行以下步骤:
1. 将以下文件从 codebase/lib 复制到 Java JDK jre/lib/ext 目录:
WtHttpClientAddOns.jar
WtJmxClientConn.jar
要执行此操作,可在浏览器中浏览至以下 URL,选取这些文件后将结果保存到 Java JDK jre/lib/ext 目录:
http(s)://yourHostAndPort/yourWebAppName/lib
2. 向 JMX 控制台提供以下 JSR 160 连接 URL:
service:jmx:ptchttp://yourHostAndPort/yourWebAppName/servlet/JmxProxyServlet?jmxurl
=service:jmx:rmi://jmxTargetHost/jndi/rmi://jmxTargetHost:jmxTargetPort/jmxrmi
其中,您应替换以下内容:
如果使用 https,则将 http 替换为 https
用您的 web 服务器主机和端口替换 yourHostAndPort
yourWebAppName 替换为 Windchill Web 应用程序名称,例如,Windchill_10
分别用代理 servlet 通过 JMX RMI 应连接到的主机名和端口替换 jmxTargetHostjmxTargetPort
对于 JConsole 而言,既可在命令行中提供步骤 2 所需的 URL,也可以使用 JConsole 连接窗口中的“远程进程”选项来提供。
提供了一个实用程序来简化所需 URL 的创建过程。要使用该实用程序,只要步骤 1 中标识的 JAR 以其初始名称位于相同的目录下,就不需要将其安装于 JDK jre/lib/ext 目录中。
在命令行中输入以下命令:
从与 WtJmxClientConn.jar 相同的目录中:
...java -jar WtJmxClientConn.jar -usage
从任意位置 (只要 WtJmxClientConn.jar 位于该 classpath 中):
...java com.ptc.jmx.client.Main -usage
* 
可以使用帮助来输入命令行,或使用图形实用程序来构建 JMX 服务 URL 并可选择使用此 URL 启动 JConsole。在 Windows 中,只需双击 WtJmxClientConn.jar 就可启动该实用程序的图形化版本。