经典TOMCAT死掉问题: 有个JAVA WEB项目运行在 TOMCAT 5.5 + MYSQL + linux 环境下 ,经常卡死
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典TOMCAT死掉问题: 有个JAVA WEB项目运行在 TOMCAT 5.5 + MYSQL + linux 环境下 ,经常卡死相关的知识,希望对你有一定的参考价值。
我用jstack查看了进城日志:
http-8080-Processor2" daemon prio=10 tid=0x00000000524ec000 nid=0x35eb in Object.wait() [0x0000000045270000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1315)
at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
- locked <0x00002aaabe8b04f0> (a com.mchange.v2.resourcepool.BasicResourcePool)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
at org.hibernate.jdbc.BorrowedConnectionProxy.invoke(BorrowedConnectionProxy.java:40)
应该是连接池在等待获取连接,但是我看进数据库看了连接 肯定没到我设置的最大上限200个 最多就100个 有高手可以给点思路吗 ..
以下是我spring里面配置连接池的参数:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/IWM_Cooperator?characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull"/>
<property name="properties">
<props>
<prop key="c3p0.minPoolSize">3</prop>
<prop key="hc3p0.maxPoolSize">500</prop>
<prop key="hc3p0.timeout">8000</prop>
<prop key="c3p0.max_statement">100</prop>
<prop key="c3p0.testConnectionOnCheckout">false</prop>
<prop key="hibernate.c3p0.testConnectionOnCheckout">false</prop>
<prop key="user">leo</prop>
<prop key="password">cicdata</prop>
</props>
</property>
</bean>
top看了 没有什么异常啊 内存和cpu tomcat暂用的都不高
参考技术C 看看是不是内存耗尽了追问free+buffer的内存还有3G左右 应该不是内存耗尽了
本回答被提问者采纳Eclipse中的Web项目自己主动部署到Tomcat
一、原因、
1、写java程序有一段时间了,但非常久没用eclipse了。所以使用eclipse编写的web项目部署到tomcat 的方式也不是非常清楚,以下记录一下将Eclipse 上的web项目自己主动部署到tomcat 上的方式;
二、部署问题
1、这里就有个问题。是怎么把Eclipse中的站点项目自己主动部署到tomcat中。
在Eclipse中做的Web项目默认是不支持将项目公布到Webserver上的,会公布到工作空间的某个文件夹下,因此无法在外部启动Tomcat来执行Web项目,仅仅有打开Eclipse中的server。才干执行Web项目。所以要对Eclipse进行改动。才干将做好的项目。公布到Tomcatserver上,公布到server上的Webapps文件夹下。
2、Eclipse默认会将web项目公布到eclipse的.metadata\.plugins\org.eclipse.wst.server.core\tmp0文件夹下的wtpwebapps 这个文件夹下:
这里我们看到了eclipse 默认的路径。假设使用这个默认路径则web项目会部署到 这个默认路径下,所以就不会部署到我们想要的那个tomcat下
3、这里我们也看到还有两个路径。先说说use workspace metadata 这个路径,翻译答题意思就是使用工作空间作为web项目部署的路劲(不改动Tomcat的安装),事实上这个和部署到eclipse 默认路径的部署一样,假设要訪问这个项目则要启动eclipse 中的tomcatserver,不然还是訪问不了。
4、第三个路径。也就是use tomcat installation 这个路径,这也是我们想要的部署路径,以下就说说这个部署路径:
(1)、将tomcat 配置到eclipse : window-->preferences -->server-->runtime environment-->add---> 选择tomcat版本号--->选择tomcat安装文件夹--->finish
(2)、图解:
(3)、window-->show view ----> server 之后在eclipse 下回出现server :
(4)、在该server上,单击鼠标右键选择“Open”,或在空白处按F3快捷键,或者是双击。打开例如以下的页面:
(5)、在“Server Locations”处选择“Use Tomcat installation”。能够清楚的看到默认是“Use Workspace metadata”,即上边所说的文件夹。然后在Deploy的path处写上webapps就可以,例如以下图所看到的:
(6)、改动完毕之后。保存就可以。这样以后的项目都会公布到tomcat下的webapps下了。
注意:
&、 在Eclipse中,用这样的方式公布Web项目,会将原先server的conf目录被分成为backup目录,自己新建立一个目录,来作为配置Eclipse公布的Web项目。所以还是要使用MyEclipse编写Java Web项目
& 、 有时候,server Locations项目下,什么都不可选择,你能够先删除server,又一次加入tomcatserver。然后右击打开。改动就可以。
以上是关于经典TOMCAT死掉问题: 有个JAVA WEB项目运行在 TOMCAT 5.5 + MYSQL + linux 环境下 ,经常卡死的主要内容,如果未能解决你的问题,请参考以下文章