spring事务一次完整流程,创建 》确认获取连接 》完成 》提交》释放链接

DataSourceTransactionManager

//Step1. 进入业务方法前,依据事物切面创建事务对象

2019-07-06 22:34:24,819 [main] DEBUG o.s.j.d.DataSourceTransactionManager - Creating new transaction with name [com.sample.service.CompanyServiceImpl.addCompany]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT

//Step2. 获取数据库连接,这里是配置了从c3p0连接池中获取

2019-07-06 22:34:25,292 [main] DEBUG o.s.j.d.DataSourceTransactionManager - Acquired Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@97e93f1 [wrapping: com.mysql.jdbc.JDBC4Connection@5a5a729f]] for JDBC transaction
2019-07-06 22:34:25,292 [C3P0PooledConnectionPoolManager[identityToken->1hge138a31jetm9i12oidyb|383bfa16]-HelperThread-#1] TRACE c.m.v.resourcepool.BasicResourcePool - trace com.mchange.v2.resourcepool.BasicResourcePool@491b9b8 [managed: 2, unused: 1, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@6e3a9bce)
2019-07-06 22:34:25,292 [C3P0PooledConnectionPoolManager[identityToken->1hge138a31jetm9i12oidyb|383bfa16]-HelperThread-#1] TRACE c.m.v.resourcepool.BasicResourcePool - decremented pending_acquires: 1
2019-07-06 22:34:25,292 [C3P0PooledConnectionPoolManager[identityToken->1hge138a31jetm9i12oidyb|383bfa16]-HelperThread-#1] TRACE c.m.v.resourcepool.BasicResourcePool - Acquisition series terminated successfully. Decremented pending_acquires [1], attempts_remaining: 30

//这里是因为我们设置了手动提交事务,,之后就会之行具体业务方法
2019-07-06 22:34:25,294 [main] DEBUG o.s.j.d.DataSourceTransactionManager - Switching JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@97e93f1 [wrapping: com.mysql.jdbc.JDBC4Connection@5a5a729f]] to manual commit

//Step3. 完成事务,jdbc commit;之后触发各种监听事件,时序为 beforeCommit --> beforeCompletion --> afterCommit -->afterCompletion

2019-07-06 22:34:25,320 [main] TRACE o.s.t.i.TransactionInterceptor - Completing transaction for [com.sample.service.CompanyServiceImpl.addCompany]
2019-07-06 22:34:25,320 [main] TRACE o.s.j.d.DataSourceTransactionManager - Triggering beforeCommit synchronization
2019-07-06 22:34:25,320 [main] TRACE o.s.j.d.DataSourceTransactionManager - Triggering beforeCompletion synchronization
2019-07-06 22:34:25,320 [main] DEBUG o.s.j.d.DataSourceTransactionManager - Initiating transaction commit
2019-07-06 22:34:25,320 [main] DEBUG o.s.j.d.DataSourceTransactionManager - Committing JDBC transaction on Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@97e93f1 [wrapping: com.mysql.jdbc.JDBC4Connection@5a5a729f]]
2019-07-06 22:34:25,366 [main] TRACE o.s.j.d.DataSourceTransactionManager - Triggering afterCommit synchronization

2019-07-06 22:34:25,366 [main] TRACE o.s.t.s.TransactionSynchronizationManager - Clearing transaction synchronization
2019-07-06 22:34:25,367 [main] TRACE o.s.j.d.DataSourceTransactionManager - Triggering afterCompletion synchronization

//Step4. 释放连接,归还连接到连接池
2019-07-06 22:34:25,367 [main] TRACE o.s.t.s.TransactionSynchronizationManager - Removed value [org.springframework.jdbc.datasource.ConnectionHolder@5340477f] for key [com.mchange.v2.c3p0.ComboPooledDataSource[ identityToken -> 1hge138a31jetm9i12oidyb|383bfa16, dataSourceName -> 1hge138a31jetm9i12oidyb|383bfa16 ]] from thread [main]
2019-07-06 22:34:25,368 [main] DEBUG o.s.j.d.DataSourceTransactionManager - Releasing JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@97e93f1 [wrapping: com.mysql.jdbc.JDBC4Connection@5a5a729f]] after transaction

从日志记一次Spring事务完整流程的更多相关文章

  1. 记一次 Spring 事务配置踩坑记

    记一次 Spring 事务配置踩坑记 问题描述:(SpringBoot + MyBatisPlus) 业务逻辑伪代码如下.理论上,插入数据 t1 后,xxService.getXxx() 方法的查询条 ...

  2. 关于spring 事务 和 AOP 管理事务和打印日志问题

    关于spring 事务 和 AOP 管理事务和打印日志问题 1. 就是支持事务注解的(@Transactional) . ​ 可以在server层总使用@Transactional,进行方法内的事务管 ...

  3. Spring事务传播机制

    Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播,即协调已经有事务标识的方法之间的发生调用时的事务 ...

  4. Spring事务异常回滚,捕获异常不抛出就不会回滚(转载) 解决了我一年前的问题

    最近遇到了事务不回滚的情况,我还考虑说JPA的事务有bug? 我想多了.......    为了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是这边情况来了,当这个方法异常 ...

  5. Spring事务源码阅读笔记

    1. 背景 本文主要介绍Spring声明式事务的实现原理及源码.对一些工作中的案例与事务源码中的参数进行总结. 2. 基本概念 2.1 基本名词解释 名词 概念 PlatformTransaction ...

  6. Spring(二十二):Spring 事务

    事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性. 事务就是一系列的动作,它们被当做一个单独的工作单元.这些动作要么全部完成,要么全部不起作用. 事务的是四个关键 ...

  7. Spring事务原理分析--手写Spring事务

    一.基本概念和原理 1.Spring事务 基于AOP环绕通知和异常通知的 2.Spring事务分为编程式事务.声明事务.编程事务包括注解方式和扫包方式(xml) Spring事务底层使用编程事务(自己 ...

  8. Spring事务专题(三)事务的基本概念,Mysql事务处理原理

    前言 本专题大纲: 我重新整理了大纲,思考了很久,决定单独将MySQL的事务实现原理跟Spring中的事务示例分为两篇文章,因为二者毕竟没有什么实际关系,实际上如果你对MySQL的事务原理不感兴趣也可 ...

  9. 面试突击87:说一下 Spring 事务传播机制?

    Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的. 既然是"事务传播",所以事务的数量应该在两个或两个以上,Spring 事务传播机制的 ...

  10. 一天十道Java面试题----第四天(线程池复用的原理------>spring事务的实现方式原理以及隔离级别)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 31.线程池复用的原理 32.spring是什么? 33.对Aop的理解 34.对IOC的理解 35.BeanFactor ...

随机推荐

  1. 全国产!瑞芯微RK3568J/RK3568B2工业核心板规格书

    核心板简介 创龙科技SOM-TL3568是一款基于瑞芯微RK3568J/RK3568B2处理器设计的四核ARM Cortex-A55全国产工业核心板,每核主频高达1.8GHz/2.0GHz.核心板CP ...

  2. 【Error】mysql的error.log中ranges: 268 max_threads: 4 split: 268 depth: 2是什么意思?

    2021-12-08T09:36:39.612332+08:00 44213799 [Note] [MY-011825] [InnoDB] Parallel scan: 4 2021-12-08T09 ...

  3. ARC108C

    考虑一颗树怎么染色. 每个子节点染成边的颜色,如果与父亲节点相同,就随便染色(这条边的限制已经被父亲节点满足). 那么一定可以染色. 所以把原图跑最小生成树再按上述方法染色即可. 倘若原图不连通,那么 ...

  4. CF911G 题解

    考虑分块. 如果你做过未来日记就会知道一个很明显的做法--值域并查集. 先考虑整块: 块内没有 \(x\) 则跳过本次操作. 块内有 \(x\) 没有 \(y\) 则令 \(fa[x] = y\) 块 ...

  5. SpringBoot集成日志框架

    springboot默认日志是打印在console中,不会保存在文件中.我们项目上线肯定要保存日志用于分析问题的. 使用xml配置日志保存 并不需要pom配置slf4j依赖,starter里面已经配置 ...

  6. Vue 的父组件和子组件生命周期钩子函数执行顺序?

    https://www.cnblogs.com/thinheader/p/9462125.html 参考连接 Vue 的父组件和子组件生命周期钩子函数执行顺序可以归类为以下 4 部分: 加载渲染过程 ...

  7. 洛谷P1176

    #include<iostream> #include<utility> using namespace std; typedef long long ll; #define ...

  8. SpringCloud 微服务简介

    一.认识微服务随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构.这些架构之间有怎样的差别呢? 1.单体架构:将业务的所有功能集中在一个项目中开发,打成一 ...

  9. 【漏洞分析】Li.Fi攻击事件分析:缺乏关键参数检查的钻石协议

    背景信息 2024 年 7 月 16日,Li.Fi 协议遭受黑客攻击,漏洞成因是钻石协议中 diamond 合约新添加的 facet 合约没有对参数进行检查,导致 call 函数任意执行.且 diam ...

  10. JavaScript 常用 Web APIs

    Web APIs Web APIs DOM 页面文档对象模型 DOM 树 获取元素 事件 监听事件 事件解绑 操作元素 样式属性操作 结点操作 结点关系 创建节点 DOM 事件流 事件对象 常用鼠标事 ...