Failed Message Routing and Message Suspension

Link. July 4, 2007. Comments [2]. Posted in: BizTalk

A long while ago, while BizTalk 2006 was in beta, I mentioned a couple of things about the Failed Message Routing feature and how it related to adapters. Turns out I was a bit off the mark, and wanted to leave this here in case I ever need this information again :-).

A couple of weeks ago I spent some good time troubleshooting an adapter, and was able to understand a bit better the relationship between this feature and an adapter's behavior. Indeed, as I initially stated, failed message routing depends on the ability to suspend messages that fail the submission process.

What can make this a bit confusing is that the BizTalk Messaging Engine can decide to suspend messages on its own without adapter intervention. In cases where this happens, failed message routing will still work, even if the receiving adapter doesn't actually support suspending messages in an explicit way.

For example, under some configurations, when an XML message fails processing in the pipeline because the XML Disassembler component rejects it, the Messaging Engine will suspend the incoming message on its own [1]. When this happen, the adapter will receive an status code in the batch results with the value BTS_S_EPM_MESSAGE_SUSPENDED (0xc00001).

What's interesting about this value is that it is a success status code; so, from the adapter perspective, it looks as if the message submit operation completed without errors. It can, however, be a little confusing if you're not aware of this behavior.

Other than this scenarios, if you want to fully support failed message routing with your adapters, you still need to fully implement suspending messages (through IBTTransportBatch.MoveToSuspendQ()). 

[1] Unexpectedly enough, I haven't seen this behavior with the Flat File disassembler.



Wednesday, July 04, 2007 5:53:51 PM (SA Pacific Standard Time, UTC-05:00)
I am in process of debugging a bizatalk adapter. It works as a send port. I activate it by putting a file into a file receive location. When it fails the file I put into a directory of receive location adapter dissapears but it does not get transmitted because of a bug in the send adapter. Now when I restart host instance biztalk invokes send adapter with that failed message.
As I have very little knowledge about biztalk I have a problem to find a trace of this failed/suspended messages. Can you point me where can I see them using biztalk control panel or where there they are stored in bitalk database in sql server? Also how to delete them ?
Adam
Wednesday, July 04, 2007 7:14:04 PM (SA Pacific Standard Time, UTC-05:00)
Adam,
You can find suspended or pending messages through the BizTalk Administration Console (in 2006) or through HAT, in 2004.
Comments are closed.

Syndicate

About

Tomas Restrepo is a software developer located in Colombia, South America. His interests include .NET, Connected Systems, PowerShell and lately dynamic programming languages. More...

tomasrestrepo @ twitter My Flickr photostream My saved links on delicious My Technorati Profile

email: tomas@winterdom.com
msn: tomasr@passport.com

View my profile on LinkedIn

MVP logo

Ads


Categories

Statistics

Total Posts: 1050
This Year: 1
This Month: 1
This Week: 0
Comments: 825

Archive

Other

Copyright © 2002-2008, Tomas Restrepo.

Powered by: newtelligence dasBlog 2.2.8279.16125

Sign In