I'm trying to set up transactional replication of a fairly large database (Business Activity Monitor database from BizTalk Server 2013R2) (>500 GB).
I have an active/passive cluster which holds the main database, another server configured to act as distributor and an active/passive server cluster that will be subscriber. These are all different machines in the same LAN, and they're all running SQL Server 2014 Standard Edition.
I've set up the distributor and set up the publisher as, well, a publisher.
I then continued setting up the publisher with all articles and filters needed, but when trying to set it up and starting a snapshot I ran into the following error:
Cannot promote the transaction to a distributed transaction because there
is an active save point in this transaction.
Changed database context to 'BAMPrimaryImport'. (Microsoft SQL Server, Error: 3933)
I've tried looking for open transactions using DBCC OPENTRAN
but it returned nothing.
What I do see however is that Linked Server is set up in which the server is linked back to itself and the instance name is not default but rather an alias.
I'm not sure why this is (I've not set the environment up myself back in the day but I've just inherited it) and I'm not sure this has anything to do with it.
Has anyone else seen these issues and/or have any ideas on how to get this to work?
Best Answer
I'm afraid you are not going to make it work. Biztalk uses internally distributed transactions and thus, DTC. Replication procedures use save points. These 2 things are not compatible as far as I could read.
References:
https://feedback.azure.com/forums/908035-sql-server/suggestions/33422404-replication-and-availability-groups-with-per-datab
https://am2.co/2018/02/replication-availability-groups-2/
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/466202d8-93f3-41c2-9cc8-a0b7eb594687/cannot-promote-the-transaction-to-a-distributed-transaction-because-there-is-an-active-save-point-in?forum=transactsql