maji
2004-05-28 09:08

你说得是

http://linuxintegrators.com/jbossBlog/bburke/?permalink=Optimizing+JBoss%3A+Experiences+with+SPECj2002.html

我看了这篇文章。没找到什么更好的办法解决线程问题

另外一篇文章和这篇文章有点相似,也写得挺好得

http://www.myj2ee.com/Members/Firedragon/jbosstuning

还有一个讨论JBOSS线程的帖子,也分析得不错

http://www.linux.ie/old-list/45909.html

只这些文章都说明,要提高JBOSS的并发用户数,只要改变\jboss-3.2.3\server\default\deploy\jbossweb-tomcat41.sar\META-INF\jboss-service.xml 中的最大线程数就可以

我更改的结果是

className="org.apache.coyote.tomcat4.CoyoteConnector"

address="${jboss.bind.address}" port="9999" minProcessors="10" maxProcessors="200"

enableLookups="true" acceptCount="10" debug="0"

connectionTimeout="20000" useURIValidationHack="false"/>

这样的结果单独用Tomcat 做中间件服务器是可以正常运行达到一百用户并发测试的

为什么用JBOSS做中间件服务器用户数就是上不去呢?

按道理JBOSS内嵌TOMCAT,并发数和JBOSS应该无关啊――:)

实在不明白

而错误提示抛的又是IO错误,我想是不是其它什么原因?

LOG错误提示如下

2004-05-24 15:53:51,352 ERROR [org.apache.axis.Message] java.io.IOException:

ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error

at org.apache.coyote.tomcat4.OutputBuffer.realWriteBytes(OutputBuffer.java:404)

at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:428)

at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:348)

at org.apache.coyote.tomcat4.OutputBuffer.writeBytes(OutputBuffer.java:432)

at org.apache.coyote.tomcat4.OutputBuffer.write(OutputBuffer.java:419)

at org.apache.coyote.tomcat4.CoyoteOutputStream.write(CoyoteOutputStream.java:108)

at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:334)

at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:394)

at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:134)

at java.io.OutputStreamWriter.write(OutputStreamWriter.java:191)

at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:111)

at java.io.BufferedWriter.write(BufferedWriter.java:206)

at java.io.Writer.write(Writer.java:126)

at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:311)

at org.apache.axis.Message.writeTo(Message.java:531)

at org.apache.axis.transport.http.AxisServlet.sendResponse(AxisServlet.java:807)

at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:683)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

banq
2004-05-28 09:39

单台性能提高有限的情况下,建议你考虑使用JBoss集群了

banq
2004-05-28 12:35

还有一个原因,Axis和tomcat接口,如果Axis开启tomcat一个线程后,等待tomcat-->Jboss后台处理,但是Axis等待时间太短,当tomcat将后台处理结果返回给Axis时,Axis已经关闭相应通道。

以上只是设想。仅供参考。

cute
2004-05-28 17:12

线程问题,真的很头疼。。。我发现门户决不能用动态页面。

我说SINA 都是些 HTML 格式。 没发现有ASP PHP JSP 。

就算有我相信,不出一个周肯定要死机。ASP,PHP 我没用过。

不过JSP 我到经历过这样的问题。就算虚拟机优化加上集群2台。

也坚持不过几个周。

真的是亲身体会。

凤舞凰扬
2004-05-28 21:35

这并非是JBOSS的问题,有兴趣的朋友可以看看我在java视线就同步问题发表的一些帖子。

我可以这样说,一般做的程序很少有能经过测试工具(如loadrunner)进行50个并发测试的。一般说来,在测试20个以内,系统比较稳定,达到30个的时候,系统就开始出错。

对于一个比较严谨的程序员来说,像数据库链接没有释放等程序问题一般是不会(更不应该)存在的,而所谓的系统又是采用好像很好的框架,如struts,hibernate,spring等。其实,抛却以上因素,通不过测试主要是两方面原因:同步没有处理好(准确地讲是不知道在哪些地方该同步,怎么样去控制同步),在处理各种开源框架的时候,自己系统的架构没有搭建好,存在先天的缺陷。

这样的问题很难给你一个好的解决方案,只能依靠你在工作中不断积累经验。

8Go 上一页 1 ... 3 4 5 6 7 8 下一页