Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 为MSSQL服务器docker映像启用XA事务_Sql Server_Linux_Sql Server 2016 - Fatal编程技术网

Sql server 为MSSQL服务器docker映像启用XA事务

Sql server 为MSSQL服务器docker映像启用XA事务,sql-server,linux,sql-server-2016,Sql Server,Linux,Sql Server 2016,我有用于开发的MSSQL Server Linux docker映像,我需要在这个实例上启用XA事务,我搜索了很多,但我找到的所有教程都只显示了如何在windows机器上实现这一点,没有Linux 那么,如何从命令行启用XA事务,或者是否有相应的配置文件 在SQLServer2016和2017 Linux版中,不可能使用XA事务。从SQLServer2019forLinux开始(在撰写本文时的预览版中) 用户需要具有以下权限: use master; sp_grantdbaccess 'my

我有用于开发的MSSQL Server Linux docker映像,我需要在这个实例上启用XA事务,我搜索了很多,但我找到的所有教程都只显示了如何在windows机器上实现这一点,没有Linux


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

在SQLServer2016和2017 Linux版中,不可能使用XA事务。从SQLServer2019forLinux开始(在撰写本文时的预览版中)

用户需要具有以下权限:

 use master;
 sp_grantdbaccess 'myuser', 'myuser';
 EXEC sp_addrolemember [SqlJDBCXAUser], 'myuser'

XA事务似乎依赖于分布式事务协调器服务(MSDTC)。这是一个独立于SQL Server的Windows服务。我找不到任何权威文档,但我怀疑MSDTC在preview 1中是否可以作为Linux守护进程使用(而且可能永远不会)。您几乎肯定需要在Windows VM(而不是Docker)中运行SQL Server才能使用XA事务。感谢Ed,感谢您的帮助。最后我确实使用了一个虚拟机。它终于被添加了,一切都应该在Ubuntu 18.04中运行。不过,我不知道如何找到这些图像。参考:对于任何人来评论:他们可以在非常好的补充,否则难以理解的文章上面链接。帮了我很多忙。也许对于像我这样的外行来说:我花了一段时间才发现服务器的docker端口映射是51433,而不是连接中使用的标准1433,而且您需要使用像dbeaver这样的客户机登录服务器才能运行脚本。
EXEC sp_sqljdbc_xa_install
 use master;
 sp_grantdbaccess 'myuser', 'myuser';
 EXEC sp_addrolemember [SqlJDBCXAUser], 'myuser'