我有用于开发的MSSQL Server Linux docker镜像,我需要在这个实例上启用XA事务,我搜索了很多,但我找到的所有教程只显示了如何从Windows机器,没有Linux。
那么如何从命令行启用XA事务,或者是否有配置文件。
答案 0 :(得分:1)
在用于Linux的SQLServer 2016和2017中,无法使用XA事务。从SqlServer 2019 for Linux开始(在撰写本文时为预览),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'