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

    r2dbc事务处理

    ——恩格斯 官方demo: https://github.com/spring-projects/spring-data-examples/blob/main/r2dbc/example/src/main /java/example/springdata/r2dbc/basics/TransactionalService.java /* * Copyright 2019-2021 the original language governing permissions and * limitations under the License. */ package example.springdata.r2dbc.basics org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.r2dbc.connection.R2dbcTransactionManager import org.springframework.transaction.reactive.TransactionalOperator; @Configuration public class R2dbcConfig

    58520编辑于 2023-10-31
  • 来自专栏玩转JavaEE

    分布式事务处理方案 PK!

    事务中间结果可见性允许安全放宽 持久性:严格遵循 柔性事务有不同的分类,不过基本上都可以看作是分布式事务的解决方案: 两阶段型:分布式事务二阶段提交,对应技术上的 XA、JTA/JTS,这是分布式环境下事务处理的典型模式 2. 分布式事务实践 2.1 XA 先来说说 XA。 XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准。 2.2 3PC 3PC 主要是为了弥补 2PC 的不足而产生的,2PC 有哪些不足呢? 需要定义正常操作以及补偿操作(回滚),开发量工作量比 XA

    52010编辑于 2022-06-13
  • 来自专栏开源部署

    事务处理

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

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

    Springboot事务处理

    目录 一、事务处理 1、springboot事务介绍 2、springboot事务使用 二、全局事务 三、扩展 ---- 一、事务处理 1、springboot事务介绍 Spring采用统一的机制来处理不同的数据访问技术的事务 rollbackFor 指定哪些异常可以导致事务回滚,默认是Throwable的子类 noRollbackFor 执行哪些异常不可用引起事务回滚,默认是Throwable的子类 2、springboot Transactional注解即可,但有时候会发现事务不生效,具体原因可以从以下几个方面找寻: 1、首先要看数据库引擎是否支持注解,mysql默认引擎INNODB是支持的,但MYISAM是不支持的; 2、 5、是否进行了异常捕获,如果使用了try–catch,事务是肯定不生效,也就是系统没有接收到异常场景; 关于使用异常捕获,还想事务生效,可以有几种策略解决相关难题: 1)手动回滚,推荐方式 2) 在catch里抛出一个runntimeException 3) 将异常写入注解参数里面,也需要抛出来,原理跟方法2一样的,只是重新指定了事务回滚的异常类型 二、全局事务 采用Aop对项目进行全局异常事务处理

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

    CompletableFuture事务处理

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

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

    TransactionScope事务处理

    最近在开发一个功能,需要根据单据的信息生成2张单据,要么全部保存,要么都保存失败,做到事务的一致性、原子性,一开始我想到的是SQL和存储过程级别的事务,但是好像按照当前的系统的业务逻辑,这个方法的底层还是拼接 TeacherBLL t = new TeacherBLL(); u.ADD(); using (TransactionScope ts2 Transaction.Current.TransactionInformation.LocalIdentifier); t.ADD(); ts2.

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

    SQL SERVER事务处理

    --nest transaction M2 BEGIN TRAN M2 WITH MARK UPDATE table2 ... COMMIT TRAN T1 BEGIN DISTRIBUTED TRANSACTION 指定一个由 Microsoft 分布式事务处理协调器 (MS DTC) 管理的 Transact-SQL 分布式事务的起始 VALUES (1) INSERT INTO t2 VALUES (2) /* Foreign key error */ INSERT INTO t2 VALUES (3) COMMIT TRAN GO table demo2 时 SQL Server 已经隐式创建一个Trans,知道提交或回滚 嵌套事务处理: 1: Trans 嵌套,将内部的trans 合并到外部并形成一个Trans. begin t2 insert into demo values('BB','B term') commit transaction t2 ----In the first trans .

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

    MySQL事务处理操作

    持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失. | admin002 | 13 | +----+----------+-----+ 2 rows in set (0.00 sec) . | admin002 | 13 | +----+----------+-----+ 2 rows in set (0.00 sec) . | admin002 | 13 | +----+----------+-----+ 2 rows in set (0.00 sec) mysql> update user set name = 2 | 12 | | 2 | admin002 | 13 | +----+----------+-----+ 2 rows in set (0.00 sec) mysql> savepoint updateUserName

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

    Spring Batch事务处理

    事务模型描述 1、step之间事务独立 2、step划分成多个chunk执行,chunk事务彼此独立,互不影响;chunk开始开启一个事务,正常结束提交 图-job 总体事务 SimpleCompletionPolicy),或者reader里面所读取的item==null,或者 满足自定义完成策略 事务提交&回滚 1、事务提交条件:chunk执行正常,未抛RuntimeExecption 2、 持久化到系统表,恢复时读取) FlatFileItemReader继承 AbstractItemCountingItemStreamItemReader类,所以 默认具备读取恢复能力 2、 batch:chunk> 跳过数据量或者跳过策略不满足时候,step失败,job失败 a、ItemProcessor处理中跳过 事务回滚,失败条目在缓存标志为跳过,并重新开启一个事务处理缓存中的条目

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

    sql server 事务处理

    2.自动提交事务:自动提交模式是SQL Server的默认事务管理模式。每个Transact-SQL语句在完成时,都被提交或回滚。如果一个语句成功地完成,则提交该语句;如果遇到错误,则回滚该语句。 例如: 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 2 使用@@trancount函数返回当前连接的活动事务数。 1800 5 print @@lock_timeout 2.

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

    Java大事务处理

    Java大事务处理 1.少用@Transactional注解,可以使用编程式事务 2.将查询(select)方法放到事务外,事务失效原因:spring aop需要生成代理对象,直接方法调用使用的还是原始对象 1.新加一个Service方法 2.在该Service类中注入自己 3.在该Service类中使用AopContext.currentProxy()获取代理对象 3.事务中避免远程调用 4.事务中避免一次性处理太多数据 2.将查询(select)方法放到事务外 如果出现大事务,可以将查询(select)方法放到事务外,也是比较常用的做法,因为一般情况下这类方法是不需要事务的。 ); addData1(); updateData2(); } 如果使用TransactionTemplate的编程式事务这里就非常好修改。 ); } } 2.在该Service类中注入自己 如果不想再新加一个Service类,在该Service类中注入自己也是一种选择。

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

    Spring–事务处理–速览

    Spring事务处理 事务处理,事务隔离 @Transactional事务处理 Spring事务传播行为 事务传播行为 指的是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行. .REQUIRED–默认传播行为 如果存在一个事务,则支持当前事务,如果没有事务则开启一个新的事务 如果当前的线程存在事务,则加入到当前线程的事务,如果当前线程没有事务则从新的创建一个新的事务 2

    37320发布于 2021-05-14
  • 来自专栏Alone88

    PHP+Mysqli 事务处理

    MYSQL php PHP+Mysqli 事务处理 php+mysqli 事物处理 事物就是如果两条或多条数据只要有一条SQL语句错误,那么已经执行成功的执行回滚操作,把已经生效的SQL语句回滚为原来的值 原来有100元,B也有100元,A向B转账50元,那么就要执行两条SQL语句,一个是A的余额要减50,B的余额要加50, 如果第一条语句成功了,但是第二条语句失败了,那么就会丢失数据了,这个时候就需要事务处理了 true:false;//查看第一条SQL语句执行状态 $mysqli->next_result()//下移指针来查看第二条SQL语句状态 $ststus__2 = $mysqli->affected_rows true:false;//第二条SQL语句状态 if($status_1 && $_status_2){//判断两条SQL语句状态,如果都为true,则提交事务,否则回滚 $mysqli-

    1.4K10发布于 2019-10-22
  • 来自专栏鸿的学习笔记

    闲话聊聊事务处理(中)

    在实践中,这个并不容易做到,完美的隔离性要付出相当的性能代价,所以大多数的数据库提出了Weak Isolation Level的概念,虽然弱化版的隔离性还是会导致各种潜在的问题,但是这个代价相对于性能的巨大提升是可以接受的 初看之下,这个似乎没什么的问题,只要retry,数据便会正常了,但是我们要注意到遇上某些情况,Read Skew这种暂时状态便会无法令人接受了。 2.如果使用自动检测并发冲突,需要真正的序列化隔离,而不是简单的判断单个的object。我们又不想锁死所有object,那么该如何解决呢? 2.两阶段锁 这是实现Serializable Isolation最为广泛的算法。 2.如果事务A想修改一个object,事务B想要读取那个object,那么事务B必须等待到A事务commit或者abort才能运行。

    54820发布于 2018-08-06
  • 来自专栏数据结构与算法

    1675 质数 2

    1675 质数 2 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 钻石 Diamond 题目描述 Description 小明因为没做作业而被数学老师罚站,之后数学老师要他回家把第 样例输入 Sample Input 233 样例输出 Sample Output 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 =0) 15 { 16 if(b%2! =0) 31 { 32 if(b%2! 45 if(n<2&&(n%2==0)) 46 { 47 return 0; 48 } 49 for(ll i=0;i<11;i++) 50 {

    60960发布于 2018-04-13
  • 来自专栏Java实战博客

    Spring多线程事务处理

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

    1.8K20编辑于 2022-04-11
  • 来自专栏代码人生

    事务处理(一) - spring事务

    .))"/> <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" order="<em>2</em>"/>

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

    闲话聊聊事务处理(上)

    2.一致性(Consistency),又是一个被用烂的词语。

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

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

    14900编辑于 2025-07-15
  • 来自专栏鸿的学习笔记

    事务处理的数据存储

    数据存储根据开发者使用,可以分为一般的事务处理和数据分析,因为这两者面临的情况不一样。事务处理聚焦于快速的存储和搜索少量的数据,但是数据分析需要读取大量的数据去进行聚合,而不怎么考虑读取花费的时间。 对于实际的工程,我们还需要考虑 1.文件存储的格式,一般而言应该是以bytes存储 2.删除数据时,应该加上一个标签,比如tombstone,在合并segment时,对数据进行删除 具体细节不多说,网上的文章一堆。我们需要考虑的是负载因子和二叉树的平衡。

    79730发布于 2018-08-06
领券