zoukankan      html  css  js  c++  java
  • TX-LCN5.0.2分布式事务框架源码分析-关键线索罗列-txc部分

    1、注解TxcTransaction
    2、在其注解接口附近查找aop配置:TransactionAspect
    3、runTransaction是在执行事务业务代码时的包装逻辑
    4、transactionServiceExecutor.transactionRunning(info);
    5、获取本地分布式事务控制器 loadDTXLocalControl找到TxcRunningTransaction
    6、根据注解和切面配置,resolvePropagationState返回是DTXPropagationState.JOIN
    7、DTXServiceExecutor dtxLocalControl.doBusinessCode(info),直接线索中断
    8、回到刚才切面所在的包,发现还有DataSourceAspect,对数据库连接进行了替换,非常重要,先看看连接的接口有什么东西,想想我们的jdbc写法也是弄一个连接,然后调用其中的各种方法
    9、
    DTXResourceWeaver 对获取db连接进行了封装,其中有执行sql的相关动作改写
    txLcnBeanHelper.loadTransactionResourceProxy(transactionType);
    找到transaction_txc TxcTransactionResourceProxy执行的proxyConnection,继续进入方法
    10、查看ConnectionWrapper其中的commit rollback等对原始的数据库连接进行了替换,有用到jdbcEventListener,分析listener
    11、找到ConnectionHelper其中注入的CompoundJdbcEventListener,这个bean在类名上已经进行了标记,里面用的P6spyJdbcEventListener实际上是TxcJdbcEventListener
    12、随便看个update 63行看看拦截的处理sqlExecuteInterceptor.preUpdate((Update) statement);粗看其中的代码,有一段前置准备,最后96行txcService.resolveUpdateImage(updateImageParams);
    13、粗看resolveUpdateImage其中代码,就是对影响范围进行分析,然后保留undo数据(195行方法内部162行)
    14、到此基本我们可以验证之前的txc的理论,刚才部分分析比较粗略,大家有时间可以自己细看

  • 相关阅读:
    课程引言作业一
    多态与异常处理动手动脑
    大道至简第七八章阅读笔记
    继承与接口动手动脑
    大道至简第六章阅读笔记
    数组课后作业
    第5章 Linux网络编程基础
    第六章 高级I/O函数
    第4章 TCP/IP通信案例:访问Internet上的Web服务器
    第3章 TCP协议详解
  • 原文地址:https://www.cnblogs.com/flying607/p/11393014.html
Copyright © 2011-2022 走看看