目的是:1:connecttoaremoteservermaybeviahost:ip,port:81812:stopTomcatthat'srunningonthatserver3:deploya.warfile4:restarttomcat 最佳答案 我相信TomcatDocumentation在MonitoringandManagingTomcat下提供了一些关于如何停止给定应用程序的信息,但不是完全停止服务器:如果您可以通过ssh访问服务器,那么您可能会考虑JSchlibrary您可以将其与SSHExecAntTask结合使
当我尝试将我的zabbix服务器与JBoss7.1连接时出现问题,错误是:无法检索RMIServerstub:javax.naming.ServiceUnavailableException[根异常是java.rmi。我认为问题出在客户端配置上,代理在windows中运行,有人知道我需要使用什么命令来更改run.conf中的端口。感谢您的宝贵时间。 最佳答案 首先要注意的是,为了通过JMX监控JBoss,您不需要运行Zabbix代理。相反,您应该运行ZabbixJavagateway(另请参见sectiononJMXmonitori
我们有一个作为Windows服务运行的Java进程(使用srvany)。它使用Java1.6(目前为1.6.0.23)运行。在过去(WindowsXP),我可以将JConsole连接到进程,在Windows7上我不能再这样做了。如果我运行jconsole我得到“无效的进程ID:4488”。这些服务以SYSTEM用户身份运行。如果我让服务以我的桌面用户身份运行(使用“以此帐户登录”),服务进程ID会出现在JConsole中,但它们是灰色的,我无法连接。当Java进程作为Windows7服务运行时,是否无法动态连接到它们? 最佳答案 也
如果我有一个类,它也是一个mbean,并且我在我的代码中仅在一个线程中使用该类的函数,并且还通过jmx调用一个函数,我应该同步该代码吗?谢谢 最佳答案 代码应该是线程安全的,是的。如果您选择使用synchronized使其成为线程安全的,那由您决定。通过JMX调用的MBean将由容器调用,使用它自己的线程,与您自己的代码的线程分开。 关于java-jmxmbean线程安全,我们在StackOverflow上找到一个类似的问题: https://stackove
我目前通过以下方式使用JMX获取总线程CPU时间:privatelongcalculateTotalThreadCpuTime(ThreadMXBeanthread){longtotalTime=0l;for(ThreadInfothreadInfo:thread.dumpAllThreads(false,false))totalTime+=thread.getThreadCpuTime(threadInfo.getThreadId());returntotalTime;}由于ThreadMXBean实际上是一个远程代理,性能是可怕的,对于这个实际的方法调用来说是秒的数量级。有没有更快
我有一个在JBoss中运行的Java应用程序,我在其中启用了JMXremotemonitoring.这使我可以连接到jconsole和visualvm等工具,以监控内存使用情况、cpu利用率、mbean等。运行我的应用程序的服务器具有限制性端口访问权限,这就是我使用JSR-262JMXWSConnector的原因.JSR-262实现有一个示例,说明如何为jconsole启用jmx:ws协议(protocol)。但我想对visualvm进行同样的尝试。我认为我必须做的是,在启动visualvm时:将一些额外的JSR-262jar添加到类路径将java.endorsed.dirs设置为未捆
我知道JMX,但我不会认为它接近或等同于PowerShell或其他一些命令行/shell。例如,JMXBeans和JConsole看起来更像是一个GUI,用户只能在这些bean直接可用的情况下执行操作。您不能执行更复杂的操作,例如过滤器、管道等。这就是像PowerShell这样的命令行/shell更进一步的地方。有人可以就创建更像PowerShell而不是JMX的东西提出任何建议吗?哪些FOSS库可以帮助我实现目标? 最佳答案 你试过了吗Beanshell? 关于与powershell等
我有我的JMX服务器,它注册从本地文件读取的bean,并根据需要将它们提供给其他JMX客户端。可以使用“jconsole”或在Tomcat容器下运行的Java应用程序访问服务器。我想要的是添加身份验证以防止“未知”身份访问JMX服务器。为了实现这一点,我使用以下JVM选项添加了Kerberos身份验证@服务器-Dcom.sun.management.jmxremote=true-Dcom.sun.management.jmxremote.port=5555-Dcom.sun.management.jmxremote.authenticate=true-Dcom.sun.manageme
我从DBCP2文档中了解到这个新版本支持连接池的JMX监控,但我找不到任何显示实际使用情况的示例。我有一个简单的基于JDBC的Java应用程序,它使用dbcp2创建一个连接池,供一个简单的查询服务使用,我想通过另一个工具(如使用JMX的VisualVM)监视这些连接。DBCP2的BasicDataSource有类似setJmxName()的方法我没有看到它的任何用法,也不知道如何使用它。如果有人不熟悉JDBC,可以阅读一下here.如有任何帮助,我们将不胜感激。谢谢! 最佳答案 我也没有找到任何文档,但我通过深入研究源代码发现了一些
很抱歉这个问题肯定已经被问过很多次了,但我无法成功解决我的问题。我已经阅读了很多博客、网站、论坛......但没有找到任何解决方案。案例:我需要将我盒子上的VisualVM连接到远程服务器(tomcat、weblogics)以进行性能/线程/内存监控。这些服务器安装在受防火墙保护的(物理或虚拟)机器上。防火墙中开放了大间隔的端口,可以使用,但不是所有端口。测试我尝试过在VisualVM中通过JMX直接连接,在服务器启动时在服务器端使用以下JVM选项:-Djava.rmi.server.hostname=[hostname]-Dcom.sun.management.jmxremote-D