Tuesday, March 20, 2012

Replication and large transactions

Hello,
Is it true that merge agent is not replicating at all when a transaction is
going on?
In my system I use merge replication and I have set the merge agents on
continuous replication to make sure that all changes are replicated to all
databases as soon as possible. Now I notice that when a large transaction is
going on (about 10 minutes) the merge agent is not replicating at all. So if
concurrently a small transaction took place and was committed, these changes
are replicated after the large transaction was finished.
I guess this behaviour is caused by the merge agent that waits for the large
transaction to finish before it has access to the
msmerge_contents/msmerge_tombstone tables.
Is there any way to prevent this blocking?
Can I set the Isolation Level of the transaction of the merge agent?
thanks in advance,
Marco Broenink
Yes, the way it works is that triggers fire on the tables which are
published to and subscriber to for merge replication.
If you have a large transaction which commits at the end of the transaction,
the triggers will not fire until the commit happens.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"Marco Broenink" <MarcoBroenink@.discussions.microsoft.com> wrote in message
news:D0D14388-1660-49DC-9555-DAFD9B8E0C66@.microsoft.com...
> Hello,
> Is it true that merge agent is not replicating at all when a transaction
is
> going on?
> In my system I use merge replication and I have set the merge agents on
> continuous replication to make sure that all changes are replicated to all
> databases as soon as possible. Now I notice that when a large transaction
is
> going on (about 10 minutes) the merge agent is not replicating at all. So
if
> concurrently a small transaction took place and was committed, these
changes
> are replicated after the large transaction was finished.
> I guess this behaviour is caused by the merge agent that waits for the
large
> transaction to finish before it has access to the
> msmerge_contents/msmerge_tombstone tables.
> Is there any way to prevent this blocking?
> Can I set the Isolation Level of the transaction of the merge agent?
> thanks in advance,
> Marco Broenink

No comments:

Post a Comment