我在不同的OSGI捆绑包中使用@Transactional注释了方法。所有捆绑包都使用Spring提供的它自己的事务管理器。现在,如果我使用bundle1和bundle2的OSGI引用在bundle3中调用方法A()和方法B(),它会被单个事务覆盖吗?所以,如果方法B()失败,方法A()应该回滚吗?
捆绑1
class ServiceA {
@Transactional
public void methodA() {
..........
}
}
捆绑包
class ServiceB {
@Transactional
public void methodB() {
..........
}
}
捆绑3
class ServiceC {
@Autowired
Bundle1 b1;
@Autowired
Bundle2 b2;
@Transactional
public void methodC() {
b1.methodA();
b2.methodB();
}
}
Spring使用本地线程来存储事务上下文。由于OSGi服务调用使用相同的线程,我认为应该传播事务。
我试图理解Spring事务概念。如下所示,我必须将数据插入两个不同的数据库(iSeries和DB2),但我们的iSeries版本不支持两阶段提交。要求是,只有当两个插入都成功时才应该提交事务,否则应该回滚。 如果我根据需要使用传播或REQUIRES\u NEW,我会得到错误“非法尝试使用现有的两阶段资源提交一阶段资源”。 但是如果我使用NOT_SUPPORTED或支持,它工作正常(即如果其中一个插
我正在为OSGi(又名Eclipse Gemini Blueprint)工作到Spring。
Seata 的事务上下文由 RootContext 来管理。 应用开启一个全局事务后,RootContext 会自动绑定该事务的 XID,事务结束(提交或回滚完成),RootContext 会自动解绑 XID。 // 绑定 XID RootContext.bind(xid); // 解绑 XID String xid = RootContext.unbind(); 应用可以通过 RootCon
我已经成功地在一个redis实例中使用multi和exec功能在redis中实现了(并测试了)事务操作。但是,在集群安装程序中运行的相同代码出错,出现以下异常消息。我使用spring-data-redis-1.8.1.release和jedis-2.9.0。 当前在集群模式下的spring data redis中是否支持事务(multi、exec)?如果是的话,我错过了什么?如果没有,是否有任何解
所称的刀是: 我希望服务类中的方法在事务中运行,并在方法出现异常时回滚所有内容。但这不是在事务中运行的。 如果我将添加到DAO方法中,那么它看起来就像是在单独的事务中运行的。这是正确的吗?