我们的数据访问量很大,服务器是tomcat,web工程用了ssh框架,数据库访问用了c3p0连接池。为什么每天早上都会无法访问,就连在服务器本地访问http://localhost:8080/都无法成功,即使重起tomcat也没用,必须要重起服务器。白天基本没什么问题,就过了一夜到第二天早上就出这个问题了。
开始以为跟tomcat日志文件太大有关,我设置了tomcat,不把日志信息添加到日志文件中,文件已经不会增大了,但是还是有那个问题。
想着可能是session有问题,但是连服务器本地访问http://localhost:8080/都无法成功。重起tomcat也没用……
实在无招了,求高手帮忙!!!会不会是我们的web工程出错了。
如果谁帮忙解决了兄弟送上300分,只能发100分的贴,这里先贴100分,解决了再送200分!
开始以为跟tomcat日志文件太大有关,我设置了tomcat,不把日志信息添加到日志文件中,文件已经不会增大了,但是还是有那个问题。
想着可能是session有问题,但是连服务器本地访问http://localhost:8080/都无法成功。重起tomcat也没用……
实在无招了,求高手帮忙!!!会不会是我们的web工程出错了。
如果谁帮忙解决了兄弟送上300分,只能发100分的贴,这里先贴100分,解决了再送200分!
解决方案 »
- Hibernate一对多对的查询HQL问题
- Class.forName("org.gjt.mm.mysql.Driver").newInstance();
- 菜鸟又来问问题了!关于servlet的url传值
- 谁有myeclipse代码自动提示的脚本文件
- 用户登录+session
- flex4 低级问题。
- 谁有用applet做的时钟和计算机源程序???
- 各位哥哥进来看看那
- 一个结果集,已经通过调用next到了最后,能不能再重新重头开始??
- jsp 如何实现 IE文件菜单中‘另存为’的功能。简单的说就是在网页中加个按钮,点击之后可以把本页的页面另存为txt/html文件。在线等待,
- 牛人为什么单独抽离一个VO对象进行序列化???
- 统计 String类型怎么转成int 执行sql sum运算
希望对你有帮助
<%
int mb = 1024*1024;
Runtime runtime = Runtime.getRuntime();
response.getWriter().write("Free Memory:" + runtime.freeMemory() / mb+"M<br/>");
response.getWriter().write("Total Memory:" + runtime.totalMemory() / mb+"M<br/>");
response.getWriter().write("Max Memory:" + runtime.maxMemory() / mb+"M<br/>");
response.getWriter().write("availableProcessors:" + runtime.availableProcessors());
%>
2.你的工程数据量访问很大,你试试修改tomcat的JVM参数,把JVM参数设置大一点看看。以前我也碰到过油一个web系统周期性的死掉,后来改了JVM参数后就正常了。
看看第二天你的工程是否还运行正常
[code=XM]
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration> <session-factory>
<!--
<property name="connection.url">jdbc:firebirdsql:60.161.53.54:pim</property>
<property name="connection.url">jdbc:firebirdsql:localhost:d:/test.fdb</property>
<property name="connection.url">jdbc:firebirdsql:fbsvn.vicp.net:pim</property>
--> <!-- 数据库连接 -->
<property name="hibernate.dialect">org.hibernate.dialect.FirebirdDialect</property>
<property name="connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
<property name="connection.url">jdbc:firebirdsql:10.106.115.4/3050:pim</property>
<property name="connection.username">SYSDBA</property>
<property name="connection.password">masterkey</property> <!-- 配置连接池 -->
<property name="c3p0.acquire_increment">1</property>
<property name="c3p0.idle_test_period">100</property> <!-- seconds -->
<property name="c3p0.max_size">2</property>
<property name="c3p0.max_statements">0</property>
<property name="c3p0.min_size">1</property>
<property name="c3p0.timeout">1800</property> <!-- seconds -->
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- 其他 -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="current_session_context_class">thread</property> <!-- 二级缓 -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.use_query_cache">true</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.generate_statistics">true</property>
</session-factory></hibernate-configuration>
[/code]
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration> <session-factory>
<!-- 数据库连接 -->
<property name="hibernate.dialect">org.hibernate.dialect.FirebirdDialect</property>
<property name="connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
<property name="connection.url">jdbc:firebirdsql:10.106.115.4/3050:pim</property>
<property name="connection.username">SYSDBA</property>
<property name="connection.password">masterkey</property> <!-- 配置连接池 -->
<property name="c3p0.acquire_increment">1</property>
<property name="c3p0.idle_test_period">100</property> <!-- seconds -->
<property name="c3p0.max_size">2</property>
<property name="c3p0.max_statements">0</property>
<property name="c3p0.min_size">1</property>
<property name="c3p0.timeout">1800</property> <!-- seconds -->
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- 其他 -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="current_session_context_class">thread</property> <!-- 二级缓 -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.use_query_cache">true</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.generate_statistics">true</property>
</session-factory></hibernate-configuration>
[/code]
比如对最常用的数据采用缓存的设置
昨天晚上我测试了,因为我想找到根本原因,我把web工程的访问url改了,不让其他人来访问。结果今天早上起来,还是出那个错误,我查看日志,没有其他人访问过。再详细补充一下错误的描述:
现在感觉就是只要一段时间内没人动,就会出现tomcat死掉的情况。
另外,我们用的数据库是firebird,每次tomcat死掉的时候我用数据库的可执行工具去连接数据库都会提示系统缓冲区空间不足或队列已满、无法执行套接字操作。
我们的数据库在一个服务器上,web在一个服务器上,cs在一个服务器上。tomcat死掉后数据库和cs都能正常运行。求高手帮忙啊~~~
我们的数据库在一个服务器上,web在一个服务器上,cs在一个服务器上。tomcat死掉后数据库和cs都能正常运行。从你这里看,是应用没有释放数据库连接
<property name="driverClass">
<value>com.ibm.db2.jcc.DB2Driver</value>
</property>
<property name="jdbcUrl">
<ref bean="jdbcUrl"></ref>
</property>
<property name="user">
<ref bean="dbUser"></ref>
</property>
<property name="password">
<ref bean="dbPassword"></ref>
</property>
<property name="maxIdleTime" value="180"/>
<property name="maxPoolSize" value="50"/>
</bean>你增加maxIdleTime这个配置看看,单位是秒
环境问题可能性比较大
更新一下Tomcat和JDK版本
另外,tomcat是启动好的,可能我问题描述的不够清晰。就是在我访问web工程后,如果我长时间不动也不关网页,那么会出现tomcat所在服务器出现如下问题:
访问http://localhost:8080/无效。显示浏览器不能打开该网页。
访问web工程无效。显示浏览器不能打开该网页。
用数据库连接操作工具去连接数据库提示系统缓冲区空间不足或队列已满,无法执行套接字操作。注:tomcat所在服务器、数据库服务器、cs版服务器分别是不同的服务器,在tomcat死掉时,数据库服务器好cs版服务器是可以正常运行的。目前已做过如下测试:增加tomcat的jvm内存、修改web工程的c3p0连接池、通查了所有查询数据的地方(数据库连接都已关闭),以上方法都没解决。再注:如果我访问了web工程且一直操作,不管查询了多少数据,用了多少次不同的查询,基本都不会出现上述情况。但是在不动也不关闭网页的情况下,一段时间后出现上述情况(这个时间暂时没能确切知道,有次是2小时)。
关注中,期待解决后把解决方法分享下吧
dbcp.testWhileIdle=true
dbcp.minEvictableIdleTimeMillis=3600000
dbcp.timeBetweenEvictionRunsMillis=3600000你的c3p0 ,可以参看。
tomcatr
tomcatn
tomcatsx.dll
这些是什么东东?找不到资料了……现在把这三个服务停掉,暂时没出现那种郁闷的情况了,但是还是不敢确定是否真正的原因就是这三个服务,还得继续跟踪。