Skip to content

Commit 914252b

Browse files
Document MSDTC limitations on SQL Server for Linux (#36830)
Added limitations regarding MSDTC support on Linux, including restrictions on distributed transactions and clustered configurations.
1 parent 529d2fc commit 914252b

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

docs/linux/sql-server-linux-configure-msdtc.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: How to Configure MSDTC on Linux
33
description: In this article, learn how to configure the Microsoft Distributed Transaction Coordinator (MSDTC) on Linux.
44
author: rwestMSFT
55
ms.author: randolphwest
6-
ms.date: 01/02/2026
6+
ms.date: 03/16/2026
77
ms.service: sql
88
ms.subservice: linux
99
ms.topic: how-to
@@ -49,15 +49,15 @@ For more information, see [Understanding XA Transactions](../connect/jdbc/unders
4949

5050
Complete the following three steps to configure MSDTC communication and functionality for [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)].
5151

52-
- Configure `network.rpcport` and `distributedtransaction.servertcpport` with **mssql-conf**.
52+
- Use **mssql-conf** to configure `network.rpcport` and `distributedtransaction.servertcpport`.
5353
- Configure the firewall to allow communication on `distributedtransaction.servertcpport` and port 135.
5454
- Configure Linux server routing so that RPC communication on port 135 is redirected to the [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] instance's `network.rpcport`.
5555

5656
The following sections provide detailed instructions for each step.
5757

5858
## Configure RPC and MSDTC ports
5959

60-
Configure `network.rpcport` and `distributedtransaction.servertcpport` with **mssql-conf**. This step is specific to [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] and common across all supported distributions.
60+
Use **mssql-conf** to configure `network.rpcport` and `distributedtransaction.servertcpport`. This step applies to [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] and is common across all supported distributions.
6161

6262
1. Use **mssql-conf** to set the `network.rpcport` value. The following example sets it to 13500.
6363

@@ -148,9 +148,9 @@ Ubuntu and SLES don't use the **firewalld** service, so **iptables** rules are a
148148
> [!NOTE]
149149
> You must have super user (sudo) privileges to edit the `rc.local` or `after.local` files.
150150
151-
The `iptables-save` and `iptables-restore` commands, along with `rc.local`/`after.local` startup configuration, provide a basic mechanism to save and restore **iptables** entries. Depending on your Linux distribution, there might be more advanced or automated options available. For example, an Ubuntu alternative is the `iptables-persistent` package to make entries persistent.
151+
The `iptables-save` and `iptables-restore` commands, along with `rc.local`/`after.local` startup configuration, provide a basic mechanism to save and restore **iptables** entries. Depending on your Linux distribution, you might have more advanced or automated options available. For example, an Ubuntu alternative is the `iptables-persistent` package to make entries persistent.
152152

153-
The previous steps assume a fixed IP address. If the IP address for your [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] instance changes (due to manual intervention or DHCP), you must remove and recreate the routing rules if you created them with **iptables**. If you need to recreate or delete existing routing rules, use the following command to remove old `RpcEndPointMapper` rules:
153+
The previous steps assume a fixed IP address. If the IP address for your [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] instance changes (due to manual intervention or DHCP), you must remove and recreate the routing rules if you created them with **iptables**. To recreate or delete existing routing rules, use the following command to remove old `RpcEndPointMapper` rules:
154154

155155
```bash
156156
sudo iptables -S -t nat | grep "RpcEndPointMapper" | sed 's/^-A //' | while read rule; do iptables -t nat -D $rule; done
@@ -215,6 +215,16 @@ If a client on a Windows operating system needs to enlist into distributed trans
215215
| [Windows Server](/windows-server/get-started/windows-server-release-info) | 1903 | 18362.30.190401-1528 |
216216
| [Windows 10](/windows/release-information/) | 1903 | 18362.267 |
217217

218+
### Limitations
219+
220+
- Distributed transactions support only standalone SQL Server instances. They don't support high-availability clustering.
221+
222+
- MSDTC isn't supported with Always On availability groups on Linux, regardless of cluster type (`CLUSTER_TYPE = NONE` or `CLUSTER_TYPE = EXTERNAL`).
223+
224+
- Coordinating distributed transactions across availability group replicas isn't supported. Handling distributed transactions during availability group failover scenarios isn't supported.
225+
226+
- Clustered MSDTC configurations aren't supported on Linux.
227+
218228
## Related content
219229

220230
- [What is SQL Server on Linux?](sql-server-linux-overview.md)

0 commit comments

Comments
 (0)