求教:jboss对多线程并发的支持

06-03-09 kelery_xu
我们的项目是对申请许可证使用多线程并发处理,使用的是jboss2.4.9+tomcat4.0.4,在Login/out处理(processLoginRequest)、许可证请求的处理(processLicenseRequest)函数加共享锁(synchronized)后可以达到并发的数量为10,而在连续的并发20次以上时会使XML解析过程中线程的block达30秒之久甚至会使程序死掉。

应用服务器的配置如下:

1:配置JVM使用内存数量。

进入JBoss-2.4.9_Tomcat-4.0.4服务器的catalina/bin目录, 配置catalina.sh中的JAVA_OPTS参数

$JAVA_OPTS -Xms400m -Xmx512m

请按服务器内存的配置和使用情况适当调整。

2:配置Tomcat的并发访问量。

进入JBoss-2.4.9_Tomcat-4.0.4服务器的jboss/conf/catalina目录,修改jboss.jcml文件的片断:

<!-- A HTTP Connector on port 8080 -->

<Connector className = "org.apache.catalina.connector.http.HttpConnector"

port = "8080" minProcessors = "30" maxProcessors = "150" enableLookups = "false" acceptCount = "100" debug = "0" connectionTimeout = "120000"/>

请问各位高手,这是怎么回事呢?

banq
2006-03-10 12:26
JBoss等底层容器配置没什么问题。

关键是你的"可证请求的处理(processLicenseRequest)函数加共享锁"

共享锁最好粒度越细越好,这样提高运行性能,减少并发锁定时间,另外你的XML解析过程最好使用缓存,将该准备的都准备好,不用在锁定期间调动大量资源,浪费时间和性能。

kelery_xu
2006-03-10 13:41
谢谢banq大哥的解答!

如果我使用jboss4.0以上版本性能会不会有比较大的改善呢?能不能详细说明一下jboss4.0以上各个版本的参数配置和性能情况?这方面的资料我已经找了很长时间了可是收获太少

banq
2006-03-14 11:28
关键是你的应用设计,和容器底层无关,就如同你在windows下编个程序,出现问题,和windows是无关的

JBoss 4网上google查一下,有不少文章,什么AOP的,EJB3等等。

猜你喜欢