none
backup Biztalk Messages before processing the message RRS feed

  • Question

  • Hi everyone,

     I have 3 types of incoming messages(Purchase Order Messages from different customers). I have created 3 Schema's for each and i have created and an internal standard format Schema. I have 3 maps that converts the 3 input schema's to our internal format. and in Admin Console i have created Receive Port with 3 Receive locations and i have added the 3 Inbound maps to Receive port. My problem is i would like to take the Backup of the original messages that comes into the system before the Maps Transformation applies. Can you/anyone out there suggest me here?

    In Orchestration the Receive shape is set to receive message of type our internal format.

    Wednesday, March 18, 2015 8:28 PM

Answers

  • The first option you should try is to enable Message Tracking on the Receive Port where you can track the content before and after Port processing.

    If you ever need to view the original message content, it can be exported from BizTalk Administrator or scripted with WMI.

    You should avoid 'archiving' unless there is a specific and documented business requirement that drives it.  And then the exact archiving technique would be driven by the business.

    Wednesday, March 18, 2015 8:48 PM
    Moderator
  • You can make use archiving custom pipeline component which archive messages to a file as they pass through a receive or send pipelines.

    Refer: BizTalk: List of Custom Pipeline Components

    Update: Storing in DTA isn't usually a very accessible option. Typically the tracking database will only keep data for a finite period of time before it is deleted or archived. The problem with DTA tracking is not only the temporary nature of the data, but that it is not the most efficient solution out there. Archiving component in the pipeline is the correct way to go.

    If you're looking around see if there's one that does its work in a streaming fashion.

    Refer: BizTalk stream based archiving pipeline component

    By "streaming fashion" I mean one that does not load the entire message into memory (for instance to XmlDocument) but rather implements a custom stream and works off the Read event.

    Rachit


    Please mark as answer or vote as helpful if my reply does



    Wednesday, March 18, 2015 8:50 PM
    Moderator

All replies

  • The first option you should try is to enable Message Tracking on the Receive Port where you can track the content before and after Port processing.

    If you ever need to view the original message content, it can be exported from BizTalk Administrator or scripted with WMI.

    You should avoid 'archiving' unless there is a specific and documented business requirement that drives it.  And then the exact archiving technique would be driven by the business.

    Wednesday, March 18, 2015 8:48 PM
    Moderator
  • You can make use archiving custom pipeline component which archive messages to a file as they pass through a receive or send pipelines.

    Refer: BizTalk: List of Custom Pipeline Components

    Update: Storing in DTA isn't usually a very accessible option. Typically the tracking database will only keep data for a finite period of time before it is deleted or archived. The problem with DTA tracking is not only the temporary nature of the data, but that it is not the most efficient solution out there. Archiving component in the pipeline is the correct way to go.

    If you're looking around see if there's one that does its work in a streaming fashion.

    Refer: BizTalk stream based archiving pipeline component

    By "streaming fashion" I mean one that does not load the entire message into memory (for instance to XmlDocument) but rather implements a custom stream and works off the Read event.

    Rachit


    Please mark as answer or vote as helpful if my reply does



    Wednesday, March 18, 2015 8:50 PM
    Moderator
  • You can achieve your solution by writing a pipeline component as suggested by Rachit(Simple code to archive messages to a configured location- If you want help with that we can assist)

    But archiving messages unnecessary is a burden which you may want to avoid and Enabling Tracking would be a more efficient way for Testing purposes. 

    If you are worried about Tracking Data getting lost after sometime you can increase the period for DTA Purge and Archive Job


    Thanks,
    Prashant
    ----------------------------------------
    Please mark this post accordingly if it answers your query or is helpful.

    Thursday, March 19, 2015 4:25 AM