• Great article

    I wanted to share a problem I had with Failing Transactions on the Subscriber. I had set the distribution agent subscription streams parameter to 4(no. of processors on the server)

    BOL says

    When you specify a value of 2 or greater for -SubscriptionStreams, the order in which transactions are received at the Subscriber may differ from the order in which they were made at the Publisher. If this behavior causes constraint violations during synchronization, you should use the NOT FOR REPLICATION option to disable the enforcement of constraints during synchronization. For more information, see How to: Control the Behavior of Triggers and Constraints During Synchronization (Replication Transact-SQL Programming).

    I found that the order the transactions were arriving at the publisher caused a deadlock and so some of the transactions were killed at the subscriber leaving inconsistent data. i think this is the only scenario where the transaction commited on a publisher are not replicated to the subscriber in a consistent state.