JBoss AS的调优与瘦身(二)

瘦身
 
当不使用mail-service服务的时候 (J2EE 标准的 JavaMail 客户端)
l  移除server/slim/deploy/mail-service.xml
l  移除server/slim/lib/mail* (mail-plugin.jar, mail.jar - JavaMail stuff)
l  移除server/slim/lib/activation.jar ( JavaMail 使用的 Java 活动框架【 Java Activation Framework )
 
当不使用缓存失效服务的时候 (一般在集群配置里作为CMP选择一个beans用与失效缓存)
l  移除 server/slim/deloy/cache-invalidation-service.xml
 
当不使用J2EE客户端部署服务的时候(这不是一个很有益的J2EE规格必须服务,对于EAR application-client.xml描述符)
l  移除 server/slim/deploy/client-deployer-service.xml
 
当不使用集成HAR部署和Hibernate会话管理服务的时候
l  移除server/slim/deploy/hibernate-deployer-service.xml (HAR support)
l  移除server/slim/lib/jboss-hibernate.jar (HAR support)
l  移除server/slim/lib/hibernate2.jar (Hibernate itself)
l  移除server/slim/lib/cglib-full-2.0.1.jar (used by Hibernate to create proxies of POJOs)
l  移除server/slim/lib/odmg-3.0.jar (hibernate使用的一些傻瓜试的对象-关系映射行为是从一些傻瓜式的委员会来的[goofy committee] [url]http://www.service-architecture.com/database/articles/odmg_3_0.html[/url] )
不使用 Hypersonic的时候 (在生产环境里你可能不使用这个)
注意在默认配置里 JBossMQ 使用 DefaultDS 名字 同样被部署, 用于为Hypersonic映射. 在配置上对于其他选择的更多信息,见 JBoss MQ Persistence Wiki pages .
l  移除server/slim/deploy/hsqldb-ds.xml
l  移除server/slim/lib/hsqldb-plugin.jar
l  移除server/slim/lib/hsqldb.jar
 
不使用 JBossMQ 的时候(我们的 JMS 服务器)
l  移除the entire server/slim/deploy/jms directory
l  移除server/slim/lib/jbossmq.jar
 
不使用 HTTPInvoker的时候 (RMIHTTP的隧道)
l  移除the entire server/slim/deploy/http-invoker.sar 文件夹
 
不使用 XA 数据源的使用 (分布式 and/or 可恢复的事务)
l  移除server/slim/deploy/jboss-xa-jdbc.rar
 
如果你不需要JMX-Console 然后删除它
l  移除server/slim/deploy/jmx-console.war
l  使用别的方法 使它安全
 
如果你不需要制造JMX调用RMI (警告the shutdown.sh 是否这样做)
l  移除server/slim/deploy/jmx-invoker-adaptor-server.sar
l  移除server/slim/deploy/jmx-adaptor-plugin.jar
l  或者你可能想正好想用 安全的 the JMX invoker-adaptor 顶替
如果你不需要web-console
l  移除server/slim/deploy/management/web-console.war
如果你不需要JMXJSR-77扩充
l  移除server/slim/deploy/management/console-mgr.sar
如果你需要web-console 或者 jsr-77 扩充的其中之一
l  移除server/slim/deploy/management directory entirely
如果你不使用控制台/email监控警报
l  移除server/slim/deploy/monitoring-service.xml
l  移除server/slim/lib/jboss-monitoring.jar
如果你不通过Properties Service使用富资源编辑器(JMX)或者装载properties到系统properties 里。
l  移除server/slim/deploy/properties-service.xml
l  移除server/slim/lib/properties-plugin.jar
scheduler-service.xml是一个例子,除非你在它的里面放入自己的东西
l  移除server/slim/deploy/scheduler-service.xml
如果你不适用JBoss调度管理 (允许你安排请求依赖MBeans)
l  移除server/slim/deploy/schedule-manager-service.xml
l  移除server/slim/lib/scheduler-plugin* (scheduler-plugin.jar, scheduler-plugin-example.jar)
如果你不需要供应商特定的sql异常援助[handing] (just leave it, really)
l  移除server/slim/deploy/sqlexception-service.xml
如果你既没有使用客户端事务管理,也没有缓存连接(我们缓存连接来代替池,例如就JAAS->DB User 来说-使用这个意味着你是个坏人,需要被拍击[using this means you are a bad person and need to be smacked]) .
l  移除server/slim/deploy/user-service.xml
如果你不使用JBossUUID key生成 (大多情况下用于CMP主键生成,但是我们的数据库也同样支持的很好)
l  移除server/slim/deploy/uuid-key-generator.sar
l  移除server/slim/lib/autonumber-plugin.jar
user-service.xml 是一个例子 �C 除非你在它里面做一些事情 (你自己的mbeans),你可以移除它.
l  移除server/slim/deploy/user-service.xml
如果你使用通过HTTP直接连接Tomcat而不是通过Apache/mod_jk:
l  使用vi编辑器打开server/slim/deploy/jbossweb-tomcat50.sar/server.xml
l  移除/注释下面的XML 片段:
 
<!-- A AJP 1.3 Connector on port 8009 -->  
< Connector port ="8009" address ="${jboss.bind.address}"  
enableLookups ="false" redirectPort ="8443" debug ="0"  
protocol ="AJP/1.3" />  
 
 
如果你的用户总是不通过HTTP连接到Tomcat而总是通过Apache/mod_jk连接
l  使用vi编辑server/slim/deploy/jbossweb-tomcat50.sar/server.xml 文件
l  移除/注释下面的XML片段:
 
<!-- A HTTP/1.1 Connector on port 8080 -->  
< Connector port ="8080" address ="${jboss.bind.address}"  
maxThreads ="150" minSpareThreads ="25" maxSpareThreads ="75"  
enableLookups ="false" redirectPort ="8443" acceptCount ="100"  
connectionTimeout ="20000" disableUploadTimeout ="true" />
 
如果你不需要可以部署EAR文件
l  使用vi打开编辑 server/slim/conf/jboss-service.xml文件
l  移除/注释下面的XML片段从这
从这个
< mbean code ="org.jboss.management.j2ee.LocalJBossServerDomain" >
MBean 下面
< attribute name ="EARDeployer" >jboss.j2ee:service=EARDeployer </ attribute >
 
<!-- EAR 部署,如果你不使用Web分层,删除-->
< mbean code ="org.jboss.deployment.EARDeployer"name="jboss.j2ee:service=EARDeployer" >  
</ mbean >
 
如果你不需要可以部署JMS队列
l  使用vi打开 server/slim/conf/jboss-service.xml 文件
l  移除/注释下面的XML片段从这
从这个
< mbean code ="org.jboss.management.j2ee.LocalJBossServerDomain" >
Mbean 下面
 
< attribute name ="JMSService" >jboss.mq:service=DestinationManager </ attribute >
 
如果你不需要使用CORBA/IIOP
l  使用vi打开编辑 server/slim/conf/jboss-service.xml文件
l  移除/注释下面的XML片段从这
从这个
< mbean code ="org.jboss.management.j2ee.LocalJBossServerDomain" >
MBean 下面
< attribute name ="RMI_IIOPService" >jboss:service=CorbaORB </ attribute >
 
如果你删除user-transaction-service.xml
l  Vi 编辑 server/slim/conf/jboss-service.xml 文件
l  移除/注释下面的XML片段从这
从这个
< mbean code ="org.jboss.management.j2ee.LocalJBossServerDomain" >
 MBean 下面
 
< attribute name ="UserTransactionService" >jboss:service=ClientUserTransaction </ attribute >
 
如果你不需要JSR-77支持 (尝试做JBoss, Weblogic Websphere支持一些基于同类的JMX监控)你可以删除/注释server/slim/conf/jboss-service.xml文件关于JSR-77的全部片段:
 
<!-- ==================================================================== -->  
<!-- JSR-77 Single JBoss Server Management Domain -->  
<!-- ==================================================================== -->  
< mbean code ="org.jboss.management.j2ee.LocalJBossServerDomain"  
name ="jboss.management.local:j2eeType=J2EEDomain,name=Manager" >  
< attribute name ="MainDeployer" >jboss.system:service=MainDeployer </ attribute >  
< attribute name ="SARDeployer" >jboss.system:service=ServiceDeployer </ attribute >  
<!-- <attribute name="EARDeployer">jboss.j2ee:service=EARDeployer</attribute>-->  
< attribute name ="EJBDeployer" >jboss.ejb:service=EJBDeployer </ attribute >  
< attribute name ="RARDeployer" >jboss.jca:service=RARDeployer </ attribute >  
< attribute name ="CMDeployer" >jboss.jca:service=ConnectionFactoryDeployer </ attribute >  
< attribute name ="WARDeployer" >jboss.web:service=WebServer </ attribute >  
< attribute name ="MailService" >jboss:service=Mail </ attribute >  
<!-- <attribute name="JMSService">jboss.mq:service=DestinationManager</attribute>-->  
< attribute name ="JNDIService" >jboss:service=Naming </ attribute >  
< attribute name ="JTAService" >jboss:service=TransactionManager </ attribute >  
<!-- <attribute name="UserTransactionService">jboss:service=ClientUserTransaction</attribute>  
<attribute name="RMI_IIOPService">jboss:service=CorbaORB</attribute>-->  
</ mbean >  
如果你不需要client-side事务管理 (记住,使用这个那意味着你是一个坏人)
l  使用vi编辑 server/slim/conf/jboss-service.xml文件
l  移除/注释下面的XML片段
 
<!--   

| UserTransaction support.  

-->  

< mbean code ="org.jboss.tm.usertx.server.ClientUserTransactionService"  
name ="jboss:service=ClientUserTransaction"  
xmbean-dd ="resource:xmdesc/ClientUserTransaction-xmbean.xml" >  
< depends >  
< mbean code ="org.jboss.invocation.jrmp.server.JRMPProxyFactory"  
name ="jboss:service=proxyFactory,target=ClientUserTransactionFactory" >  
< attribute name ="InvokerName" >jboss:service=invoker,type=jrmp </ attribute >  
< attribute name ="TargetName" >jboss:service=ClientUserTransaction </ attribute >  
< attribute name ="JndiName" >UserTransactionSessionFactory </ attribute >  
< attribute name ="ExportedInterface" >
org.jboss.tm.usertx.interfaces.UserTransactionSessionFactory
</ attribute >  
< attribute name ="ClientInterceptors" >  
< interceptors >  
< interceptor >org.jboss.proxy.ClientMethodInterceptor </ interceptor >  
< interceptor >org.jboss.invocation.InvokerInterceptor </ interceptor >  
</ interceptors >  
</ attribute >  
< depends >jboss:service=invoker,type=jrmp </ depends >  
</ mbean >  
</ depends >  
< depends optional-attribute-name ="TxProxyName" >  
< mbean code ="org.jboss.invocation.jrmp.server.JRMPProxyFactory"  
name ="jboss:service=proxyFactory,target=ClientUserTransaction" >  
< attribute name ="InvokerName" >jboss:service=invoker,type=jrmp </ attribute >  
< attribute name ="TargetName" >jboss:service=ClientUserTransaction </ attribute >  
< attribute name ="JndiName" > </ attribute >  
< attribute name ="ExportedInterface" > org.jboss.tm.usertx.interfaces.UserTransactionSession
</ attribute >  
< attribute name ="ClientInterceptors" >  
< interceptors >  
< interceptor >org.jboss.proxy.ClientMethodInterceptor </ interceptor >  
< interceptor >org.jboss.invocation.InvokerInterceptor </ interceptor >  
</ interceptors >  
</ attribute >  
< depends >jboss:service=invoker,type=jrmp </ depends >  
</ mbean >  
</ depends >  
</ mbean >
l  你现在能删除从来没有引用的server/slim/conf/xmdesc/ClientUserTransaction-xmbean.xml 文件
如果你不需要持久化MBeanpersistent MBean )特性 (默认情况下,没有JBoss MBeans使用它...yet)
l  编辑 server/slim/conf/jboss-service.xml文件
l  移除/注释这个XML片段
 
<!-- ==================================================================== -->  
<!-- XMBean Persistence -->  
<!-- ==================================================================== -->  
< mbean code ="org.jboss.system.pm.AttributePersistenceService"  
name ="jboss:service=AttributePersistenceService"  
xmbean-dd ="resource:xmdesc/AttributePersistenceService-xmbean.xml" >  
< attribute name ="AttributePersistenceManagerClass" >  org.jboss.system.pm.XMLAttributePersistenceManager
</ attribute >  
< attribute name ="AttributePersistenceManagerConfig" >  
< data-directory >data/xmbean-attrs </ data-directory >  
</ attribute >  
< attribute name ="ApmDestroyOnServiceStop" >false </ attribute >  
< attribute name ="VersionTag" > </ attribute >  
</ mbean >
l  既然server/slim/conf/xmdec/xmdesc/AttributePersistenceService-xmbean.xml已经不在被引用,你也可以删除它。
如果你不使用RMI类装载器 (在服务器上利用classes从客户端装载代码)
l  vi 编辑 server/slim/conf/jboss-service.xml文件
l  移除/注释这个XML片段
 
<!-- ==================================================================== -->  
<!-- JBoss RMI Classloader - only install when available -->  
<!-- ==================================================================== -->  
< mbean code ="org.jboss.util.property.jmx.SystemPropertyClassValue"  
name ="jboss.rmi:type=RMIClassLoader" >  
< attribute name ="Property" >java.rmi.server.RMIClassLoaderSpi </ attribute >  
< attribute name ="ClassName" >org.jboss.system.JBossRMIClassLoader </ attribute >  
</ mbean >
 
 
<!-- ==================================================================== -->  
<!-- Class Loading -->  
<!-- ==================================================================== -->  
< mbean code ="org.jboss.web.WebService"  
name ="jboss:service=WebService" >  
< attribute name ="Port" >8083 </ attribute >  
<!-- Should resources and non-EJB classes be downloadable -->  
< attribute name ="DownloadServerClasses" >true </ attribute >  
< attribute name ="Host" >${jboss.bind.address} </ attribute >  
< attribute name ="BindAddress" >${jboss.bind.address} </ attribute >  
</ mbean >
l  修改XML片段 (注意: JBoss 4.0,是在server/slim/deploy/ejb-deployer.xml文件里的一点设置):
 
<!-- EJB deployer, remove to disable EJB behavior-->  
< mbean code ="org.jboss.ejb.EJBDeployer" name ="jboss.ejb:service=EJBDeployer" >  
< attribute name ="VerifyDeployments" >true </ attribute >  

...  

< depends optional-attribute-name ="WebServiceName" >jboss:service=WebService </ depends >  
</ mbean >
象这样标明:
 
<!-- EJB deployer, remove to disable EJB behavior-->  
< mbean code ="org.jboss.ejb.EJBDeployer" name ="jboss.ejb:service=EJBDeployer" >  
< attribute name ="VerifyDeployments" >true </ attribute >  

...  

<!-- <depends optional-attribute-name="WebServiceName">jboss:service=WebService</depends> -->  
</ mbean >
或者选择性的移除WebServiceName ? depends/attribute.
如果你只想使用 JBoss Naming locally (没有 RMI 客户端)
l  vi打开 server/slim/conf/jboss-service.xml文件
l  更改下面的XML片段
 
<!-- ==================================================================== -->  
<!-- JNDI -->  
<!-- ==================================================================== -->  
< mbean code ="org.jboss.naming.NamingService"  
name ="jboss:service=Naming"  
xmbean-dd ="resource:xmdesc/NamingService-xmbean.xml" >  

...  

<!-- The listening port for the bootstrap JNP service. Set this to -1  
to run the NamingService without the JNP invoker listening port.  
-->  
< attribute name ="Port" >1099 </ attribute >  

...  

<!-- The port of the RMI naming service, 0 == anonymous -->  
< attribute name ="RmiPort" >1098 </ attribute >  

...  

</ mbean >
改写
 
<!-- ==================================================================== -->  
<!-- JNDI -->  
<!-- ==================================================================== -->  
< mbean code ="org.jboss.naming.NamingService"  
name ="jboss:service=Naming"  
xmbean-dd ="resource:xmdesc/NamingService-xmbean.xml" >  

...  

<!-- The listening port for the bootstrap JNP service. Set this to -1  
to run the NamingService without the JNP invoker listening port.  
-->  
< attribute name ="Port" >-1 </ attribute >  

...  

<!-- The port of the RMI naming service, 0 == anonymous -->  
< attribute name ="RmiPort" >0 </ attribute >  

...  

</ mbean >
RmiPort 大多是可选的,但是它意味着我们将不绑定到1098端口,以便这是有益的.
你也可以从相同的XML区域删除此行,来删除相关联的线程池:
< depends optional-attribute-name ="LookupPool"  
proxy-type ="attribute" >jboss.system:service=ThreadPool </ depends >
 
和它自己的线程池块:
<!-- A Thread pool service -->  
< mbean code ="org.jboss.util.threadpool.BasicThreadPool"  
name ="jboss.system:service=ThreadPool" >
< attribute name ="Name" >JBoss System Threads </ attribute >  
< attribute name ="ThreadGroupName" >System Threads </ attribute >  
< attribute name ="KeepAliveTime" >60000 </ attribute >  
< attribute name ="MinimumPoolSize" >1 </ attribute >  
< attribute name ="MaximumPoolSize" >10 </ attribute >  
< attribute name ="MaximumQueueSize" >1000 </ attribute >  
< attribute name ="BlockingMode" >run </ attribute >  
</ mbean >
 
如果你使用它,从JMX控制台(显示JNDI命名树) 此JNDIView MBean 是非常有用的, 除非你不使用它。
l  使用vi打开 server/slim/conf/jboss-service.xml
l  删除
 
< mbean code ="org.jboss.naming.JNDIView"  
name ="jboss:service=JNDIView"  
xmbean-dd ="resource:xmdesc/JNDIView-xmbean.xml" >  
</ mbean >
l  你可以也删掉server/slim/conf/xmdesc/JNDIView-xmbean.xml 文件
如果你不使用 JBossSX , 我们为EJBs或者Web层组件继承的基于JAAS的安全 (then you deserve to be flogged and I hope you get hacked but thats another story):
l  使用vi打开 server/slim/conf/jboss-service.xml
l  删除
 
<!-- ==================================================================== -->  
<!-- Security -->  
<!-- ==================================================================== -->  
<!--  
< mbean code ="org.jboss.security.plugins.SecurityConfig"  
name ="jboss.security:service=SecurityConfig" >  
< attribute name ="LoginConfig" >jboss.security:service=XMLLoginConfig </ attribute >  
</ mbean >  
< mbean code ="org.jboss.security.auth.login.XMLLoginConfig"  
name ="jboss.security:service=XMLLoginConfig" >  
< attribute name ="ConfigResource" >login-config.xml </ attribute >  
</ mbean >
l  编辑 server/slim/deploy/jbossweb-tomcatxx.sar/META-INF/jboss-service.xml 并注释掉这些片段:
 
<!-- The JAAS security domain to use in the absense of an explicit  
security-domain specification in the war WEB-INF/jboss-web.xml  
-->  
<!-- <attribute name="DefaultSecurityDomain">java:/jaas/other</attribute>-->
 
<!-- A mapping to the server security manager service which must be  operation compatible with type 
org.jboss.security.plugins.JaasSecurityManagerServiceMBean. This is only  needed if web applications are allowed to flush the security manager  authentication cache when the web sessions invalidate.  
-->  
<!―
< depends optional-attribute-name ="SecurityManagerService"  
proxy-type ="attribute" >jboss.security:service=JaasSecurityManager  
</ depends >
-->
l  也移除/注释:
<!-- JAAS 安全性管理和区域mapping -->  
< mbean code ="org.jboss.security.plugins.JaasSecurityManagerService"  
name ="jboss.security:service=JaasSecurityManager" >  
< attribute name ="SecurityManagerClassName" >  
org.jboss.security.plugins.JaasSecurityManager  
</ attribute >  
< attribute name ="DefaultCacheTimeout" >1800 </ attribute >  
< attribute name ="DefaultCacheResolution" >60 </ attribute >  
</ mbean >
 
l  如果你使用 JBossMQ ,你将需要从server/slim/deploy/jms/jbossmq-destinations-service.xml文件的所有测试 queues/topics中删掉任何一个 (优先的)或者注释掉他们的安全性信息. 如果你选择保持示例topics/queues增加如下注释:
 
< mbean code ="org.jboss.mq.server.jmx.Topic"  
name ="jboss.mq.destination:service=Topic,name=testTopic" >  
< depends optional-attribute-name ="DestinationManager" >jboss.mq:service=DestinationManager </ depends >  
<!―-
< depends optional-attribute-name ="SecurityManager" >
jboss.mq:service=SecurityManager </ depends >  
< attribute name ="SecurityConf" >  
< security >  
< role name ="guest" read ="true" write ="true" />  
< role name ="publisher" read ="true" write ="true" create ="false" />  
< role name ="durpublisher" read ="true" write ="true" create ="true" />  
</ security >  
</ attribute >
-->  
</ mbean >  
< mbean code ="org.jboss.mq.server.jmx.Topic"  
name ="jboss.mq.destination:service=Topic,name=testTopic" >  
< depends optional-attribute-name ="DestinationManager" >jboss.mq:service=DestinationManager </ depends >  
<!-- <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>  
<attribute name="SecurityConf">  
<security>  
<role name="guest" read="true" write="true"/>  
<role name="publisher" read="true" write="true" create="false"/>  
<role name="durpublisher" read="true" write="true" create="true"/>  
</security>  
</attribute>
-->  
</ mbean >  
< mbean code ="org.jboss.mq.server.jmx.Topic"  
name ="jboss.mq.destination:service=Topic,name=testDurableTopic" >  
< depends optional-attribute-name ="DestinationManager" >jboss.mq:service=DestinationManager </ depends >  
<!--   
<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>  
<attribute name="SecurityConf">  
<security>  
<role name="guest" read="true" write="true"/>  
<role name="publisher" read="true" write="true" create="false"/>  
<role name="durpublisher" read="true" write="true" create="true"/>  
</security>  
</attribute>
-->  
</ mbean >  
< mbean code ="org.jboss.mq.server.jmx.Queue"  

name ="jboss.mq.destination:service=Queue,name=testQueue" >  

< depends optional-attribute-name ="DestinationManager" >jboss.mq:service=DestinationManager </ depends >  

<!--   
<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>  
<attribute name="SecurityConf">  
<security>  
<role name="guest" read="true" write="true"/>  
<role name="publisher" read="true" write="true" create="false"/>  
<role name="noacc" read="false" write="false" create="false"/>  
</security>  
</attribute>
-->  
</ mbean >
l  如果使用 JBossMQ ,你也需要编辑server/slim/deploy/jms/jbossmq-service.xml 和变更 InterceptorLoader ? XML 片段,像下面这样:
 
< mbean code ="org.jboss.mq.server.jmx.InterceptorLoader" name ="jboss.mq:service=TracingInterceptor" >  
< attribute name ="InterceptorClass" >org.jboss.mq.server.TracingInterceptor </ attribute >  
< depends optional-attribute-name ="NextInterceptor" >jboss.mq:service=DestinationManager </ depends >  
<!--   
<depends optional-attribute-name="NextInterceptor">jboss.mq:service=SecurityManager</depends>
-->  
</ mbean >
l  你也需要注释或者删除(server/slim/deploy/jms/jbossmq-service.xml文件):
<!―
< mbean code ="org.jboss.mq.security.SecurityManager" name ="jboss.mq:service=SecurityManager" >  
< attribute name ="DefaultSecurityConfig" >  
< security >  
< role name ="guest" read ="true" write ="true" create ="true" />  
</ security >  
</ attribute >  
< attribute name ="SecurityDomain" >java:/jaas/jbossmq </ attribute >  
< depends optional-attribute-name ="NextInterceptor" >jboss.mq:service=DestinationManager </ depends >  
</ mbean >  
-->
l  修改死亡信队列项(server/slim/deploy/jms/jbossmq-service.xml) 注释掉安全源:
 
<!―死亡信队列-->  
< mbean code ="org.jboss.mq.server.jmx.Queue"  
name ="jboss.mq.destination:service=Queue,name=DLQ" >  
< depends optional-attribute-name ="DestinationManager" >jboss.mq:service=DestinationManager </ depends >  
<!--   
<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
-->  
</ mbean >
l  server/slim/deploy/jms/jms-ds.xml文件中修改 JmsXA 项如下:
 
<!-- JMS XA 资源适配器, beans中使用这个得到处理JMS-->
< tx-connection-factory >  
< jndi-name >JmsXA </ jndi-name >  
< xa-transaction />  
< adapter-display-name >JMS Adapter </ adapter-display-name >  
< config-property name ="SessionDefaultType" type ="java.lang.String" >javax.jms.Topic </ config-property >  
< config-property name ="JmsProviderAdapterJNDI" type ="java.lang.String" >java:/DefaultJMSProvider </ config-property >  
< max-pool-size >20 </ max-pool-size >  
<!--   
<security-domain-and-application>JmsXARealm</security-domain-and-application>
-->  
</ tx-connection-factory >
 
l  如果使用JBoss 4, also do this 2 things:
l  conf/login-config.xml文件中, 注释下面的:
<!―测试jca框架的安全域
     < application-policy name = "HsqlDbRealm" >
       < authentication >
           < login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule"
             flag = "required" >
             < module-option name = "principal" >sa </ module-option >
             < module-option name = "userName" >sa </ module-option >
             < module-option name = "password" > </ module-option >
             < module-option name = "managedConnectionFactoryName" >      jboss.jca:service=LocalTxCM,name=DefaultDS             </ module-option >
           </ login-module >
       </ authentication >
     </ application-policy >
     < application-policy name = "JmsXARealm" >
       < authentication >
           < login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule"
             flag = "required" >
             < module-option name = "principal" >guest </ module-option >
             < module-option name = "userName" >guest </ module-option >
             < module-option name = "password" >guest </ module-option >
             < module-option name = "managedConnectionFactoryName" >            jboss.jca:service=TxCM,name=JmsXA
             </ module-option >
           </ login-module >
       </ authentication >
</ application-policy >  
-->
 
l  和在deploy/hsqldb-ds.xml文件中注释:
<!-- 在conf/login-config.xml文件中使用清晰的安全域
<security-domain>HsqlDbRealm</security-domain> -->
如果你不使用池请求(Pooled InvokerIf you are not using the (见调优章节,也也许想使用池请求) 然后:
l  使用vi打开 server/slim/conf/jboss-service.xml 文件
l  删掉:
 
<!--   
<mbean code="org.jboss.invocation.pooled.server.PooledInvoker"  
name="jboss:service=invoker,type=pooled">  
<attribute name="NumAcceptThreads">1</attribute>  
<attribute name="MaxPoolSize">300</attribute>  
<attribute name="ClientMaxPoolSize">300</attribute>  
<attribute name="SocketTimeout">60000</attribute>  
<attribute name="ServerBindAddress">${jboss.bind.address}</attribute>  
<attribute name="ServerBindPort">4445</attribute>  
<attribute name="ClientConnectAddress">${jboss.bind.address}</attribute>  
<attribute name="ClientConnectPort">0</attribute>  
<attribute name="EnableTcpNoDelay">false</attribute>  
<depends optional-attribute-name="TransactionManagerService">
jboss:service=TransactionManager</depends>  
</mbean>  
-->
如果你不希望使用 BeanShell deployer
l  使用vi打开 server/slim/conf/jboss-service.xml 文件
l  删除或者注释
< mbean code ="org.jboss.varia.deployment.BeanShellSubDeployer"  
name ="jboss.scripts:service=BSHDeployer" >  
</ mbean >
 
l  删除 server/slim/bsh* (bsh-deployer.jar, bsh-1.3.0.jar)
如果你不使用热部署文件到server/slim/deploy 文件夹,而从外部重启JBoss:
l  使用vi打开 server/slim/conf/jboss-service.xml 文件
l  改变这个 XML的片段:
 
<!―热部署/反部署归档文件的mbean. -->  
< mbean code ="org.jboss.deployment.scanner.URLDeploymentScanner"  
name ="jboss.deployment:type=DeploymentScanner,flavor=URL" >  

...  

< attribute name ="ScanPeriod" >5000 </ attribute >  

...  

</ mbean >
 
改为(加入):
 
<!-- 热部署/反部署归档文件的mbean.-->  
< mbean code ="org.jboss.deployment.scanner.URLDeploymentScanner"  
name ="jboss.deployment:type=DeploymentScanner,flavor=URL" >  

...  


< attribute name ="ScanPeriod" >5000 </ attribute >  

< attribute name ="ScanEnabled" >False </ attribute >  

...  

</ mbean >
 
l  就这个性能透视而言,看其他建议的调整章节
如果你不使用集群
l  最好的方法就是从"default"配置启动,而不是使用"all"配置启动. 然后从"all"配置里带来的一些各种服务,你在"default"配置里没有使用.
l  如果你必须从“all”配置启动:
o    移除 server/slim/farm
o    移除server/slim/deploy-hasingleton
o    移除server/slim/deploy/cluster-service.xml
o    移除server/slim/deploy/tc5-cluster-service.xml (或者 在4.0.4或者以前的版本上的server/slim/deploy/tc5-cluster.sar)
o    移除server/slim/deploy/deploy.last/farm-service.xml
o    移除server/slim/deploy/deploy-hasingleton-service.xml
o    进入到 server/slim/deploy/jms 文件夹, 删除它的内容,并从server/default/deploy/jms文件夹复制他们到这里.
o    编辑 server/slim/deploy/jbossweb-tomcat55.sar/META-INF
/jboss-service.xml
移除下面的片段:
<!--
   如果需要使用HTTP会话集群(HTTP Session Clustering)或者如果在tomcat的server.xml文件中 ClusteredSingleSignOn 值是enabled
-->
< depends >jboss.cache:service=TomcatClusteringCache </ depends >
如果你不使用分布式(集群)web会话(sessions
l  移除 server/slim/deploy/tc5-cluster-service.xml (或者 在4.0.4或者以前的版本上的server/slim/deploy/tc5-cluster.sar)
l  编辑 server/slim/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml 移除这个片段:
<!--
   如果需要使用HTTP会话集群(HTTP Session Clustering)或者如果在tomcat的server.xml文件中 ClusteredSingleSignOn 值是enabled
-->
< depends >jboss.cache:service=TomcatClusteringCache </ depends >
如果你不使用Farm服务 (复制部署)
l  移除server/slim/farm
  l 移除server/slim/deploy/deploy.last/farm-service.xml
 
 
JBoss AS的调优与瘦身就翻译完了,翻译的不好,请谅解。还有就是这也只是看看,到底用途和状况怎么样,还需要具体的实践工作。

你可能感兴趣的:(jboss,职场,调优,休闲,瘦身)