分布式事务处理方法论

看了龙果学院的分布式视频感觉总结的不错,特地记录下

分布式事务问题的代码场景

/** 支付订单处理 **/
@Transactional(rollbackFor = Exception.class)
public void completeOrder() {
    orderDao.update(); // 订单服务本地更新订单状态
    accountService.update(); // 调用资金账户服务给资金帐户加款
    pointService.update(); // 调用积分服务给积分帐户增加积分
    accountingService.insert(); // 调用会计服务向会计系统写入会计原始凭证
    merchantNotifyService.notify(); // 调用商户通知服务向商户发送支付结果通知
}

本地事务控制还可行吗?

分布式事务解决方案

时间: 2024-12-21 08:47:20

分布式事务处理方法论的相关文章

分布式事务处理学习报告

1.什么是事务? 事务通俗说就是一个事情分为多个步骤完成: 比如: 2.事务的ACID四大属性: 原子性(Atomicity):意为:即一事务的操作要么全部执行,要么全部不执行.当事务非正常终止时,其中间结果将被取消. 一致性(Consistence):指的是保证数据在变化中只存在一个完整状态.比如修改一个人的信息(姓名,性别,年龄),在更新过程中发生错误,则所做的修改要么全没了,要么全保留. 隔离性(Isolation):一个未完成事务不能在提交前就把其中间结果提供给其它事务使用. 持久性(D

ORA-02049: 超时: 分布式事务处理等待锁诊断

正式环境有两个数据库A和B,在A库上建的dblink,业务是要将A库中的一些表,通过dblink更新到B库中去,更新的时候总是报错:ORA-02049: 超时: 分布式事务处理等待超时. 之前我写过一篇blog:ORA-02049: 超时: 分布式事务处理等待锁模拟,大致的意思是通过A更新B中的数据时,由于B库中的数据有锁,一直都不释放,导致通过A更新报错. 诊断如下: 在B库上执行,找到产生锁的会话 select s.owner, s.object_name, l.SID, l.TYPE, l

【转】错误: ORA-01591: 锁被未决分布式事务处理 7.2.428982 持有--解决方案

SQL 错误: ORA-01591: 锁被未决分布式事务处理 7.2.428982 持有 01591. 00000 -  "lock held by in-doubt distributed transaction %s" *Cause:    Trying to access resource that is locked by a dead two-phase commit transaction that is in prepared state. *Action:   DBA

.NET简谈事务、分布式事务处理

在本人的 " .NET简谈事务本质论"一文中我们从整体上了解了事务模型,在我们脑子里能有一个全局的事务处理结构,消除对数据库事务的依赖理解,重新认识事务编程模型. 今天这篇文章我们将使用.NET C#来进行事务性编程,从浅显.简单的本地事务开始,也就是我们用的最多的ADO.NET事务处理,然后我们逐渐扩大事务处理范围,包括对分布式事务处理的使用,多线程事务处理的使用. 数据库事务处理 数据库事务处理我们基本都很熟悉了,begin Transaction --end Transactio

.NET分布式事务处理总结【下】 - 包含MSMQ的分布式事务处理

转自:http://www.cnblogs.com/daxnet/archive/2011/03/15/1984995.html .NET直接提供对MSMQ的访问支持,只需要添加System.Messaging程序集引用即可方便地操作MSMQ.MSMQ支持两种事务处理模式:内部事务处理以及基于MS-DTC的分布式事务处理. MSMQ的内部事务处理 MSMQ的内部事务处理是指,仅采用MSMQ本身提供的事务处理机制完成事务处理.比如,假设有一系列的消息需要发布到MSMQ,那么,就可以启动一个内部事务

ORA-01591: 锁被未决分布式事务处理解决方案

现场报有一个功能走不下去,后台日志报错:java.sql.SQLException: ORA-01591: 锁被未决分布式事务处理 657.7.39336 持有.    解决方案: rollback force '657.7.39336';--执行可能会比较慢 执行完成后,查询DBA_2PC_PENDING, select * from DBA_2PC_PENDING s  where s.local_tran_id='657.7.39336'; 657.7.39336 SP4GD.a6dfea

【JTA】JTA允许应用程序执行分布式事务处理

JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据.JDBC驱动程序的JTA支持极大地增强了数据访问能力. http://baike.baidu.com/link?url=SNKjFH-_gd0t4CYnCC_h-yHP9DvgQS6urhSe8ewwAUBm7yfjfR-7f7CM0Aha9WFP1-1YaRmN_lwOuJhrwl5mBa

ORA-02049: 超时: 分布式事务处理等待锁

java.sql.SQLSyntaxErrorException: ORA-02049: 超时: 分布式事务处理等待锁 ORA-06512: 在 "HECDEV.BGT_JOURNAL_BALANCE_PKG", line 107 ORA-06512: 在 "HECDEV.BGT_JOURNAL_BALANCE_PKG", line 902 ORA-06512: 在 "HECDEV.BGT_JOURNAL_BALANCE_PKG", line 1

分布式事务处理方案,微服事务处理方案

微服事务处理方案(分布式事务处理方案) 1. 什么是事务由一组操作构成的可靠. 独立的工作单元.事务具有以下特点:?Atomicity(原子性)?Consistency(一致性)?Isolation(隔离性)?Durability(持久性) 2.事务的一致性单体应用可以在数据库的事物管理器中获得强一致性,这种本地事物可靠简单.而在微服或者SOA的场景下,我们的本地事物就不作用了.对于分布式系统 Google 提出 CAP定理 ,分布式的事物只能同时拥有以下三项中的两个:?Consistency(