服务器采用集群,相同的程序发布在两台服务器,一台可以正常保存,一台在保存时出现异常,使用本地应用连接服务器的数据库也可以正常保存
spring+struts+hibernate3
出错异常如下:[ERROR]-[com.wonders.ylfl.common.web.BaseAction.execute(BaseAction.java:83)] -- Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed
org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed
Caused by: 
org.hibernate.TransactionException: JDBC rollback failed
 at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:170)
 at org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:585)
 at org.springframework.transaction.support.AbstractPlatformTransactionManager.doRollbackOnCommitException(AbstractPlatformTransactionManager.java:673)
 at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:568)
 at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
 at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:275)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
 at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:647)
 at com.wonders.ylfl.pubinfo.service.impl.PubInfoManagerImpl$$EnhancerByCGLIB$$1942d5a4.postArticle(<generated>)
 at com.wonders.ylfl.pubinfo.web.action.PubInfoAction.post(PubInfoAction.java:203)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
 at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
 at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
 at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
 at com.wonders.ylfl.common.web.BaseAction.execute(BaseAction.java:74)
 at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
 at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
 at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
 at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code))
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code))
 at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java(Compiled Code))
 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
 at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java(Compiled Code))
 at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java(Compiled Code))
 at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java(Compiled Code))
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code))
 at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java(Compiled Code))
 at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java(Compiled Code))
 at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java(Compiled Code))
 at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java(Compiled Code))
 at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java(Compiled Code))
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java(Compiled Code))
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java(Compiled Code))
 at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java(Compiled Code))
 at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code))
 at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))
 at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code))
 at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code))
 at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
Caused by: java.sql.SQLException: Io 异常: Software caused connection abort: socket write error
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
 at oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1380)
 at org.apache.commons.dbcp.DelegatingConnection.rollback(DelegatingConnection.java:265)
 at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.rollback(PoolingDataSource.java:288)
 at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183)
 at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162)
 ... 47 more

解决方案 »

  1.   

    看起来好像是一个I/O的异常导致回退失败
    看下oracle日志中有信息没websphere的信息也接着这个往下贴点:Caused by: java.sql.SQLException: Io 异常: Software caused connection abort: socket write error
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
    at oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1380)
    at org.apache.commons.dbcp.DelegatingConnection.rollback(DelegatingConnection.java:265)
    at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.rollback(PoolingDataSource.java:288)
    at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183)
    at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162)
    ... 47 more 
      

  2.   

    oracle没有明确的日志,websphere刚开始用,还没找到有用的日志
    我的服务器采用集群,其中一台可以保存。另一台报错
      

  3.   

    [ERROR]-[com.wonders.ylfl.common.web.BaseAction.execute(BaseAction.java:83)] -- Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed 
    org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed 是不是另一台配置有什么问题的?
      

  4.   

    提供点借鉴信息
    我原来在wb上做集群的时候也遇到这问题,后来发现,两个机器上的java包不一样,一个改了,一个没改。
    wb操作oracle clob 需要他自己的一个包,oracle自带的不好用。