当前位置:网站首页>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 .
边栏推荐
- [technology development -25]: integration technology of radio and television network, Internet, telecommunication network and power grid
- Several smart watch related chips Bluetooth chip low power consumption
- Redis realizes ranking function
- Customize a pager needed in your project
- Electronic components mall and data manual download website summary
- [matlab] matlab simulates digital bandpass transmission system ask, PSK, FSK system
- [matlab] general function of communication signal modulation bandpass filter
- [matlab] matlab simulation modulation system FM system
- [untitled]
- 2022广东省赛——编码信息获取 解析flag
猜你喜欢
Ping port artifact psping
[interested reading] advantageous filtering modeling on long term user behavior sequences for click through rate pre
The data mark is a piece of fat meat, and it is not only China Manfu technology that focuses on this meat
Appearance of LabVIEW error dialog box
NTFS security permissions
补某视频网站的js,进行视频解密
【兴趣阅读】Adversarial Filtering Modeling on Long-term User Behavior Sequences for Click-Through Rate Pre
如何使用postman实现简单的接口关联【增删改查】
2022 t elevator repair operation certificate examination question bank and simulation examination
Customize a pager needed in your project
随机推荐
[matlab] communication signal modulation general function - low pass filter
Build an Internet of things infrared temperature measuring punch in machine with esp32 / rush to work after the Spring Festival? Baa, no matter how hard you work, you must take your temperature first
[matlab] matlab simulates digital baseband transmission system eye diagram of bipolar baseband signal (cosine roll off forming pulse)
Public inputs in appliedzkp zkevm (13)
When using flash to store parameters, the code area of flash is erased, which leads to the interrupt of entering hardware error
【兴趣阅读】Adversarial Filtering Modeling on Long-term User Behavior Sequences for Click-Through Rate Pre
2022 a special equipment related management (elevator) examination questions simulation examination platform operation
中科磐云—数据分析与取证数据包flag
IP时代来临,电竞酒店如何借好游戏的“东风”?
[matlab] matlab simulation modulation system SSB system
[technology development -25]: integration technology of radio and television network, Internet, telecommunication network and power grid
Notes on the paper "cross view transformers for real time map view semantic segmentation"
Flutter ‘/usr/lib/libswiftCore. dylib‘ (no such file)
[paper summary] zero shot semantic segmentation
[matlab] matlab simulation modulation system - VSB system
KMP match string
Flink1.13 SQL basic syntax (I) DDL, DML
[high concurrency, high performance and high availability of massive data MySQL practice-7] - memory data drop disk
拓扑排序和关键路径的图形化显示
Unity is connected to the weather system