一、简言
Java
6.x采用JMX方式提供了一系列监视和管理虚拟机的API,随SDK一起发布的JConsole则是采用这些API实现监控虚拟机的使用工具。
JConsole能够提供被监控虚拟机的内存、线程、类的加载以及MBean等信息,从而能够对服务器的运行情况进行实时监控。
二、运行环境
服务器:Redhat Linux ES 5.3 + JDK 1.6.07 + Jboss 4.2.2
ip地址:10.1.26.253
客户机:Windows + JDK 1.6.10
三、参数配置
1> 修改java虚拟机启动参数
jboos需要修改的文件是在bin目录下的run.sh[Linux]或者run.bat[Windows]
-
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9999"
-
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
-
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
-
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.10.1"
注意:
1、9999表示监控的端口号,确保指定的端口不被占用;
2、可以采用netstat -an来查看已经占用的端口;
3、配合lsof -i:portnum 来查看占用端口的具体应用程序;
4、另外如果开启了防火墙服务,请确保端口能够透过防火墙访问;
5、192.168.10.1为当前服务器的IP;
2> 启动JBoss服务器
./run.sh -b192.168.10.1,必须通过-b参数指定Jboss服务器绑定的地址;
允许所有用户连接 则为 -b 0.0.0.0
3> 连接远程虚拟机
启动%JAVA_HOME%\bin目录下的JConsole,
在弹出对话框的“远程进程:”一栏中,输入
192.168.10.1:9999,然后点击“连接”,
就能查看到远程Jboss服务器的运行情况了。
以上是我网络上找到解决办法,但是运行jboos后会出现以下错误:
-
[java] Caused by: java.lang.IllegalStateException: JBAS011592: The logging subsystem requires the log manager to be org.jboss.logmanager.LogManager. The subsystem has not be initialized and cannot be used. To use JBoss Log Manager you must add the system property "java.util.logging.manager" and set it to "org.jboss.logmanager.LogManager"
-
-
[java] at org.jboss.as.logging.LoggingExtension.initialize(LoggingExtension.java:103)
-
-
[java] at org.jboss.as.controller.extension.ExtensionAddHandler.initializeExtension(ExtensionAddHandler.java:97)
-
-
[java] at org.jboss.as.controller.extension.ParallelExtensionAddHandler$ExtensionInitializeTask.call(ParallelExtensionAddHandler.java:127)
-
-
[java] at org.jboss.as.controller.extension.ParallelExtensionAddHandler$ExtensionInitializeTask.call(ParallelExtensionAddHandler.java:113)
-
-
[java] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
-
-
[java] at java.util.concurrent.FutureTask.run(FutureTask.java:138)
-
-
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
-
-
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
-
-
[java] at java.lang.Thread.run(Thread.java:662)
-
-
[java] at org.jboss.threads.JBossThread.run(JBossThread.java:122)
-
-
[java] May 22, 2013 10:34:12 AM org.jboss.as.server.ServerService boot
-
-
[java] FATAL: JBAS015957: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.
找个了好多方法都没有解决,最后通过在启动脚本里添加启动参数得以解决:
-
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/p:/DATA/app/jboss-eap-6.4/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.4.Final-redhat-1.jar -Xbootclasspath/p:/DATA/app/jboss-eap-6.4/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.4.Final-redhat-1.jar -Djboss.modules.system.pkgs=org.jboss.logmanager -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
/DATA/app/jboss-eap-6.4/是jboss的安装目录,根据自己的安装路径设置
启动后,本地可以通过jconsole远程连接
阅读(1255) | 评论(0) | 转发(0) |