Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / operating-systems / Windows

How to handle multiple type of messages with same extension on a receive location

0.00/5 (No votes)
17 Jan 2013CPOL2 min read 7.7K  
you should use Error Routing for failed message and ErrorReport context property to handle this situation

Introduction

When you get multiple types of messages with same extension (but with different schema such as different type of error response files on a single forder location form an external system) on a receive location and some messages are useful and other are various error details messages.

To handle this scenario there are a number of options in Biztalk you can choose from:

1. You can configure your pipeline with a composite schema and will apply maps to make different destination messages and then in turn use them in your Orchestration/route them to send port.

But the problem is to make a lot of schemas here without any specific need for this as the messages which are not useful and arbitary as per the error/prone to change , it is very difficult to make and manage schemas for them.

or

2. If there is no specific need for the error messges to process but they can be read by your support team to understand where the problem is then you must use only useful message schemas in the composite schema of Receive pipeline and BIztalk's native "Enable routing for failed messages" option on Biztalk Receive port.

The idea is to make sure that the error messages should go to some folder so that support team could read it.

When you select the option for "Enable routing for failed messages" then biztalk will promote the context properties starting with "ErrorReport." in send port filter.

So you can make a send port for all those arbitary error messages which will subscribe to (maybe something like) ErrorReport.ReceivePortName== <Your Receive Port Name here>

and volla .. that makes the messages to flow to the send port folder location.

Make sure you use pass thru send pipeline for all this to work (reason being obvious Smile | :)).

History

Initial version , will be needing comments from readers to enhance/improve it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)