问题标签 [jmx]

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 投票
5 回答
9516 浏览

java - 使用 JMX 获取线程 CPU 时间的有效方法

我目前正在通过以下方式使用 JMX 获取总线程 CPU 时间:

由于 ThreadMXBean 实际上是一个远程代理,因此性能非常糟糕,对于这个实际的方法调用来说只有几秒的数量级。

有没有更快的方法来做到这一点?


更新:我用它来监控性能。测量结果是“挂钟”时间和 JProfiler,这表明我大约 85% 的时间都花在了这种方法上。我确实有其他一些 MXBean 调用(运行时、内存、GC),但它们要便宜得多。很可能是因为每次调用thread.getThreadCpuTime都是远程调用。

更新 2:显示性能问题的 JProfiler 屏幕截图。

替代文字

0 投票
2 回答
8912 浏览

java - Java中线程用户时间和线程cpu时间的区别

ThreadMXBean 有两种检索线程时间使用情况的方法:

两者有什么区别?


更新 2:如果我能够链接到 javadocs,不要引用它们 - 我已经阅读过它们。

更新:这是我试图用来了解这些时间意味着什么的一些代码,但收效甚微:

输出是:

所以 cpu 和用户时间之间的差异从 20 毫秒增加到了 60 毫秒。那是因为使用 HttpUrlConnection 确实包含一些网络 I/O?

0 投票
4 回答
41192 浏览

weblogic - 如何在 Weblogic 10.x 上启用 JMX

我有一个启用 JMX 的应用程序。它有自己的 JMX 代理和一些 MBean。当我在 WebLogic 中启动应用程序时,我能够通过 RMI url 连接到 JMX 代理并通过“ JConsole ”对 MBean 执行操作。

但是当我进入 Weblogic 控制台时,我看不到任何 JMX 控制台!如何在 Weblogic 中启用 JMX 控制台?

0 投票
5 回答
25929 浏览

java - 无法使用 VisualVM 连接到 Tomcat

我在监控远程 Tomcat 进程时遇到问题。我正在尝试使用 Java 6 版本的JConsole/JVisualVM

我在具有适当安全策略的远程服务器上运行了 jstatd。该过程已启动并且 TCP 连接可用。

当我尝试通过 JConsole 连接时,我得到'Connection Failed:jmxrmi'.

当我尝试通过 VisualVM 连接时,我添加了主机名,我的右键单击选项是“添加 JMX 连接”。从文档中我不清楚这是否是我期望看到的。当我尝试连接时,我得到:

因此,文档建议我只需要远程运行 jstatd 即可在 VisualVM 中进行监控,而 UI 则要求 jmxrmi .. 是否相同?我尝试使用 jmx rmi 选项设置 tomcat,但我也超时,但我知道这不是防火墙问题。

如果有人成功地以这种方式连接了远程 Tomcat 进程,并且可以描述如何,那将对我有很大帮助。

0 投票
1 回答
1025 浏览

java - 是否有(实验性)支持 JSR-262 JMX-WS 的 Java 工具或应用程序?

对 Java 管理扩展 (JMX) 代理的 Web 服务连接器和参考实现ws-jmx-connector非常感兴趣。JSR 262 将为跨平台/跨语言企业集成项目提供新的机会,提供使用非 Java 客户端与 JMX 代理进行通信的选项。(我已经能够毫不费力地将参考实现与 Delphi 客户端一起使用)。

是否有任何(开源)Java 工具或产品“启用”了 JSR 262 并通过 JMX WS 公开 MBean - 以便可以使用 JSR 262 参考实现,而无需修改其源代码?

0 投票
2 回答
2083 浏览

java - 通过 JMX 重新启动 Log4J 日志记录

似乎 Log4j 滚动附加程序停止了记录,因为它达到了 MaxBackupIndex 限制。我已将旧的日志文件移开,但 Log4j 似乎没有再次开始记录。

有没有办法通过 JMX 重新启动 Log4J 日志记录?

我想利用这个而不是重新启动 Tomcat 实例。

谢谢。

0 投票
2 回答
3319 浏览

java - JConsole 中可见的 Coherence 节点 MBean 的 JMX 查询问题

我正在使用 JMX 构建一个自定义工具,用于监控工作中的远程Coherence集群。我能够很好地连接并直接查询 MBean,并且我已经获得了几乎所有我需要的信息。但是,在尝试查询 MBean 以获取集群中的特定缓存时,我遇到了一个障碍,我可以在其中找到有关获取/放置总数、每个平均时间等的统计信息。

当我使用 JConsole 连接到远程进程时,我尝试以编程方式访问的 MBean 是可见的,并且具有如下名称:

type=Cache如果我可以在不指定所有缓存的情况下动态获取特定节点 ID 的所有 MBean,它会更加灵活。我正在尝试像这样查询它们:

但是,无论我使用queryMBeans()or queryNames(),查询都会返回一个 Set 包含...

  • ...如果我传递上面显示的参数,则为0 个对象
  • ...如果我传递第一个参数,则为0 个对象null
  • ...如果我传递第二个参数,则域中的所有 MBean Coherence:*(112)null
  • null...如果我同时传递两个参数,则每个 MBean (128)

前两个结果是出乎意料的结果,表明QueryExp我正在通过的一个问题,但我无法弄清楚问题是什么。我什至尝试只传递typeIsCacheorspecifiedNodeId作为第二个参数(使用coherenceornull作为第一个参数),但我总是得到 0 个结果。

我对 JMX 非常熟悉——对问题所在有什么见解吗?(仅供参考,监控工具将在 Java 5 上运行,所以像 JMX 2.0 这样的东西现在对我没有帮助。)

0 投票
5 回答
36762 浏览

java - 使用 JMX(Java 管理扩展)API 获取活动会话计数

我正在尝试使用 JMX API 来获取 Web 应用程序的活动会话计数。

  1. 是否可以使用 JMX API 来获取此类信息?
  2. 如果是,它有多可靠?
  3. 有关如何完成此操作的任何示例代码?

我一直在阅读 JMX 教程和文档,但它们让我了解了这项技术是什么。我只是无法确定我需要什么。

0 投票
2 回答
403 浏览

java - 在 JMX 控制台插入中遗漏了一些明显的东西

我正在按照启动我的 hello world JMX bean 的说明进行操作,而 jboss 抱怨以下内容:

我知道我错过了一些非常明显的东西,但无法发现它是什么。

为什么要寻找一个 init 方法?该类扩展了一个没有init方法的类,当我更改类的名称时,它会触发一个classNotFound,所以,我知道它正在寻找正确的类......

如果有人有关于为 Jboss JMX 控制台创建第一个 MBean 的良好分步教程,我也会接受。

非常感谢。

0 投票
3 回答
586 浏览

java - 无法从 MBean 访问 Singleton 类的实例数据

我正在赶最后期限工作,我现在正在出汗。从过去几天开始,我一直在解决一个问题,现在是时候大声疾呼了。

我有一个应用程序(我们称之为“APP”),我有一个为 APP 编写的“PerformanceStatistics”MBean。我还有一个 Singleton Data 类(我们称之为“SDATA”),它为 MBean 提供一些数据来访问和计算一些应用程序运行时的东西。因此,在应用程序启动期间,然后在应用程序生命周期中,我将向 SDATA 实例添加数据。因此,此 SDATA 实例始终具有数据。

现在,问题是我无法从 PerformanceStatistics MBean 访问任何数据或数据结构。如果我在添加数据时检查数据结构,则所有结构都包含数据。但是当我从 MBean 调用这个单例实例时,我有点拥有空数据。

任何人都可以解释或提示正在发生的事情吗?任何帮助将不胜感激。

我尝试了各种 SDATA 类是最终的,所有方法都是同步的、静态的等,只是为了确保。但直到现在还没有运气。

另一个不幸的事情是,我有时会得到不同的“ServicePerformanceData”实例(即当我打印 ServicePerformanceData.getInstance() 时,它们在不同的时间是不同的)。不知道发生了什么。我在 WebLogic 服务器中运行此应用程序并使用 JConsole。

具有单吨和数据访问方法的 SDATA 类

}

PerformanceStatistics MBean 类当我调用 ServicePerformanceData .getInstance() 之类的数据时,该结构中没有任何内容。因此,我无法得到任何结果。

}