改善JBoss 5缓慢启动

Lio*_*orH 20 java jboss jboss5.x

我们从JBoss 4(和JDK 5)升级到JBoss 5(和JDK 6).问题是开始时间从1.5分钟(在JBoss 4上)变为超过4分钟.

18:53:35,444 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] Started in 3m:9s:262ms
Run Code Online (Sandbox Code Playgroud)

似乎JBoss最长时间初始化的组件是JMX

18:50:41,926 INFO  [LogNotificationListener] Adding notification listener for logging mbean "jboss.system:service=Logging,type=Log4jService" to server org.jboss.mx.server.MBeanServerImpl@1adc122[ defaultDomain='jboss' ]
18:52:38,797 INFO  [JMXConnectorServerService] JMX Connector server: service:jmx:rmi://lharel2/jndi/rmi://lharel2:1090/jmxconnector
Run Code Online (Sandbox Code Playgroud)

从DEBUG服务器日志中,我在有问题的时间得到这些行:

2009-12-18 18:51:00,886 DEBUG [org.jboss.deployment.MappedReferenceMetaDataResolverDeployer] (main) vfsfile:/C:/QC/Views/QCDev/jboss-5.1.0.GA/server/default/deploy/jmx-console.war/ endpoint mappings:
2009-12-18 18:51:00,886 DEBUG [org.jboss.deployment.MappedReferenceMetaDataResolverDeployer] (main) Processing unit=jmx-console.war, structure: jmx-console.war
2009-12-18 18:52:35,209 DEBUG [org.jboss.deployment.OptAnnotationMetaDataDeployer] (main) Deployment is metadata-complete, skipping annotation processing, ejbJarMetaData=null, jbossWebMetaData=org.jboss.metadata.web.spec.Web23MetaData@1f, jbossClientMetaData=null, metaDataCompleteIsDefault=false
Run Code Online (Sandbox Code Playgroud)

项目中没有EJB.

内存设置为:

 -Xms128m -Xmx512m -XX:MaxPermSize=256m
Run Code Online (Sandbox Code Playgroud)

你知道如何改善JBoss的开始时间吗?

更新:到目前为止没有运气,我尝试了shreeni的建议(改变扫描xmls).服务器未在调试模式下运行,因此MicSim的建议无关紧要

mha*_*ler 8

在没有更多信息的情况下射入蓝天

  • 网络超时:部署jmx-console.war时延迟1.5分钟可能表示网络超时(例如3 x 30秒).尝试使用-b命令行参数或jboss.bind.address系统属性启动JBoss并将其绑定到特定的IP地址.另外,请尝试确保系统上的主机和DNS解析设置正确无误.

  • JMX也使用RMI,您可能希望将RMI服务器主机名设置为系统属性.在某些Linux发行版中,RMI在查找正确的主机名时遇到问题,而jmx-console.war可能会尝试连接到"错误的localhost".系统属性是java.rmi.server.hostname

  • 系统跟踪:如果这没有帮助,您可能希望用来strace启动java进程,这样您就可以看到系统挂起的点(如果由于网络超时或类似情况它确实挂起).


ska*_*man 5

这是日志中一个非常大的间隙。我建议更改日志配置以在 DEBUG 级别记录所有内容,而不是 INFO。这将生成更多的日志条目,但希望能帮助您缩小范围。

-Djboss.server.log.threshold=DEBUG最简单的方法是在启动 JBoss 时设置系统属性