问题标签 [jconsole]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
29969 浏览

java - 无法将 JConsole 与作为 Windows 服务运行的 Tomcat 一起使用

我将 tomcat 6.0.18 作为 Windows 服务运行。在服务小程序中,jvm 是默认配置的,即它使用 JRE 的 jvm.dll。

我正在尝试使用 JConsole 监视此应用程序,但无法在本地连接到它。我添加了参数 -Dcom.sun.management.jmxremote (在使用 start.bat 脚本启动 tomcat 时有效)。但是jvm似乎没有拿起参数。

0 投票
1 回答
939 浏览

java - 如何更改为使用 MXBean 定义的操作显示的输入描述

我正在使用 MXBean 来检测某个功能,并且我有一个接受 3 个输入参数的方法。

默认情况下,在 jconsole 上,参数显示为 p1、p2、p3 等。我有 @params 描述每个参数。我如何让 jConsole 使用这些?

我已经注册了上面的 MXBean ,当我启动这个操作的面板时,我得到一个带有“getInput”作为文本的按钮,以及两个名称为 p1 和 p2 的文本框,而不是“Input One”和“Input二”。

我需要使用任何注释来实现这一点吗?(顺便说一句,我使用的是 jdk1.6)

0 投票
7 回答
91421 浏览

java - Java 6 是否为 JMX 远程连接打开默认端口?

我的具体问题与 JDK 1.6 中使用的 JMX 有关:如果我使用 JRE 1.6 运行 Java 进程

在命令行中,Java 是否为远程 JMX 连接选择默认端口?

背景故事:我目前正在尝试开发一个程序来提供给客户,使他们能够通过 JMX 从远程机器连接到我们的一个流程。目标是促进他们对实时显示控制台上发生的情况进行远程调试。由于他们的服务水平协议,他们有强烈的动机去捕获尽可能多的数据,如果情况看起来太复杂而无法快速修复,则重新启动显示控制台并允许它重新连接到服务器端。

我知道我可以在 JDK 1.6 进程上运行jconsole ,并在 JDK 1.6.7 后的进程上运行jvisualvm ,并提供对控制台的物理访问权限。但是,由于涉及的操作要求和人员问题,我们有强烈的动力去远程获取我们需要的数据并让它们重新启动和运行。

编辑:我知道命令行端口属性

我要回答的问题是,如果您不在命令行中设置该属性,Java 是否会选择另一个端口进行远程监控?如果是这样,你怎么能确定它可能是什么?

0 投票
1 回答
12698 浏览

java - Leopard 中的 JConsole 在哪里

有谁知道 JConsole 在 MacOSX (Leopard) 中的位置?

0 投票
12 回答
210644 浏览

java - 远程 JMX 连接

我正在尝试打开与远程机器上运行的 java 应用程序的 JMX 连接。

应用程序 JVM 配置有以下选项:

  • com.sun.management.jmxremote
  • com.sun.management.jmxremote.port=1088
  • com.sun.management.jmxremote.authenticate=false
  • com.sun.management.jmxremote.ssl=false

我可以localhost:1088使用 jconsole 或 jvisualvm 进行连接。但我无法使用xxx.xxx.xxx.xxx:1088远程机器进行连接。

服务器之间或操作系统上没有防火墙。但是为了消除这种可能性telnet xxx.xxx.xxx.xxx 1088,我认为它是连接的,因为控制台屏幕变成空白。

两台服务器都是 Windows Server 2008 x64。尝试使用 64 位 JVM 和 32 位,均无效。

0 投票
12 回答
322707 浏览

java - 如何在我的 JVM 上激活 JMX 以使用 jconsole 进行访问?

如何在 JVM 上激活 JMX 以使用 jconsole 进行访问?

0 投票
2 回答
17735 浏览

java - 如何在 OpenSUSE 或 Ubuntu 中启动 Java 控制台?

我正在开发一个 java 小程序,我想知道 System.out 在 Ubuntu/OpenSUSE 中的去向。在 Windows 中,我只是打开了 jconsole,但我在 Ubuntu/OpenSUSE 中没有找到它。

谢谢。

0 投票
9 回答
81621 浏览

java - 可以从命令行检索 jconsole 数据吗?

我目前jconsole用于监控我的 Java 应用程序的性能指标,并希望编写此数据采集的脚本

有没有办法将这些 VM 指标(堆内存使用率、线程数、CPU 使用率等)检索到STDOUT
中的数据top -p PID -b -n 1并没有完全削减它。

谢谢

0 投票
5 回答
34051 浏览

java - 如何在远程 Glassfish 服务器上激活 JMX 以使用 jconsole 进行访问?

我想监控远程 glassfish 服务器。我在 domain.xml 中启用了 JMX 连接:

但这没有帮助。我仍然无法使用 JConsole 连接到服务器。然后我找到了解决方案 - 我需要在 domain.xml 中指定 JVM 属性以打开 8686 端口进行远程连接。所以我将此行添加到java-config部分:

但是现在当我启动服务器时,出现以下错误:

无法加载 Logmanager “com.sun.enterprise.server.logging.ServerLogManager” java.lang.ClassNotFoundException: com.sun.enterprise.server.logging.ServerLogManager at java.net.URLClassLoader$1.run(URLClassLoader.java:200)在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 sun.misc.Launcher$AppClassLoader .loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在 java.util.logging.LogManager$1.run(LogManager.java:166) 在 java.security.AccessController.doPrivileged (本机方法)在 java.util.logging.LogManager.(LogManager.java:156) 在 java.util.logging.Logger。getLogger(Logger.java:273) 在 sun.management.snmp.util.MibLogger.(MibLogger.java:57) 在 sun.management.snmp.util.MibLogger.(MibLogger.java:42) 在 sun.management.jmxremote .ConnectorBootstrap.(ConnectorBootstrap.java:760) 在 sun.management.Agent.startAgent(Agent.java:127) 在 sun.management.Agent.startAgent(Agent.java:239) javax.management.JMRuntimeException: 无法加载 MBeanServerBuilder com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder 类:java.lang.ClassNotFoundException:com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder 在 javax.management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java :480) 在 javax.management.MBeanServerFactory.getNewMBeanServerBuilder(MBeanServerFactory.java:511) 在 javax。management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:298) at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:213) at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:174) at sun.management.ManagementFactory.createPlatformMBeanServer (ManagementFactory.java:302) 在 java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504) 在 sun.management.jmxremote.ConnectorBootstrap.initialize(ConnectorBootstrap.java:392) 在 sun.management.Agent.startAgent( Agent.java:127) 在 sun.management.Agent.startAgent(Agent.java:239) 引起:java.lang.ClassNotFoundException: com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder 在 java.net。 URLClassLoader$1。在 java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 的 java.security.AccessController.doPrivileged(Native Method) 运行(URLClassLoader.java:200)在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在 javax.management.MBeanServerFactory.loadBuilderClass(MBeanServerFactory.java:423) 在 javax。 management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:465) ... 9 更多代理引发的异常:javax.management.JMRuntimeException:无法加载 MBeanServerBuilder 类 com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder: java.lang.ClassNotFoundException:com.sun.enterprise.admin.server。core.jmx.AppServerMBeanServerBuilder

我该如何解决这个问题?

提前致谢。

0 投票
2 回答
7251 浏览

java - 在 JVM 上禁用本地 JMX 连接

我们正在编写一个将密码保存在内存中的 java 程序。不幸的是,用户可以轻松地使用 jconsole 或 jmap 来创建堆转储文件并打开它以查找密码。我认为 jconsole 使用本地套接字连接 jvm。我想知道,即使对于本地用户,有什么方法可以禁用 jmx 吗?有没有办法完全禁用堆转储?由于用户可以访问内存段,因此无论如何都可以访问密码。但是,我想禁用这样做的标准方法,以使操作尽可能昂贵。