首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏玩转JavaEE

    分布式事务处理方案 PK!

    事务中间结果可见性允许安全放宽 持久性:严格遵循 柔性事务有不同的分类,不过基本上都可以看作是分布式事务的解决方案: 两阶段型:分布式事务二阶段提交,对应技术上的 XA、JTA/JTS,这是分布式环境下事务处理的典型模式 XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准。 需要定义正常操作以及补偿操作(回滚),开发量工作量比 XA 。 132895.html https://cloud.tencent.com/developer/article/1860632 https://zh.m.wikipedia.org/zh-hans/CAP%E5%

    52010编辑于 2022-06-13
  • 来自专栏Java知识点

    Spring5学习笔记Spring事务处理

    事务属性包含了 5 个方面: 隔离级别 传播行为 回滚规则 是否只读 事务超时 TransactionDefinition 接口中定义了 5 个方法以及一些表示事务属性的常量比如隔离级别、传播行为等等 传播属性(PROPAGATION) 传播属性的概念: 概念:他描述了事务解决嵌套问题的特征 什么叫做事务的嵌套:他指的是一个的事务中,包含了若干个小的事务 问题:大事务中融入了很多小的事务, 他们彼此影响,最终就会导致外部的事务,丧失了事务的原子性 传播属性的值极其用法: | 传播属性的值 | 外部不存在事务 | 外部存在事务 | 用法 等待时间 秒 如何应用 @Transactional (timeout=2) 超时属性的默认值 -1 最终由对应的数据库来指定 # 5. 异常属性 Spring 事务处理过程中 默认 对于 RuntimeException 及其子类 采用的是回滚的策略 默认 对于 Exception 及其子类 采用的是提交的策略 rollbackFor

    37520编辑于 2023-09-09
  • 来自专栏开源部署

    事务处理

    1.2、事务的四特性(ACID) 原子性(Atomicity):事务中所有操作是不可再分割的原子单位。事务中所有操作要么全部执行成功,要么全部执行失败。 事务2:李四查看自己的账户 l t1:事务1:开始事务 l t2:事务1:张三给李四转账100元 l t3:事务2:开始事务 l t4:事务2:李四查看自己的账户,看到账户多出100元(脏读) l t5: 酒店查看两次1048号房间状态 事务2:预订1048号房间 l t1:事务1:开始事务 l t2:事务1:查看1048号房间状态为空闲 l t3:事务2:开始事务 l t4:事务2:预定1048号房间 l t5: 对酒店房间预订记录两次统计 事务2:添加一条预订房间记录 l t1:事务1:开始事务 l t2:事务1:统计预订记录100条 l t3:事务2:开始事务 l t4:事务2:添加一条预订房间记录 l t5: 不可重复读和幻读的区别 l 不可重复读是读取到了另一事务的更新; l 幻读是读取到了另一事务的插入(MySQL中无法测试到幻读); 4.3、四隔离级别 4个等级的事务隔离级别,在相同数据环境下,使用相同的输入

    74710编辑于 2022-09-14
  • 来自专栏全栈程序员必看

    Springboot事务处理

    目录 一、事务处理 1、springboot事务介绍 2、springboot事务使用 二、全局事务 三、扩展 ---- 一、事务处理 1、springboot事务介绍 Spring采用统一的机制来处理不同的数据访问技术的事务 可以显形标记在参数里,下图标红的就是先进行查看用户有指定的异常,如果没有,就默认上一条的异常,参数格式:@Transactional(rollbackFor={Exception.class}) 5、 catch里抛出一个runntimeException 3) 将异常写入注解参数里面,也需要抛出来,原理跟方法2一样的,只是重新指定了事务回滚的异常类型 二、全局事务 采用Aop对项目进行全局异常事务处理

    1K20编辑于 2022-06-27
  • 来自专栏快乐阿超

    CompletableFuture事务处理

    使用CompletableFuture进行异步任务编排时,可能会有事务的支持需求,我们这里可以使用之前我写的手动回滚、提交事务进行处理

    1.9K60编辑于 2022-12-11
  • 来自专栏全栈程序员必看

    TransactionScope事务处理

    在我们日常开发的时候,有时候程序需要使用到事务,就比如,我们日常最熟悉的一个流程,那么就是银行的取款,当用户从ATM机器选择取款1000元的时候,恰巧这个时候如果停电,如果没有事务那么将会出现不堪设想的后果,银行都会倒闭。 最近在开发一个功能,需要根据单据的信息生成2张单据,要么全部保存,要么都保存失败,做到事务的一致性、原子性,一开始我想到的是SQL和存储过程级别的事务,但是好像按照当前的系统的业务逻辑,这个方法的底层还是拼接SQL语句,后面又想着使用C#的ADO.NET级别的事务,根据数据生成sql,但是最后并不认可这种做法。

    57810编辑于 2022-09-09
  • 来自专栏Hongten

    SQL SERVER事务处理

    COMMIT TRAN T1 BEGIN DISTRIBUTED TRANSACTION 指定一个由 Microsoft 分布式事务处理协调器 (MS DTC) 管理的 Transact-SQL 分布式事务的起始 ) COMMIT TRAN GO SET XACT_ABORT ON GO BEGIN TRAN INSERT INTO t2 VALUES (4) INSERT INTO t2 VALUES (5) ) values('lis',1) rollback transaction -- 在 Create table demo2 时 SQL Server 已经隐式创建一个Trans,知道提交或回滚 嵌套事务处理 ) values('lis',2) commit transaction t1 SQL Server 的隔离级别: 1: 设置TimeOut 参数 Set Lock_TimeOut 5000 被锁超时5秒将自动解锁

    2.3K20发布于 2018-09-18
  • 来自专栏菜鸟成长学习笔记

    MySQL事务处理操作

    持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失.

    1.1K40发布于 2019-08-02
  • 来自专栏全栈程序员必看

    Spring Batch事务处理

    batch:chunk> 跳过数据量或者跳过策略不满足时候,step失败,job失败 a、ItemProcessor处理中跳过 事务回滚,失败条目在缓存标志为跳过,并重新开启一个事务处理缓存中的条目

    2.1K21编辑于 2022-08-27
  • 来自专栏技术碎碎念

    sql server 事务处理

    例如: 1 use test 2 go 3 4 /*启动一个事务向student表中插入一个记录*/ 5 begin transaction 6 insert into student 1 /*启动一个事务向student表中删除一个记录,然后回滚该事务*/ 2 begin transaction 3 delete student where sno=100 4 rollback 5 5 insert into student values(200,'王洪','男',22) --插入另一个学生的记录 6 rollback transaction s1 --事务回滚到保存点s1 */ 3 set nocount on 4 print cast(@@trancount as char(5)) 5 create table table1(a int) 6 insert table1 values(1) 7 go 8 print cast(@@trancount as char(5)) 9 10 print '使用显式事务' 11 begin tran 12 insert

    2.7K80发布于 2018-04-09
  • 来自专栏第三方工具

    Java大事务处理

    Java大事务处理 1.少用@Transactional注解,可以使用编程式事务 2.将查询(select)方法放到事务外,事务失效原因:spring aop需要生成代理对象,直接方法调用使用的还是原始对象 Service方法 2.在该Service类中注入自己 3.在该Service类中使用AopContext.currentProxy()获取代理对象 3.事务中避免远程调用 4.事务中避免一次性处理太多数据 5. 分页处理 5.非事务执行 在使用事务之前,我们都应该思考一下,是不是所有的数据库操作都需要在事务中执行? Service方法 2.在该Service类中注入自己 3.在该Service类中使用AopContext.currentProxy()获取代理对象 3.事务中避免远程调用 4.事务中避免一次性处理太多数据 5.

    33500编辑于 2024-11-21
  • 来自专栏Java架构师必看

    Spring–事务处理–速览

    Spring事务处理 事务处理,事务隔离 @Transactional事务处理 Spring事务传播行为 事务传播行为 指的是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行. 4.REQUIRES_NEW 总是开启一个新的事务,如果一个事务已经存在,则将这个存在的事务挂起 当A调用B方法的时候, A已经创建了一个事务,进入到B方法的时候,则会创建一个新的事务为事务B 5.

    37320发布于 2021-05-14
  • 来自专栏鸿的学习笔记

    闲话聊聊事务处理(中)

    在实践中,这个并不容易做到,完美的隔离性要付出相当的性能代价,所以大多数的数据库提出了Weak Isolation Level的概念,虽然弱化版的隔离性还是会导致各种潜在的问题,但是这个代价相对于性能的巨大提升是可以接受的 初看之下,这个似乎没什么的问题,只要retry,数据便会正常了,但是我们要注意到遇上某些情况,Read Skew这种暂时状态便会无法令人接受了。

    54820发布于 2018-08-06
  • 来自专栏Alone88

    PHP+Mysqli 事务处理

    MYSQL php PHP+Mysqli 事务处理 php+mysqli 事物处理 事物就是如果两条或多条数据只要有一条SQL语句错误,那么已经执行成功的执行回滚操作,把已经生效的SQL语句回滚为原来的值 原来有100元,B也有100元,A向B转账50元,那么就要执行两条SQL语句,一个是A的余额要减50,B的余额要加50, 如果第一条语句成功了,但是第二条语句失败了,那么就会丢失数据了,这个时候就需要事务处理

    1.4K10发布于 2019-10-22
  • 来自专栏代码人生

    事务处理(一) - spring事务

    Spring是通过org.springframework.transaction.PlatformTransactionManager接口来实现事务的管理。同时应对不同的场景,提供不同的PlatformTransactionManager实现类来实现管理事务。下面是常见的应用场景。

    82210发布于 2019-10-30
  • 来自专栏鸿的学习笔记

    闲话聊聊事务处理(上)

    如前面的一些文章写的,数据系统不可能保证是完全的可靠的,我们会遇上各种各样的问题,比如数据库或者应用突然崩溃,网络连接断了,并发读和并发写,诸如此类。遇上问题总不可能不解决,但是作为一个可靠的数据系统,就必须让使用者感觉不到这些问题的存在。在大数据诞生之前,这种解决方案称之为事务。那什么是事务呢?事务将一些读和写操作聚合在一个逻辑单元里,在这个逻辑单元里,所有的读和写操作都被认为是一个操作。事务有三种状态:succeed、abort和rollback。事务存在的意义在于简化了程序模型,可以让程序不再处理数据系统发生的问题,而是交由数据系统自身去解决。

    42820发布于 2018-08-06
  • YashanDB的事务处理特性

    在数据库技术领域,事务处理是保障数据完整性和一致性的重要机制。尤其在高并发环境下,如何有效管理多个事务对数据的访问和修改,是许多数据库系统面临的挑战。 在此背景下,YashanDB作为一款具备高性能、高可用性特性的数据库,提供了先进的事务处理特性来应对这一挑战。本文旨在深入探讨YashanDB的事务处理特性,帮助读者理解其设计原理和优势。1. 5. 事务自动管理YashanDB提供了事务自动管理的能力。对于每个事务,系统会自动分配唯一的事务ID,并在整个事务生命周期内管理其状态。 利用MVCC机制优化事务处理,提高系统的并发性能。合理配置事务隔离级别,以适应不同的业务场景。灵活使用锁管理,针对业务需求选择适当的行锁或表锁。定期监控事务的执行情况,及时处理异常,保障系统稳定运行。 结论YashanDB在事务处理方面展现了强大的能力,通过严格遵循ACID原则、多版本并发控制、灵活的事务隔离级别管理、精细的锁管理和高效的自动管理等特性,保障了系统数据的一致性与完整性。

    14900编辑于 2025-07-15
  • 来自专栏Java实战博客

    Spring多线程事务处理

    一个业务操作中,主线程,开启若干个子线程执行操作,每个子线程会开启自己的事务。由于事务是与数据库的会话,每个线程会开启一个会话。所以主线程的事务,与子线程无关,子线程与子线程也是无关的!所以就会引入 多线程事务问题:即:一个主线程,开启若干子线程的事务操作,保证任意子线程回滚,所有线程的事务操作都执行回滚!

    1.8K20编辑于 2022-04-11
  • 来自专栏全栈程序员必看

    并发下的事务处理

    非常多金融公司,就是因为事务处理不得当而倒闭。 我们都知道,事务有四特性:ACID。即:原子性、一致性、隔离性、持久性。 四特性 原子性 事务是数据库的逻辑单位,事务总包含的诸操作那么所有运行。 这就是事务的四特性。 隔离级别 以下,我们来详细来说一说隔离性 我们都知道,事务控制的太严格,程序在并发訪问的情况下,会减少程序的性能。 所以。人们总是想让事务为性能做出让步。 5. PROPAGATION_NOT_SUPPORTED:当前不支持事务。 2.提交阶段:假设协调者收到了參与者的失败消息或者超时,直接给每一个參与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息;參与者依据协调者的指令运行提交或者回滚操作,释放全部事务处理过程中使用的锁资源 page=5 5.事务补偿机制 像best efforts 1PC这样的模式,前提是应用程序能获取全部的数据源,然后使用同一个事务管理器(这里指是的spring的事务管理器)管理事务。

    65310编辑于 2022-07-10
  • 来自专栏JavaWeb

    分布式事务处理

    分布式事务处理         在之前的文章"如何合理的使用动态数据源"中,其实也提到了分布式事务相关的场景如:利用多数据源实现读写分离,但直接使用动态数据源频繁其实是很消耗资源的,而且就是当业务service 事务的四特性分别都是什么意思? 事务:是一组SQL组成的"逻辑处理单元"。 原子性(Atomicity):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。 解决方案:XA,可靠性消息模式,TCC,补偿模式 5.     重点来了,就是Atomikos了,Atomikos是一个为Java平台提供的开源事务管理器。

    1.2K60发布于 2018-05-15
领券