BizTalk 2004 Replay Design Thoughts by Scott Colestock
"Message replay" can be defined as the ability to reprocess a message at various stages within a system. This can be desirable when a message has been lost by a downstream process, or when a message was handled incorrectly, or when it contained business or syntactical errors that can be corrected.
When building a system with BizTalk, you can achieve various forms of message replay capability by using the following techniques:
- For every input into the system (i.e. receive ports), add a “second subscriber”. That is, though you often would only have a single subscriber (an orchestration or Send Port), add a second subscriber – specifically, a file transport Send Port that “archives” every submitted message. Use the %MessageID%.xml notation for the file name – this will be useful when using HAT to determine what message to replay in the event of a problem. Consider a scheduled archival or purge strategy for the accumulated files, and/or using the NTFS compression attribute on this directory. To ease deployment, make sure the “file drop” directory is a subdirectory of your installation directory. (The BizTalk Deployment Framework demonstrates this.)
- For every input into the system (now referring to receive locations), add a second receive location for the same receive port that uses the file transport to pick up files that are in the same format used by the input’s “native” transport. Again, to ease deployment, make sure the “pick up” directory is a subdirectory of your installation directory.
- For every output of the system, use Send Port Groups rather than Send Ports. Add a second Send Port to the Group using the file transport (in addition to whatever transport is required “natively”.) This will allow you to archive all outgoing messages. Use %MessageID%.xml and a subdirectory of your install directory.
- For every output of the system via “native” transport (i.e. that target systems require), have that Send Port subscribe either by message type or make sure its filter has an “OR” condition so that it is subscribing to…a new receive port/receive location (file transport) you will add purely for replaying messages to external systems.
What can you do with this combination of techniques? Well, #1 allows you to capture all inbound traffic. Any business or syntactic error in the data (or any other problem in the message processing lifecycle) that requires replay can be addressed by using HAT to identify the message ID in question, grabbing the file from the appropriate directory, and (after fixing the data if necessary) copying the file to the file pickup location in #2.
Likewise, if an external system has a similar problem with business or syntactic errors in the data (or any other processing problem!) you can use the combination of #3/#4 to achieve replay.
About Scott Colestock:
Scott is the chief architect for Trace Ventures, LLC. He has been focused for the last two years on using BizTalk 2004 to implement integration and service-orchestration solutions for various clients, and writing about his experience on www.traceofthought.net. He is also the author of the BizTalk Deployment Framework. Scott is a member of Microsoft's Architectural Advisory Board, and has spoken most recently at DevCon 2005, TechEd 2005, and the BPI & Workflow Conference 2005.
More information on the BizTalk Deployment Framework (a.k.a. Biztalk NAnt Deployemnt) can be found on Scott's web site listed above and on the GotDotNet workspace.
BizTalkGurus.com Opens Community Forum
BizTalkGurus.com has opened a new Community Forum for BizTalk 2004, BizTalk 2006, and Window Workflow. No registration is needed to use the forum. This is not intended to replace Microsoft news groups, but intended to give users an additional arena to share questions, comments, and suggestions.
Visit the forum today at: http://www.biztalkgurus.com/forums/
Bloggers Guide To Biztalk is Updated
Alan Smith from Sweden has updated the Bloggers Guide to Biztalk for the 7th time now. I got a chance to meet Alan at the MVP Summit in Seattle. He is a super guy and his Bloggers guide is a must have for an developer. His Guide now now has over 300 Articles in an easy to use format! Get the latest version on GotDotNet.
On a side note, Alan came all the way from Sweden with just the cloths on his back, a backpack, and a large empty suite case. Why an empty suite case? Simple: to stock up on US Clothes since they are over 50% cheaper here then back home.
3 Versions of BizTalk Server 2004, What's The Difference?
I see a lot of confusion about the three different versions of Biztalk Server 2004.
The three types are Partner ($1k), Standard ($7k), and Enterprise Editions ($25k). At a high level, the difference is in the number of trading partners you can have, the type of databases they use, and the number of CPU's allowed. Enterprise Edition is the only edition that provides out of the box fail over support and true scalability through the use of Biztalk Groups.
The best place for detailed information on the three types of Biztalk Server 2004 is the Microsoft Licensing FAQ. This is always something good to take a look at every once in a while.
Latest BizTalkGurus.com Downloads
Dynamic Transforms Inside an Orchestration (9-19-2005)
This sample built for the Biztalk 2006 Design Contest shows how a per-instance custom pipeline can be used to set the map name in a message. Then, the message can be mapped dynamically using an Orchestation. This allows for a consistence approach to transformation and exceptions.
My First Sequential Workflow Video (9-14-2005)
Build and execute your first sequential workflow with Windows Workflow Foundation (WinWF) in just 15 minutes with this step by step video. Don't have WinWF? This video can be your first look at this powerful new workflow foundation by Microsoft.
Comments or Suggestions?
I welcome comments, questions, and suggestions. After all, this newsletter is about delivering content you want to hear about! Feel free to contact me through the forum or via e-mail.
Until next time...
Stephen W. Thomas -
The Bottom Line:
Little Known Fact About Me: In grade school, I got a 9% on a standardized test in spelling. That means that 8 out of every 100 people in the US are worse spellers then me! I do not know my ranking in other countries - just that my spelling in Spanish is much worse then in English.