为MSSQL Server docker映像启用XA事务

我有MSSQL服务器Linux Docker映像,我用于开发,我需要在这个实例上启用XA事务,我搜索了很多,但我找到的所有教程都只显示了如何从一台Windows机器上,而不是Linux上执行。
因此,如何从命令行启用xa事务,或者是否有相应的配置文件。


最佳答案:

在sqlserver 2016和2017 for linux中,不可能使用xa事务。从sqlserver2019forlinux开始(在编写时预览),distributed transaction support has been added

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

然后您应该能够enable the JDBC XA support使用:
EXEC sp_sqljdbc_xa_install

用户需要具有以下权限:
 use master;
 sp_grantdbaccess 'myuser', 'myuser';
 EXEC sp_addrolemember [SqlJDBCXAUser], 'myuser'