高手请进,老问题,一直没解决.

chjx1982 2010-10-07 07:06:49

最近网站运行了一段时间就会报错,线程满,然后打开就很慢,重启又好了,因为我跑了三个TOMCAT,所以我用的是startup.bat,
然后我打开TOMCAT下面的log,localhost_log.2010-10-07,看到的就是下面的这些错误,我不知道,这些错误是不是导致网站线程满的原因,那这些错误是怎么产生的呢,怎么才能不让这些错误产生呢,我要怎么才能查出TOMCAT线程满的原因呢,一直很郁闷,希望大家给我支招。


2010-10-07 09:08:01 org.apache.catalina.core.StandardHostValve@43da1b: Exception Processing ErrorPage[errorCode=404, location=/errpage/500error.jsp]
ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
at org.apache.coyote.tomcat5.OutputBuffer.doFlush(OutputBuffer.java:331)
at org.apache.coyote.tomcat5.OutputBuffer.flush(OutputBuffer.java:297)
at org.apache.coyote.tomcat5.CoyoteResponse.flushBuffer(CoyoteResponse.java:537)
at org.apache.coyote.tomcat5.CoyoteResponseFacade.flushBuffer(CoyoteResponseFacade.java:238)
at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:303)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:147)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)
...全文
363 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
cao1991611 2011-07-28
  • 打赏
  • 举报
回复
chjx1982 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 crazyuser 的回复:]
升级Tomcat就能解决问题了
[/Quote]
是吗|?升到多少。你以前出现过这样的问题吗》
crazyuser 2010-10-08
  • 打赏
  • 举报
回复
升级Tomcat就能解决问题了
chjx1982 2010-10-08
  • 打赏
  • 举报
回复
这是不是并发性问题啊。
chjx1982 2010-10-08
  • 打赏
  • 举报
回复
如果同时连数据库的人是1000人,那是不是就会产生1000个线程啊。
chjx1982 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 qinxingqu 的回复:]
会不会是你的网络出了故障,加个网页防护墙试试
[/Quote]
不会出问题的,以前我把那个经常查数据库的页面改成静态的,是不会出现这样的问题的,我改成动态的就不行了。肯定是代码哪出问题了,可是也不知道是什么问题。我们每天的IP大概在4万左右
qinxingqu 2010-10-08
  • 打赏
  • 举报
回复
会不会是你的网络出了故障,加个网页防护墙试试
24K純帥 2010-10-08
  • 打赏
  • 举报
回复
LZ贴出来的代码很正常
chjx1982 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 hack_ccsl 的回复:]
我的数据库连接方式和你的不一样。


<naming>
<context>
<resource name="jdbc/pool_engine" type="javax.sql.DataSource">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFa……
[/Quote]
在吗?能给我详细点的吗???急。
revengeangle 2010-10-08
  • 打赏
  • 举报
回复
有朋友遇到过这样的问题,貌似是连接老化的问题。
之后好像是写了一段代码,大概就是刷新连接吧

//先初始化N个连接
while(condition){
//逻辑处理
//kill掉
if(N==0)
//再初始化N个连接
}

印象中是这样的问题,解决方法是刷新连接,具体的解决方法有点忘了。
chjx1982 2010-10-08
  • 打赏
  • 举报
回复
恩,这个是要配置的吧,你然把给我详细点的吗???方便的话给我个QQ,我加你。
hack_ccsl 2010-10-08
  • 打赏
  • 举报
回复
你可以换下数据库的连接方式,先确定问题是不是因为这个。

不然说在多没有用。

hack_ccsl 2010-10-08
  • 打赏
  • 举报
回复
我的数据库连接方式和你的不一样。


<naming>
<context>
<resource name="jdbc/pool_engine" type="javax.sql.DataSource">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.1.30:1521:fm2</value>
</parameter>
<parameter>
<name>username</name>
<value>sms</value>
</parameter>
<parameter>
<name>password</name>
<value>sms</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>initialSize</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>minIdle</name>
<value>5</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>

</resource>
</context>
</naming>


chjx1982 2010-10-08
  • 打赏
  • 举报
回复
你最后是怎么解决的?
chjx1982 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 hack_ccsl 的回复:]
引用 17 楼 chjx1982 的回复:

我之前是设置成600,现在加到999了,也不知道这样行不行。总觉得这样治标不治本。


我当时也这样改过,没有用的。

不是根本解决之道。你还是先确定是否数据库连接导致的问题吧。慢慢排查吧。
[/Quote]
恩,就是不知道该怎么解决了,我现在只能赶紧把它整成静态的了,这样不刷数据库,总不会产生线程了吧,代码就是那么点代码,也不知道是哪块出问题了。
hack_ccsl 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 chjx1982 的回复:]

我之前是设置成600,现在加到999了,也不知道这样行不行。总觉得这样治标不治本。
[/Quote]

我当时也这样改过,没有用的。

不是根本解决之道。你还是先确定是否数据库连接导致的问题吧。慢慢排查吧。
nmxmhyz 2010-10-08
  • 打赏
  • 举报
回复
,IE9无法显示
chjx1982 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 hack_ccsl 的回复:]
以前遇到过Tomcat报线程满的问题。

我用的是JNDI方式连接数据库。最后修改了对连接的配置中关于限制数据库连接数量的设置等。问题解决了。

建议你修改下数据库连接方式,先确定下问题是否因此引起。
[/Quote]
我之前是设置成600,现在加到999了,也不知道这样行不行。总觉得这样治标不治本。
hack_ccsl 2010-10-08
  • 打赏
  • 举报
回复
以前遇到过Tomcat报线程满的问题。

我用的是JNDI方式连接数据库。最后修改了对连接的配置中关于限制数据库连接数量的设置等。问题解决了。

建议你修改下数据库连接方式,先确定下问题是否因此引起。
chjx1982 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 chjx1982 的回复:]
Java code

package com.ttkd.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

impo……
[/Quote]
这个就是我数据库连接语句了。我也一直觉得是他的问题,可也看不出什么问题,这个是在网上找的。
加载更多回复(16)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧