distributed-transactions相关内容
我阅读了一些关于2阶段提交/XA分布式事务以及JTA如何支持它的信息。似乎有很多资源管理器-RM(例如,RDBMS或JMS),以及一个管理跨多个RM的全局事务的TransactionManager(TM)实例。 我知道使用Saga模式更好,但是想想还是很有趣的: Do 2PC/XA分布式事务提供了仅从一个应用程序和一个TM使用多个RM进行事务的可能性? 如果没有-如何在多个微服务之间
..
我们决定对 Azure 数据库使用 micro-orm.由于我们的业务只需要“插入"和“选择",我们决定禁止所有代码管理的 SqlTransaction(数据没有并发问题). 然后,我们注意到我们的 Azure 数据库实例响应非常缓慢.“rpc completed"事件发生的延迟是运行简单 sql 语句所需时间的数百倍. 接下来,我们使用 EF6 对代码进行了基准测试,我们看到服务器响
..
..
在分布式消息事务世界中,我试图了解开发分布式系统所涉及的不同部分.据我了解,您可以使用支持消息队列系统的企业总线来设计消息系统.为什么同时使用两者是个好主意?通过仅针对消息队列系统进行编程可以实现同样的目的吗?两者一起使用有什么好处? 解决方案 您当然可以直接针对消息传递基础架构进行编码,您会发现各有利弊.每次运输.不过,您需要在此过程中做出许多决定,而这正是服务总线可以提供帮助的地方.
..
如何使用事务管理器(例如 Bitronix、JBoss TS 或 Atomikos) 在 Java SE(不是 Java EE 或 Spring)中支持以下用例: 假设我们有以下类: 公共类道{公共无效更新数据库(DB db){连接到数据库运行一个sql}} 然后我们从中创建一个 Java Runnable,如下所示: public class MyRunnable extends R
..
我有一个父对象(DAL 的一部分),其中包含子对象的集合(List). 当我将对象保存回数据库时,我输入/更新父对象,然后循环遍历每个子对象.为了可维护性,我已经把孩子的所有代码放到一个单独的私有方法中. 我打算使用标准的 ADO 事务,但在我的旅行中,我偶然发现了 TransactionScope 对象,我相信这将使我能够将所有数据库交互包装在父方法中(以及子方法中的所有交互)一笔交
..
在 NHibernate 3.0 中,FlushMode.Auto 在仅在环境事务下运行时不起作用(即,不启动 NHibernate 事务).应该吗? using (TransactionScope scope = new TransactionScope()){ISession session = sessionFactory.OpenSession();MappedEntity entity
..
我有一个非常简单的场景,涉及应用服务器(Glassfish)中的数据库和JMS.场景非常简单: 1.EJB 在数据库中插入一行并发送一条消息.2.当消息用MDB传递时,行被读取和更新. 问题是有时消息在数据库中提交之前提交.如果我们考虑 2 阶段提交协议,这实际上是可以理解的: 1.准备 JMS2.准备数据库3.提交JMS4.(在提交插入之前可以传递消息的微小间隙)5.提交数据库 我已经与
..
考虑具有两个实体的应用程序: User(包含基本用户数据,如姓名) Passport(包含身份验证凭据,即密码) 还有两个内部微服务: UserService(负责创建和管理用户及其基本数据) AuthService(负责用户认证和密码处理) User 实体属于 UserService,Passport 实体属于 AuthService. 这两个服务应该分开,因为
..
我需要使用zookeeper设计分布式应用程序.这是我第一次使用 Zookeeper,所以我对它的用法有点困惑.我已经读过 Zab 协议在涉及多个更新时确保可序列化,但我无法理解,如果是这种情况,它将自动允许无锁实现.那么为什么首先需要锁呢?如果有人能在这里提供帮助,那就太好了. 谢谢 解决方案 Zab 协议是 zookeeper 的关键部分.它确保消息原子广播到副本.Zab 协议确
..
我正在使用 Kafka 的高级消费者.因为我将 Kafka 用作我的应用程序的“事务队列",所以我需要绝对确保我不会错过或重新阅读任何消息.我有两个关于此的问题: 如何向zookeeper提交偏移量?每条消息成功消费后,我将关闭自动提交和提交偏移量.我似乎无法找到有关如何使用高级使用者执行此操作的实际代码示例.有人能帮我解决这个问题吗? 另一方面,我听说提交到 zookeeper
..
我正在使用 Kafka 的高级消费者.因为我将 Kafka 用作我的应用程序的“事务队列",所以我需要绝对确保我不会错过或重新阅读任何消息.我有两个关于此的问题: 如何向zookeeper提交偏移量?每条消息成功消费后,我将关闭自动提交和提交偏移量.我似乎无法找到有关如何使用高级使用者执行此操作的实际代码示例.有人能帮我解决这个问题吗? 另一方面,我听说提交到 zookeeper
..
我们有一个微服务架构,使用 Kafka 作为服务之间的通信机制.一些服务有自己的数据库.假设用户调用服务 A,这将导致在该服务的数据库中创建一条记录(或一组记录).此外,此事件应作为 Kafka 主题上的一个项目报告给其他服务.确保仅在 Kafka 主题成功更新后才写入数据库记录的最佳方法是什么(本质上是围绕数据库更新和 Kafka 更新创建分布式事务)? 我们正在考虑使用 spring-k
..
我知道事务协调器用于协调不同类型资源之间的事务,例如 1)SQL Server 2)Oracle 3)MSMQ 4)文件系统等,他们有责任跟踪事务以及任何这些资源失败都应该回滚 WCF 中所有其他资源的事务. 我想知道a) 选择哪个事务协调器以及为什么b) 我们可以自己选择事务协调器还是由 wcf 自己自动完成对于以下条件:- 1)如果 wcf 使用相同 Microsoft 技术的事务
..
在我的应用程序中,我使用以下模式调用数据库: //做一个交易使用 (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required)){OperationOnDb1();//当我们在此调用中打开与“其他数据库"的连接时,事务将变为分布式OperationOnDb2();//交易现在已分发交易.
..
我遇到了一种情况,我开始怀疑两阶段提交协议是否真的能保证 ACID 属性,尤其是其中的“A"部分. 让我们看一个涉及 2 个资源的理论分布式事务.(关于我不得不处理的问题的更实际描述,您可以在 我的博客).该场景是分布式事务的正常执行(无故障或恢复).应用程序启动事务,更新资源并发出 commit() 调用.提交完成后,应用程序检查两个资源并查看已完成事务的所有更改.一切都很好,2PC 协议
..
我使用的是 SQL Server 2008 R2. 当我尝试从 Java 端执行 SP 时出现以下错误.当我使用查询浏览器运行时,相同的SP运行良好. 我也尝试过使用修补程序,但它不起作用. 错误 :: 由于链接服务器“服务器名称"的 OLE DB 提供程序“SQLNCLI10"无法开始分布式事务,因此无法执行该操作.在事务中执行时 解决方案 在 SQL Server M
..
我正在尝试测试一个概念证明,我可以在两个链接的 SQL Server 之间运行分布式事务,使用 sp_addlinkedserver 链接 - 它们的名称是 Server1 和 Server2,都在默认实例下运行.每个服务器保存一个单独的数据库,分别是 Source 和 Destination,目标数据库保存一个名为 Output 的表,即 Server1.SourceServer2.Desti
..
我正在尝试针对链接服务器运行 SQL,但出现以下错误: 开始分布式交易SELECT TOP 1 * FROM SessionsOLE DB 提供程序“SQLNCLI"用于链接服务器“ASILIVE"返回消息“没有事务处于活动状态.".Msg 7391, Level 16, State 2, Line 3由于 OLE DB 提供程序“SQLNCLI"无法执行该操作用于链接服务器“ASILIVE"无
..
我有 chainedTransactionManager 和两个不同的数据源.我的问题是 MydataSource1 实体在 database.Mydatasource1.save 工作中有一个唯一的约束冲突,然后它传递给 mydatasource2.save 然后它抛出 HeuristicCompletionException 和 mydatasource2.save 工作而不是回滚.什么如果发
..