转自 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-consolejboss默认的端口号为8080,可以自定义修改)。就可以浏览 jboss的部署管理的一些信息,默认情况下不键入任何用户名和密码就可以进入此页面,方便是方便,但真正使用起来还是有点安全隐患,因为不管任何人只要知道serverip 都可以进去访问。下面我们针对此问题对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.propertiesjmx-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,在浏览器中键入控制台地址,就会出现输入usernamepassword的提示窗口。

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服务端口是1521cportal为数据库的实例名即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" />
其中150JVM中启动的最大线程数,100 JVM达到最大线程阀值时,可以放在队列中的HTTP请求数
5.JBOSS服务状态监控(web-console
  如果需要监控jboss的系统资源,如:jboss的基本配置情况,jvm的利用率,线程池的使用情况,可以使用web-console进行监控。

5.1配置web-console

具体方法同jmx-console,就是位置不同,具体方法参考jmx-console配置:
·  jboss-web.xmlweb.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.propertiesweb-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.logjboss进行分析。

 6.1 JBOSS的日志配置文件

$JBOSS_HOME /server/vcom/conf下的jboss-log4j.xml,可以对日志的来源和级别进行定义,也可以定义日志的记录方式。

6.2 产生cluster.log

可以把jboss-log4j.xml中最后有关cluster.logAPPENDER注释掉,系统运行时会在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>
下。