Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC=事务不再处于活动状态_Java_Sql_Spring_Spring Mvc_Oracle11g - Fatal编程技术网

Java Spring MVC=事务不再处于活动状态

Java Spring MVC=事务不再处于活动状态,java,sql,spring,spring-mvc,oracle11g,Java,Sql,Spring,Spring Mvc,Oracle11g,我有一个基于SpringWebModelViewController(MVC)框架的项目。SpringWebModelViewController(MVC)框架的版本是3.2.8,部署在WebLogic服务器版本12.1.2.0.0上 我在1个查询中有此错误 Caused By: java.lang.RuntimeException: java.sql.SQLException: The transaction is no longer active - status: 'Marked rol

我有一个基于SpringWebModelViewController(MVC)框架的项目。SpringWebModelViewController(MVC)框架的版本是3.2.8,部署在WebLogic服务器版本12.1.2.0.0上

我在1个查询中有此错误

Caused By: java.lang.RuntimeException: java.sql.SQLException: 
The transaction is no longer active - status: 'Marked rollback. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 31 seconds
BEA1-000D9470C1367F28EDB9]'. 
No further JDBC access is allowed within this transaction., criteria [ com.tdk.books.domain.ProductSearchCriteria@c5f15d5c ],  sql [  select PRODUCT_ID from  V_BOOKS  where category_id = ?  ]
甚至我在服务方法中也设置了10000个超时

@Transactional(timeout=10000, propagation = Propagation.REQUIRES_NEW)
Oracle社区的根本原因: 通常情况下,当事务完成时会发生这种情况,但事实并非如此 忽略,应用程序尝试继续处理并发出JDBC 发生在TX之外的语句。此问题的根源 可以是通过序列传递的连接对象 使用连接的方法的列表。其中一种方法提交TX 从而使连接失效

资源链接:

提出了一些解决问题的建议

第一项建议: 请尝试将weblogic数据源设置从非XA更改为 XA。你应该摆脱这个例外

资源链接:

第二项建议: 取消选中支持全局事务重新启动服务器

资源链接:

第三项建议: 这个问题的真正解决方案是异步处理。但是它 可能不适合你的情况

首先,如果您正在对Oracle进行任何jdbc调用,那么您可以设置 在数据库上执行查询时,查询超时。之后 查询超时,Oracle将为您提供一个可以处理的异常 信息技术因此,基本上在这种情况下,您不会取消EJB请求 事实上但它可能会解决你的问题

资源链接: