章记:
做一下最近的工作上的技术总结,关于JConsole监控JBossAs7.1.1性能参数的开发,主要是记录一下基础配置方面的内容。
一、环境介绍
JBossAs7.1.1下载地址:http://jbossas.jboss.org/downloads/
部属JBoss服务器环境:
JBoss安装所在系统配置:
Windows Server 2008 R2 Enterprise
安装内存:8G
系统类型:64位
安装JBoss:
前提:jdk1.7、配置JAVA_HOME、JBOSS_HOME等环境变量。
解压下载包jboss-as-7.1.1.Final即可。
二、JBossAs7.1.1目录结构以及安装访问
进入jboss-as-7.1.1.Final文件夹,首先建议首次使用者上网找一些文档,学习一下jboss-as-7.1.1.Final的目录结构分布,在这里就不多说了,会介绍相关的一些结构内容。
jboss-as-7.1.1.Final版本有两种模式:
Standalone模式(使用standalone.bat启动)相当于以前的3、4、5、6版本。配置文件、发布内容等放在standalone目录下。
Domain模式(使用domain.bat启动)是Jboss7的一个新特征,可以在一个控制点管理多个服务器。这里主要关注Standalone模式就可以。
这里我简单介绍一下Standalone文件夹下的目录结构:
configuration:Standalone模式下主要的配置文件所在目录
data:服务器写入的持久化信息,比如通过 web 管理控制台或 CLI 部署的项目存放在 content 目录下
deployments:用户部署内容存放目录,服务器运行时能自动侦测和部署这些内容。
lib:利用扩展列表机制安装的 library jar 的存放位置。
log:日志文件
tmp:临时文件
以standalone模式启动,运行bin下的standalone.bat即可。启动后,在浏览器地址栏输入http://localhost:8080/既能进入欢迎页面。默认只能通过http://localhost:8080/或http://127.0.0.1:8080/来访问,而不能通过局域网或外网地址访问。可以在启动时附加-b参数,指定为0.0.0.0就可以了,如下:standalone –b 0.0.0.0。也可以修改配置文件standalone.xml,找到如下部分:
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
将127.0.0.1修改为0.0.0.0或局域网IP或公网IP。
WEB管理控制台添加用户
添加用户可使用add-user.bat工具(在jboss-as-7.1.1.Final\bin文件夹下,windows中直接双击add-user.bat即可),添加后记住用户名和密码,接下来远程连接登录的用户名密码就是这个,添加成功后会实时更新属性文件。
控制台点击Administration Console后输入用户名密码进入管理界面。
三、JConsole远程连接 JBoss
远程连接,启动JBoss自带的JConsole(在jboss-as-7.1.1.Final\bin文件夹下,windows中直接双击jconsole.bat即可)。
service:jmx:remoting-jmx://ip地址:端口
输入用户名密码
要点:
1、远程连接使用的JConsole一定要使用从官网上下载下来的的JBoss安装包中自带的JConsole在本机启动远程连接服务器上的JBoss。所以下载下来后,在本地也留一份,只使用里面的JConsole。因为自带的JConsole使用了几个自带的jar包,当启动的时候,命令控制台会打印出来,当集成到项目中的时候一定要记得把这几个包引入到项目工程当中,否则会连接不到服务器的JBoss对象。
2、控制台中的配置更改后配置文件会实时的变更,或者熟悉已定程度后可以直接更改配置文件进行配置。
3、其中端口可以更改,查看配置文件standalone.xml,查找下面可修改(例:我修改为8999)。
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:8999}"/>
</socket-binding-group>
4、此次主要关注的文件包括jboss-as-7.1.1.Final\standalone\configuration下的配置和jboss-as-7.1.1.Final\bin下的启动文件。
四、弯路精华
这里说一些我走过的弯路,最开始也是首次接触JBoss,直接就上了比较高的版本。这里要感谢一下 QQ群“JBoss中间件技术交流群“的群主“郁郁葱葱“,帮了一个下午,对我解决问题给予的帮助。
好了,说说我走的弯路吧。
最开的时候上网查资料,standalone.conf.bat文件配置添加了如下内容(注:下面是我为了看的清楚把每个参数折行,实际配置的时候不可以折行,每个参数只需要空格即可)。
rem # Reduce the RMI GCs to once per hour for Sun JVMs.
set "JAVA_OPTS=%JAVA_OPTS%
-Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000
-Djava.rmi.server.hostname=10.128.9.61
-Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager
-Djava.util.logging.manager=org.jboss.logmanager.LogManager
-Xbootclasspath:C:/wjm/jboss-as-7.1.1.Final/modules/org/jboss/logmanager/main/jboss-logmanager-1.2.2.GA.jar;C:/wjm/jboss-as-7.1.1.Final/modules/org/jboss/logmanager/log4j/main/jboss-logmanager-log4j-1.0.0.GA.jar
-Dcom.sun.management.jmxremote.access.file=C:/wjm/jboss-as-7.1.1.Final/auth/jmxremote.access
-Dcom.sun.management.jmxremote.password.file=C:/wjm/jboss-as-7.1.1.Final/auth/jmxremote.password
-Djava.net.preferIPv4Stack=true"
后来在stackoverflow上找到了一个文章和我遇到的是同样的问题,当然了,没有结贴的,问题只是延伸了,没有得到解决。提问也没有得到满意的答复。
强烈建议:最后进入问题漩涡,决定推到重新搞,参考官方文档,虽说全英文吃力一些,但是很给力!建议更多的去参考官方文档,作为主要的入手材料。