This article was previously published under Q281141
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 57820 (SQLBUG_70)
When the Distribution process is started by using the Distribution ActiveX control, some INSERT commands may be skipped and not applied to the Subscriber in a stressed condition. This happens despite the INSERT transactions being present in the Distribution database. This may cause the Subscriber to become "out of sync" with the Publisher and may result in violation of referential integrity constraints.
The Distribution process uses the -MaxDeliveredTransactions parameter to specify how many transactions to apply to a Subscriber during one synchronization process. By default, the -MaxDeliveredTransactions parameter is set to 0, meaning to apply an infinite number of transactions.
When using the Distribution ActiveX control, it sets the -MaxDeliveredTransactions parameter to an undelivered transaction count. Transactions beyond this limit are not applied to the Subscriber although they have been received. The subscriber's xact seqno, however is still advanced to the max xact_seqno received, thus causing the Distribution process to skip over some INSERT commands.
Run the Distribution process by using the Replication Distribution Agent Utility (DISTRIB) in lieu of the Distribution ActiveX control and set the MaxDeliveredTranactions parameter to 0.
Microsoft has confirmed this to be a problem in SQL Server 7.0. This problem has been corrected in U.S. Service Pack 3 for Microsoft SQL Server 7.0. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
274799 INF: How to Obtain Service Pack 3 for Microsoft SQL Server 7.0 and Microsoft Data Engine (MSDE) 1.0
For more information, contact your primary support provider.
replication; transactional; distribution; ActiveX; control