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的理论,刚才部分分析比较粗略,大家有时间可以自己细看

  • 相关阅读:
    菜鸟学存储:网络存储IP SAN与IB SAN
    读xml高手
    预先加载图片
    xred520
    最简单准确的硬盘整数分区设置操作方法
    Google 每天处理约 20000TB 的数据
    IE 8 无法正常使用网站后台编辑器问题
    常用的JS技术1
    adodb stream 使用说明
    [Tools] JDGUI(Java Decompiler)
  • 原文地址:https://www.cnblogs.com/flying607/p/11393014.html
Copyright © 2011-2022 走看看