登录时:java.sql.SQLException:事务不再处于活动状态-状态:';标记回滚
我们的应用程序在web logic 10上运行。应用程序开发使用java,spring框架,hibernae,jsp 尝试登录tomcat时没有错误,但部署到weblogic server时,无论我们如何登录或尝试侦听来自MQ的消息,都会出现相同的异常,这是通过打开跟踪发现的 是什么导致了这个问题。任何建议都非常有用!提前谢谢 堆栈跟踪:登录时:java.sql.SQLException:事务不再处于活动状态-状态:';标记回滚,java,hibernate,jsp,spring-mvc,jms,Java,Hibernate,Jsp,Spring Mvc,Jms,我们的应用程序在web logic 10上运行。应用程序开发使用java,spring框架,hibernae,jsp 尝试登录tomcat时没有错误,但部署到weblogic server时,无论我们如何登录或尝试侦听来自MQ的消息,都会出现相同的异常,这是通过打开跟踪发现的 是什么导致了这个问题。任何建议都非常有用!提前谢谢 堆栈跟踪: java.sql.SQLException: The transaction is no longer active - status: 'Marked ro
java.sql.SQLException: The transaction is no longer active - status: 'Marked rollback. [Reason=weblogic.transaction.internal.AppSetRollbackOnlyException: setRollbackOnly called on transaction]'. No further JDBC access is allowed within this transaction.
at weblogic.jdbc.wrapper.JTSConnection.checkIfRolledBack(JTSConnection.java:178)
at weblogic.jdbc.wrapper.JTSConnection.checkConnection(JTSConnection.java:188)
at weblogic.jdbc.wrapper.Connection.preInvocationHandler(Connection.java:93)
at weblogic.jdbc.wrapper.Connection.prepareStatement(Connection.java:480)
at weblogic.jdbc.wrapper.JTSConnection.prepareStatement(JTSConnection.java:486)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2412)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2875)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:185)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:145)
at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:95)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:925)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:738)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:725)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:475)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:270)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631)
at pkg.add.send.msg.InterceptMessageListener$$EnhancerByCGLIB$$f327e73b.onMessage(<generated>)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:563)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:500)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:468)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1104)
... 3 more
java.sql.SQLException:事务不再处于活动状态-状态:'已标记回滚。[Reason=weblogic.transaction.internal.AppSetRollbackOnlyException:setRollbackOnly在事务上调用]”。此事务中不允许进一步的JDBC访问。
位于weblogic.jdbc.wrapper.JTSConnection.checkifrolled(JTSConnection.java:178)
位于weblogic.jdbc.wrapper.JTSConnection.checkConnection(JTSConnection.java:188)
在weblogic.jdbc.wrapper.Connection.preInvocationHandler(Connection.java:93)中
在weblogic.jdbc.wrapper.Connection.prepareStatement(Connection.java:480)中
位于weblogic.jdbc.wrapper.JTSConnection.prepareStatement(JTSConnection.java:486)
位于org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
位于org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116)
位于org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
位于org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
位于org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2412)
位于org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2875)
位于org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
位于org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
位于org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
位于org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:185)
位于org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
位于org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
位于org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
在org.springframework.orm.hibernate3.SpringSessionSynchronization.beforecomit(SpringSessionSynchronization.java:145)上
位于org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:95)
位于org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:925)
位于org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:738)
位于org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:725)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.commitTransactionAfterReturning(TransactionSpectSupport.java:475)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpectSupport.java:270)
位于org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172)
位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631)
在pkg.add.send.msg.InterceptMessageListener$$enhancerbyglib$$f327e73b.onMessage()处
位于org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:563)
位于org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:500)
位于org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:468)
位于org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
位于org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)
位于org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1104)
... 3个以上
我假设:发生了异常。此异常已在方法中的某个位置被捕获/处理,但它导致事务标记为回滚。使用Spring,您可以使用@Transactional(rollboor=XYZ.class)或@Transactional(norollboor=XYZ.class)之类的工具。您是如何配置事务管理器的(在weblogic和tomcat上)?您在启动时是否仔细阅读了日志,特别是关于事务管理器设置的日志?@ben75使用不同的应用程序进行相同的配置可以。但是,我会再次调查的@ben75的配置没有问题,只是检查了一下,并与其他应用进行了比较