“Large message size” setting can impact the execution of map

 

We recently got a problem reported by our customer that the "large message size" configuration(in BizTalk group property settings)

 

 Problem:

 “Large message size” setting can impact the execution of map.

  

The scenario:

In the orchestration, the customer uses a mapping can split 1 input message into 2 output message, based on the value a node.

 

Illustration:

  

  

 

 

 

They define the mapping transform config like this, with destination as a inline schema of 2 message parts

 

 

 

 

 

Issue:

 

They encounter XLANG/s error (Invalid input/out document into/from the transform. Does not have a single root node.) at the Mapping, when the following test condition is reached:

 

  1. The input message contain only 1 type of records, (e.g only A records, but no B records), AND

  2. The input message size is larger than 100KB (e.g. we put a 102KB file)

  

And for message size condition, we found that it seems to be related to the “Large message size” setting at the BizTalk Group (Current is 100KB default).

 e.g. If we change “Large message size” setting to 102KB, the 102KB file can be processed without error. However, a larger file e.g. 104KB cannot.

  

Currently a workaround is implementing the splitting operation by 2 separate Maps instead one single map. Then we did not hit issue for the same larger files after that.

  

XLANG error:

  

 

 

 

Log Name:      Application

 

Source:        XLANG/s

 

Date:          24/06/2015 16:55:25

 

Event ID:      10030

 

Task Category: None

 

Level:         Error

 

Keywords:      Classic

 

User:          N/A

 

Computer:    

Description:

 

xlang/s engine event log entry: Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'TestMapping.Orchestration.InlineSchemaMappingOrchestration(ebc6996c-4e09-9fd4-a153-a7b6d594756c)'.

 

The service instance will remain suspended until administratively resumed or terminated.

 

If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.

 

InstanceId: 8524a1f6-32be-4335-8ba9-be6b2e3a56e3

 

Shape name: ConstructMessage_1

 

ShapeId: 9fb18f5f-0d34-4026-9135-b86cb96ff424

 

Exception thrown from: segment 1, progress 6

 

Inner exception: Error encountered while executing the transform TestMapping.Orchestration.InlineSchemaMapping.InlineMapping. Error:Invalid input/output document into/from the transform. Does not have a single root node..

 

       

 

Exception type: XTransformationFailureException

 

Source: Microsoft.XLANGs.Engine

 

Target Site: Void ShredXmlDocumentStream(System.IO.Stream, System.Object[], System.String, System.Xml.XmlDeclaration)

 

The following is a stack trace that identifies the location where the exception occured

 

 

 

   at Microsoft.XLANGs.Core.Service.Transform.ShredXmlDocumentStream(Stream inputStream, Object[] outParams, String mapName, XmlDeclaration xmlDecl)

 

   at Microsoft.XLANGs.Core.Service.ApplyStreamingTransform(Type mapRef, TransformMetaData trfMetaData, Object[] outParams, Stream[] inStreams, Boolean whitespaceCorrect)

 

   at Microsoft.XLANGs.Core.Service.ApplyTransform(Type mapRef, Object[] outParams, Object[] inParams)

 

   at TestMapping.Orchestration.InlineSchemaMappingOrchestration.segment1(StopConditions stopOn)

 

   at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)

 

 

 

       

 

Event Xml:

 

<Event xmlns="https://schemas.microsoft.com/win/2004/08/events/event">

 

  <System>

 

    <Provider Name="XLANG/s" />

 

    <EventID Qualifiers="0">10030</EventID>

 

    <Level>2</Level>

 

    <Task>0</Task>

 

    <Keywords>0x80000000000000</Keywords>

 

    <TimeCreated SystemTime="2015-06-24T08:55:25.000000000Z" />

 

    <EventRecordID>102400</EventRecordID>

 

    <Channel>Application</Channel>

 

    <Computer>ITDMWO86A.heh.net</Computer>

 

    <Security />

 

  </System>

 

  <EventData>

 

    <Data>xlang/s engine event log entry: Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'TestMapping.Orchestration.InlineSchemaMappingOrchestration(ebc6996c-4e09-9fd4-a153-a7b6d594756c)'.

 

The service instance will remain suspended until administratively resumed or terminated.

 

If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.

 

InstanceId: 8524a1f6-32be-4335-8ba9-be6b2e3a56e3

 

Shape name: ConstructMessage_1

 

ShapeId: 9fb18f5f-0d34-4026-9135-b86cb96ff424

 

Exception thrown from: segment 1, progress 6

 

Inner exception: Error encountered while executing the transform TestMapping.Orchestration.InlineSchemaMapping.InlineMapping. Error:Invalid input/output document into/from the transform. Does not have a single root node..

 

       

 

Exception type: XTransformationFailureException

 

Source: Microsoft.XLANGs.Engine

 

Target Site: Void ShredXmlDocumentStream(System.IO.Stream, System.Object[], System.String, System.Xml.XmlDeclaration)

 

The following is a stack trace that identifies the location where the exception occured

 

 

 

   at Microsoft.XLANGs.Core.Service.Transform.ShredXmlDocumentStream(Stream inputStream, Object[] outParams, String mapName, XmlDeclaration xmlDecl)

 

   at Microsoft.XLANGs.Core.Service.ApplyStreamingTransform(Type mapRef, TransformMetaData trfMetaData, Object[] outParams, Stream[] inStreams, Boolean whitespaceCorrect)

 

   at Microsoft.XLANGs.Core.Service.ApplyTransform(Type mapRef, Object[] outParams, Object[] inParams)

 

   at TestMapping.Orchestration.InlineSchemaMappingOrchestration.segment1(StopConditions stopOn)

 

   at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception&amp; exp)

  

        </Data>

 

  </EventData>

 

</Event>

 

 Analysis:

 Based on research results so far, the problem seems to be related to different behavior between in-mempry transform and stream based transform. Also, the same type of splitting mapping is well used in old BizTalk 2006 R2.

 

If you meet the same issue, please consider the workaround by increasing "Large message size"/use separate maps. Or you can contact Microsoft for assistance. 

 

Best regards,

WenJun Zhang