SPRING的奇怪问题

fenghaoo 2008-09-08 08:50:54
为什么把项目放到服务器上面一个晚上,通常是8个小时左右,服务器就会死掉?
用的是SPRING框架,MYSQL数据库,TOMCAT 服务器 难道是有什么配置要设置,不然就会有个默认销毁时间?

下面是项目每隔一段时间报出的异常,请各位高手看看,谢谢!

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3015)
at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4789)
at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:221)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:377)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at com.lonway.service.login.LoginService$$EnhancerByCGLIB$$7dd94b8d.UserValidation(<generated>)
at com.lonway.action.login.LoginAction.validationUser(LoginAction.java:212)
at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:473)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:410)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:523)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:463)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.lonway.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:55)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
...全文
137 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
baobeituping 2008-09-11
  • 打赏
  • 举报
回复
肯定是你在做第二次连接数据库的时候,但是你的连接已经关闭了.比如说你的一对多的时候,你如果设置了延迟加载,如果你只加载一的一端的时候,等操作完成,你又操作去哪多的一端,就会报这个异常信息
  • 打赏
  • 举报
回复
mysql 对事物支持不是很好呀,你的连接已经关闭,但是你还在操作数据,这也许是你的出错的原因吧
qintao1203 2008-09-10
  • 打赏
  • 举报
回复
配成连接池试试看!
conrol 2008-09-09
  • 打赏
  • 举报
回复
一般的时候是spring管理没有释放数据源链接,造成内存溢出,最好手动关闭
fenghaoo 2008-09-09
  • 打赏
  • 举报
回复
配置:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://192.168.0.2:3306/lwcsms?autoReconnect=true</value>
</property>
<property name="username">
<value>jqs</value>
</property>
<property name="password">
<value>jqs</value>
</property>

</bean>

不知道在URL中加了 ?autoReconnect=true 这个属性有没有用 今天晚上挂到服务器上测试 o(∩_∩)o
fenghaoo 2008-09-08
  • 打赏
  • 举报
回复
我看了所有对数据库连接的方法,确认所有连接都正确释放了,用的DBCP
peihexian 2008-09-08
  • 打赏
  • 举报
回复
如果你用了spring,那你的数据库操作是通过jdbctemplateh还是什么来实现的?
peihexian 2008-09-08
  • 打赏
  • 举报
回复
从你的出错情况来看,估计是数据库连接没有正确释放造成的,你的connection对象肯定都正确释放了吗?
liaoyi_ipanel 2008-09-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiao7cn 的回复:]
贴配置文件和代码
[/Quote]
xiao7cn 2008-09-08
  • 打赏
  • 举报
回复
贴配置文件和代码

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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