<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>BizTalk 2006</title>
        <link>http://agilior.pt/blogs/rodrigo.guerreiro/category/7.aspx</link>
        <description>BizTalk 2006</description>
        <language>pt-PT</language>
        <copyright>Rodrigo Guerreiro</copyright>
        <managingEditor>rodrigo.guerreiro@agilior.pt</managingEditor>
        <generator>Subtext Version 1.9.0.27</generator>
        <item>
            <title>Email address format validation in XSD schemas</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/11/14/5965.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;I know that I owe you, my faithful readers (which BTW my last reports tells me that in total are...hum...zero), a couple of posts since August. I promise that I'll try to keep you (I mean...no one) updated with my recent thoughts :)&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Back to the real post...&lt;/p&gt; &lt;p&gt;Yesterday, in one of our clients, we found out a real nice and tricky bug. In the BizTalk solution we have a message schema that looks something like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/EmailaddressformatvalidationinXSDschemas_FE9F/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="215" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/EmailaddressformatvalidationinXSDschemas_FE9F/image_thumb.png" width="481" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;It's typical to insert a validation rule in the email. So, the &lt;strong&gt;Email&lt;/strong&gt; field should look something like this:&lt;/p&gt; &lt;p&gt; &lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/EmailaddressformatvalidationinXSDschemas_FE9F/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="298" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/EmailaddressformatvalidationinXSDschemas_FE9F/image_thumb_1.png" width="443" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;In case you're wondering, this is done by setting the &lt;strong&gt;Base Data Type&lt;/strong&gt; property with &lt;em&gt;xs:string&lt;/em&gt;, setting the &lt;strong&gt;Data Type&lt;/strong&gt; property with "Email" (just write it out) and paste "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" (without the ") into the &lt;strong&gt;Pattern&lt;/strong&gt; property.&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa562170.aspx"&gt;Now let's generate an instance of this schema&lt;/a&gt;. One example that's complaint with this schema could be:&lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ns0:Person&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns:ns0&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://TestingEmailAddressFormat.Message"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;John Doe&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Address&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Lisbon street, 1&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Address&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Phone&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;555-5555&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Phone&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Email&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;johndoe@somewhere.com&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Email&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ns0:Person&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If you &lt;a href="http://msdn.microsoft.com/en-us/library/aa577644.aspx"&gt;validate this XML against our schema&lt;/a&gt; you'll get the message &lt;em&gt;"Validate Instance succeeded for schema Person.xsd..."&lt;/em&gt;. Perfect!&lt;/p&gt;
&lt;p&gt;But let's perform a small change in &lt;strong&gt;Email&lt;/strong&gt; field:&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ns0:Person&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns:ns0&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://TestingEmailAddressFormat.Message"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;John Doe&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Address&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Lisbon street, 1&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Address&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Phone&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;555-5555&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Phone&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Email&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;john_doe@somewhere.com&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Email&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ns0:Person&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Validating this won't get us that nice message of success. Instead we get something like &lt;em&gt;"error BEC2004: The 'Email' element is invalid - The value 'john_doe@somewhere.com' is invalid according to its datatype 'http://TestingEmailAddressFormat.Message:Email' - The Pattern constraint failed"&lt;/em&gt;. That's a little awkward, because we were sure that our regex expression was right. &lt;/p&gt;
&lt;p&gt;After some googling, &lt;a href="http://www.agilior.pt/blogs/bruno.camara/"&gt;Bruno&lt;/a&gt; found the reason for this error. It seems that &lt;a href="http://msdn.microsoft.com/en-us/library/20bw873z.aspx"&gt;in the .NET framework the "\w" option is equivalent to [a-zA-Z_0-9]&lt;/a&gt;. As you can see, it includes the "_" (underscore). But &lt;a href="http://msdn.microsoft.com/en-us/library/ms256191.aspx"&gt;in the XSD schemas, the "\w" option doesn't include the "_"(underscore)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bottom line, we had to change our validation regex expression for the &lt;strong&gt;Email&lt;/strong&gt; field to "[A-Za-z0-9_]+([-+.'][A-Za-z0-9_]+)*@[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\.[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*" (without the ").&lt;/p&gt;
&lt;p&gt;Until next time ;)&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2f3b11d9-7f5b-4a83-a9a9-4b5421609c92" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/biztalk%20server%202006" rel="tag"&gt;biztalk server 2006&lt;/a&gt;, &lt;a href="http://technorati.com/tags/.net" rel="tag"&gt;.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/xsd%20shema" rel="tag"&gt;xsd shema&lt;/a&gt;, &lt;a href="http://technorati.com/tags/regex" rel="tag"&gt;regex&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/5965.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/11/14/5965.aspx</guid>
            <pubDate>Fri, 14 Nov 2008 18:52:10 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/5965.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/11/14/5965.aspx#feedback</comments>
            <slash:comments>13</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/5965.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/5965.aspx</trackback:ping>
        </item>
        <item>
            <title>Which workflow should I use?</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/26/4639.aspx</link>
            <description>&lt;p&gt;At this moment, &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; has 2 different tools in order to build workflows:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/biztalk/default.aspx"&gt;BizTalk Server 2006 R2&lt;/a&gt; (Orchestrations)&lt;/li&gt; &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/netframework/aa663328.aspx"&gt;Windows Workflow Foundation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Although they are equal in many aspects, we should consider their differences in order to build our Enterprise Application/Integration and choose the best that fits our needs. Luckily, from now on, we have a resource that should help us with that task. &lt;/p&gt; &lt;p&gt;&lt;a href="http://geekswithblogs.net/higgins/Default.aspx"&gt;Kent Brown&lt;/a&gt; wrote an article entitled &lt;strong&gt;BizTalk Server 2006 or WF? Choosing the Right Workflow Tool for Your Project&lt;/strong&gt;. I advise you to &lt;a href="http://msdn.microsoft.com/en-us/library/cc303238.aspx"&gt;read it&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Until next time ;)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c1c4cc24-5cb5-4d8a-afe3-b6d99bde25f0" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/biztalk%20server%202006%20r2" rel="tag"&gt;biztalk server 2006 r2&lt;/a&gt;, &lt;a href="http://technorati.com/tags/windows%20workflow%20foundation" rel="tag"&gt;windows workflow foundation&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/4639.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/26/4639.aspx</guid>
            <pubDate>Mon, 26 May 2008 07:32:57 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/4639.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/26/4639.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/4639.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/4639.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk posters</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/19/4599.aspx</link>
            <description>&lt;p&gt;Recently the &lt;a href="http://blogs.msdn.com/biztalk_server_team_blog/default.aspx"&gt;BizTalk Server Team&lt;/a&gt; &lt;a href="http://blogs.msdn.com/biztalk_server_team_blog/archive/2008/05/17/announcing-the-biztalk-business-activity-monitoring-bam-poster.aspx"&gt;released another poster&lt;/a&gt;. It's the Business Activity Monitoring (BAM) poster. You can download it from &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C2A332C7-687A-448A-BBDF-5FEC51476BF6&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;This poster follows the &lt;a href="http://blogs.msdn.com/biztalk_server_team_blog/archive/2007/10/29/biztalk-server-2006-r2-posters.aspx"&gt;previously posters that were released&lt;/a&gt;:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=34f41573-c552-466f-b531-32cb09a57cdd&amp;amp;displaylang=en&amp;amp;tm"&gt;BizTalk Server 2006 R2 Capabilities Poster&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8790e652-1da5-4e80-88fe-b87606233db4&amp;amp;displaylang=en"&gt;BizTalk Server 2006 R2 Runtime Architecture Poster&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ff468298-64be-4947-a086-f61584caf995&amp;amp;displaylang=en"&gt;BizTalk Server 2006 R2 Scale-Out Configurations&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ae60b18d-c7f0-4089-aeb3-6bc652a3b898&amp;amp;displaylang=en"&gt;BizTalk Server 2006 Legacy Modernization with Host Integration Server 2006&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Until next time ;)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e1c09ee5-3c42-4190-880e-75a229f436a0" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/biztalk%20server%202006%20r2" rel="tag"&gt;biztalk server 2006 r2&lt;/a&gt;, &lt;a href="http://technorati.com/tags/posters" rel="tag"&gt;posters&lt;/a&gt;, &lt;a href="http://technorati.com/tags/bam" rel="tag"&gt;bam&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/4599.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/19/4599.aspx</guid>
            <pubDate>Mon, 19 May 2008 08:02:29 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/4599.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/19/4599.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/4599.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/4599.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk Flat file hints - part 2</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/09/4539.aspx</link>
            <description>&lt;p&gt;Following my &lt;a href="http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/08/4535.aspx"&gt;last post&lt;/a&gt; I'm going to describe another hint related to the BizTalk flat files schemas.&lt;/p&gt; &lt;p&gt;Let's use this flat file definition:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="606" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="189"&gt;&lt;em&gt;Definition&lt;/em&gt;&lt;/td&gt; &lt;td valign="top" width="170"&gt;&lt;em&gt;Appear how many times&lt;/em&gt;&lt;/td&gt; &lt;td valign="top" width="244"&gt;&lt;em&gt;Example&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="189"&gt;Tag: HEA&lt;br /&gt;FileNumber: (length = 4)&lt;/td&gt; &lt;td valign="top" width="170"&gt;1&lt;/td&gt; &lt;td valign="top" width="244"&gt;HEA1234&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="188"&gt;Tag: ENT&lt;br /&gt;Date: (length = 12)&lt;/td&gt; &lt;td valign="top" width="170"&gt;unbounded&lt;/td&gt; &lt;td valign="top" width="244"&gt;ENT200805091416&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="188"&gt;Tag: DESC&lt;br /&gt;DescID: (length = 3)&lt;br /&gt;Text: (length = 100)&lt;/td&gt; &lt;td valign="top" width="170"&gt;0..1&lt;/td&gt; &lt;td valign="top" width="244"&gt;DESC001This is a test&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="187"&gt;Tag: VAL&lt;br /&gt;ValueID: (length = 3)&lt;br /&gt;Value: (length = 3)&lt;/td&gt; &lt;td valign="top" width="170"&gt;0..1&lt;/td&gt; &lt;td valign="top" width="244"&gt;VAL001123&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="188"&gt;Tag: EOF&lt;br /&gt;FileNumber: (length = 4)&lt;/td&gt; &lt;td valign="top" width="170"&gt;1&lt;/td&gt; &lt;td valign="top" width="244"&gt;EOF1234&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Under the root node we're going to have 3 main elements: HEA, ENT and EOF. Under the ENT element exists the DESC and VAL elements. But each one may or may not exist independently of one another. But if both of them exist, the order must be DESC-&amp;gt;VAL. A first schema definition could be:&lt;/p&gt; &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatfilehintspart2_D1B4/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="287" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatfilehintspart2_D1B4/image_thumb.png" width="198" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Pay attention that the &lt;a href="http://msdn.microsoft.com/en-us/library/aa562037.aspx"&gt;Min Occurs&lt;/a&gt; field for the &lt;u&gt;Description&lt;/u&gt; and &lt;u&gt;Value&lt;/u&gt; elements must be set to 0. Using this example to validate our schema definition, we get an error.&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="809" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="166"&gt;&lt;em&gt;Example&lt;/em&gt;&lt;/td&gt; &lt;td valign="top" width="641"&gt;&lt;em&gt;Error description&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="166"&gt; &lt;p&gt;HEA1234&lt;br /&gt;ENT200805091416&lt;br /&gt;DESC001This is a test&lt;br /&gt;VAL001123&lt;br /&gt;ENT200805091416&lt;br /&gt;VAL001123&lt;br /&gt;EOF1234&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="641"&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;C:\test2.flat.txt: error BEC2004: Unexpected data found while looking for:&lt;br /&gt;'DESC'&lt;br /&gt;'ENT'&lt;br /&gt;'EOF'&lt;br /&gt;The current definition being parsed is Entry. The stream offset where the error occured is 77. The line number where the error occured is 6. The column where the error occured is 0.&lt;/font&gt;&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Apparently our schema is well defined. But reading carefully the error message we find out that the error occurred after parsing the second ENT element. The parser is expecting a DESC, ENT or EOF element. But the &lt;u&gt;Description&lt;/u&gt; and &lt;u&gt;Value&lt;/u&gt; nodes in our schema have the &lt;strong&gt;Min Occurs&lt;/strong&gt; field set to 0.  &lt;/p&gt;&lt;p&gt;Once again the solution lies in another magical field of our schema. It's called &lt;strong&gt;Parser Optimization&lt;/strong&gt; and have two possible values: &lt;u&gt;speed&lt;/u&gt; and &lt;u&gt;complexity&lt;/u&gt;. By default is set to &lt;u&gt;speed&lt;/u&gt;. According to &lt;a href="http://msdn.microsoft.com/en-us/library/aa578137.aspx"&gt;this&lt;/a&gt;, when the &lt;strong&gt;Parser Optimization&lt;/strong&gt; is set to "&lt;em&gt;complexity mode the flat file parsing engine uses both top-down and bottom-up parsing, and tries to fit data more accurately. In speed mode, the parser tries to fit data as they appear in the stream."&lt;/em&gt; &lt;/p&gt;&lt;p&gt;To set the &lt;strong&gt;Parser Optimization&lt;/strong&gt; field click on the &lt;strong&gt;&amp;lt;Schema&amp;gt;&lt;/strong&gt; node and choose the &lt;u&gt;complexity&lt;/u&gt; value. It should look like this: &lt;/p&gt;&lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatfilehintspart2_D1B4/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="434" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatfilehintspart2_D1B4/image_thumb_3.png" width="1040" border="0" /&gt;&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;Now we're able to get a success return after validating our example file. I hope this could help someone. &lt;/p&gt;&lt;p&gt;Until next time ;) &lt;/p&gt;&lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e2110a95-32bf-4ad5-b379-973cdcc71923" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/biztalk%20server%202006" rel="tag"&gt;biztalk server 2006&lt;/a&gt;, &lt;a href="http://technorati.com/tags/flat%20file%20schema" rel="tag"&gt;flat file schema&lt;/a&gt;, &lt;a href="http://technorati.com/tags/parser%20optimization" rel="tag"&gt;parser optimization&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/4539.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/09/4539.aspx</guid>
            <pubDate>Fri, 09 May 2008 12:46:02 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/4539.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/09/4539.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/4539.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/4539.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk Flat File hints</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/08/4535.aspx</link>
            <description>&lt;p&gt;For the past week I've been working with some real complicated flat files. So I've came across with some hints that I'm going to share with you.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Hint #1&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Let's say that you have the following flat file definition:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="368" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="188"&gt;&lt;em&gt;Definition&lt;/em&gt;&lt;/td&gt; &lt;td valign="top" width="178"&gt;&lt;em&gt;Appear how many times&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="191"&gt;Tag: HEA&lt;br /&gt;FileNumber: (length = 4)&lt;/td&gt; &lt;td valign="top" width="178"&gt;1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="193"&gt;Tag: MSG&lt;br /&gt;MsgID: (length = 3)&lt;br /&gt;FreeText: (length = 100)&lt;/td&gt; &lt;td valign="top" width="178"&gt;unbounded&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="195"&gt;Tag: EOF&lt;br /&gt;FileNumber: (length = 4)&lt;/td&gt; &lt;td valign="top" width="178"&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;One example for this definition could be:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="370" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="368"&gt;HEA1234&lt;br /&gt;MSG001This is a test&lt;br /&gt;EOF1234&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Using the above example to create our schema using the &lt;a href="http://msdn.microsoft.com/en-us/library/aa577936.aspx"&gt;flat file schema wizard&lt;/a&gt;, probably you'll get something like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatFilehints_E48A/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="182" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatFilehints_E48A/image_thumb_2.png" width="701" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now try to &lt;a href="http://msdn.microsoft.com/en-us/library/aa577644.aspx"&gt;validate&lt;/a&gt; the following flat file:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="368" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="366"&gt;HEA1234&lt;br /&gt;MSG001This is a test&lt;br /&gt;MSG002This is another test&lt;br /&gt;EOF1234&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Probably you're getting this error:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;C:\test.flat.txt: error BEC2004: Unexpected data found while looking for: '\r\n'&lt;br /&gt;The current definition being parsed is Root. The stream offset where the error occured is 51. The line number where the error occured is 3. The column where the error occured is 20.&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This happens because the second MSG element is larger that the one we used to create the schema. As you can see in our initial definition, the &lt;u&gt;FreeText&lt;/u&gt; field has a maximum length of 100 characters. So you have to set the &lt;a href="http://technet.microsoft.com/en-us/library/aa561278.aspx"&gt;&lt;strong&gt;Positional Length&lt;/strong&gt;&lt;/a&gt; field to 100. &lt;/p&gt; &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatFilehints_E48A/image_10.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="106" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatFilehints_E48A/image_thumb_4.png" width="367" border="0" /&gt;&lt;/a&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Hint #2&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;But if we validate it again we get the same error but in a different position. The problem is that we specified 100 characters of length and neither of &lt;u&gt;FreeText&lt;/u&gt; fields in our example has that length.&lt;/p&gt; &lt;p&gt;The solution lies on a magic field called &lt;strong&gt;Allow Early Termination&lt;/strong&gt;. According to &lt;a href="http://technet.microsoft.com/en-us/library/aa560982.aspx"&gt;this&lt;/a&gt;, the &lt;strong&gt;Allow Early Termination&lt;/strong&gt; field &lt;em&gt;"indicates whether positional records can terminate early or must contain data for all record fields."&lt;/em&gt; By default is set to &lt;strong&gt;No&lt;/strong&gt;, which means that the record must contain data for all the fields. To solve our problem we must set it to &lt;strong&gt;Yes&lt;/strong&gt;. Click in the &lt;strong&gt;&amp;lt;Schema&amp;gt;&lt;/strong&gt; node and you can find the &lt;strong&gt;Allow Early Termination&lt;/strong&gt; field.&lt;/p&gt; &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatFilehints_E48A/image_14.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="415" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/BizTalkFlatFilehints_E48A/image_thumb_6.png" width="995" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now if we validate it once again we get a success message. I hope this helps someone.&lt;/p&gt; &lt;p&gt;Until next time ;)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8433a8ef-df7b-4a77-932e-65ea96dbf967" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/flat%20file%20schema" rel="tag"&gt;flat file schema&lt;/a&gt;, &lt;a href="http://technorati.com/tags/biztalk%20server%202006" rel="tag"&gt;biztalk server 2006&lt;/a&gt;, &lt;a href="http://technorati.com/tags/positional%20length" rel="tag"&gt;positional length&lt;/a&gt;, &lt;a href="http://technorati.com/tags/allow%20early%20termination" rel="tag"&gt;allow early termination&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/4535.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/08/4535.aspx</guid>
            <pubDate>Thu, 08 May 2008 14:35:58 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/4535.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/05/08/4535.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/4535.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/4535.aspx</trackback:ping>
        </item>
        <item>
            <title>The world is upside down...</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/04/07/4208.aspx</link>
            <description>&lt;p&gt;This was my felling after I read this &lt;a href="http://feeds.feedburner.com/~r/clemensv/~3/261423938/PermaLink,guid,798bbf5b-f9f9-45b9-87ba-f6a30c359af9.aspx"&gt;post&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;In a positive way, things are changing inside &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;. Some years ago you would never seen some prerequisites to install like this:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Runtime: &lt;/em&gt;&lt;a href="http://java.sun.com/javaee/"&gt;&lt;em&gt;Java EE 5&lt;/em&gt;&lt;/a&gt;&lt;em&gt; on &lt;/em&gt;&lt;a href="https://glassfish.dev.java.net/"&gt;&lt;em&gt;Sun Glassfish v2&lt;/em&gt;&lt;/a&gt;&lt;em&gt; + &lt;/em&gt;&lt;a href="https://metro.dev.java.net/"&gt;&lt;em&gt;Sun WSIT/Metro&lt;/em&gt;&lt;/a&gt;&lt;em&gt; (JAX-WS extensions), Tool: &lt;/em&gt;&lt;a href="http://netbeans.org"&gt;&lt;em&gt;Netbeans 6.0 IDE&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;But now &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; is willing to work together with their partners/competitors, struggling for a better "interoperable" world. This shouldn't be a surprise. In the past 21st of February they &lt;a href="http://www.microsoft.com/presspass/press/2008/feb08/02-21ExpandInteroperabilityPR.mspx?rss_fdn=Press%20Releases"&gt;released a communication&lt;/a&gt; stating:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;1. ensuring open connections&lt;br /&gt;2. promoting data portability&lt;br /&gt;3. enhancing support for industry standards&lt;br /&gt;4. fostering more open engagement with customers and the industry, including open source communities.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;If you're wondering, the above requisites are for a sample inside the R11 release of &lt;a href="http://labs.biztalk.net/"&gt;BizTalk Services&lt;/a&gt; that shows how to use the BizTalk Services Identity Security Token Service (STS) to secure the communication between a Java client and a Java service providing federated authentication and claims-based authorization.&lt;/p&gt; &lt;p&gt;Bravo &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;!&lt;/p&gt; &lt;p&gt;Until next time ;)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:399ac1d3-c978-43ee-84e3-f1adcf5d6049" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tags/interoperability" rel="tag"&gt;interoperability&lt;/a&gt;, &lt;a href="http://technorati.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tags/biztalk%20services" rel="tag"&gt;biztalk services&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/4208.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/04/07/4208.aspx</guid>
            <pubDate>Mon, 07 Apr 2008 08:37:41 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/4208.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/04/07/4208.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/4208.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/4208.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk Server Operations Guide</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/04/01/4134.aspx</link>
            <description>&lt;p&gt;From time to time I get this questions: &lt;/p&gt; &lt;ul&gt; &lt;li&gt;"How can I know if the BizTalk is the right tool for the job?"&lt;/li&gt; &lt;li&gt;"How to plan for disaster recovery?"&lt;/li&gt; &lt;li&gt;"How to configure BizTalk for high availability?"&lt;/li&gt; &lt;li&gt;"How to have different environments with BizTalk?"&lt;/li&gt; &lt;li&gt;"What should I backup in the BizTalk databases and how?"&lt;/li&gt; &lt;li&gt;"How to use log shipping? Is it possible?"&lt;/li&gt; &lt;li&gt;"How to deploy using scripts?"&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Certainly you have also asked yourself this sort of questions. Well, lucky for you there's now a great document with the answer to this questions and to a lot more. You can get it &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5251F103-329D-4F8D-95B5-64F99F2F6DFC&amp;amp;displaylang=en"&gt;here&lt;/a&gt; (there's a PDF, DOCX or CHM version).&lt;/p&gt; &lt;p&gt;This document was assembled based on real-world experiences. It's called the "BizTalk Server Operations Guide".&lt;/p&gt; &lt;p&gt;For more details check the &lt;a href="http://blogs.msdn.com/biztalk_server_team_blog/archive/2008/03/21/biztalk-server-operations-guide-is-pulished-on-msdn.aspx"&gt;BizTalk Server Team blog&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Until next time ;)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b3737c6e-0ad2-4591-9db9-4f90a8d0a313" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/biztalk%20server" rel="tag"&gt;biztalk server&lt;/a&gt;, &lt;a href="http://technorati.com/tags/operations%20guide" rel="tag"&gt;operations guide&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/4134.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/04/01/4134.aspx</guid>
            <pubDate>Tue, 01 Apr 2008 14:14:20 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/4134.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/04/01/4134.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/4134.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/4134.aspx</trackback:ping>
        </item>
        <item>
            <title>Promoted property without message schema</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/02/20/3743.aspx</link>
            <description>&lt;p&gt;Let's say that you need to have a context property in order to use it in your &lt;strong&gt;Send Port&lt;/strong&gt; filter. Probably you would do this by selecting one specific field in your schema and mark it has a promoted property. This is basic BizTalk 101. But try doing that without a schema. Now that's a problem! But the solution is very simple. &lt;/p&gt; &lt;ol&gt; &lt;li&gt;In your BizTalk project create a property schema. &lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/Promotedpropertywithoutamessage_A2AE/image6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="159" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/Promotedpropertywithoutamessage_A2AE/image6_thumb.png" width="532" align="right" border="0" /&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Add the property or properties that you would like to promote. In every single one go to the &lt;strong&gt;Properties&lt;/strong&gt; window and set the &lt;strong&gt;Property Schema Base&lt;/strong&gt; value to &lt;strong&gt;MessageContextPropertyBase&lt;/strong&gt;.&lt;/li&gt; &lt;li&gt;Inside your orchestration add a &lt;strong&gt;Message Assignment&lt;/strong&gt; and construct your message, which could be of any type, even a typical &lt;strong&gt;XmlDocument&lt;/strong&gt;. In there add the following line: &lt;font face="Courier New" size="2"&gt;MyMessage(MyNamespace.MyProperty) = "SomeValue";&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;This the first part of the solution, because if you deploy it just like this you'll get this error (although at this point you're able to set the &lt;strong&gt;Send Port&lt;/strong&gt; filters with your properties):&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Routing Failure Report for "Routing Failure Report for "MyOrchestration, MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd16194ad8010d12""&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The reason is shown in the second image. In my case I have two message context properties but they appear as NOT PROMOTED, which means that they aren't used to route the message and so the &lt;strong&gt;Send Port&lt;/strong&gt; filters aren't used. The next steps are to show how to promote our property:&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/Promotedpropertywithoutamessage_A2AE/image10.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="217" alt="image" src="http://agilior.pt/blogs/images/agilior_pt/blogs/rodrigo.guerreiro/WindowsLiveWriter/Promotedpropertywithoutamessage_A2AE/image10_thumb.png" width="534" align="right" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;First create one &lt;strong&gt;Correlation Type&lt;/strong&gt; with the property or properties that you want to promote.&lt;/li&gt; &lt;li&gt;Create the &lt;strong&gt;Correlation Set&lt;/strong&gt; for the &lt;strong&gt;Correlation Type&lt;/strong&gt; that you created.&lt;/li&gt; &lt;li&gt;In the &lt;strong&gt;Send Port&lt;/strong&gt; set the &lt;strong&gt;Initializing Correlation Sets&lt;/strong&gt; property with the previously &lt;strong&gt;Correlation Type&lt;/strong&gt; created .&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;And that's it. Easy, hum?&lt;/p&gt; &lt;p&gt;Until next time ;)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0fd4912e-3361-4a7b-b160-6e28aa5b64ba" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/biztalk%20server%202006" rel="tag"&gt;biztalk server 2006&lt;/a&gt;, &lt;a href="http://technorati.com/tags/property%20schema" rel="tag"&gt;property schema&lt;/a&gt;, &lt;a href="http://technorati.com/tags/promoted%20property" rel="tag"&gt;promoted property&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/3743.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/02/20/3743.aspx</guid>
            <pubDate>Wed, 20 Feb 2008 14:13:46 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/3743.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/02/20/3743.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/3743.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/3743.aspx</trackback:ping>
        </item>
        <item>
            <title>REMEMBER: XmlDocument isn't Serializable</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/02/15/3707.aspx</link>
            <description>&lt;p&gt;This post is more link a note to myself :) &lt;/p&gt; &lt;p&gt;Yesterday I've spent the entire afternoon struggling with this error:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Type 'System.Xml.XmlDocument' in Assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The solution is very simple: if you're using, in any of your orchestrations, assemblies that have a &lt;strong&gt;XmlDocument&lt;/strong&gt; type field, than, please, mark it with the attribute &lt;strong&gt;NonSerialized&lt;/strong&gt;. The problem is that when an orchestration is going to be &lt;u&gt;dehydrated&lt;/u&gt;, the BizTalk engine is going to serialize every variables (that's why any of your custom classes, that aren't &lt;em&gt;static&lt;/em&gt;, must be marked with the attribute &lt;strong&gt;Serializable&lt;/strong&gt;). If, for instance, you have a variable inside your orchestration that is an instance of a class that has a &lt;strong&gt;XmlDocument&lt;/strong&gt; field then you'll get something like this:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="1131" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="1129"&gt; &lt;p&gt;&lt;em&gt;Uncaught exception (see the 'inner exception' below) has suspended an instance of service '&lt;strong&gt;&amp;lt;the instantiated orchestration&amp;gt;&lt;/strong&gt;(bafd7e78-dd0b-0792-2fa9-83c40dc63946)'.&lt;br /&gt;The service instance will remain suspended until administratively resumed or terminated. &lt;br /&gt;If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.&lt;br /&gt;InstanceId: 201c9481-4591-404f-8ccd-35ab02a2522d&lt;br /&gt;Shape name: &lt;br /&gt;ShapeId: 79491911-f2dc-4d2e-a105-0dc724523c5b&lt;br /&gt;Exception thrown from: segment -1, progress -1&lt;br /&gt;Inner exception: Type 'System.Xml.XmlDocument' in Assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.&lt;br /&gt;Exception type: SerializationException&lt;br /&gt;Source: mscorlib&lt;br /&gt;Target Site: System.Reflection.MemberInfo[] InternalGetSerializableMembers(System.RuntimeType)&lt;br /&gt;The following is a stack trace that identifies the location where the exception occured &lt;/em&gt; &lt;/p&gt;&lt;p&gt;&lt;em&gt;   at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)&lt;br /&gt;   at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)&lt;br /&gt;   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()&lt;br /&gt;   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter)&lt;br /&gt;   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter)&lt;br /&gt;   at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)&lt;br /&gt;   at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)&lt;br /&gt;   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)&lt;br /&gt;   at Microsoft.XLANGs.Core.ObjectSerializer._serialize(Object graph, StringLookup sl)&lt;br /&gt;   at Microsoft.XLANGs.Core.ObjectSerializer.SerializeStateManager(IStateManager stateMgr, StringLookup lookup)&lt;br /&gt;   at Microsoft.XLANGs.Core.Service.Persist(Boolean dehydrate, Context ctx, Boolean idleRequired, Boolean finalPersist, Boolean bypassCommit, Boolean terminate)&lt;br /&gt;   at Microsoft.XLANGs.Core.ServiceContext.PendingCommit(Boolean ignore, XMessage msg)&lt;br /&gt;   at Microsoft.XLANGs.Core.ExceptionHandlingContext.PendingCommit(Boolean ignoreCommit, XMessage msg)&lt;br /&gt;   at Microsoft.XLANGs.Core.Service.PendingCommit(Boolean ignore, XMessage msg)&lt;br /&gt;   at Microsoft.XLANGs.Core.ServiceContext.PendingCommit(Boolean ignore, XMessage msg)&lt;br /&gt;   at Microsoft.XLANGs.Core.ExceptionHandlingContext.PendingCommit(Boolean ignoreCommit, XMessage msg)&lt;br /&gt;   at Microsoft.XLANGs.Core.Service.PendingCommit(Boolean ignore, XMessage msg)&lt;br /&gt;   at Microsoft.XLANGs.Core.ServiceContext.PendingCommit(Boolean ignore, XMessage msg)&lt;br /&gt;   at Microsoft.XLANGs.Core.ExceptionHandlingContext.PendingCommit(Boolean ignoreCommit, XMessage msg)&lt;br /&gt;   at Microsoft.XLANGs.Core.ExceptionHandlingContext.PendingCommit(Boolean ignoreCommit, XMessage msg)&lt;br /&gt;   at Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.SendMessage(Int32 iOperation, XLANGMessage msg, Correlation[] initCorrelations, Correlation[] followCorrelations, Context cxt, Segment seg, ActivityFlags flags)&lt;br /&gt;   at &lt;strong&gt;&amp;lt;the orchestration serializing&amp;gt;&lt;/strong&gt;.segment2(StopConditions stopOn)&lt;br /&gt;   at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception&amp;amp; exp) &lt;/em&gt; &lt;/p&gt;&lt;p&gt;&lt;em&gt;For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Next time, I hope, I'll know what to do... &lt;/p&gt;&lt;p&gt;Until next time ;) &lt;/p&gt;&lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9bd3e198-1e53-4356-bab5-4b06ff3efe07" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/biztalk%20server%202006" rel="tag"&gt;biztalk server 2006&lt;/a&gt;, &lt;a href="http://technorati.com/tags/xmldocument" rel="tag"&gt;xmldocument&lt;/a&gt;, &lt;a href="http://technorati.com/tags/nonserialized" rel="tag"&gt;nonserialized&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/3707.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/02/15/3707.aspx</guid>
            <pubDate>Fri, 15 Feb 2008 08:29:34 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/3707.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2008/02/15/3707.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/3707.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/3707.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk blogs</title>
            <link>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2007/12/19/3395.aspx</link>
            <description>&lt;p&gt;Microsoft recently released and aggregator for the most relevant BizTalk blogs. Check it &lt;a href="http://www.biztalkblogs.com/" target="_blank"&gt;out&lt;/a&gt;. Although it's called "BizTalk blogs" it focuses also in .NET 3.5 and other technologies.&lt;/p&gt; &lt;p&gt;My only question is: WHY MINE ISN'T THERE?? :)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Until next time ;)&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c5f3cc12-2d78-49a4-9cef-50a01e6be84e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/biztalk%20blogs" rel="tag"&gt;biztalk blogs&lt;/a&gt;, &lt;a href="http://technorati.com/tags/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;&lt;/div&gt;&lt;img src="http://agilior.pt/blogs/rodrigo.guerreiro/aggbug/3395.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rodrigo Guerreiro</dc:creator>
            <guid>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2007/12/19/3395.aspx</guid>
            <pubDate>Wed, 19 Dec 2007 08:04:05 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/rodrigo.guerreiro/comments/3395.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/rodrigo.guerreiro/archive/2007/12/19/3395.aspx#feedback</comments>
            <wfw:commentRss>http://agilior.pt/blogs/rodrigo.guerreiro/comments/commentRss/3395.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/rodrigo.guerreiro/services/trackbacks/3395.aspx</trackback:ping>
        </item>
    </channel>
</rss>