为 MSSQL Server docker 镜像启用 XA 事务

J.D*_*Doe 3 linux sql-server sql-server-2016

我有用于开发的 MSSQL Server Linux docker 映像,我需要在此实例上启用 XA 事务,我进行了大量搜索,但我找到的所有教程仅展示了如何从 Windows 机器执行此操作,没有在 Linux 上执行此操作。

那么如何从命令行启用 XA 事务,或者是否有相应的配置文件。

小智 7

在 SQLServer 2016 和 2017 for Linux 中,无法使用 XA 事务。从 SqlServer 2019 for Linux(在撰写本文时为预览版)开始,添加了分布式事务支持

docker run \
   -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \
   -e 'MSSQL_RPC_PORT=135' -e 'MSSQL_DTC_TCP_PORT=51000' \
   -p 51433:1433 -p 135:135 -p 51000:51000  \
   -d mcr.microsoft.com/mssql/server:2019-CTP2.3-ubuntu
Run Code Online (Sandbox Code Playgroud)

然后,您应该能够通过以下方式启用 JDBC XA 支持

EXEC sp_sqljdbc_xa_install
Run Code Online (Sandbox Code Playgroud)

用户需要具有以下权限:

 use master;
 sp_grantdbaccess 'myuser', 'myuser';
 EXEC sp_addrolemember [SqlJDBCXAUser], 'myuser'
Run Code Online (Sandbox Code Playgroud)