Article ID: 917379 - View products that this article applies to.
This article has been archived. It is offered "as is" and will no longer be updated.
This article describes message fragmentation in Microsoft BizTalk Server 2004. Message fragmentation lets BizTalk Server 2004 handle large messages and optimize runtime performance. This article also describes how to correctly configure message fragmentation settings in BizTalk Server 2004.
BizTalk Server 2004 supports message fragmentation when large messages are stored in and retrieved from the BizTalkMsgBoxDb database. Message fragmentation lets BizTalk Server 2004 handle large messages and optimize runtime performance. For example, BizTalk Server 2004 can process files up to 1 gigabyte (GB) with little or no decrease in server performance.
To configure message fragmentation settings in BizTalk Server 2004, follow these steps:
Large message thresholdWhen the size of a message is equal to or larger than the value in the Threshold box, BizTalk Server 2004 fragments the message. The default value for the large message threshold is 102,400 bytes.
When a message batch is processed, the in-memory size of the message batch may reach the number of bytes that is specified for the large message threshold. If this occurs, the part of the message batch that has been processed is written to the MessageBox database before the rest of the message batch is processed. BizTalk Server 2004 performs the database write under the context of a Microsoft Distributed Transaction Coordinator (MS DTC) transaction as follows:
You can configure the large message threshold to reduce the number of MS DTC transactions that are created to allocate message batches to the MessageBox database. You should do this because the excessive use of MS DTC transactions may decrease server performance. You can use the following calculation to determine what the minimum value for the large message threshold should be to avoid creating MS DTC transactions unnecessarily:
Batch size * Average size in bytes of each message in the batch after the receive pipeline processes the message < Large message thresholdAs long as the total size in bytes of the message batch does not exceed the specified large message threshold, BizTalk Server 2004 does not have to create an MS DTC transaction to allocate a message batch to the MessageBox database.
Large message fragment sizeWhen the in-memory size of a received message exceeds the number of bytes that is specified in the Fragment size box, BizTalk Server 2004 splits the message into fragments of the specified size. The fragments are written to the MessageBox database under the context of an MS DTC transaction as follows:
If it takes longer than the maximum MS DTC transaction time-out value of 60 minutes to write a message to the MessageBox database, the transaction times out, and an error occurs. Additionally, the attempt to write the message fails and is rolled back. You should increase the large message fragment size enough to avoid this problem when you process very large messages. Depending on the available memory, you should increase the large message fragment size to a value between 1 megabyte (MB) and 10 MB. Therefore, you should set the large message fragment size to a value between 1,048,576 bytes and 10,485,760 bytes.
When you process large messages in BizTalk Server 2004, you may experience System.OutofMemoryException exception errors. For more information about System.OutofMemoryException exception errors, click the following article number to view the article in the Microsoft Knowledge Base:
(https://support.microsoft.com/kb/913959/ )The BizTalk service restarts unexpectedly when you map large messages in BizTalk Server 2004
Article ID: 917379 - Last Review: January 17, 2015 - Revision: 1.1