BUG: BizTalk Server Duplicates Data When You Use Custom Encoding Component (281468)



The information in this article applies to:

  • Microsoft BizTalk Server 2000

This article was previously published under Q281468

SYMPTOMS

When you use a custom Messaging Port "encoding" component with Microsoft BizTalk Server, you may notice that documents are both transmitted and sent to the Suspended Queue.

Note This problem only occurs when you use non-transactional transports, such as HTTP/HTTPS, File, and SMTP.

CAUSE

This problem occurs because your custom encoding component stops the transaction that BizTalk Server uses for the specific interchange without raising an error, and BizTalk Server transmits the document before it checks the status of the transaction.

RESOLUTION

To work around this problem, develop the encoding component so that it raises an error when it stops the transaction. As a result, BizTalk Server catches the error that is raised and does not transmit the data.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

BizTalk Server provides the ability to write a Pipeline Component and use it during the encoding stage of an Interchange process. The encoding stage occurs after document serialization and before document transmission. When your custom component runs, it participates in the transaction that BizTalk Server creates. If an error occurs from within, the component can stop that transaction.

However, if the component stops the transaction, BizTalk Server still attempts to transmit the data. As a result, the data is still sent on non-transactional transports (such as HTTP/HTTPS, File, SMTP). After the transmission, BizTalk Server recognizes that the transaction has been stopped and moves the data to the suspended queue. Therefore, the data is duplicated. If you resubmit the data from the Suspended Queue, the document is delivered twice.

Modification Type:MajorLast Reviewed:11/5/2003
Keywords:kbbug kbpending KB281468