<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Implements IVillage - BizTalk</title>
    <link>http://www.implementsivillage.net/</link>
    <description>It takes a village to keep up with .Net</description>
    <language>en-us</language>
    <copyright>Christian M Loris</copyright>
    <lastBuildDate>Sat, 18 Jul 2009 21:24:13 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>cloris@lorisc.com</managingEditor>
    <webMaster>cloris@lorisc.com</webMaster>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=1b8fc681-6331-4926-9ab9-01827f5f8bee</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,1b8fc681-6331-4926-9ab9-01827f5f8bee.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,1b8fc681-6331-4926-9ab9-01827f5f8bee.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1b8fc681-6331-4926-9ab9-01827f5f8bee</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Just a quick note on a small Codeplex project I am starting.  After having done
some BizTalk RFID work, I found the supplied code sample for a duplicate eliminator
to be an excellent example of a custom event handler, but a poor implementation of
a duplicate tag eliminator.  This codeplex project is a little better thought
out dupicate tag eliminator with a few added features.
</p>
        <p>
Go take a look if interested and let me know what you think:  <a href="http://betterdupelim.codeplex.com/">BizTalk
RFID Better Duplicate Tag Eliminator</a></p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=1b8fc681-6331-4926-9ab9-01827f5f8bee" />
      </body>
      <title>BizTalk RFID Better Duplicate Tag Eliminator now on Codeplex</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,1b8fc681-6331-4926-9ab9-01827f5f8bee.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,1b8fc681-6331-4926-9ab9-01827f5f8bee.aspx</link>
      <pubDate>Sat, 18 Jul 2009 21:24:13 GMT</pubDate>
      <description>&lt;p&gt;
Just a quick note on a small Codeplex project I am starting.&amp;nbsp; After having done
some BizTalk RFID work, I found the supplied code sample for a duplicate eliminator
to be an excellent example of a custom event handler, but a poor implementation of
a duplicate tag eliminator.&amp;nbsp; This codeplex project is a little better thought
out dupicate tag eliminator with a few added features.
&lt;/p&gt;
&lt;p&gt;
Go take a look if interested and let me know what you think:&amp;nbsp; &lt;a href="http://betterdupelim.codeplex.com/"&gt;BizTalk
RFID Better Duplicate Tag Eliminator&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=1b8fc681-6331-4926-9ab9-01827f5f8bee" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,1b8fc681-6331-4926-9ab9-01827f5f8bee.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=e7e68324-fa23-4457-85c5-409ea895fb62</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,e7e68324-fa23-4457-85c5-409ea895fb62.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,e7e68324-fa23-4457-85c5-409ea895fb62.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e7e68324-fa23-4457-85c5-409ea895fb62</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
So we've been being pestered by our DBAs (you know the ones) to move our
BizTalk Server 2006's Data Tier from our aging SQL Server 2000 Cluster to our new
shiny SQL Server 2005 Cluster.  The end of our fiscal year was approaching so
we brought in a consultant to help us. I highly recommend Catapult Systems if you
need any BizTalk help. They're smart guys and have reasonable rates (in comparison
to Oracle, who doesn't?).  We met with our consultant Mark and gave him the tour
of our environment and he came back a week later with a solid procedure... BAM, MsgBox,
WSS, Jobs, DBs... all of it.  We executed the procedure along with enough red
lines to maintain their human status.  All seemed to go well - hosts started,
jobs started, Group Hub back up, but wait!  Couple of jobs are failing? 
Hmmm.  Update some physical paths in the backup job and all is well.  Wait.
Tracked Message Copy keeps failing: 
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font color="#ff0000">Executed as user: HARRIS\MLBSQLVLM1. Could not find server 'mlbxxx\sql3'
in sys.servers. Verify that the correct server name was specified. If necessary, execute
the stored procedure sp_addlinkedserver to add the server to sys.servers. [SQLSTATE
42000] (Error 7202).  The step failed.</font>
          </p>
        </blockquote>
        <p>
Now this is very confusing.  We're all on one server.  No need for any linked
servers.  Why does it think mlbxxx\sql3 is a linked server it can't connect with. 
Is it a permission issue?  I checked and double checked the database configuration
from the old server and nothing jumped out at me.  OK.  Time to step into
the deep dark reaches of the BizTalk stored procedures... the starting point: bts_CopyTrackedMessagesToDTA
at line 70:
</p>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">
            <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
              <font size="2">
                <p>
                </p>
              </font>
              <font color="#0000ff" size="2">
                <font color="#0000ff" size="2">exec</font>
              </font>
              <font size="2">
              </font>
              <font color="#808080" size="2">
                <font color="#808080" size="2">(</font>
              </font>
              <font color="#ff0000" size="2">
                <font color="#ff0000" size="2">'INSERT
INTO ['</font>
              </font>
              <font size="2">
              </font>
              <font color="#808080" size="2">
                <font color="#808080" size="2">+</font>
              </font>
              <font size="2"> @dtaDbServer </font>
              <font color="#808080" size="2">
                <font color="#808080" size="2">+</font>
              </font>
              <font size="2">
              </font>
              <font color="#ff0000" size="2">
                <font color="#ff0000" size="2">'].['</font>
              </font>
              <font size="2">
              </font>
              <font color="#808080" size="2">
                <font color="#808080" size="2">+</font>
              </font>
              <font size="2"> @dtaDbName </font>
              <font color="#808080" size="2">
                <font color="#808080" size="2">+</font>
              </font>
              <font size="2">
              </font>
              <font color="#ff0000" size="2">
                <font color="#ff0000" size="2">'].[dbo].[Tracking_Parts1](uidMessageID,
nvcPartName, uidPartID, uidOldPartID, nNumFragments, imgPart, imgPropBag)<br />
SELECT TOP '</font>
              </font>
              <font color="#000000" size="2">
              </font>
              <font color="#808080" size="2">
                <font color="#808080" size="2">+</font>
              </font>
              <font color="#000000" size="2"> @nTotalNumParts </font>
              <font color="#808080" size="2">
                <font color="#808080" size="2">+</font>
              </font>
              <font color="#000000" size="2">
              </font>
              <font color="#ff0000" size="2">
                <font color="#ff0000" size="2">'
mp.uidMessageID, mp.nvcPartName, mp.uidNewPartID, mp.uidOldPartID, p.nNumFragments,
p.imgPart, p.imgPropBag<br />
FROM (SELECT TOP 50 uidMessageID, nID FROM TrackingMessageReferences WITH (ROWLOCK
INDEX(IX_TrackingMessageReferences)) ORDER BY nID ASC) as t<br />
INNER LOOP JOIN #TrkMsgNewPartIDs mp WITH (ROWLOCK) ON t.uidMessageID = mp.uidMessageID<br />
INNER LOOP JOIN Parts p WITH (ROWLOCK INDEX(IX_Parts)) ON mp.uidOldPartID = p.uidPartID<br />
OPTION (KEEPFIXED PLAN)'</font>
              </font>
              <font color="#808080" size="2">
                <font color="#808080" size="2">)
</font>
              </font>
            </blockquote>
          </font>
        </font>
        <p>
          <font size="2">
            <font color="#000000">The thing that jumped out at me was the use of
the full 4 part reference to the TrackingParts1 table.  This should be extra
clear.  There should be no confusion.  Let me look in sys.server... it's
wrong... it has MLBYYY\sql3.  How could this be... how can I ask the server it's
name:</font>
          </font>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <font color="#000000">
          </font>
          <font size="2">
            <font color="#0000ff" size="2">
              <font color="#0000ff" size="2">
                <p>
select
</p>
              </font>
            </font>
            <font color="#000000" size="2">
            </font>
            <font color="#ff00ff" size="2">
              <font color="#ff00ff" size="2">SERVERPROPERTY</font>
            </font>
            <font color="#808080" size="2">
              <font color="#808080" size="2">(</font>
            </font>
            <font color="#ff0000" size="2">
              <font color="#ff0000" size="2">'servername'</font>
            </font>
            <font color="#808080" size="2">
              <font color="#808080" size="2">); <font color="#000000">returns
mlbxxx\sql3. correct. strange.</font></font>
            </font>
          </font>
        </blockquote>
        <p dir="ltr">
          <font color="#808080" size="2">
            <font color="#808080" size="2">
              <font color="#000000">Is
there another way?  Yes.</font>
            </font>
          </font>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <font color="#808080" size="2">
            <font color="#808080" size="2">
              <font color="#000000">
                <font color="#0000ff" size="2">
                  <font color="#0000ff" size="2">
                    <p>
select
</p>
                  </font>
                </font>
                <font size="2">
                </font>
                <font color="#ff00ff" size="2">
                  <font color="#ff00ff" size="2">@@servername</font>
                </font>
                <font color="#808080" size="2">
                  <font color="#808080" size="2">; <font color="#000000">return
mlbyyy\sql3 - </font><font color="#000000">wrong.  It thinks it has two names?</font></font>
                </font>
                <font color="#808080" size="2">
                  <font color="#808080" size="2">
                  </font>
                </font>
              </font>
            </font>
          </font>
        </blockquote>
        <p dir="ltr">
          <font color="#808080" size="2">
            <font color="#808080" size="2">
              <font color="#000000">The
detail here is how each command gets the name.  The SERVERPROPERTY comes from
the Windows OS.  @@servername is the name set during installation.  I am
guessing the SQL Server was built from an image and the @@servername was never adjusted
when the machine was renamed.  So why didn't my query work?  It appears
that when you specify the full four part name of a table, it goes to sys.servers to
find out about the specified server.  If you don't specify a server (less than
full 4 part naming), it bypasses sys.servers and assumes local or gets the name from
the SERVERPROPERTY.</font>
            </font>
          </font>
        </p>
        <p dir="ltr">
          <font color="#000000">The fix:</font>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font face="Verdana">sp_dropserver &lt;mlbyyywhatever was returned by @@servername&gt;;<br /></font>
            <font face="Verdana">go;<br /></font>
            <font face="Verdana">sp_addserver 'mlbxxx\sql3', local;<br />
go</font>
          </p>
        </blockquote>
        <p>
          <font face="Verdana">then restart the server or instance. See the <a href="http://msdn.microsoft.com/en-us/library/ms143799.aspx">KB
article</a> for the gory details.  Once this was corrected, everything worked
like a charm.</font>
        </p>
        <p dir="ltr">
          <font color="#808080" size="2">
            <font color="#808080" size="2">
              <font color="#000000">
              </font> 
</font>
          </font>
        </p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=e7e68324-fa23-4457-85c5-409ea895fb62" />
      </body>
      <title>When your BizTalk Server Doesn't Know Its Name (aka [Error 7202])</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,e7e68324-fa23-4457-85c5-409ea895fb62.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,e7e68324-fa23-4457-85c5-409ea895fb62.aspx</link>
      <pubDate>Tue, 05 May 2009 21:40:45 GMT</pubDate>
      <description>&lt;p&gt;
So we've been being pestered by our DBAs&amp;nbsp;(you know the ones)&amp;nbsp;to move our
BizTalk Server 2006's Data Tier from our aging SQL Server 2000 Cluster to our new
shiny SQL Server 2005 Cluster.&amp;nbsp; The end of our fiscal year was approaching so
we brought in a consultant to help us. I highly recommend Catapult Systems if you
need any BizTalk help.&amp;nbsp;They're smart guys and have reasonable rates (in comparison
to Oracle, who doesn't?).&amp;nbsp; We met with our consultant Mark and gave him the tour
of our environment and he came back a week later with a solid procedure... BAM, MsgBox,
WSS, Jobs, DBs... all of it.&amp;nbsp; We executed the procedure along with enough red
lines to maintain their human status.&amp;nbsp; All seemed to go well - hosts started,
jobs started, Group Hub back up, but wait!&amp;nbsp; Couple of jobs are failing?&amp;nbsp;
Hmmm.&amp;nbsp; Update some physical paths in the backup job and all is well.&amp;nbsp; Wait.
Tracked Message Copy&amp;nbsp;keeps failing:&amp;nbsp;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font color=#ff0000&gt;Executed as user: HARRIS\MLBSQLVLM1. Could not find server 'mlbxxx\sql3'
in sys.servers. Verify that the correct server name was specified. If necessary, execute
the stored procedure sp_addlinkedserver to add the server to sys.servers. [SQLSTATE
42000] (Error 7202).&amp;nbsp; The step failed.&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Now this is very confusing.&amp;nbsp; We're all on one server.&amp;nbsp; No need for any linked
servers.&amp;nbsp; Why does it think mlbxxx\sql3 is a linked server it can't connect with.&amp;nbsp;
Is it a permission issue?&amp;nbsp; I checked and double checked the database configuration
from the old server and nothing jumped out at me.&amp;nbsp; OK.&amp;nbsp; Time to step into
the deep dark reaches of the BizTalk stored procedures... the starting point: bts_CopyTrackedMessagesToDTA
at line 70:
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt; &lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;exec&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;/font&gt;&lt;font color=#ff0000 size=2&gt;&lt;font color=#ff0000 size=2&gt;'INSERT
INTO ['&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; @dtaDbServer &lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;&lt;font color=#ff0000 size=2&gt;'].['&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; @dtaDbName &lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;&lt;font color=#ff0000 size=2&gt;'].[dbo].[Tracking_Parts1](uidMessageID,
nvcPartName, uidPartID, uidOldPartID, nNumFragments, imgPart, imgPropBag)&lt;br&gt;
SELECT TOP '&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; @nTotalNumParts &lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;&lt;font color=#ff0000 size=2&gt;'
mp.uidMessageID, mp.nvcPartName, mp.uidNewPartID, mp.uidOldPartID, p.nNumFragments,
p.imgPart, p.imgPropBag&lt;br&gt;
FROM (SELECT TOP 50 uidMessageID, nID FROM TrackingMessageReferences WITH (ROWLOCK
INDEX(IX_TrackingMessageReferences)) ORDER BY nID ASC) as t&lt;br&gt;
INNER LOOP JOIN #TrkMsgNewPartIDs mp WITH (ROWLOCK) ON t.uidMessageID = mp.uidMessageID&lt;br&gt;
INNER LOOP JOIN Parts p WITH (ROWLOCK INDEX(IX_Parts)) ON mp.uidOldPartID = p.uidPartID&lt;br&gt;
OPTION (KEEPFIXED PLAN)'&lt;/font&gt;&lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;/font&gt;
&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;p&gt;
&lt;font size=2&gt;&lt;font color=#000000&gt;The thing that jumped out at me was the use of the
full 4 part reference to the TrackingParts1 table.&amp;nbsp; This should be extra clear.&amp;nbsp;
There should be no confusion.&amp;nbsp; Let me look in sys.server... it's wrong... it
has MLBYYY\sql3.&amp;nbsp; How could this be... how can I ask the server it's name:&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;font color=#000000&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
select
&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;&lt;font color=#ff00ff size=2&gt;SERVERPROPERTY&lt;/font&gt;&lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;/font&gt;&lt;font color=#ff0000 size=2&gt;&lt;font color=#ff0000 size=2&gt;'servername'&lt;/font&gt;&lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;); &lt;font color=#000000&gt;returns
mlbxxx\sql3. correct. strange.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#000000&gt;Is there
another way?&amp;nbsp; Yes.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#000000&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
select
&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;&lt;font color=#ff00ff size=2&gt;@@servername&lt;/font&gt;&lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;; &lt;font color=#000000&gt;return
mlbyyy\sql3 - &lt;/font&gt;&lt;font color=#000000&gt;wrong.&amp;nbsp; It thinks it has two names?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#000000&gt;The detail
here is how each command gets the name.&amp;nbsp; The SERVERPROPERTY comes from the Windows
OS.&amp;nbsp; @@servername is the name set during installation.&amp;nbsp; I am guessing the
SQL Server was built from an image and the @@servername was never adjusted when the
machine was renamed.&amp;nbsp; So why didn't my query work?&amp;nbsp; It appears that when
you specify the full four part name of a table, it goes to sys.servers to find out
about the specified server.&amp;nbsp; If you don't specify a server (less than full 4
part naming), it bypasses sys.servers and assumes local or gets the name from the
SERVERPROPERTY.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font color=#000000&gt;The fix:&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font face=Verdana&gt;sp_dropserver &amp;lt;mlbyyywhatever was returned by @@servername&amp;gt;;&lt;br&gt;
&lt;/font&gt;&lt;font face=Verdana&gt;go;&lt;br&gt;
&lt;/font&gt;&lt;font face=Verdana&gt;sp_addserver 'mlbxxx\sql3', local;&lt;br&gt;
go&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;font face=Verdana&gt;then restart the server or instance. See the &lt;a href="http://msdn.microsoft.com/en-us/library/ms143799.aspx"&gt;KB
article&lt;/a&gt; for the gory details.&amp;nbsp; Once this was corrected, everything worked
like a charm.&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font color=#808080 size=2&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&gt;&gt;&gt;&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=e7e68324-fa23-4457-85c5-409ea895fb62" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,e7e68324-fa23-4457-85c5-409ea895fb62.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=87b7a93b-3785-4978-90bf-7aaf372e9b91</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,87b7a93b-3785-4978-90bf-7aaf372e9b91.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,87b7a93b-3785-4978-90bf-7aaf372e9b91.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=87b7a93b-3785-4978-90bf-7aaf372e9b91</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I got this from <a href="http://seroter.wordpress.com/2008/09/16/new-microsoft-kb-article-on-biztalk-database-support/">Richard
Seroter's blog</a> - <a href="http://support.microsoft.com/kb/952555/en-us">How
to maintain and troubleshoot BizTalk Server databases</a></p>
        <p>
It looks to be very helpful from the brief skimming I gave it.
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=87b7a93b-3785-4978-90bf-7aaf372e9b91" />
      </body>
      <title>New Microsoft KB article gives guidance on Database maintenance &amp; troubleshooting for BizTalk</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,87b7a93b-3785-4978-90bf-7aaf372e9b91.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,87b7a93b-3785-4978-90bf-7aaf372e9b91.aspx</link>
      <pubDate>Tue, 16 Sep 2008 19:45:14 GMT</pubDate>
      <description>&lt;p&gt;
I got this from &lt;a href="http://seroter.wordpress.com/2008/09/16/new-microsoft-kb-article-on-biztalk-database-support/"&gt;Richard
Seroter's blog&lt;/a&gt; -&amp;nbsp;&lt;a href="http://support.microsoft.com/kb/952555/en-us"&gt;How
to maintain and troubleshoot BizTalk Server databases&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
It looks to be very helpful from the brief skimming I gave it.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=87b7a93b-3785-4978-90bf-7aaf372e9b91" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,87b7a93b-3785-4978-90bf-7aaf372e9b91.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=d7b007e9-1528-4bd2-8ec0-299624b437c3</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,d7b007e9-1528-4bd2-8ec0-299624b437c3.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,d7b007e9-1528-4bd2-8ec0-299624b437c3.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d7b007e9-1528-4bd2-8ec0-299624b437c3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A very insightful bit of writing by Richar Seroter on <a href="http://seroter.wordpress.com/2008/08/15/impact-of-database-availability-on-biztalk-web-services/">what
happens to BizTalk Web Service receive locations when the DB goes bye bye</a>. When
the SQL Server goes off line, take down the IIS service on your BizTalk servers. 
This is really kind of scary.  When the SQL Server goes offline, the BizTalk web
services return 202's which is just as good as a 200 to most - and the message is
lost.  I need to think this one through and see how to deal with it.  We
don't lose our database alot, but it has gone offline on enough occasions to make
this a real concern.  Anybody have expereince handling this one?
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=d7b007e9-1528-4bd2-8ec0-299624b437c3" />
      </body>
      <title>What Happens to BizTalk when SQL goes down?</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,d7b007e9-1528-4bd2-8ec0-299624b437c3.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,d7b007e9-1528-4bd2-8ec0-299624b437c3.aspx</link>
      <pubDate>Tue, 02 Sep 2008 16:57:48 GMT</pubDate>
      <description>&lt;p&gt;
A very insightful bit of writing by Richar Seroter on &lt;a href="http://seroter.wordpress.com/2008/08/15/impact-of-database-availability-on-biztalk-web-services/"&gt;what
happens to BizTalk Web Service receive locations when the DB goes bye bye&lt;/a&gt;.&amp;nbsp;When
the SQL Server goes off line, take down the IIS service on your BizTalk servers.&amp;nbsp;
This is really kind of scary.&amp;nbsp; When the SQL Server goes offline, the BizTalk&amp;nbsp;web
services return 202's which is just as good as a 200 to most - and the message is
lost.&amp;nbsp; I need to think this one through and see how to deal with it.&amp;nbsp; We
don't lose our database alot, but it has gone offline on enough occasions to make
this a real concern.&amp;nbsp; Anybody have expereince handling this one?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=d7b007e9-1528-4bd2-8ec0-299624b437c3" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,d7b007e9-1528-4bd2-8ec0-299624b437c3.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=2242d1eb-af70-4353-8ab1-d9a008eae485</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,2242d1eb-af70-4353-8ab1-d9a008eae485.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,2242d1eb-af70-4353-8ab1-d9a008eae485.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2242d1eb-af70-4353-8ab1-d9a008eae485</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thanks to Joe Healy for passing on the <a href="http://devfish.net/fullblogitemview.aspx?blogid=572">announcement</a> from
Stan Kennedy.  On October 1st, there will be the first meeting of the Central
Florida BizTalk User Group in Tampa.  A bit of a hall, but I will be attempting
the trip.  Anyoneinterested in car pooling?
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=2242d1eb-af70-4353-8ab1-d9a008eae485" />
      </body>
      <title>Central Florida BizTalk User Group</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,2242d1eb-af70-4353-8ab1-d9a008eae485.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,2242d1eb-af70-4353-8ab1-d9a008eae485.aspx</link>
      <pubDate>Tue, 02 Sep 2008 16:46:42 GMT</pubDate>
      <description>&lt;p&gt;
Thanks to Joe Healy for passing on the &lt;a href="http://devfish.net/fullblogitemview.aspx?blogid=572"&gt;announcement&lt;/a&gt; from
Stan Kennedy.&amp;nbsp; On October 1st, there will be the first meeting of the Central
Florida BizTalk User Group in Tampa.&amp;nbsp; A bit of a hall, but I will be attempting
the trip.&amp;nbsp; Anyoneinterested in car pooling?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=2242d1eb-af70-4353-8ab1-d9a008eae485" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,2242d1eb-af70-4353-8ab1-d9a008eae485.aspx</comments>
      <category>BizTalk;User Group</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=1ba02041-3caf-4afe-a505-9f10365f3ca8</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,1ba02041-3caf-4afe-a505-9f10365f3ca8.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,1ba02041-3caf-4afe-a505-9f10365f3ca8.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1ba02041-3caf-4afe-a505-9f10365f3ca8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Since getting back from TechEd things have been a bit crazy.  The rest of the
week there was a blast.  I got to meet many more community members and catch
some really interesting presentations.  I am currently fascinated with the SQL
Server 2008 Data Mining tools and am in search of a good problem.   I'd
like to turn this into a presentation for the local User Group.  
</p>
        <p>
One of the other highlights was using the Certification Testing at the conference. 
After sorting out some issues with the name on my certification, I was able to finally
get this logo:
</p>
        <p align="center">
          <img src="http://www.implementsivillage.net/content/binary/MCTS(rgb)_511.gif" border="0" />
        </p>
        <p align="left">
That was not a pleasant test.  The tool just has so many facets to it and it's
really impossible to have used all of them.  But the test prep senter at the
conference and some reading got me a pass on the first try.
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=1ba02041-3caf-4afe-a505-9f10365f3ca8" />
      </body>
      <title>Updates</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,1ba02041-3caf-4afe-a505-9f10365f3ca8.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,1ba02041-3caf-4afe-a505-9f10365f3ca8.aspx</link>
      <pubDate>Mon, 21 Jul 2008 20:31:22 GMT</pubDate>
      <description>&lt;p&gt;
Since getting back from TechEd things have been a bit crazy.&amp;nbsp; The rest of the
week there was a blast.&amp;nbsp; I got to meet many more community members and catch
some really interesting presentations.&amp;nbsp; I am currently fascinated with the SQL
Server 2008 Data Mining tools and am in search of a good problem.&amp;nbsp;&amp;nbsp; I'd
like to turn this into a presentation for the local User Group.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
One of the other highlights was using the Certification Testing at the conference.&amp;nbsp;
After sorting out some issues with the name on my certification, I was able to finally
get this logo:
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.implementsivillage.net/content/binary/MCTS(rgb)_511.gif" border=0&gt;
&lt;/p&gt;
&lt;p align=left&gt;
That was not a pleasant test.&amp;nbsp; The tool just has so many facets to it and it's
really impossible to have used all of them.&amp;nbsp; But the test prep senter at the
conference and some reading got me a pass on the first try.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=1ba02041-3caf-4afe-a505-9f10365f3ca8" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,1ba02041-3caf-4afe-a505-9f10365f3ca8.aspx</comments>
      <category>BizTalk;TechEd;User Group</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=170fb77c-cf61-4678-9fdb-ac640f4c33b6</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,170fb77c-cf61-4678-9fdb-ac640f4c33b6.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,170fb77c-cf61-4678-9fdb-ac640f4c33b6.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=170fb77c-cf61-4678-9fdb-ac640f4c33b6</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I ran into a BizTalk problem today that was inevitable.  We interface with PeopleSoft 
a bunch.  PeopleSoft has some very specific Schemas it uses to communicate. 
We have two seperate applications that make use of the same schema in reading responses
posted to the PeopleSoft web service.  Well the second of two projects what put
into production a few days ago.  When I came in this morning, one of them had
a suspended message on the receive side of a HTTP Send/Receive adapter:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font face="Courier New">Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines,
Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
<br /></font>
            <font face="Courier New">Source: "XML disassembler" 
<br />
Receive Port: "rcvFile" 
<br />
URI: "C:\Test\In\*.xml" 
<br />
Reason: Cannot locate document specification because multiple schemas matched the
message type</font>
          </p>
        </blockquote>
        <p dir="ltr">
So, as expected, BizTalk could not figure out which schema to resolve the message
to as it exists in this Applicaion and another.  The default XML Receive Pipieline
is not very helpful in this situation as it is just that - default.  The solution
turns out to be quite simple.  Create a new Receive Pipeline and add an XML Disassembler
to the Disassemble stage.  In the XML Disassembler's properties, add the desired
schema from the application to the disassembler's Document Schemas collection. 
This tells the disassembler to select from this list only.  If the list is empty,
it will behave the same way as the default XML Receive Pipeline.
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=170fb77c-cf61-4678-9fdb-ac640f4c33b6" />
      </body>
      <title>Handling Identical Schemas Across Multiple Applications</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,170fb77c-cf61-4678-9fdb-ac640f4c33b6.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,170fb77c-cf61-4678-9fdb-ac640f4c33b6.aspx</link>
      <pubDate>Wed, 21 May 2008 21:36:22 GMT</pubDate>
      <description>&lt;p&gt;
I ran into a BizTalk problem today that was inevitable.&amp;nbsp; We interface with PeopleSoft&amp;nbsp;
a bunch.&amp;nbsp; PeopleSoft has some very specific Schemas it uses to communicate.&amp;nbsp;
We have two seperate applications that make use of the same schema in reading responses
posted to the PeopleSoft web service.&amp;nbsp; Well the second of two projects what put
into production a few days ago.&amp;nbsp; When I came in this morning, one of them had
a suspended message on the receive side of a HTTP Send/Receive adapter:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines,
Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
&lt;br&gt;
&lt;/font&gt;&lt;font face="Courier New"&gt;Source: "XML disassembler" 
&lt;br&gt;
Receive Port: "rcvFile" 
&lt;br&gt;
URI: "C:\Test\In\*.xml" 
&lt;br&gt;
Reason: Cannot locate document specification because multiple schemas matched the
message type&lt;/font&gt; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
So, as expected, BizTalk could not figure out which schema to resolve the message
to as it exists in this Applicaion and another.&amp;nbsp; The default XML Receive Pipieline
is not very helpful in this situation as it is just that - default.&amp;nbsp; The solution
turns out to be quite simple.&amp;nbsp; Create a new Receive Pipeline and add an XML Disassembler
to the Disassemble stage.&amp;nbsp; In the XML Disassembler's properties, add the desired
schema from the application to the disassembler's Document Schemas collection.&amp;nbsp;
This tells the disassembler to select from this list only.&amp;nbsp; If the list is empty,
it will behave the same way as the default XML Receive Pipeline.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=170fb77c-cf61-4678-9fdb-ac640f4c33b6" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,170fb77c-cf61-4678-9fdb-ac640f4c33b6.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=b40af6f1-46f4-4792-b3dc-9f680e1c43e1</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,b40af6f1-46f4-4792-b3dc-9f680e1c43e1.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,b40af6f1-46f4-4792-b3dc-9f680e1c43e1.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b40af6f1-46f4-4792-b3dc-9f680e1c43e1</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Spent a few days battling an error on an HTTP Send Port.  We've been having messages
suspend when posting data to Siebel.  The funny part is that the messages
got accross ok.  We were only getting the error on the ACK from the send port. 
The error message on the suspended message was:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
The server committed a protocol violation. Section=ResponseHeader Detail=CR must be
followed by LF
</p>
        </blockquote>
        <p dir="ltr">
We brough this up to the Siebel guys but they were a little slow moving on the informatio
that they were sending us bad responses.  After a few days I got nervous that
the problem may have not been on their end.  So I dragged out NetMon.  And
here's what I saw:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p dir="ltr">
  Frame: 
<br />
+ Ethernet: Etype = Internet IP (IPv4)<br />
+ Ipv4: Next Protocol = TCP, Packet ID = 50895, Total IP Length = 467<br />
+ Tcp: Flags=...PA..., SrcPort=HTTP(80), DstPort=1427, Len=427, Seq=2928398986 - 2928399413,
Ack=4246831364, Win=64240 (scale factor not found)<br />
- Http: Response, HTTP/1.1, Status Code = 204<br />
  - Response: 
<br />
     ProtocolVersion: HTTP/1.1<br />
     StatusCode: 204, No content<br />
     Reason: No Content<br />
     Date:  Thu, 15 May 2008 20:28:51 GMT<br />
     Server:  Microsoft-IIS/6.0<br />
     XPoweredBy:  ASP.NET<br />
     process instance id:  1-1DEHL5<br />
     user-agent:  Microsoft (R) BizTalk (R) Server 2006 3.0.1.0<br />
     datahandlingsubsystem:  HRFQADProductInbound<br />
     transporttype:  HTTP<br />
     expect:  100-continue<br />
     object id:  1-Z02HX<br />
     connection:  Keep-Alive<br />
     cache-control:  no-cache, must-revalidate, max-age=0<br />
     Pragma:  no-cache<br />
     Host:  mlbsbltst1vm<br />
     HeaderEnd: CRLF
</p>
        </blockquote>
        <p dir="ltr">
So I dragged out RFC 2616 to go over what the HTTP Header should look like. 
I found that the header field name should be a token and that the definition of a
token is:
</p>
        <font face="Courier New" size="2">
          <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
            <p>
token = 1*&lt;any CHAR except CTLs or separators&gt;<br />
separators = "(" | ")" | "&lt;" | "&gt;" | "@"<br />
             | "," | ";"
| ":" | "\" | &lt;"&gt;<br />
             | "/" | "["
| "]" | "?" | "="<br />
             | "{" | "}"
| SP | HT
</p>
          </blockquote>
        </font>
        <p dir="ltr">
So, in the aforementioned header the following fields are of interest:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p dir="ltr">
     process instance id:  1-1DEHL5<br /><br />
     object id:  1-Z02HX
</p>
        </blockquote>
        <p dir="ltr">
They are bad.  BizTalk is right.  Working on the Siebel guys to take out
these custom header fileds (or make them compliant at the least). 
</p>
        <p dir="ltr">
The problem troubleshooting something like this is that BizTalk chokes on the message
in the pipeline and it doesn't get captured anywhere.  I had to reproduce it
in an environment where I could use NetMon to grab the actual data from the wire. 
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=b40af6f1-46f4-4792-b3dc-9f680e1c43e1" />
      </body>
      <title>BizTalk HTTP Send Port Error: The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,b40af6f1-46f4-4792-b3dc-9f680e1c43e1.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,b40af6f1-46f4-4792-b3dc-9f680e1c43e1.aspx</link>
      <pubDate>Thu, 15 May 2008 20:54:09 GMT</pubDate>
      <description>&lt;p&gt;
Spent a few days battling an error on an HTTP Send Port.&amp;nbsp; We've been having messages
suspend when&amp;nbsp;posting data to Siebel.&amp;nbsp; The funny part is that the messages
got accross ok.&amp;nbsp; We were only getting the error on the ACK from the send port.&amp;nbsp;
The error message on the suspended message&amp;nbsp;was:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
The server committed a protocol violation. Section=ResponseHeader Detail=CR must be
followed by LF
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
We brough this up to the Siebel guys but they were a little slow moving on the informatio
that they were sending us bad responses.&amp;nbsp; After a few days I got nervous that
the problem may have not been on their end.&amp;nbsp; So I dragged out NetMon.&amp;nbsp; And
here's what I saw:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p dir=ltr&gt;
&amp;nbsp; Frame: 
&lt;br&gt;
+ Ethernet: Etype = Internet IP (IPv4)&lt;br&gt;
+ Ipv4: Next Protocol = TCP, Packet ID = 50895, Total IP Length = 467&lt;br&gt;
+ Tcp: Flags=...PA..., SrcPort=HTTP(80), DstPort=1427, Len=427, Seq=2928398986 - 2928399413,
Ack=4246831364, Win=64240 (scale factor not found)&lt;br&gt;
- Http: Response, HTTP/1.1, Status Code = 204&lt;br&gt;
&amp;nbsp; - Response: 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProtocolVersion: HTTP/1.1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StatusCode: 204, No content&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reason: No Content&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date:&amp;nbsp; Thu, 15 May 2008 20:28:51 GMT&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Server:&amp;nbsp; Microsoft-IIS/6.0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XPoweredBy:&amp;nbsp; ASP.NET&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; process instance id:&amp;nbsp; 1-1DEHL5&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user-agent:&amp;nbsp; Microsoft (R) BizTalk (R) Server 2006 3.0.1.0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datahandlingsubsystem:&amp;nbsp; HRFQADProductInbound&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; transporttype:&amp;nbsp; HTTP&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect:&amp;nbsp; 100-continue&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object id:&amp;nbsp; 1-Z02HX&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection:&amp;nbsp; Keep-Alive&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cache-control:&amp;nbsp; no-cache, must-revalidate, max-age=0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pragma:&amp;nbsp; no-cache&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Host:&amp;nbsp; mlbsbltst1vm&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HeaderEnd: CRLF
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
So I dragged out RFC 2616 to go over what the HTTP Header should look like.&amp;nbsp;
I found that the header field name should be a token and that the definition of a
token is:
&lt;/p&gt;
&lt;font face="Courier New" size=2&gt; &lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
token = 1*&amp;lt;any CHAR except CTLs or separators&amp;gt;&lt;br&gt;
separators = "(" | ")" | "&amp;lt;" | "&amp;gt;" | "@"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | "," | ";"
| ":" | "\" | &amp;lt;"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | "/" | "["
| "]" | "?" | "="&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | "{" | "}"
| SP | HT
&lt;/p&gt;
&lt;/blockquote&gt;&lt;/font&gt; 
&lt;p dir=ltr&gt;
So, in the aforementioned header the following fields are of interest:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p dir=ltr&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; process instance id:&amp;nbsp; 1-1DEHL5&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object id:&amp;nbsp; 1-Z02HX
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
They are bad.&amp;nbsp; BizTalk is right.&amp;nbsp; Working on the Siebel guys to take out
these custom header fileds (or make them compliant at the least).&amp;nbsp;
&lt;/p&gt;
&lt;p dir=ltr&gt;
The problem troubleshooting something like this is that BizTalk chokes on the message
in the pipeline and it doesn't get captured anywhere.&amp;nbsp; I had to reproduce it
in an environment where I could use NetMon to grab the actual data from the wire.&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=b40af6f1-46f4-4792-b3dc-9f680e1c43e1" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,b40af6f1-46f4-4792-b3dc-9f680e1c43e1.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=059fee7c-2d43-46ab-9fa9-06ca0b307884</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,059fee7c-2d43-46ab-9fa9-06ca0b307884.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,059fee7c-2d43-46ab-9fa9-06ca0b307884.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=059fee7c-2d43-46ab-9fa9-06ca0b307884</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Are you experiencing similar BizTalk issues like the ones I described in previous
posts?  I've seen some search term hits that indicate you might be.  If
so, please comment or emailme directly, I'd like to hear about it and compare notes.
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=059fee7c-2d43-46ab-9fa9-06ca0b307884" />
      </body>
      <title>BizTalk Blocking Issues - You Having Them?</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,059fee7c-2d43-46ab-9fa9-06ca0b307884.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,059fee7c-2d43-46ab-9fa9-06ca0b307884.aspx</link>
      <pubDate>Wed, 23 Jan 2008 03:18:20 GMT</pubDate>
      <description>&lt;p&gt;
Are you experiencing similar BizTalk issues like the ones I described in previous
posts?&amp;nbsp; I've seen some search term hits that indicate you might be.&amp;nbsp; If
so, please comment or emailme directly, I'd like to hear about it and compare notes.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=059fee7c-2d43-46ab-9fa9-06ca0b307884" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,059fee7c-2d43-46ab-9fa9-06ca0b307884.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=6999c59d-ae99-4ef5-9997-7d826fc1365c</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,6999c59d-ae99-4ef5-9997-7d826fc1365c.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,6999c59d-ae99-4ef5-9997-7d826fc1365c.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=6999c59d-ae99-4ef5-9997-7d826fc1365c</wfw:commentRss>
      <title>Microsoft vs. [Insert Other Vendor Here] - An Intangible to Consider</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,6999c59d-ae99-4ef5-9997-7d826fc1365c.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,6999c59d-ae99-4ef5-9997-7d826fc1365c.aspx</link>
      <pubDate>Tue, 22 Jan 2008 02:57:39 GMT</pubDate>
      <description>&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;I
am in the middle of a medium size BI project where we chose Microsoft for ETL with
the SSIS component of SQL Server 2005.&amp;nbsp; For various factors, we decided on Cognos
8 for the Cube and Presentation layers.&amp;nbsp; As part of the analysis we took in to
account things like cost, Gartner, In-House skill sets and so on.&amp;nbsp; It was a pretty
even race for Cognos &amp;amp; MS Performance Point Server (PPS) and we ended up going
with Cognos.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;Some background
information on our Cognos implementation.&amp;nbsp; It came in-house with a product called
Agile.&amp;nbsp; So since we were licensed, we went with it for basic reporting needs.&amp;nbsp;
Now we're at the point we're we are really looking at BI - time analysis of data,
ad hoc analysis, KPIs, and so on.&amp;nbsp; We made an assumption that we could leverage
our existing Cognos skill sets into the world of Cognos 8 BI.&amp;nbsp; It wasn't a great
bet.&amp;nbsp; We sent some people to training and they took away what most take away
from a week long course based on a vendor curriculum (This is not just a Cognos issue,
we have a real challenge finding solid training for the Microsoft stuff too).&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;Now, I was in
the same position our Cognos talent was in when I went to work on BizTalk.&amp;nbsp; I
had a strong background in the fundamentals of .Net languages and Web development.&amp;nbsp;
I went off to take the one week training course (much love to Mark Berry at &lt;a href="http://www.dunntraining.com"&gt;&lt;font color=#800080&gt;Dunn
Training&lt;/font&gt;&lt;/a&gt;) and came away with a strong set of basic tools.&amp;nbsp; When I
went up against the kind of problems we're hitting in Cognos right now, there was
a difference.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;Searching for
help on Cognos technical issues is really difficult.&amp;nbsp; There is very little out
there in the way of web based community.&amp;nbsp; And a lot of what you do find refers
to Cognos' KB which is protected by password.&amp;nbsp; I am not sure what the hurdle
is to getting the password setup... a call to our account representative and some
paperwork.&amp;nbsp; When you're slugging out a technical issue this is not the best customer
experience to have.&amp;nbsp; 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;On the other hand,
Microsoft's community is unbelievably rich and returns many hits when searching for
answers.&amp;nbsp; BizTalk is a pricy tool and is seldom afforded by those outside of
serious enterprise grade businesses – which makes is developer base quite small compared
to C#, SQL, ASP.Net, etc.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Never the less,
there is a rich and vibrant community of users who post and share tremendous amounts
of technical insight and know how.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
have become truly active in my local developer community in the pas couple of years
and I see now why Microsoft pours so much effort into these folks.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;As
a direct result, I typically can solve most of my technical glitches or unknowns with
a minimal amount of time on Google or Live Search.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;I am not saying
Microsoft is perfect.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I have my issues
when I call in for Technical Support and deal with some of the first line folks.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
here the same frustrations form my Cognos counterparts.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The
nice thing is that there is such a wealth of Microsoft product knowledge living both
outside and inside Microsoft, that it’s one of those intangibles that is rarely given
due weight in a product study.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It certainly
keeps the number of calls I’ve made to Microsoft to a minimum.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;As
for which is the best product… another time and another blog post.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;Comment:&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If
anyone ever wants to experience the Microsoft community in full force – go to a local
Code Camp.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I’ve never gotten so many
professional contacts in one place.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;And
if there aren’t any near you, call you Microsoft Developer Evangelist and ask nicely
for some help.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You’d really be amazed.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=6999c59d-ae99-4ef5-9997-7d826fc1365c" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,6999c59d-ae99-4ef5-9997-7d826fc1365c.aspx</comments>
      <category>BizTalk;Development;General;Learning;User Group;Windows</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=ac3f65fa-0051-48a0-bb8b-f9e741c1a0d1</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,ac3f65fa-0051-48a0-bb8b-f9e741c1a0d1.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,ac3f65fa-0051-48a0-bb8b-f9e741c1a0d1.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=ac3f65fa-0051-48a0-bb8b-f9e741c1a0d1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've previously blogged about a big BizTalk issue we've been having a work. 
After many months of traversing the Microsoft Support organization, the proper
resources have been brought to bear on the problem.  We have hope of a solutionon
the horizon.  Here's a recap with the answers.
</p>
        <p>
          <strong>Evolution of the Problem</strong>
        </p>
        <p>
Over a year ago, we stood up a new BizTalk 2006 server infrastructure to be used as
the central intergation / orchestration point for all enterprise applications. 
The new environment is very nice with lots of memory, 64-bit processors, load balanced
servers, etc.  A nice change from the operational BizTalk 2004 environment which
was single server and backed by a questionable SQL Server cluster.  So with our
new BT 2006 environment, we started migrating application off of BT2004.  We
also started creating new applications and expanding operaitonal ones.  Life
was good.
</p>
        <p>
We use a single file share server for the majority of our file drop locations. 
This file share server is a Windows 2000 server and is not shceduled to be replaced
soon enough by a Windows 2003 R2 server.  About half way through our migration,
we noticed receive locations on the BizTalk 2006 Server were shutting down every couple
of days.  This then became every day and then every hour and then every couple
of minutes.  The problem went from the simple matter of gettong the occasional
MOM alert and manually restarting the port to being unmanagable. Life was not good.
</p>
        <p>
Our quick fix was too implement a relatively simple C# console application to scan
the receive locations every x minutes and restart stopped receive locations. 
This was accomplished using the BizTalk WMI interface and the Windows task scheduler. 
Things were'n't perfect, but we were operational.  Then the fun started. 
Everything would grind to a halt every couple of weeks, then every couple of days. 
The symptoms were:
</p>
        <ul>
          <li>
BizTalk Management Interface was unresponsive</li>
          <li>
SQL Server showed a blocking SPID to the SSO DB that would never clear (the system
was blocked for 24 hours once before we implemented better alerting)</li>
          <li>
Messages stop processing through BizTalk</li>
        </ul>
        <p>
The clearing procedure became cycling the Enterprise SSO service on the primary SSO
server - which required all BT Hosts to be stopped.  When the database is blocked,
this becomes an hour task.  Once the ESSO service was recycled, everything was
well again.
</p>
        <p>
          <strong>First Try at a Fix</strong>
        </p>
        <p>
We were never happy with the ports shutting down and spent alot of time blaming the
less than desirable Windows 2000 server hosting the file shares.  We did alot
of Googling and came up with a potential to fix the port shutdown problem: <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;810886">http://support.microsoft.com/default.aspx?scid=kb;en-us;810886</a>. 
I had previosuly discussed this <a href="http://www.implementsivillage.net/PermaLink,guid,522afb8d-457a-4511-b9c1-fb3bf5e2c928.aspx">here</a>. 
We increased the registry entries from 50 to 200.  The problem didn't resolve. 
So we walked away from this KB article and resolved to wait for the file share server
to be upgraded.  We still had to deal with the blocking.
</p>
        <p>
          <strong>Enter Microsoft Tech Support</strong>
        </p>
        <p>
Microsoft Technical Support was contacted.  We did a health check on the systems
and identified many BizTalk housekeeping issues we had.  These items were rectified
but the problems persisted.  In the process of exploring the SQL Tables, we noticed the
BizTalk work queues filling up with orphaned instances.  We had no idea
where they were coming from and they were not showing up in the Group Hub. 
There were actually thousands of them spread accros the various host instances in
our implementation.  We worked with MS support to do some cleanup of our produciton
environment.  This seemed to help but then the queues kept filling up again. 
After some focuse digging, we managed to stear ourselves and MS support to the solution. 
A new hotfix just off the presses - KB936536 (still internal as of this post). 
We tried and it did not work.  Back to the drawing board.
</p>
        <p>
After some more in-depth digging, it turned out that there was a bug in BizTalk that
involved receive locations stopping unexpectedly not being cleaned up properly. 
This bug left the orphaned instance in the work queues.  A patch was created
after several weeks and fixed the queue problem.  It did not fix the blocking
problem.
</p>
        <p>
After some escalation and shuffling around, we were given a new set of support professionals
and had the attention of Escalation Engineering, Product Team, SQL Sengineers and
finally - DTC Engineers.  Many weeks of logging and capturing increasingly deeper
levels of data led to get the DTC folks involved.  It was one of those joyous
moments where you send away your tons of log files and you get one of those moments
in an email where you here - 'oh yeah, we've seen this before... there's a hotfix'. 
There is such joy that there is a solution and a sense of frustration that nobody
said this sooner.
</p>
        <p>
          <strong>The Root of it All</strong>
        </p>
        <ol>
          <li>
File Share Server not tweaked to handle the load.</li>
          <li>
BizTalk shutting down receive locations.</li>
          <li>
Custom BizTalk WMI program keeps restarting ports.</li>
          <li>
High WMI/DTC activity brings about <a href="http://support.microsoft.com/kb/934849">KB
934849</a>: A COM+ application that is running on a Windows Server 2003-based computer
stops responding and some work items that are queued in the MTA thread pool are not
completed.</li>
        </ol>
        <p>
          <strong>First Step</strong>
        </p>
        <p>
Stop the ports from shutting down.  Apparently <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;810886">KB
810886</a>  was the solution to stopping the port shutdowns.  We needed
to increase the registry entries on both the client and server to 2048 to see a difference. 
Once thoe port shutdowns stopped, the WMI based port watcher has starting ports less
frequently which reduced the load on WMI/DTC.  When thoe ports stopped dropping,
we set the port watcher to run every 30 minutes.  We've not had a problem since. 
We are now testing KB 934849 on our staging servers.  It will be deployed next
week to production if all goes well.
</p>
        <p>
          <strong>SQL Adapter Issue Also?</strong>
        </p>
        <p>
When we upgraded some SQL Server Adapte rintensive projects form BT 2004 to BT2006,
we experienced a similar level of blocking on the SQL transaction associated with
these projects.  It only affected the transactional system databse and not
the BizTalk database.  We were never able to fix it despite all of the hints
and other tweaks we pulled out of our bag of tricks.  Apparently the SQL Adapter
in BT 2006 has an increased default isolation level.  We followed all of the
new guidelines and still had no success.  We are hoping that this SQL Adapter
blocking was the result of KB 93489 as well.  We will be testing this shortly
and I will blog it as well.
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=ac3f65fa-0051-48a0-bb8b-f9e741c1a0d1" />
      </body>
      <title>BizTalk / SQL Blocking Issue Deconstructed &amp; Fixed?</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,ac3f65fa-0051-48a0-bb8b-f9e741c1a0d1.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,ac3f65fa-0051-48a0-bb8b-f9e741c1a0d1.aspx</link>
      <pubDate>Fri, 11 Jan 2008 16:42:29 GMT</pubDate>
      <description>&lt;p&gt;
I've previously blogged about a big BizTalk issue we've been having a work.&amp;nbsp;
After many months of traversing the Microsoft Support organization,&amp;nbsp;the proper
resources have been brought to bear on the problem.&amp;nbsp; We have hope of a solutionon
the horizon.&amp;nbsp; Here's a recap with the answers.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Evolution of the Problem&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Over a year ago, we stood up a new BizTalk 2006 server infrastructure to be used as
the central intergation / orchestration point for all enterprise applications.&amp;nbsp;
The new environment is very nice with lots of memory, 64-bit processors, load balanced
servers, etc.&amp;nbsp; A nice change from the operational BizTalk 2004 environment which
was single server and backed by a questionable SQL Server cluster.&amp;nbsp; So with our
new BT 2006 environment, we started migrating application off of BT2004.&amp;nbsp; We
also started creating new applications and expanding operaitonal ones.&amp;nbsp; Life
was good.
&lt;/p&gt;
&lt;p&gt;
We use a single file share server for the majority of our file drop locations.&amp;nbsp;
This file share server is a Windows 2000 server and is not shceduled to be replaced
soon enough by a Windows 2003 R2 server.&amp;nbsp; About half way through our migration,
we noticed receive locations on the BizTalk 2006 Server were shutting down every couple
of days.&amp;nbsp; This then became every day and then every hour and then every couple
of minutes.&amp;nbsp; The problem went from the simple matter of gettong the occasional
MOM alert and manually restarting the port to being unmanagable. Life was not good.
&lt;/p&gt;
&lt;p&gt;
Our quick fix was too implement a relatively simple C# console application to scan
the receive locations every x minutes and restart stopped receive locations.&amp;nbsp;
This was accomplished using the BizTalk WMI interface and the Windows task scheduler.&amp;nbsp;
Things were'n't perfect, but we were operational.&amp;nbsp; Then the fun started.&amp;nbsp;
Everything would grind to a halt every couple of weeks, then every couple of days.&amp;nbsp;
The symptoms were:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
BizTalk Management Interface was unresponsive&lt;/li&gt;
&lt;li&gt;
SQL Server showed a blocking SPID to the SSO DB that would never clear (the system
was blocked for 24 hours once before we implemented better alerting)&lt;/li&gt;
&lt;li&gt;
Messages stop processing through BizTalk&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The clearing procedure became cycling the Enterprise SSO service on the primary SSO
server - which required all BT Hosts to be stopped.&amp;nbsp; When the database is blocked,
this becomes an hour task.&amp;nbsp; Once the ESSO service was recycled, everything was
well again.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;First Try at a Fix&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
We were never happy with the ports shutting down and spent alot of time blaming the
less than desirable Windows 2000 server hosting the file shares.&amp;nbsp; We did alot
of Googling and came up with a potential to fix the port shutdown problem: &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;810886"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;810886&lt;/a&gt;.&amp;nbsp;
I had previosuly discussed this &lt;a href="http://www.implementsivillage.net/PermaLink,guid,522afb8d-457a-4511-b9c1-fb3bf5e2c928.aspx"&gt;here&lt;/a&gt;.&amp;nbsp;
We increased the registry entries from 50 to 200.&amp;nbsp; The problem didn't resolve.&amp;nbsp;
So we walked away from this KB article and resolved to wait for the file share server
to be upgraded.&amp;nbsp; We still had to deal with the blocking.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Enter Microsoft Tech Support&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Microsoft Technical Support was contacted.&amp;nbsp; We did a health check on the systems
and identified many BizTalk housekeeping issues we had.&amp;nbsp; These items were rectified
but the problems persisted.&amp;nbsp; In the process of exploring the SQL Tables, we noticed&amp;nbsp;the
BizTalk work queues filling up with orphaned instances.&amp;nbsp;&amp;nbsp;We had no idea
where&amp;nbsp;they were&amp;nbsp;coming from and they were not showing up in the Group Hub.&amp;nbsp;
There were actually thousands of them spread accros the various host instances in
our implementation.&amp;nbsp; We worked with MS support to do some cleanup of our produciton
environment.&amp;nbsp; This seemed to help but then the queues kept filling up again.&amp;nbsp;
After some focuse digging, we managed to stear ourselves and MS support to the solution.&amp;nbsp;
A new hotfix just off the presses - KB936536 (still internal as of this post).&amp;nbsp;
We tried and it did not work.&amp;nbsp; Back to the drawing board.
&lt;/p&gt;
&lt;p&gt;
After some more in-depth digging, it turned out that there was a bug in BizTalk that
involved receive locations stopping unexpectedly not being cleaned up properly.&amp;nbsp;
This bug left the orphaned instance in the work queues.&amp;nbsp; A patch was created
after several weeks and fixed the queue problem.&amp;nbsp; It did not fix the blocking
problem.
&lt;/p&gt;
&lt;p&gt;
After some escalation and shuffling around, we were given a new set of support professionals
and had the attention of Escalation Engineering, Product Team, SQL Sengineers and
finally - DTC Engineers.&amp;nbsp; Many weeks of logging and capturing increasingly deeper
levels of data led to get the DTC folks involved.&amp;nbsp; It was one of those joyous
moments where you send away your tons of log files and you get one of those moments
in an email where you here - 'oh yeah, we've seen this before... there's a hotfix'.&amp;nbsp;
There is such joy that there is a solution and a sense of frustration that nobody
said this sooner.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The Root of it All&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
File Share Server not tweaked to handle the load.&lt;/li&gt;
&lt;li&gt;
BizTalk shutting down receive locations.&lt;/li&gt;
&lt;li&gt;
Custom BizTalk WMI program keeps restarting ports.&lt;/li&gt;
&lt;li&gt;
High WMI/DTC activity brings about &lt;a href="http://support.microsoft.com/kb/934849"&gt;KB
934849&lt;/a&gt;: A COM+ application that is running on a Windows Server 2003-based computer
stops responding and some work items that are queued in the MTA thread pool are not
completed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;First Step&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Stop the ports from shutting down.&amp;nbsp; Apparently &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;810886"&gt;KB
810886&lt;/a&gt;&amp;nbsp; was the solution to stopping the port shutdowns.&amp;nbsp; We needed
to increase the registry entries on both the client and server to 2048 to see a difference.&amp;nbsp;
Once thoe port shutdowns stopped, the WMI based port watcher has starting ports less
frequently which reduced the load on WMI/DTC.&amp;nbsp; When thoe ports stopped dropping,
we set the port watcher to run every 30 minutes.&amp;nbsp; We've not had a problem since.&amp;nbsp;
We are now testing KB 934849 on our staging servers.&amp;nbsp; It will be deployed next
week to production if all goes well.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SQL Adapter Issue Also?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
When we upgraded some SQL Server Adapte rintensive projects form BT 2004 to BT2006,
we experienced a similar level of blocking on the SQL transaction associated with
these projects.&amp;nbsp; It only affected the transactional system&amp;nbsp;databse and not
the BizTalk database.&amp;nbsp; We were never able to fix it despite all of the hints
and other tweaks we pulled out of our bag of tricks.&amp;nbsp; Apparently the SQL Adapter
in BT 2006 has an increased default isolation level.&amp;nbsp; We followed all of the
new guidelines and still had no success.&amp;nbsp; We are hoping that this SQL Adapter
blocking was the result of KB 93489 as well.&amp;nbsp; We will be testing this shortly
and I will blog it as well.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=ac3f65fa-0051-48a0-bb8b-f9e741c1a0d1" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,ac3f65fa-0051-48a0-bb8b-f9e741c1a0d1.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=a79ef451-37e9-4f84-9664-4c53e5092a2b</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,a79ef451-37e9-4f84-9664-4c53e5092a2b.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,a79ef451-37e9-4f84-9664-4c53e5092a2b.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a79ef451-37e9-4f84-9664-4c53e5092a2b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We've been working on an ongoing issue with BizTalk 2006 at the office.  We've
had a two fold problem with SQL Database blocking and our Messga Queues filling up
with control messages.  After all of the go-arounds with Microsoft Professional
Support Services (PSS), we collected enough data and they were able to reproduce the
run-away queues.  They took all of this and produce a hot fix within 3 weeks. 
After testing and installationin production, the blocking returned in the database. 
But on the good side, the message queues did not fill up again.  So problem partially
solved but the fun goes on.  The hot fix solved the problem of what happens when
a cache service calls InstanceComplete.  If there is more than one message for
the old instance, InstanceComplete gets called more than once causing the second call
to fail because the instance had already been terminated by the previous call. 
The batch operation is blown and the old caching service instance never gets
properly cleaned up.  This old instance still gets control messages from the
BizTalk core and since it is not actually running... they accumulate.  They accumulate
alot!
</p>
        <p>
So the accumulation no longer takes place... we are still concerned about the blocking. 
Our port watcher application that enumerates pesky receive ports that shut down frequently. 
When the port watcher calls into the WMI object model to enumerate the receive
locations,<font color="#000000"> ISSOConfigStore.GetConfigInfo() gets called. 
This then calls</font><font color="#000000"> ssox_spLookupXp whic reads from the SSO
database and is the source of the blocking.  We are running more traces to gather
information for PSS.  Stay tuned.</font></p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=a79ef451-37e9-4f84-9664-4c53e5092a2b" />
      </body>
      <title>BizTalk Issues Continue - Database Blocking</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,a79ef451-37e9-4f84-9664-4c53e5092a2b.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,a79ef451-37e9-4f84-9664-4c53e5092a2b.aspx</link>
      <pubDate>Fri, 16 Nov 2007 04:40:36 GMT</pubDate>
      <description>&lt;p&gt;
We've been working on an ongoing issue with BizTalk 2006 at the office.&amp;nbsp; We've
had a two fold problem with SQL Database blocking and our Messga Queues filling up
with control messages.&amp;nbsp; After all of the go-arounds with Microsoft Professional
Support Services (PSS), we collected enough data and they were able to reproduce the
run-away queues.&amp;nbsp; They took all of this and produce a hot fix within 3 weeks.&amp;nbsp;
After testing and installationin production, the blocking returned in the database.&amp;nbsp;
But on the good side, the message queues did not fill up again.&amp;nbsp; So problem partially
solved but the fun goes on.&amp;nbsp; The hot fix solved the problem of what happens when
a cache service calls InstanceComplete.&amp;nbsp; If there is more than one message for
the old instance, InstanceComplete gets called more than once causing the second call
to fail because the instance had already been terminated by the previous call.&amp;nbsp;
The batch operation is blown and&amp;nbsp;the old caching service instance never gets
properly cleaned up.&amp;nbsp; This old instance still gets control messages from the
BizTalk core and since it is not actually running... they accumulate.&amp;nbsp; They accumulate
alot!
&lt;/p&gt;
&lt;p&gt;
So the accumulation no longer takes place... we are still concerned about the blocking.&amp;nbsp;
Our port watcher application that enumerates pesky receive ports that shut down frequently.&amp;nbsp;
When the port watcher&amp;nbsp;calls into the WMI object model to enumerate the receive
locations,&lt;font color=#000000&gt; ISSOConfigStore.GetConfigInfo() gets called.&amp;nbsp;
This then calls&lt;/font&gt;&lt;font color=#000000&gt; ssox_spLookupXp whic reads from the SSO
database and is the source of the blocking.&amp;nbsp; We are running more traces to gather
information for PSS.&amp;nbsp; Stay tuned.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=a79ef451-37e9-4f84-9664-4c53e5092a2b" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,a79ef451-37e9-4f84-9664-4c53e5092a2b.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=04543431-33dc-4a3e-9e13-b6d74ea96ee0</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,04543431-33dc-4a3e-9e13-b6d74ea96ee0.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,04543431-33dc-4a3e-9e13-b6d74ea96ee0.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=04543431-33dc-4a3e-9e13-b6d74ea96ee0</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>Space Coast .Net User Group</strong>
        </p>
        <p>
Sorry I missed last night's presentation, I am very curious about the Amazon Web Services.
</p>
        <p>
          <strong>BizTalk Bug</strong>
        </p>
        <p>
Still waiting on Microsoft to see if this blocking bug can be fixed with their patch. 
It's taking longer than they expected for the hot fix.
</p>
        <p>
          <strong>New Data Warehouse project</strong>
        </p>
        <p>
Got to give have a technical proposal review with Harris' CIO this morning. 
Went pretty well.  Had some excellent feedback and am looking forward to diving
into my new HR Data Warehouse project!
</p>
        <p>
          <strong>SSIS Training in NY</strong>
        </p>
        <p>
Going to New York to get SSIS training on ETL for dimensional models.  The class
is called <span class="text"><span style="FONT-SIZE: 12px; LINE-HEIGHT: 15px"><a href="http://www.symphic.com/dwwithssis_coursedesc.html">Data
Warehousing with SSIS (SQL Server 2005 Integration Services)</a> and is offered by <a href="http://www.symphic.com">Symphic</a>. 
It promises to be a good class and I get to visit my brother in NYC at the same time. 
I've brought my daughters Pablo stuffed animal with me and he'll be posing for pictures
while Daddy's away on his trip.  Stay tuned....<br soft="soft" /></span></span></p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=04543431-33dc-4a3e-9e13-b6d74ea96ee0" />
      </body>
      <title>Been very busy so here's a brief update</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,04543431-33dc-4a3e-9e13-b6d74ea96ee0.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,04543431-33dc-4a3e-9e13-b6d74ea96ee0.aspx</link>
      <pubDate>Tue, 16 Oct 2007 18:39:10 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;Space Coast .Net User Group&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Sorry I missed last night's presentation, I am very curious about the Amazon Web Services.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;BizTalk Bug&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Still waiting on Microsoft to see if this blocking bug can be fixed with their patch.&amp;nbsp;
It's taking longer than they expected for the hot fix.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;New Data Warehouse project&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Got to give have a technical proposal review with Harris' CIO this morning.&amp;nbsp;
Went pretty well.&amp;nbsp; Had some excellent feedback and am looking forward to diving
into my new HR Data Warehouse project!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SSIS Training in NY&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Going to New York to get SSIS training on ETL for dimensional models.&amp;nbsp; The class
is called &lt;span class=text&gt;&lt;span style="FONT-SIZE: 12px; LINE-HEIGHT: 15px"&gt;&lt;a href="http://www.symphic.com/dwwithssis_coursedesc.html"&gt;Data
Warehousing with SSIS (SQL Server 2005 Integration Services)&lt;/a&gt; and is offered by &lt;a href="http://www.symphic.com"&gt;Symphic&lt;/a&gt;.&amp;nbsp;
It promises to be a good class and I get to visit my brother in NYC at the same time.&amp;nbsp;
I've brought my daughters Pablo stuffed animal with me and he'll be posing for pictures
while Daddy's away on his trip.&amp;nbsp; Stay tuned....&lt;br soft&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=04543431-33dc-4a3e-9e13-b6d74ea96ee0" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,04543431-33dc-4a3e-9e13-b6d74ea96ee0.aspx</comments>
      <category>BizTalk;General;User Group</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=23ba5ff9-2022-463a-b424-03220677c5eb</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,23ba5ff9-2022-463a-b424-03220677c5eb.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,23ba5ff9-2022-463a-b424-03220677c5eb.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=23ba5ff9-2022-463a-b424-03220677c5eb</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We've been having a heck of a time lately with the BizTalk working queues filling
up with ghost messages.  The level of blocking in the Database had become unbearable
at certain times.  We had no idea where it was coming from as our activity levels
have remained relatively constant (we hadn't found out about the queues yet). 
We worked with MS support to do some cleanup of our produciton environment. 
This seemed to help but then the queues kept filling up again.  After some focuse
digging, we managed to stear ourselves and MS support to the solution.  A new
hotfix just off the presses - KB936536.  We've applied it today and will see
if it works.  I will post a more complete write up in a few days.
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=23ba5ff9-2022-463a-b424-03220677c5eb" />
      </body>
      <title>Mystery BizTalk issue solved?</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,23ba5ff9-2022-463a-b424-03220677c5eb.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,23ba5ff9-2022-463a-b424-03220677c5eb.aspx</link>
      <pubDate>Mon, 10 Sep 2007 17:54:13 GMT</pubDate>
      <description>&lt;p&gt;
We've been having a heck of a time lately with the BizTalk working queues filling
up with ghost messages.&amp;nbsp; The level of blocking in the Database had become unbearable
at certain times.&amp;nbsp; We had no idea where it was coming from as our activity levels
have remained relatively constant (we hadn't found out about the queues yet).&amp;nbsp;
We worked with MS support to do some cleanup of our produciton environment.&amp;nbsp;
This seemed to help but then the queues kept filling up again.&amp;nbsp; After some focuse
digging, we managed to stear ourselves and MS support to the solution.&amp;nbsp; A new
hotfix just off the presses - KB936536.&amp;nbsp; We've applied it today and will see
if it works.&amp;nbsp; I will post a more complete write up in a few days.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=23ba5ff9-2022-463a-b424-03220677c5eb" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,23ba5ff9-2022-463a-b424-03220677c5eb.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=522afb8d-457a-4511-b9c1-fb3bf5e2c928</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,522afb8d-457a-4511-b9c1-fb3bf5e2c928.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,522afb8d-457a-4511-b9c1-fb3bf5e2c928.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=522afb8d-457a-4511-b9c1-fb3bf5e2c928</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We've had a problem with our BizTalk Servers for quite a while.  Receive ports
to a particular file server would seem to shutdown almost at random.  After much
searching of the internet, there was a consenus to build a port watcher application
using BizTalk WMI.  We did this and it worked, ports would stop and the port
watcher would kick them in the butt to get them going again.  But this was just
a band-aid to a huge sore under the surface.  After almost a year of this, a
re-researching of the problem finally gave way to a <a href="http://www.mombu.com/microsoft/biztalk-server-general/t-biztalk-2004-file-receive-location-problem-page2-549102.html">helpful
post</a> and then a <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;810886">solution</a>!  
</p>
        <p>
It turns out that when a BizTalk Server is checking LOTS of directories on the same
server, the network BIOS command limit can be reached:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
"This issue may occur if the client computer submits simultaneous, long-term requests
against a file server that uses the Server Message Block (SMB) protocol. An example
of a long-term request is when a client computer uses the <b>FindFirstChangeNotification </b>function
to monitor a server share for changes."
</p>
          <p dir="ltr">
"This issue may occur if the <b>MaxCmds</b> registry value setting on the client is
less than 50, or the <b>MaxMpxCt</b> registry value setting on the server is less
than 50."
</p>
        </blockquote>
        <p dir="ltr">
So, per the <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;810886">kb
article</a>, an increase of the MaxCmds regsitry entry to 500 solves the problem
(after a reboot)!  Not a BizTalk problem at all.  The limitation in the
Windows 2003 OS designed to throttle its workload (for good reason) was causing the
receive location to shutdown.  The error message wasn't very helpful from BizTalk
as it really didn't provide a good error code or reason to point to the command limit
that was eventually found to be the problem.  Now if I can only figure out why
my File Recieve loactions to DFS shares do the same thing!
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=522afb8d-457a-4511-b9c1-fb3bf5e2c928" />
      </body>
      <title>BizTalk 2004/2006 Recieve Ports Shutdown at Random - Solved</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,522afb8d-457a-4511-b9c1-fb3bf5e2c928.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,522afb8d-457a-4511-b9c1-fb3bf5e2c928.aspx</link>
      <pubDate>Tue, 10 Jul 2007 19:09:27 GMT</pubDate>
      <description>&lt;p&gt;
We've had a problem with our BizTalk Servers for quite a while.&amp;nbsp; Receive ports
to a particular file server would seem to shutdown almost at random.&amp;nbsp; After much
searching of the internet, there was a consenus to build a port watcher application
using BizTalk WMI.&amp;nbsp; We did this and it worked, ports would stop and the port
watcher would kick them in the butt to get them going again.&amp;nbsp; But this was just
a band-aid to a huge sore under the surface.&amp;nbsp; After almost a year of this, a
re-researching of the problem finally gave way to a &lt;a href="http://www.mombu.com/microsoft/biztalk-server-general/t-biztalk-2004-file-receive-location-problem-page2-549102.html"&gt;helpful
post&lt;/a&gt; and then a &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;810886"&gt;solution&lt;/a&gt;!&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
It turns out that when a BizTalk Server is checking LOTS of directories on the same
server, the network BIOS command limit can be reached:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
"This issue may occur if the client computer submits simultaneous, long-term requests
against a file server that uses the Server Message Block (SMB) protocol. An example
of a long-term request is when a client computer uses the &lt;b&gt;FindFirstChangeNotification &lt;/b&gt;function
to monitor a server share for changes."
&lt;/p&gt;
&lt;p dir=ltr&gt;
"This issue may occur if the &lt;b&gt;MaxCmds&lt;/b&gt; registry value setting on the client is
less than 50, or the &lt;b&gt;MaxMpxCt&lt;/b&gt; registry value setting on the server is less
than 50."
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
So, per the &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;810886"&gt;kb
article&lt;/a&gt;,&amp;nbsp;an increase of the MaxCmds regsitry entry to 500 solves the problem
(after a reboot)!&amp;nbsp; Not a BizTalk problem at all.&amp;nbsp; The limitation in the
Windows 2003 OS designed to throttle its workload (for good reason) was causing the
receive location to shutdown.&amp;nbsp; The error message wasn't very helpful from BizTalk
as it really didn't provide a good error code or reason to point to the command limit
that was eventually found to be the problem.&amp;nbsp; Now if I can only figure out why
my File Recieve loactions to DFS shares do the same thing!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=522afb8d-457a-4511-b9c1-fb3bf5e2c928" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,522afb8d-457a-4511-b9c1-fb3bf5e2c928.aspx</comments>
      <category>BizTalk;Windows</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=9db1f973-ab24-47df-a7bf-235bafbe56f3</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,9db1f973-ab24-47df-a7bf-235bafbe56f3.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,9db1f973-ab24-47df-a7bf-235bafbe56f3.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9db1f973-ab24-47df-a7bf-235bafbe56f3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There's a point in time where on one side, chaos reigns and the fundamental laws of
order seem to be suspended.  Then on the other side is the light, the complete
understanding of something that now seems simple.  This is a story of a boy,
an HTTP Send Port and his trust in Microsoft's 'calculations.'  It all started
with a MOM alert:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Severity:
Error<br />
Status: New<br />
Source: BizTalk Server 2006http://localhost/xxxx/sendPoWS/sendPoWS.asmx/upDatePOData<br />
Name: Error: An outbound message <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">is</span> being
suspended <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">by</span> the
adapter.<br />
Description: A message sent <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">to</span> adapter
"HTTP" <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">on</span> send
port "scosPoOut" <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">with</span> URI
"http://localhost/xxxx/sendPoWS/sendPoWS.asmx/upDatePOData" <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">is</span> suspended. 
<br />
Error details: The HTTP send adapter cannot complete the transmission within the specified
time. 
<br />
Destination: <a href="http://localhost/xxxx/sendPoWS/sendPoWS.asmx/upDatePOData">http://localhost/xxxx/sendPoWS/sendPoWS.asmx/upDatePOData</a><br />
MessageId: {DA614303-8AA6-444E-8312-4C41B4BBD29C}<br />
InstanceID: {954FAA15-BAA0-453A-9AD5-C62E186AF05E}</span>
          </p>
        </blockquote>
        <p dir="ltr">
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font face="Verdana" size="2">Cannot
Complete the Transmission?  It's a request-response HTTP port off of an orchestration...
the webservice is on the local host... why can't it complete sending the XML message
to the service?  Let's look at this IIS Logs...</font>
          </span>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font size="2">
              <p>
                <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">#Fields:
date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip
cs(<span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">User</span>-Agent)
sc-status sc-substatus sc-win32-status 
<br />
2007-06-10 10:59:18 W3SVC1 127.0.0.1 POST /xxxx/services_1/sendDemandWS.asmx/upDateData
- 80 - 127.0.0.1 Microsoft+(R)+BizTalk+(R)+Server+2006+3.0.1.0 200 0 64<br /></span>
              </p>
            </font>
          </span>
        </blockquote>
        <p dir="ltr">
It has a sc-status of 200?  200 - OK?  Checked the web service logs and
it successfully submitted the data.  But wait... what is this sc-win32-status
of 64...<font size="2">type net helpmsg 64 at cmd prompt gets "The specified network
name is no longer available".  This is localhost, why is it having problems talking
to itself?  We've had server build issues in the past but how could the TCPIP
stack be hosed?  That's impossible.  OK. Let's back up and go to BizTalk.</font></p>
        <p dir="ltr">
          <font size="2">BizTalk is sending the message to the web service via the orchestrations
HTTP send port.  It retries 5 times per the configuration and then fails. 
Each time it tries, the message is received and processed by the web service. 
BizTalk is just not getting back that final ACK.  But it's local Host...</font>
        </p>
        <p dir="ltr">
          <font size="2">After some Google'ing on sc-win32-status and 64, the collective wisdom
said it's an indication that one side of the TCP connection is closing prematurley. 
So am I throwing errors in this web service somebody else wrote that I have to maintain?
No... there's a 200 returned by IIS - that's success.  So where's the other end
of the connection... BizTalk!</font>
        </p>
        <p dir="ltr">
          <font size="2">The HTTP send port's Request Timeout is set to '0' which is default. 
When set to zero, the time-out is calculated based on the request message size. 
Should be fine.  But it isn't.  How do they calculate the size?  I
found one <a href="http://www.microsoft-discussion.com/showthread.php?t=73126">posting</a> with
the answer:</font>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p dir="ltr">
            <font size="2">Timeout = Min((180sec + ((MessageSize* 3)/1000)), 3600sec)</font>
          </p>
        </blockquote>
        <p dir="ltr">
          <font size="2">So, Ihave a message that is 6.4 Megs in size.  I do the calculation
and it's going to top out at 3600 secs.  I turn on additional logging in IIS
and see that the actual IIS run takes 5900 seconds (I know this is a poor design and
is way too long for a TCP connection to hang open - v2 will change the architecture). 
So back to the beginning.  BizTalk is giving up after an hour and retrying. 
This why I see the retries going at intervals of 1 hour and 5 minutes.  1 Hour
to timeout and 5 minutes for the retry interval.  Overriding the send port's
default value of '0' to '8000' solves the problem.</font>
        </p>
        <p dir="ltr">
          <font size="2">It's really crazy that the solution was one of the first items that
I dismissed.  And I hold no malice toward Microsoft's calculation as it is reasonable
and this is not a reasonable circumstance.  I was really disapointed that the
calculation method was not there in bold print.  Instead I meandered down many
dead ends before I regrouped and went deep.  I am a wiser mand for having made
the journey.<br /></font>
        </p>
        <p dir="ltr">
          <font size="2"> 
</font>
        </p>
        <p dir="ltr">
 
</p>
        <p dir="ltr" style="MARGIN-RIGHT: 0px">
 
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=9db1f973-ab24-47df-a7bf-235bafbe56f3" />
      </body>
      <title>the time-out is calculated based on the request message size... BizTalk, I trusted you!</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,9db1f973-ab24-47df-a7bf-235bafbe56f3.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,9db1f973-ab24-47df-a7bf-235bafbe56f3.aspx</link>
      <pubDate>Thu, 14 Jun 2007 03:04:42 GMT</pubDate>
      <description>&lt;p&gt;
There's a point in time where on one side, chaos reigns and the fundamental laws of
order seem to be suspended.&amp;nbsp; Then on the other side is the light, the complete
understanding of something that now seems simple.&amp;nbsp; This is a story of a boy,
an HTTP Send Port and his trust in Microsoft's 'calculations.'&amp;nbsp; It all started
with a MOM alert:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Severity:
Error&lt;br&gt;
Status: New&lt;br&gt;
Source: BizTalk Server 2006http://localhost/xxxx/sendPoWS/sendPoWS.asmx/upDatePOData&lt;br&gt;
Name: Error: An outbound message &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;is&lt;/span&gt; being
suspended &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;by&lt;/span&gt; the
adapter.&lt;br&gt;
Description: A message sent &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;to&lt;/span&gt; adapter
"HTTP" &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;on&lt;/span&gt; send
port "scosPoOut" &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;with&lt;/span&gt; URI
"http://localhost/xxxx/sendPoWS/sendPoWS.asmx/upDatePOData" &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;is&lt;/span&gt; suspended. 
&lt;br&gt;
Error details: The HTTP send adapter cannot complete the transmission within the specified
time. 
&lt;br&gt;
Destination: &lt;a href="http://localhost/xxxx/sendPoWS/sendPoWS.asmx/upDatePOData"&gt;http://localhost/xxxx/sendPoWS/sendPoWS.asmx/upDatePOData&lt;/a&gt; 
&lt;br&gt;
MessageId: {DA614303-8AA6-444E-8312-4C41B4BBD29C}&lt;br&gt;
InstanceID: {954FAA15-BAA0-453A-9AD5-C62E186AF05E}&lt;/span&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana size=2&gt;Cannot
Complete the Transmission?&amp;nbsp; It's a request-response HTTP port off of an orchestration...
the webservice is on the local host... why can't it complete sending the XML message
to the service?&amp;nbsp; Let's look at this IIS Logs...&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;#Fields:
date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip
cs(&lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;User&lt;/span&gt;-Agent)
sc-status sc-substatus sc-win32-status 
&lt;br&gt;
2007-06-10 10:59:18 W3SVC1 127.0.0.1 POST /xxxx/services_1/sendDemandWS.asmx/upDateData
- 80 - 127.0.0.1 Microsoft+(R)+BizTalk+(R)+Server+2006+3.0.1.0 200 0 64&lt;br&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
It has a sc-status of 200?&amp;nbsp; 200 - OK?&amp;nbsp; Checked the web service logs and
it successfully submitted the data.&amp;nbsp; But wait... what is this sc-win32-status
of 64...&lt;font size=2&gt;type net helpmsg 64 at cmd prompt gets "The specified network
name is no longer available".&amp;nbsp; This is localhost, why is it having problems talking
to itself?&amp;nbsp; We've had server build issues in the past but how could the TCPIP
stack be hosed?&amp;nbsp; That's impossible.&amp;nbsp; OK. Let's back up and go to BizTalk.&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font size=2&gt;BizTalk is sending the message to the web service via the orchestrations
HTTP send port.&amp;nbsp; It retries 5 times per the configuration and then fails.&amp;nbsp;
Each time it tries, the message is received and processed by the web service.&amp;nbsp;
BizTalk is just not getting back that final ACK.&amp;nbsp; But it's local Host...&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font size=2&gt;After some Google'ing on sc-win32-status and 64, the collective wisdom
said it's an indication that one side of the TCP connection is closing prematurley.&amp;nbsp;
So am I throwing errors in this web service somebody else wrote that I have to maintain?
No... there's a 200 returned by IIS - that's success.&amp;nbsp; So where's the other end
of the connection... BizTalk!&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font size=2&gt;The HTTP send port's Request Timeout is set to '0' which is default.&amp;nbsp;
When set to zero, the time-out is calculated based on the request message size.&amp;nbsp;
Should be fine.&amp;nbsp; But it isn't.&amp;nbsp; How do they calculate the size?&amp;nbsp; I
found one &lt;a href="http://www.microsoft-discussion.com/showthread.php?t=73126"&gt;posting&lt;/a&gt; with
the answer:&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p dir=ltr&gt;
&lt;font size=2&gt;Timeout = Min((180sec + ((MessageSize* 3)/1000)), 3600sec)&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
&lt;font size=2&gt;So, Ihave a message that is 6.4 Megs in size.&amp;nbsp; I do the calculation
and it's going to top out at 3600 secs.&amp;nbsp; I turn on additional logging in IIS
and see that the actual IIS run takes 5900 seconds (I know this is a poor design and
is way too long for a TCP connection to hang open - v2 will change the architecture).&amp;nbsp;
So back to the beginning.&amp;nbsp; BizTalk is giving up after an hour and retrying.&amp;nbsp;
This why I see the retries going at intervals of 1 hour and 5 minutes.&amp;nbsp; 1 Hour
to timeout and 5 minutes for the retry interval.&amp;nbsp; Overriding the send port's
default value of '0' to '8000' solves the problem.&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font size=2&gt;It's really crazy that the solution was one of the first items that I
dismissed.&amp;nbsp; And I hold no malice toward Microsoft's calculation as it is reasonable
and this is not a reasonable circumstance.&amp;nbsp; I was really disapointed that the
calculation method was not there in bold print.&amp;nbsp; Instead I meandered down many
dead ends before I regrouped and went deep.&amp;nbsp; I am a wiser mand for having made
the journey.&lt;br&gt;
&lt;/p&gt;
&gt; 
&lt;p dir=ltr&gt;
&lt;font size=2&gt;&amp;nbsp;
&lt;/p&gt;
&gt; 
&lt;p dir=ltr&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&gt;&gt;&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=9db1f973-ab24-47df-a7bf-235bafbe56f3" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,9db1f973-ab24-47df-a7bf-235bafbe56f3.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=c35a3af3-384e-4bdc-846a-b251a93d18d3</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,c35a3af3-384e-4bdc-846a-b251a93d18d3.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,c35a3af3-384e-4bdc-846a-b251a93d18d3.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c35a3af3-384e-4bdc-846a-b251a93d18d3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Quick tip for those putting alternate user names and passwords.  When you export
your bindings file, BizTalk 2006 replaces the password for the user credentials with
a VT_NULL inside the &lt;TransportTypeData&gt; element:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font face="Courier New">
              <font color="#ff0000">&amp;lt;</font>Password vt="1" /<font color="#ff0000">&amp;gt;</font></font>
          </p>
        </blockquote>
        <p>
          <font face="Courier New" color="#000000">Be careful, that vt="1" mean NULL, or in
other words - no password.  So when you do this:</font>
        </p>
        <font face="Courier New" color="#000000">
          <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
            <p>
              <font face="Courier New">
                <font color="#ff0000">&amp;lt;</font>Password vt="1"<font color="#ff0000">&amp;gt;<font color="#000000">mysecret</font><font face="Courier New"><font color="#ff0000">&amp;lt;</font><font color="#000000">/Password</font><font color="#ff0000">&amp;gt;</font></font></font></font>
            </p>
          </blockquote>
        </font>
        <p>
          <font face="Courier New" color="#000000">You might as well do nothing.  When
the file receive adapter imports these bindings, it will not set a password. 
However, the send adapter doe snot seem to care and will set the password fine. 
Regardless, the proper form is to specify VT_BSTR attribute in the Password element:</font>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font face="Courier New" color="#000000">
              <font color="#ff0000">&amp;lt;</font>Password
vt="8"<font color="#ff0000">&amp;gt;<font color="#000000">mysecret</font><font face="Courier New"><font color="#ff0000">&amp;lt;</font><font color="#000000">/Password</font><font color="#ff0000">&amp;gt;</font></font></font></font>
          </p>
        </blockquote>
        <p>
          <font face="Courier New" color="#000000">You can find this documented in the Biztalk
binding file documentation:</font>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font face="Courier New" color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/aa560756.aspx">Configuration
Property Variable Types</a>
            </font>
          </p>
          <p>
            <font face="Courier New" color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/aa560192.aspx">File
Adapter Configuration Properties</a>
            </font>
          </p>
        </blockquote>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=c35a3af3-384e-4bdc-846a-b251a93d18d3" />
      </body>
      <title>User Names and Passwords in BizTalk 2006 Binding Files for File Adapters</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,c35a3af3-384e-4bdc-846a-b251a93d18d3.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,c35a3af3-384e-4bdc-846a-b251a93d18d3.aspx</link>
      <pubDate>Tue, 27 Mar 2007 17:25:34 GMT</pubDate>
      <description>&lt;p&gt;
Quick tip for those putting alternate user names and passwords.&amp;nbsp; When you export
your bindings file, BizTalk 2006 replaces the password for the user credentials with
a VT_NULL inside the &amp;lt;TransportTypeData&amp;gt; element:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;font color=#ff0000&gt;&amp;amp;lt;&lt;/font&gt;Password vt="1" /&lt;font color=#ff0000&gt;&amp;amp;gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;Be careful, that vt="1" mean NULL, or in other
words - no password.&amp;nbsp; So when you do this:&lt;/font&gt;
&lt;/p&gt;
&lt;font face="Courier New" color=#000000&gt; &lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;font color=#ff0000&gt;&amp;amp;lt;&lt;/font&gt;Password vt="1"&lt;font color=#ff0000&gt;&amp;amp;gt;&lt;font color=#000000&gt;mysecret&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#ff0000&gt;&amp;amp;lt;&lt;/font&gt;&lt;font color=#000000&gt;/Password&lt;/font&gt;&lt;font color=#ff0000&gt;&amp;amp;gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/font&gt;&gt;&gt;&gt; 
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;You might as well do nothing.&amp;nbsp; When the
file receive adapter imports these bindings, it will not set a password.&amp;nbsp; However,
the send adapter doe snot seem to care and will set the password fine.&amp;nbsp; Regardless,
the proper form is to specify VT_BSTR attribute in the Password element:&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;&lt;font color=#ff0000&gt;&amp;amp;lt;&lt;/font&gt;Password
vt="8"&lt;font color=#ff0000&gt;&amp;amp;gt;&lt;font color=#000000&gt;mysecret&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#ff0000&gt;&amp;amp;lt;&lt;/font&gt;&lt;font color=#000000&gt;/Password&lt;/font&gt;&lt;font color=#ff0000&gt;&amp;amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;You can find this documented in the Biztalk
binding file documentation:&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa560756.aspx"&gt;Configuration
Property Variable Types&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa560192.aspx"&gt;File
Adapter Configuration Properties&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=c35a3af3-384e-4bdc-846a-b251a93d18d3" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,c35a3af3-384e-4bdc-846a-b251a93d18d3.aspx</comments>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://www.implementsivillage.net/Trackback.aspx?guid=cab6343b-3479-4484-85c6-e7e9b5502b44</trackback:ping>
      <pingback:server>http://www.implementsivillage.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.implementsivillage.net/PermaLink,guid,cab6343b-3479-4484-85c6-e7e9b5502b44.aspx</pingback:target>
      <dc:creator>Christian Loris</dc:creator>
      <wfw:comment>http://www.implementsivillage.net/CommentView,guid,cab6343b-3479-4484-85c6-e7e9b5502b44.aspx</wfw:comment>
      <wfw:commentRss>http://www.implementsivillage.net/SyndicationService.asmx/GetEntryCommentsRss?guid=cab6343b-3479-4484-85c6-e7e9b5502b44</wfw:commentRss>
      <slash:comments>9</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A few months ago I came upon the need to validate some XML in an orchestration against
one of the schemas in the project.  So, I turned to the wisdom of the net and
came accross the desired information in the Arch hacker's BizTalk Blog:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <a href="http://thearchhacker.blogspot.com/2004/09/cool-xsd-validation-function-for.html">http://thearchhacker.blogspot.com/2004/09/cool-xsd-validation-function-for.html</a>
          </p>
        </blockquote>
        <p dir="ltr">
The code he wrote was functional and elegant.  I especailly like the way he referenced
the schema in its assembly using the schema strong name.  Nice.  But
alas, I was upgrading this project to BizTalk 2006 (and this .Net Framework 2.0) and
was notified that: 
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p dir="ltr">
            <font face="Courier New">warning CS0618: 'System.Xml.XmlValidatingReader' is obsolete:
'Use XmlReader created by XmlReader.Create() method using appropriate XmlReaderSettings
instead. </font>
            <a href="http://go.microsoft.com/fwlink/?linkid=14202'">
              <font face="Courier New">http://go.microsoft.com/fwlink/?linkid=14202</font>
            </a>
          </p>
        </blockquote>
        <p dir="ltr">
So in an attempt to rid myself of the annoying compiler warnings, I set out in search
of an updated version to no avail.  It was time to crack the Framework docs and
do it myself.  So here it is:
</p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">        <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">public</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">static</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">bool</span> ValidateDocument(
XmlDocument businessDocument, <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> schemaStrongName, <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ref</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> xmlValidationException
)<br />
        {<br />
            <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">//
Constants</span><br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">const</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">int</span> PARTS_IN_SCHEMA_STRONG_NAME <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 2;<br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">const</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">int</span> PART_CLASS_NAME <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 0;<br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">const</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">int</span> PART_QUALIFIED_ASSEMBLY_NAME <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 1;<br /><br />
            <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">//
Parse schema strong name</span><br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span>[]
assemblyNameParts <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> schemaStrongName.Split( <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">char</span>[]
{ ',' }, PARTS_IN_SCHEMA_STRONG_NAME );<br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> className <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> assemblyNameParts[PART_CLASS_NAME].Trim();<br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> fullyQualifiedAssemblyName <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> assemblyNameParts[PART_QUALIFIED_ASSEMBLY_NAME].Trim();<br /><br />
            <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">//
Load assembly</span><br />
            Assembly schemaAssembly <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> Assembly.Load(
fullyQualifiedAssemblyName );<br /><br /><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">            //
Create instance of the BTS schema in order to get to the actual schemas</span><br />
            Type schemaType <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> schemaAssembly.GetType(
className );<br />
            Microsoft.XLANGs.BaseTypes.SchemaBase
btsSchemaCollection <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><br />
              ( Microsoft.XLANGs.BaseTypes.SchemaBase
) Activator.CreateInstance( schemaType );<br /><br />
            <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">//
Set up XML reader and validate document</span><br />
            XmlReaderSettings
ReaderSettings <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> XmlReaderSettings();<br />
            ReaderSettings.ValidationType <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> ValidationType.Schema;<br />
            ReaderSettings.Schemas.Add(btsSchemaCollection.Schema);<br />
            XmlReader
reader <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> XmlReader.Create(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> StringReader(businessDocument.OuterXml),
ReaderSettings);<br />
            <br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">try</span><br />
            {<br />
                <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">while</span>(
reader.Read() ) {}<br />
            }<br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">catch</span>(XmlSchemaException
xse)<br />
            {<br />
                xmlValidationException <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span>.Format(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"XML
Validation Error: {0}"</span>, xse.Message);<br />
                <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">return</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">false</span>;<br />
            }<br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">catch</span>(Exception
ex)<br />
            {<br />
                xmlValidationException <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span>.Format(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Unexpected
Error: {0}"</span>, ex.Message);<br />
                <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">return</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">false</span>;<br />
            }<br /><br />
            <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">//
success</span><br />
            xmlValidationException <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> String.Empty;<br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">return</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">true</span>;<br /><br />
        }</span>
        </p>
        <p dir="ltr">
And it is called from an expression shape as was previously documented in the Arch
hacker's blog:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ValidateDocument(
myBtsMessage, myBtsMessage( BTS.SchemaStrongName ) );<br /></span>
          </p>
        </blockquote>
        <p dir="ltr">
 
</p>
        <img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=cab6343b-3479-4484-85c6-e7e9b5502b44" />
      </body>
      <title>ValidateDocument update for BizTalk 2006</title>
      <guid isPermaLink="false">http://www.implementsivillage.net/PermaLink,guid,cab6343b-3479-4484-85c6-e7e9b5502b44.aspx</guid>
      <link>http://www.implementsivillage.net/PermaLink,guid,cab6343b-3479-4484-85c6-e7e9b5502b44.aspx</link>
      <pubDate>Mon, 15 Jan 2007 21:48:57 GMT</pubDate>
      <description>&lt;p&gt;
A few months ago I came upon the need to validate some XML in an orchestration against
one of the schemas in the project.&amp;nbsp; So, I turned to the wisdom of the net and
came accross the desired information in the Arch hacker's BizTalk Blog:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;a href="http://thearchhacker.blogspot.com/2004/09/cool-xsd-validation-function-for.html"&gt;http://thearchhacker.blogspot.com/2004/09/cool-xsd-validation-function-for.html&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
The code he wrote was functional and elegant.&amp;nbsp; I especailly like the way he referenced
the&amp;nbsp;schema in its assembly using the schema strong name.&amp;nbsp; Nice.&amp;nbsp; But
alas, I was upgrading this project to BizTalk 2006 (and this .Net Framework 2.0) and
was notified that:&amp;nbsp;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p dir=ltr&gt;
&lt;font face="Courier New"&gt;warning CS0618: 'System.Xml.XmlValidatingReader' is obsolete:
'Use XmlReader created by XmlReader.Create() method using appropriate XmlReaderSettings
instead. &lt;/font&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=14202'"&gt;&lt;font face="Courier New"&gt;http://go.microsoft.com/fwlink/?linkid=14202&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
So in an attempt to rid myself of the annoying compiler warnings, I set out in search
of an updated version to no avail.&amp;nbsp; It was time to crack the Framework docs and
do it myself.&amp;nbsp; So here it is:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;static&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;bool&lt;/span&gt; ValidateDocument(
XmlDocument businessDocument, &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; schemaStrongName, &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ref&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; xmlValidationException
)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
Constants&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;const&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;int&lt;/span&gt; PARTS_IN_SCHEMA_STRONG_NAME &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 2;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;const&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;int&lt;/span&gt; PART_CLASS_NAME &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;const&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;int&lt;/span&gt; PART_QUALIFIED_ASSEMBLY_NAME &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 1;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
Parse schema strong name&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt;[]
assemblyNameParts &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; schemaStrongName.Split( &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;char&lt;/span&gt;[]
{ ',' }, PARTS_IN_SCHEMA_STRONG_NAME );&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; className &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; assemblyNameParts[PART_CLASS_NAME].Trim();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; fullyQualifiedAssemblyName &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; assemblyNameParts[PART_QUALIFIED_ASSEMBLY_NAME].Trim();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
Load assembly&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assembly schemaAssembly &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; Assembly.Load(
fullyQualifiedAssemblyName );&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//
Create instance of the BTS schema in order to get to the actual schemas&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Type schemaType &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; schemaAssembly.GetType(
className );&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft.XLANGs.BaseTypes.SchemaBase
btsSchemaCollection &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( Microsoft.XLANGs.BaseTypes.SchemaBase
)&amp;nbsp;Activator.CreateInstance( schemaType );&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
Set up XML reader and validate document&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XmlReaderSettings
ReaderSettings &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; XmlReaderSettings();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReaderSettings.ValidationType &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; ValidationType.Schema;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReaderSettings.Schemas.Add(btsSchemaCollection.Schema);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XmlReader
reader &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; XmlReader.Create(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; StringReader(businessDocument.OuterXml),
ReaderSettings);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;try&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;while&lt;/span&gt;(
reader.Read() ) {}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;catch&lt;/span&gt;(XmlSchemaException
xse)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlValidationException &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt;.Format(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"XML
Validation Error: {0}"&lt;/span&gt;, xse.Message);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;return&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;false&lt;/span&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;catch&lt;/span&gt;(Exception
ex)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlValidationException &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt;.Format(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"Unexpected
Error: {0}"&lt;/span&gt;, ex.Message);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;return&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;false&lt;/span&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
success&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlValidationException &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; String.Empty;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;return&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
And it is called from an expression shape as was previously documented in the Arch
hacker's blog:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ValidateDocument(
myBtsMessage, myBtsMessage( BTS.SchemaStrongName ) );&lt;br&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.implementsivillage.net/aggbug.ashx?id=cab6343b-3479-4484-85c6-e7e9b5502b44" /&gt;</description>
      <comments>http://www.implementsivillage.net/CommentView,guid,cab6343b-3479-4484-85c6-e7e9b5502b44.aspx</comments>
      <category>BizTalk</category>
    </item>
  </channel>
</rss>