Sharding-JDBC 最大努力型事务理解。java
看的的1.5.4版本 最新的2.x版本git
demo查看github
https://github.com/shardingjdbc/sharding-jdbc/blob/1.5.4/sharding-jdbc-example/sharding-jdbc-example-jdbc-transaction/src/main/java/com/dangdang/ddframe/rdb/sharding/example/transaction/Main.javasql
须要硬编码数据库
SoftTransactionManager transactionManager=new SoftTransactionManager(getSoftTransactionConfiguration(dataSource));
transactionManager.init();
BEDSoftTransaction transaction = (BEDSoftTransaction transactionManager.getTransaction(SoftTransactionType.BestEffortsDelivery);异步
。。。编码
逻辑大体是将执行的sql记录日志到数据库中,失败了在读出来重复执行,成功了删除,直到必定的重试次数日志
若是仍是失败 使用elastic-job异步的执行,事务
还失败,保留事务日志,人工处理,get