接上一篇。
瘦身(三)
如果使用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>
-
-
-
- </mbean>
<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>
你也需要注释或者删除(从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>
- -->
<!—
<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>
-->
修改死亡信队列项(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>
-
-
-
- </mbean>
- 在 server/slim/deploy/jms/jms-ds.xml文件中修改JmsXA 项如下: <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>
-
-
-
- </tx-connection-factory>
<!—死亡信队列-->
<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>
在 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>
如果使用JBoss 4, also do this 2 things: 在 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>
- -->
<!—测试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>
-->
和在deploy/hsqldb-ds.xml文件中注释:
- <!--
- 在conf/login-config.xml文件中使用清晰的安全域
- <security-domain>HsqlDbRealm</security-domain>
- -->
<!--
在conf/login-config.xml文件中使用清晰的安全域
<security-domain>HsqlDbRealm</security-domain>
-->
如果你不使用池请求(Pooled Invoker)If you are not using the (见调优章节,也也许想使用池请求) 然后打开 server/slim/conf/jboss-service.xml 文件删掉:
- <!--
- <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>
- -->
<!--
<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打开 server/slim/conf/jboss-service.xml 文件删除或者注释
- <mbean code="org.jboss.varia.deployment.BeanShellSubDeployer" name="jboss.scripts:service=BSHDeployer">
- </mbean>
<mbean code="org.jboss.varia.deployment.BeanShellSubDeployer" name="jboss.scripts:service=BSHDeployer">
</mbean>
删除 server/slim/bsh* (bsh-deployer.jar, bsh-1.3.0.jar)
如果你不使用热部署文件到server/slim/deploy 文件夹,而从外部重启JBoss:打开 server/slim/conf/jboss-service.xml 文件,改变这个 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>
...
</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>
<!--热部署/反部署归档文件的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 最好的方法就是从"default"配置启动,而不是使用"all"配置启动. 然后从"all"配置里带来的一些各种服务,你在"default"配置里没有使用.如果你必须从“all”配置启动:
移除 server/slim/farm
移除server/slim/deploy-hasingleton
移除server/slim/deploy/cluster-service.xml
移除server/slim/deploy/tc5-cluster-service.xml (或者 在4.0.4或者以前的版本上的server/slim/deploy/tc5-cluster.sar)
移除server/slim/deploy/deploy.last/farm-service.xml
移除server/slim/deploy/deploy-hasingleton-service.xml
进入到 server/slim/deploy/jms 文件夹, 删除它的内容,并从server/default/deploy/jms文件夹复制他们到这里.
编辑 server/slim/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml 移除下面的片段:
-
-
-
- <depends>jboss.cache:service=TomcatClusteringCache</depends>
<!--
如果需要使用HTTP会话集群(HTTP Session Clustering)或者如果在tomcat的server.xml文件中 ClusteredSingleSignOn 值是enabled
-->
<depends>jboss.cache:service=TomcatClusteringCache</depends>
如果你不使用分布式(集群)web会话(sessions)
移除 server/slim/deploy/tc5-cluster-service.xml (或者 在4.0.4或者以前的版本上的server/slim/deploy/tc5-cluster.sar)
编辑 server/slim/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml 移除这个片段:
-
-
-
- <depends>jboss.cache:service=TomcatClusteringCache</depends>
<!--
如果需要使用HTTP会话集群(HTTP Session Clustering)或者如果在tomcat的server.xml文件中 ClusteredSingleSignOn 值是enabled
-->
<depends>jboss.cache:service=TomcatClusteringCache</depends>
如果你不使用Farm服务 (复制部署)
移除server/slim/farm
移除server/slim/deploy/deploy.last/farm-service.xml
JBoss AS的调优与瘦身就翻译完了,翻译的不好,请谅解。还有就是这也只是看看,到底用途和状况怎么样,还需要具体的实践工作。