Tag: jmx

如何连接到远程服务器并使用Ant启动/停止在该特定服务器上运行的Tomcat?

目的是: 1: connect to a remote server maybe via host: ip , port: 8181 2: stop Tomcat that’s running on that server 3: deploy a .war file 4: restart tomcat

如何使JMX自定义身份validation工作?

我在JMX上使用密码和基于访问文件的身份validation。 构建我的JMXConnectorServer时,我使用属性名称,它工作正常。 Map env = new HashMap(); env.put(ApplicationProperties.JMX_PWD_FILE_PROP, pwdFile); env.put(ApplicationProperties.JMX_ACCESS_FILE_PROP, accFile); connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(jmxServiceURL, env, mBeanServer); 但是,现在我想使用自定义身份validation器,我实现了自己的LoginModule,在密码文件中有一个加密密码。 因此,想法是在密码文件中具有加密密码和纯文本用户名。 public class ABCDJMXLoginModule implements LoginModule { private CallbackHandler callbackHandler; private Subject subject; private String u_username; private String u_password; private JMXPrincipal user; private Properties userCredentials; private String passwordFile; private String f_username; private String f_password; private static final Logger […]

如何找出确切的年轻/老年人在记忆中的位置?

最近我能够使用sun.misc.Unsafe类获取对象的地址。 现在我试图以编程方式找到我的对象所在的实际生成。 为此,我想知道每一代的起点和终点。 如果Java(Oracle JVM)提供了解决此问题的任何工具? 我不相信,因为即使不同的GC需要不同的内存结构(例如G1),这使得任务更加有趣:) 我想知道的只是代表内存中几代边界的几个数字,如下所示: young gen: start point – 8501702198 end point – 9601256348 愿意听到关于黑魔法的最疯狂的想法,这些想法可以确定不同代区域在记忆中的位置。

通过HTTP替代方法访问JMX

我们使用MX4J通过容器本身的Web界面访问JMX相关的操作/属性。 我想知道是否有替代品可供使用,因为MX4J的最后一个服务版本是在2006年。我基本上希望克服MX4J在处理集合方面的局限性。

查看除Jconsole之外的JMX bean的更好选项

JConsole已经安静地查看JMX发布的计数器的错误视图。 还有什么其他选择? 除了实际上使用相同视图的JVisualVM之外,我找不到任何其他内容

在生产系统上详细分析Tomcat Heap

在使用JMX控制台分析了在tomcat中运行的轻量级Web应用程序之后,事实certificate“PS Old Gen”正在缓慢但不变地增长。 它以200MB开始,每小时增长约80MB。 CPU不是问题,它平均运行在0-1%,但它在某处泄漏内存,因此在部署后几天它会变得不稳定。 我如何找出堆上分配的对象? 你知道有什么好的教程或工具吗?

如何为JMX Connector设置请求超时

我正在尝试为JMX Connector设置请求超时,但似乎它不起作用。 env.put(“jmx.remote.x.request.waiting.timeout”, new Long(30000)); 但由于它不起作用,我用谷歌搜索原因并发现在标准的JMX远程api中不支持上述环境变量。 有没有其他方法来设置请求超时?

如何让JMX绑定到特定的接口?

我目前正在使用com.sun.management.jmxremote.*属性启动Java VM,以便我可以通过JConsole连接到它以进行管理和监视。 不幸的是,它会侦听机器上的所有接口(IP地址)。 在我们的环境中,通常情况下,同时在一台机器上运行多个Java VM。 虽然可以告诉JMX监听不同的TCP端口(使用com.sun.management.jmxremote.port ),但是让JMX使用标准JMX端口并绑定到特定的IP地址(而不是全部)会很好。他们)。 这样可以更容易地找出我们通过JConsole连接到哪个VM(因为每个VM实际上“拥有”自己的IP地址)。 有没有人想出如何让JMX监听单个IP地址或主机名?

如何为VisualVM“”命名?

JDK 1.6附带了一个名为VisualVM的便捷工具,可以让您检查并运行正在运行的Java进程。 一个function是它可以自动检测本地计算机上正在运行的JVM。 大多数都列为“(pid xxxx)”,但有些名称和图标,如VisualVM本身和其他类似NetBeans(例如,参见此dzone文章中的屏幕截图)。 如何将我的应用程序名称和图标注入JVM,以便它在VisualVM的应用程序列表中正确显示? 我的应用程序是否需要运行JRE 1.6或者我是否可以在1.5下运行?

visualvm可以通过JMX自动连接到远程进程吗?

我有一个在远程计算机上运行的Java进程,该进程设置了一些mbeans。 我还让jstatd在该机器上运行,与Java进程的用户相同。 (mbeans可以通过编程方式设置或使用-Dcom.sun.management.jmxremote…等,这似乎没有区别)。 VisualVM能够与进程建立jstatd连接,并自动发现,但这意味着我无法访问mbeans或CPU历史记录图表。 或者,我可以创建一个显式的JMX连接,它为我提供了通常的有用工具,但我希望应用程序在启动时分配一个随机的JMX端口,这个配置不能是静态的。 有没有办法让VisualVM通过JMX自动连接到我的进程? 这将要求它自动发现JMX端口,但我原以为jstatd可以做到这一点。 有谁知道visualvm的任何插件自动化这个?