当前位置:网站首页>Talk about the SQL server version of DTM sub transaction barrier function
Talk about the SQL server version of DTM sub transaction barrier function
2022-07-04 05:22:00 【catcherwong】
background
I wrote two articles on how to use it C# be based on DTM Make it easy SAGA and TCC Of distributed transactions , There is a sub transaction barrier function , Good handling of null compensation 、 Hang 、 Repeated requests and other abnormal problems .
But the previous examples are based on mysql Of , It was asked if other databases were supported .
Obviously this is supported , Relational databases , except mysql, And support pgsql and sql server .
Some existing systems , There must be a lot more based on sql server Developed , If this batch of systems want to access DTM, There is no need to move the database first and then access .
So next , Lao Huang will take you through the experience based on sql server Version of DTM Sub transaction barrier function .
The example will be based on the previous SAGA Examples of transformation .
Sub transaction barrier table
Use the sub transaction barrier first , It is essential to prepare a sub transaction barrier table , So this sub transaction barrier table should be placed under the database of that instance ?
All you need to do here is make sure , The business data to be operated and the sub transaction barrier can be in the same local transaction .
The following is for SQL Server Table of SQL.
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N’[dbo].[barrier]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
BEGIN
DROP TABLE [dbo].[barrier]
END
GO
CREATE TABLE [dbo].[barrier]
(
[id] bigint NOT NULL IDENTITY(1,1) PRIMARY KEY,
[trans_type] varchar(45) NOT NULL DEFAULT(''),
[gid] varchar(128) NOT NULL DEFAULT(''),
[branch_id] varchar(128) NOT NULL DEFAULT(''),
[op] varchar(45) NOT NULL DEFAULT(''),
[barrier_id] varchar(45) NOT NULL DEFAULT(''),
[reason] varchar(45) NOT NULL DEFAULT(''),
[create_time] datetime NOT NULL DEFAULT(getdate()) ,
[update_time] datetime NOT NULL DEFAULT(getdate())
)
GO
CREATE UNIQUE INDEX[ix_uniq_barrier] ON[dbo].[barrier]
([gid] ASC, [branch_id] ASC, [op] ASC, [barrier_id] ASC)
WITH(IGNORE_DUP_KEY = ON)
GO
Copy code The key here is the unique index , There is one IGNORE_DUP_KEY = ON. This is actually for equivalence mysql Of insert ignore.
In fact, the preparatory work has already been completed here .
Here is an example after the transformation , Not much to do , Just switch some configurations .
Switch configuration
To be in InApi Which specifies the sub transaction barrier Database type and Custom table name .
Perform the following configuration before startup
// Appoint Sub transaction barrier The database type is sql server
Dtmcli.DtmImp.DbSpecialDelegate.Instance.SetCurrentDBType("sqlserver");
// Appoint Table name of the sub transaction barrier table
Dtmcli.BranchBarrier.SetBarrierTableName("[test].[dbo].[barrier]");
Copy code For the table name , Lao Huang suggested adding the name of the library .
PS: This setting should be put into the configuration file later , At this stage, it is basically to maintain and go The version is written in a similar way .
Last but not least is to change the connection string and SqlConnection 了 .
public class Db
{
private static readonly string _conn = "Data Source=127.0.0.1, 1433;Initial Catalog=test;user id=dev;password=123456;TrustServerCertificate=True;";
public static DbConnection GeConn() => new Microsoft.Data.SqlClient.SqlConnection(_conn);
}
Copy code Come here , All the transformation has been completed . Let's take a look at the specific example demonstration .
Example demonstration
Here's a demonstration of Talk about how to use it C# Easily complete a SAGA Distributed transactions There are two problems: null compensation and idempotence .
Let's look at the short compensation .
Let's look at idempotent
The log output and behavior effect are basically consistent .
Finally, look at the data in the database
At the end
In this article , Describes how to use in the sub transaction barrier SQL Server As underlying storage . I hope it will be helpful for you to study distributed transactions .
Sample code of this article : DtmMsSqlSample
Reference material
Follow my public number 「 No, Lao Huang 」, I will share what Lao Huang has seen and heard with you for the first time .
边栏推荐
- 模拟小根堆
- laravel 中获取刚刚插入的记录的id
- June 2022 summary
- Flink1.13 SQL basic syntax (I) DDL, DML
- flink1.13 sql基础语法(一)DDL、DML
- Easy change
- Notepad++ -- display related configurations
- 2022 a special equipment related management (elevator) examination questions simulation examination platform operation
- 【QT】制作MyComboBox点击事件
- Etcd database source code analysis - initialization overview
猜你喜欢

Flutter calls Gaode map app to realize location search, route planning and reverse geocoding

Capturing and sorting out external Fiddler -- Conversation bar and filter

Principle and practice of common defects in RSA encryption application

How to build your own knowledge engine? Community open application

2022G2电站锅炉司炉特种作业证考试题库及答案

空洞卷积、可变形卷积、可变形ROI Pooling

Zhongke panyun-2022 Guangdong Trojan horse information acquisition and analysis

KMP match string

Flutter ‘/usr/lib/libswiftCore. dylib‘ (no such file)

2022危险化学品经营单位安全管理人员上岗证题库及答案
随机推荐
Zhongke Panyun - data analysis and forensics packet flag
Capturing and sorting out external Fiddler -- Conversation bar and filter
【QT】制作MyComboBox点击事件
C语言简易学生管理系统(含源码)
Public inputs in appliedzkp zkevm (13)
[matlab] matlab simulates digital baseband transmission system eye diagram of bipolar baseband signal (cosine roll off forming pulse)
Detailed comparison of Hynix emmc5.0 and 5.1 series
Useful plug-ins for vscode
Signification des lettres du module optique et abréviation des paramètres Daquan
[matlab] matlab simulation modulation system - DSB system
2022 a special equipment related management (elevator) examination questions simulation examination platform operation
Annex III: scoring standard of the defender docx
Download kicad on Alibaba cloud image station
[matlab] matlab simulates digital bandpass transmission systems - QPSK and OQPSK systems
[interested reading] advantageous filtering modeling on long term user behavior sequences for click through rate pre
Void convolution, deformable convolution, deformable ROI pooling
Two sides of the evening: tell me about the bloom filter and cuckoo filter? Application scenario? I'm confused..
[paper summary] zero shot semantic segmentation
NTFS security permissions
IP时代来临,电竞酒店如何借好游戏的“东风”?