1.JBOSS服务的启动与关闭
1.1 确认JDK安装配置
在启动JBOSS节点前,要正确安装SUN JDK1.5
并设置环境变量$JAVA_HOME
解压缩JBOOS-TGZ包
1.2 运行JBOSS
cd $JBOSS_HOME/bin
nohup ./run.sh -c vcom -b 0.0.0.0 –u 229.12.12.12&
参数说明:
-c: 指定运行的配置,default配置不带集群支持,all 和自定义的vcom目录配置带有集群支持功能
-b: 指定服务绑定的IP地址,即对外服务的IP地址,0.0.0.0表示对机器上所有的IP提供服务
-u 指定服务使用的UDP组播地址
1.3 关闭JBOSS服务
编写脚本内容如下:
#!/bin/bash
for i in ` ps -ef | grep -w java |grep -v grep |awk '{print $2 ""t"$3}'`;do kill -9 $i
done
2.jmx-console控制台
安装好jboss并启动jboss后,在浏览器窗口的地址栏里键入 http://localhost:8080/jmx-console(jboss默认的端口号为8080,可以自定义修改)。就可以浏览 jboss的部署管理的一些信息,默认情况下不键入任何用户名和密码就可以进入此页面,方便是方便,但真正使用起来还是有点安全隐患,因为不管任何人只要知道server的ip 都可以进去访问。下面我们针对此问题对jboss进行配置,使得访问jmx-console也必须 要知道用户名和密码才可进去访问.
2.1 设置jmx-console安全设置
1. 进入jmx-console.war,通常此目录在$JBOSS_HOME/server/vcom/deploy目录下。
2. 编辑该目录下的/WEB-INF/web.xml,把<security-constraint>部分注释去掉 3.编辑$jboss_home/server/vcom/conf/props目录下的jmx-console-roles.properties和jmx-console-users.properties;
1) users.properties文件里定义用户名和密码,格式为username=password。可以依照此格式添加多个用户。
2) roles.propertie文件里定义用户名和角色,格式为username=role。这里的role必须和web.xml文件里的<role-name>相对应。
4. 编辑/WEB-INF/jboss-web.xml文件,打开<security-domain>部分注释;这里<security- domain>内容对应的security-domain对应$jboss_home"server"vcom"conf"login-config.xml这个jaas配置文件里的某个application-policy。
如:
<security-domain>java:/jaas/jmx-console</security-domain>
在login-config.xml里对应有:
<application-policy name = "jmx-console">
<authentication>
<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag = "required" />
</authentication>
</application-policy>
5.重启jboss,在浏览器中键入控制台地址,就会出现输入username和password的提示窗口。
2.2 监控集群状况和session复制情况
使用http://localhost:8080/jmx-console,使用名为jboss.cache:service=TomcatClustering MBean Members可以查看当前机群节点成员信息,使用jboss.cache:service=TomcatClustering,可以看到当前集群的节点ip,在member 一项中,可以观察到当前集群中节点ip,如图:
在此页面下找到java.lang.String printDetails() ,
invoke the printDetails操作,点击invoke,可以对session复制进行监控。
3、配置JBOSS应用数据库连接
目前应用使用的数据库连接是应用程序自带的JDBC (API)接口,配置如下:
Cd /$JBOSS_HOME/server/vcom/deploy/*.war/WEB-INF/class/
Vi proxool.xml
<?xml version="1.0" encoding="UTF-8"?>
<datasource>
<proxool>
<alias>pool</alias>
<driver-url>jdbc:oracle:thin:@192.168.104.32:1521:cportal</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="cportal"/>
<property name="password" value="cportal"/>
</driver-properties>
<house-keeping-sleep-time>30000</house-keeping-sleep-time>
<minimum-connection-count>0</minimum-connection-count>
<maximum-connection-count>300</maximum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
</datasource>
(1) jdbc:oracle:thin:@192.168.104.32:1521:cportal,oracle服务端口是1521,cportal为数据库的实例名即sid。
(2) <property name="user" value="cportal"/>
<property name="password" value="cportal"/> 为数据库的用户名和密码
(3)<maximum-connection-count>300</maximum-connection-count>为客户端 最大的数据库连接数
4.修改jboss服务端口号
使用JBOSS中间件时,默认的访问端口是8080,可以修改问你想使用的端口,修改步骤如下:
打开JBOSS目录$JBOSS_HOME/server/vcom/deploy/jboss-web.deployer/下的server.xml文件,搜索8080,将8080改为新的端口号,保存文件,重启应用服务器即可.访问时使用新的端口号.
<Connector port="80" address="${jboss.bind.address}"
maxThreads="150" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
其中150是JVM中启动的最大线程数,100 为JVM达到最大线程阀值时,可以放在队列中的HTTP请求数
5.JBOSS服务状态监控(web-console)
如果需要监控jboss的系统资源,如:jboss的基本配置情况,jvm的利用率,线程池的使用情况,可以使用web-console进行监控。
5.1配置web-console
具体方法同jmx-console,就是位置不同,具体方法参考jmx-console配置:
· jboss-web.xml、web.xml在$JBOSS_HOME/vcom/deploy/management/console-mgr.sar/web-console.war/WEB-INF下;
· login-config.xml还是原来的那个,把application-policy名为$webConsoleDomain的部分改成你需要的web-console;
· web-console-users.properties、web-console-roles.properties定义了访问 web-console的用户、用户角色,具体位置自己去找,使用find /jboss -name web-console-users.properties 找到以后可以修改用户名、密码。
5.2 监控
使用http://localhost:8080/web-console/ 中,获取当前JBOSS-WEB应用模块的负载分担情况,并可以查看到当前JAVA虚拟机的内存使用情况,及线程池使用情况。
使用http://localhost:8080/web-console/status,可以进一步监控到每个线程的状态。
6.系统日志分析
在$JBOSS_HOME /server/vcom/log下,有关于jboss的日志记录, 其中server.log是用来记录JBOOS运行过程的日志记录,boot.log用来记录JBOOS启动信息的,出现问题时可以通过sever.log对jboss进行分析。
6.1 JBOSS的日志配置文件
$JBOSS_HOME /server/vcom/conf下的jboss-log4j.xml,可以对日志的来源和级别进行定义,也可以定义日志的记录方式。
6.2 产生cluster.log
可以把jboss-log4j.xml中最后有关cluster.log的APPENDER注释掉,系统运行时会在log目录下产生cluster.log文件,可以通过此文件对集群故障进行分析。在测试调试过程可以使用此日志
6.3 更改日志记录方式
Jboss日志记录方式有2种:
1. 按日期进行记录
2. 按日志文件的大小进行记录
目前使用的是按照大小信息记录。如果要修改记录方式,直接编辑jboss-log4j.xml文件,将此段注释去掉。
<!-- A time/date based rolling appender -->
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="false"/>
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
…………………………………………………
……………………………………………………………………….
</layout>
</appender>
同时将下段注释掉
<!-- A size based file rolling appender-->
<appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="false"/>
<param name="MaxFileSize" value="500KB"/>
<param name="MaxBackupIndex" value="1"/>
……………………………………………………………
…………………………………………………………
</layout>
</appender>
下。