Microsoft Knowledge Base Email Alertz

FIX: Event ID 10015 is logged in the Application log when you call an HL7 DASM inside an orchestration in BizTalk Server 2004

Search KbAlertz

Advanced Search

Receive Microsoft Knowledge Base articles by E-Mail?

Every night we scan the Microsoft Knowledge Base. If technologies you're interested in are updated, we'll send you an e-mail. You only get one e-mail a day, and only when new articles are added.

Click here to create a
FREE account
Already have an account?
[Click here to Login]











Microsoft Knowledge Base Article

This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks

Article ID: 935886 - Last Review: November 15, 2007 - Revision: 1.2

FIX: Event ID 10015 is logged in the Application log when you call an HL7 DASM inside an orchestration in BizTalk Server 2004

Hotfix download is availableHotfix Download Available
View and request hotfix downloads

On This Page

SYMPTOMS

Consider the following scenario. You call a Health Level 7 (HL7) disassembler (DASM) inside an orchestration to validate the HL7 messages. In this scenario, the following event ID may be logged in the Application log:
Event Type: Error
Event Source: XLANG/s
Event Category: None
Event ID: 10015
Description:
Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'MyComponent.Orchestration(41196fda-20c8-80af-e759-66642661634d)'.
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: {GUID}
Shape name: ConstructOutMessage
ShapeId: {GUID}
Exception thrown from: segment 2, progress 6
Inner exception: The part 'BodySegments' of message 'MultipartMessage' contained a null value at the end of the construct block.

Exception type: NullPartException
Source: Microsoft.XLANGs.Engine
Target Site: Void ConstructionCompleteEvent(Boolean)
The following is a stack trace that identifies the location where the exception occurred

at Microsoft.XLANGs.Core.Part.ConstructionCompleteEvent(Boolean fKillUnderlyingPart)
at Microsoft.XLANGs.Core.XMessage.ConstructionCompleteEvent(Boolean killUnderlyingPartWhenDirty)
at MyComponent.Orchestration.segment2(StopConditions stopOn)
at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)


For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

CAUSE

Cause 1

An orchestration always wraps the System. String type as an XML document. In this case, the orchestration adds extra characters to simulate the XML format. However, the HL7 DASM does not recognize the extra characters when the input parameter reaches the HL7 DASM that is called inside an orchestration.

Cause 2

By design, the HL7 DASM generates the ZSegment part of IBase message that is a string type. However, the XLANG engine that processes the HL7 DASM output message is looking for the XML type. Therefore, this behavior results in an XLANG exception. Additionally, event ID 10015 is logged in the Application log.

RESOLUTION

Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

Prerequisites

You must have BizTalk Accelerator for HL7 1.3 installed to apply this hotfix.

Restart requirement

You do not have to restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace any other hotfixes.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatform
Finalmessagecomponent.csNot applicable3,74408-Mar-200723:57Not applicable
Messagedecoder.csNot applicable4,12208-Mar-200723:56Not applicable
Microsoft software license terms.rtfNot applicable150,86830-Mar-200706:44Not applicable

MORE INFORMATION

Cause 1

To fix Cause 1, the Messagedecoder.cs file is released in this hotfix. The Messagedecoder.cs pre-processor component removes the extra character that is added by the orchestration. This occurs before the component calls any disassembler that should receive a string data type as an input parameter.

Cause 2

Because of the HL7 DASM restriction, you have to modify the HL7 DASM output message before it comes back to the orchestration. In this case, the Finalmessagecomponent.cs file is released in this hotfix to fix Cause 2. You can use the Finalmessagecomponent.cs post-processor components to convert the string output into the XML format and to modify the ZSegment message part.

After you have the pre-processor components and the post-processor components implemented and compiled, you can create a custom pipeline component to manage the string data types correctly when you call the HL7 DASM.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

APPLIES TO
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Accelerator for HL7 1.0 Enterprise Edition
Keywords: 
kbautohotfix kbexpertiseinter kbhotfixserver kbqfe KB935886
       

Community Feedback System

Very often, it takes hours to solve a problem. Very often, you've looked high and low, and have tried a lot of solutions. When you finally found it, chances are, it was because someone else helped you. Here's your chance to give back. Use our community feedback tool to let others know what worked for you and what didn't.

Please also understand that the community feedback system is not warranted to be correct, it's simply a system that we've built to let people try and help each other. If something in a feedback response doesn't make sense to you, or you're not comfortable making changes that the feedback talks about (like registry edits), please consult a professional.

Thank you for using kbAlertz.com Feedback System.

-- Scott Cate