`

JBoss配置---收集中...

阅读更多
1. jboss6中修改http web port,$JBOSS_HOME/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
2. 开启远程调试端口JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
3. 开启jmx服务,使用jconsole进行远程监控及热修改
   CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8849 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.20.136.203"
4. 关于产品级别的JVM参数参考
JAVA_OPTS="$JAVA_OPTS -server -Xms3G -Xmx3G -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+UseParallelOldGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/dump -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/usr/dump/heap_trace.txt -XX:NewSize=1G -XX:MaxNewSize=1G"
5. 配置多root
   在jboss-service.xml中配置URLDeploymentScanner Mbean,修改URLs属性
   <attribute name="URLs">
         deploy/,file:/data/webapps/simple-web/current,file:/data/webapps/complex-web/current
   </attribute>
   在simple-web/current目录下分别解压缩simple-web.war包到simple-web.war目录下,即simple-web/current/simple-web.war目录,后者类似,在各自目录下的WEB-INF下创建jboss-web.xml文件,内容如下
   <!DOCTYPE jboss-web

     PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN"

     "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
       <jboss-web>

            <context-root>/</context-root>
            <!-- 另外一个项目配置另一域名 -->
            <virtual-host>www.janson.com</virtual-host>
           
       </jboss-web>
    这样就可以在一台机器上将多个项目配置成不同域名下的root路径

6. 两个JBoss 实例再一台机器上启动的端口配置
   refer to: http://wwtyler.iteye.com/blog/210234
      经验证主要有以下几个地方需要改动,用来避免启动时的地址已经被绑定的异常。

      环境:JBoss 4.2.2GA,JDK 1.5

      1.   $JBoss_home/server/default/deploy/ejb3.deployer/META-INF/jboss-service.xml
           修改3873端口的值;
      2.   $JBoss_home/server/default/deploy/jboss-web.deployer/server.xml
           修改8080,8009,8443端口值。
      3.   $JBoss_home/server/default/conf/jboss-service.xml
           修改8083,1098,1099,4444,4445,4446端口值
      4.   $JBoss_home/server/default/conf/jboss-minimal.xml
           修改1099端口值,与3中保持一致。
      5.   $JBoss_home/server/default/deploy/jms/uil2-service.xml
           修改8093端口值。
7. JBoss启动时加载应用程序的顺序
   refer to: http://tanyankai.iteye.com/blog/569627
  
引用

   1. 以下说到的版本是jboss-4.2.3.GA 
   2.  
   3. 并且假设JBoss安装在D:\Java\jboss-4.2.3.GA 
   4.  
   5. JBoss部署的时候支持很多种格式打的包,比如说我们从deploy目录下面会看到有后缀名为deployer、sar,war,rar,xml ... (后来发现其实JBoss部署支持的格式,远远不止这些) 
   6.  
   7. 但是这些不同格式的应用是怎样的一个加载顺序呢?或者说有没有什么规律?带着这个疑问我在Jboss启动的时候仔细的看了一下命令行中的信息,发现两个信息: 
   8.  
   9. 1、  最先加载的是后缀名为deployer目录下应用或者服务; 
  10.  
  11. 2、  每次都会等有相同后缀名的应用(或者目录下的应用)完全加载完之后才会去加载另外一种后缀名 
  12.  
  13. 发现这两点之后,我就找了一下Jboss的一些配置文件,原来在D:\Java\jboss-4.2.3.GA\server\default\conf \xmdesc org.jboss.deployment.MainDeployer-xmbean.xml文件里面有这么一段内容: 
  

  
引用

   1. <attribute access='read-write' setMethod='setEnhancedSuffixOrder' getMethod='getEnhancedSuffixOrder'> 
   2.       <description>Allows the override of the suffix order declared by subdeployers, using the syntax [order:]suffix 
   3.       </description> 
   4.       <name>EnhancedSuffixOrder</name> 
   5.       <type>[Ljava.lang.String;</type> 
   6.       <!-- 
   7.          Statically set one or more enhanced suffix orders, independent of the value proposed by subdeployers. 
   8.          Some deployers may also allow the suffixes/orders to be set locally, so that's preferable too. 
   9.          For reference, this is the list of enhanced suffixes likely to be set by deployers (it may not 
  10.          be completely up-to-date, or there can be user-defined deployers). 
  11.           
  12.          050:.deployer,050:-deployer.xml,100:.aop,100:-aop.xml,150:.sar,150:-service.xml,200:.  ,250:.rar,300:-ds.xml,350:.har,400:.jar,400:.ejb3,400:.par,500:.war,600:.wsr,650:.ear,700:.jar,750:.zip,800:.bsh,900:.last 
  13.           
  14.          Until we resolve some startup issues, we'll setup some static enhanced suffix orders bellow 
  15.          and leave the rest of the suffixes contributed dynamically by registering deployers. 
  16.       --> 
  17.       <descriptors> 
  18.          <value value="250:.rar,300:-ds.xml,400:.jar,500:.war,550:.jse,650:.ear,800:.bsh"/> 
  19.       </descriptors> 
  20.    </attribute> 
  

8. Jboss后台运行
   nohup ./run.sh -b 0.0.0.0 >/dev/null &

9.
引用

  首先如果仅仅是想改变部署是加载war包的先后顺序,只需设置jboss-server.xml 里面的<attribute name="URLComparator">org.jboss.deployment.scanner.PrefixDeploymentSorter</attribute>,然后修改war包的名称,在最前面增加一个数字,如 100work.war,这时JBOSS会根据这个数字的顺序进行加载。具体请参考PrefixDeploymentSorter的getPrefixValue方法源代码。部署时会自动忽略前面的数字,不会影响ctxPath。

如果需要完全自定义的加载顺序,而且不想改包的名称,那就重新实现一个URLComparator吧。

JBOSS 加载 应用依赖jboss-server.xml 里的下面mbean实现。

<mbean code="org.jboss.deployment.scanner.URLDeploymentScanner"
      name="jboss.deployment:type=DeploymentScanner,flavor=URL">

其中URLComparator属性决定排序,所以要从这个地方入手。重新实现一个。

如果需要获取Jboss的配置信息可以从 org.jboss.system.server.ServerConfigLocator获取。

还有个问题,如果要让自己写的类能加载,还需要修改启动参数:

set JAVA_OPTS=%JAVA_OPTS% -Djboss.boot.library.list=log4j-boot.jar,jboss-common.jar,jboss-system.jar,jboss-xml-binding.jar,namespace.jar,xxx.jar

在原来几个jar包基础上增加自己的xxx.jar。

参考资料:

http://doc.javanb.com/jboss-4-0-1-sp1-system-api/org/jboss/deployment/package-tree.html

http://onecan.iteye.com/blog/83145

下面贴出代码,这个类比较有意思,没有用简单的继承重写DeploymentSorter,而是使用装饰模式,思路清晰,一目了然。

package org.jboss.deployment.scanner;

import java.net.URL;
import java.util.Comparator;
import org.jboss.deployment.DefaultDeploymentSorter;
import org.jboss.deployment.DeploymentSorter;

public class PrefixDeploymentSorter
implements Comparator, DefaultDeploymentSorter
{
private DeploymentSorter sorter;

public PrefixDeploymentSorter()
{
    this.sorter = new DeploymentSorter();
}

public String[] getSuffixOrder() {
    return this.sorter.getSuffixOrder();
}

public void setSuffixOrder(String[] suffixOrder)
{
    this.sorter.setSuffixOrder(suffixOrder);
}

public int compare(Object o1, Object o2)
{
    int comp = getPrefixValue((URL)o1) - getPrefixValue((URL)o2);

    return ((comp == 0) ? this.sorter.compare(o1, o2) : comp);
}

private int getPrefixValue(URL url)
{
    String path = url.getPath();
    int nameEnd = path.length() - 1;
    if (nameEnd <= 0) {
      return 0;
    }

    if (path.charAt(nameEnd) == '/') {
      --nameEnd;
    }

    int nameStart = path.lastIndexOf(47, nameEnd) + 1;

    int prefixEnd = nameStart;
    while ((prefixEnd <= nameEnd) && (Character.isDigit(path.charAt(prefixEnd)))) {
      ++prefixEnd;
    }

    if (prefixEnd == nameStart) {
      return -1;
    }

    while ((nameStart < prefixEnd) && (path.charAt(nameStart) == '0')) {
      ++nameStart;
    }

    return ((nameStart == prefixEnd) ? 0 : Integer.parseInt(path.substring(nameStart, prefixEnd)));
}
}
分享到:
评论
1 楼 zhuxinhua 2010-08-03  
谢谢,,这东西真不容易找啊。。

相关推荐

    jboss-archive-browsing.jar

    在Java中,JAR(Java Archive)是最常见的归档文件格式,它用于收集多个类文件、资源文件以及元数据到一个单一的文件中,便于分发和加载。同样,WAR(Web Application Archive)用于打包Web应用程序,而EAR...

    workBench所需Jar包.zip

    在Workbench中,SLF4J用于收集和记录各种运行时信息,如错误、警告和调试信息,这对于调试和优化Drools规则的执行过程至关重要。 其次,`kie-tomcat-integration-7.10.0.Final.jar`是KIE(Knowledge and ...

    Programmer guide for jboss soa-p 5

    本指南还包含了文档约定、反馈收集、致谢等附加信息,对开发人员理解如何有效地使用JBoss ESB非常有帮助。 ### 结语 JBoss Enterprise SOA Platform 5 编程指南为JBoss开发者提供了全面的指导,帮助他们在ESB环境...

    jboss安装和配置[收集].pdf

    **三、JBoss配置** 1. **日志文件设置**:修改`server/default/conf/jboss-log4j.xml`来调整日志输出。默认的日志文件位于`server/default/log/server.log`。 2. **Web服务端口**:通过编辑`server/default/deploy/...

    jboss配置

    ### JBoss配置详解 JBoss是一款备受全球开发者青睐的开源应用服务器,其核心特性在于对J2EE标准的全面支持,尤其是对EJB1.1、EJB2.0及EJB3.0规范的兼容性。JBoss的开放源码特性使其在商业应用中极具吸引力,无需...

    jboss服务器配置指南

    本配置指南将深入探讨JBoss服务器的配置和优化,帮助你更好地理解和管理这个强大的平台。 1. **安装与启动** - JBoss的下载:首先,你需要从Red Hat的官方网站获取最新版本的JBoss服务器,通常包括EAP(企业应用...

    Jboss + 优化配置

    ### JBoss + 优化配置详解 #### 一、JBoss后台启动优化 JBoss作为一款广泛使用的Java应用服务器,其启动方式的选择对于系统的稳定性和性能至关重要。后台启动可以使JBoss在启动后不会阻塞终端,方便进行其他操作或...

    JBoss安装配置[收集].pdf

    在本文中,我们将深入探讨JBoss的安装、配置以及其目录结构。 首先,安装JBoss相当简单,只需要从指定的下载地址(例如:...

    JBOSS集群........

    本文档将详细介绍 JBoss 集群的基本概念、配置方法以及实际应用中的最佳实践。 #### 二、JBoss 集群概述 ##### 2.1 定义 JBoss 集群是指由多个 JBos 应用服务器实例组成的集合,这些实例通过特定协议通信,共同...

    jboss配置内存大小[定义].pdf

    本文以“JBoss配置内存大小”为主题,详细解释了如何优化JBoss服务器运行时的内存分配,以避免因内存不足导致的性能问题或`Out of Memory`异常。 首先,Java虚拟机在启动时会根据特定的参数来设定内存分配。有两个...

    JBOSS\Tomcat最大连接数配置和jvm内存配置.docx

    在JBOSSTomcat服务器的性能优化中,最大连接数配置和JVM内存配置是两个至关重要的环节,它们直接影响到服务器的响应速度和稳定性,尤其对于处理大量并发请求的场景。 首先,我们来看JBOSS最大连接数的配置。在`...

    JBOSS优化配置

    在`jboss-log4j.xml`配置文件中,可以定制日志输出的细节。例如,设置一个名为"FILE"的appender,它是一个`DailyRollingFileAppender`,确保每天生成一个新的日志文件。`param`标签用于指定日志文件的位置、是否追加...

    JBOSS环境变量.rar

    在压缩包中的"JBOSS环境变量"文件中,可能包含了更具体的配置示例和步骤,这将有助于读者理解如何在他们的系统上正确配置这些环境变量。通过交流和分享,我们可以共同学习和提升在JBoss服务器管理上的技能。

    activemq-rar-5.8.0.rar

    rar-5.8.0.rar"指的是Apache ActiveMQ的一个RAR(Resource Adapter Archive)版本,这是ActiveMQ的特定版本5.8.0的打包形式,RAR文件通常用于Java EE应用服务器,如JBoss或GlassFish,以便在这些服务器中集成...

    activemq-rar-5.5.0.rar

    在实际应用中,开发人员可以利用这些库来配置和控制ActiveMQ,实现高性能、高可用性和高可靠性的消息传递服务。例如,通过Spring配置文件可以轻松地集成ActiveMQ,并利用其强大的管理和监控工具进行性能优化和故障...

    JBoss优化配置

    ### JBoss优化配置详解 #### 一、JavaOPTS设置 在JBoss的优化配置中,JavaOPTS的设置对于提升应用服务器的性能至...正确地优化JBoss配置不仅可以提高应用的性能和稳定性,还能降低资源消耗,从而提高系统的整体效率。

    JBOSS使用指南

    JBoss支持Java消息服务(JMS),可以在配置文件中定义消息队列和主题,以及相关的连接工厂。JMS提供了两种消息传递模型:点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)。 ### 总结 本指南旨在为初学...

    Node.js-Scouter是一个开源的AndroidAPM应用性能监测工具

    1. **集成**:首先,需要将Scouter的SDK集成到Android或Node.js项目中,按照官方文档的指导进行配置。 2. **配置**:配置文件(如`config/app.conf`)是控制Scouter行为的关键,根据实际需求调整监控参数和报警阈值...

    weblogic、jboss集群配置,参数优化

    在IT行业中,WebLogic和JBoss是两种广泛使用的Java应用服务器,它们支持大规模的企业级应用程序部署和管理。本文将深入探讨这两个服务器的集群配置以及参数优化,以提高系统的可扩展性和性能。 首先,WebLogic ...

    jboss部署成为linux服务

    这篇博客“JBoss部署成为Linux服务”显然会介绍如何在Linux操作系统上将JBoss配置为一个系统服务,以便它可以随系统的启动和关闭自动启动和停止,确保应用程序的稳定运行。下面我们将深入探讨这个主题。 1. **JBoss...

Global site tag (gtag.js) - Google Analytics