<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Microsoft MOM 2005</title>
        <link>http://geekswithblogs.net/nsthompson/category/5106.aspx</link>
        <description>Microsoft MOM 2005</description>
        <language>en-US</language>
        <copyright>Neil Thompson</copyright>
        <managingEditor>n.thompson@cgi.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Using MOM 2005 to Recover ports on BizTalk 2006</title>
            <link>http://geekswithblogs.net/nsthompson/archive/2006/07/25/MomBizTalkSQLPortRecovery.aspx</link>
            <description>&lt;P&gt;This will be&amp;nbsp;a semi-fictitious case study. In using MOM 2005 to recover an errant SQL port.&amp;nbsp; This scenario is common and I've been asked about it a lot.&amp;nbsp; This approach is the simple meat and potatoes process. There are lots of areas that could be polished up but that kind of thing can clutter up an article with too much detail.&lt;/P&gt;
&lt;P&gt;The basic steps will be as follows:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Define a rule to detect the error condition 
&lt;LI&gt;Define a script to correct the error condition 
&lt;LI&gt;Wire up the script to the rule so that the rule cant trigger it.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Define a rule to detect the error condition&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;For whatever reason (network down, SQL down) the port was unable to commmunicate with SQL and BizTalk shut it down. This will create an event log entry similar to the following&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Type:Error&lt;BR&gt;EventID:5649&lt;BR&gt;Source: BizTalk Server 2004/2006&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;The receive location "SQL://&amp;lt;sql name/info&amp;gt;" is shutting down. Details:"The error threshold has been exceeded. The receive location is shutting down."&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;You will setup a MOM Rule to detect this condtion. This is not a total MOM tutorial so I won't go over the details here, but the basic process is to create a new rule and use the criteria tab to specify as many details as possible from the above event log entry. Be sure the rule is using the application event log as a source.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Define a script to correct the error condition&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I would normally like to use managed code, but it is nice to remove dependencies from the .NET framework version (i.e. 2.0 might not be installed) and I also like being able to issue changes without having to recompile. This is good and bad for several reasons I don't want to get into.&amp;nbsp; The script that I use targets a specific port and tries to enable it.&amp;nbsp; The script (written in vbscript) is the following: (it is bacially a lift from the BizTalk SDK)&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR bgColor=#eeeeee&gt;
&lt;TD&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;'-------------------------------------------------------------------------&lt;BR&gt;'&lt;BR&gt;' WMI script to enable/disable the receive locations&lt;BR&gt;'&lt;BR&gt;'---------------------------------------------------&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Option Explicit&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;EnableReceiveLocation "ReceivePort1", "ReceiveLocation1", "TRUE"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Sub EnableReceiveLocation(strReceivePortName, strReceiveLocationName, sEnable)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'error handling is done by explicity checking the err object rather than using&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'the VB ON ERROR construct, so set to resume next on error.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim objInstSet, objInst, strQuery&lt;BR&gt;&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; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'set up a WMI query to acquire a list of receive locations with the given Name and &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'ReceivePortName key values.&amp;nbsp; This should be a list of zero or one Receive Locations.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strQuery = "SELECT * FROM MSBTS_ReceiveLocation WHERE&amp;nbsp; ReceivePortName =""" &amp;amp; strReceivePortName &amp;amp; """AND Name =""" &amp;amp; strReceiveLocationName &amp;amp; """"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objInstSet = GetObject("Winmgmts:!root\MicrosoftBizTalkServer").ExecQuery(strQuery)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Check for error condition before continuing.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Err &amp;lt;&amp;gt; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PrintWMIErrorThenExit Err.Description, Err.Number&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'If Receive Location found, enable it, otherwise print error and end.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If objInstSet.Count &amp;gt; 0 then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each objInst in objInstSet&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;&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; 'Now enable /disable&amp;nbsp; receive location&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; if sEnable= "TRUE" then&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; objInst.Enable&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; else&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; objInst.Disable&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; end if&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; If Err &amp;lt;&amp;gt; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; Then&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; PrintWMIErrorThenExit Err.Description, Err.Number&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; End If&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; if sEnable = "TRUE" then&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; return 100&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; else&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; return 101&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; end if&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.Echo "No Receive Location was found matching that Name."&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&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; &lt;BR&gt;End Sub &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;'This subroutine deals with all errors using the WbemScripting object.&amp;nbsp; Error descriptions&lt;BR&gt;'are returned to the user by printing to the console.&lt;BR&gt;Sub&amp;nbsp;&amp;nbsp;&amp;nbsp; PrintWMIErrorThenExit(strErrDesc, ErrNum)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&amp;nbsp;&amp;nbsp;&amp;nbsp; objWMIError&amp;nbsp;&amp;nbsp;&amp;nbsp; : Set objWMIError =&amp;nbsp;&amp;nbsp;&amp;nbsp; CreateObject("WbemScripting.SwbemLastError")&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If ( TypeName(objWMIError) = "Empty" ) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wscript.echo strErrDesc &amp;amp; " (HRESULT: "&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; Hex(ErrNum) &amp;amp; ")."&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wscript.echo objWMIError.Description &amp;amp; "(HRESULT: "&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; Hex(ErrNum) &amp;amp; ")."&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objWMIError&amp;nbsp;&amp;nbsp;&amp;nbsp; = nothing&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp;&amp;nbsp; If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'bail out&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wscript.quit 0&lt;BR&gt;End&amp;nbsp;&amp;nbsp;&amp;nbsp; Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Sub PrintUsage()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.Echo "Usage:" + Chr(10) + Chr(10) + _&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; "cscript enabledisableallrecloc [enable/disable]" + _&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; Chr(10) + "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Example to enable all receive locations: enabledisableallreclo enable "+ Chr(10) + Chr(10) &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; &lt;BR&gt;End Sub&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Wire the script to the rule&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;You have to go to the Response tab of the rule and use the &amp;#8220;Execute command or batch file&amp;#8221; option. Assuming that you have copied your vbscript file to the %PROGRAM FILES% directory on your biztalk server you can execute the following as part of your response:&lt;/P&gt;
&lt;P&gt;Check the &amp;#8220;Use Windows command interpreter&amp;#8220; (if it is appropriate for your environment)&lt;BR&gt;Command line:cscript myscriptfile.vbs&lt;BR&gt;Initial Directory: %PROGRAMFILES%&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Common Mistakes&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;If your script works when executed locally but fails when triggered by MOM you probably have not set your Agent Action account . Go to the MOM adminstration console then go to Administration &amp;gt;&amp;gt; Computers &amp;gt;&amp;gt; Agent-Managed Computers. Right click on the machine in question and select &amp;#8220;Update Agent Settings&amp;#8220;. Choose a domain account that has the appropriate permissions (i.e. BizTalk Administrator/Operator for starting or stopping ports&amp;#8220; 
&lt;LI&gt;Consider the fact that this might start an infinite loop. Say SQL really is down.&amp;nbsp; Then the port goes down, then MOM starts it, then it goes back down, then MOM starts it etc.&amp;nbsp; Limit the retries with the Repeat count (look under advanced in the criteria tab for the rule).&amp;nbsp; If you really want to get fancy, use a regular expression to define different responses based on ranges&amp;nbsp;the retry count (i.e first time run&amp;nbsp;script immediately, 1-5 times run script every 10 minutes, &amp;gt; 5 times notify operators)&lt;/LI&gt;&lt;/OL&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=86227"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=86227" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/nsthompson/aggbug/86227.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Neil Thompson</dc:creator>
            <guid>http://geekswithblogs.net/nsthompson/archive/2006/07/25/MomBizTalkSQLPortRecovery.aspx</guid>
            <pubDate>Tue, 25 Jul 2006 18:40:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/nsthompson/comments/86227.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/nsthompson/archive/2006/07/25/MomBizTalkSQLPortRecovery.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/nsthompson/comments/commentRss/86227.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/nsthompson/services/trackbacks/86227.aspx</trackback:ping>
        </item>
        <item>
            <title>MOM 2005 Category added</title>
            <link>http://geekswithblogs.net/nsthompson/archive/2006/07/20/MomCategoryAdded.aspx</link>
            <description>&lt;P&gt;As fate would have it, I'm going to be delving back into MOM 2005. I figure I may as well blog on it, so I've added it as another category.&amp;nbsp; I'll be talking about MOM 2005 within the context of MOM monitoring BizTalk Server 2006.&amp;nbsp; There are of course, many other applications but I'll start focused and try to be alot of use to a small group of people.&lt;/P&gt;
&lt;P&gt;I'm going to be covering the management packs, initial setup, using the agents, configuring and responding to alerts, and also writing scripts for Mom to execute when an alert condition is detected.&lt;/P&gt;
&lt;P&gt;I'm also taking requests, so if you have questions about MOM 2005 let me know and I'll do my best to answer them.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=85812"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=85812" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/nsthompson/aggbug/85812.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Neil Thompson</dc:creator>
            <guid>http://geekswithblogs.net/nsthompson/archive/2006/07/20/MomCategoryAdded.aspx</guid>
            <pubDate>Thu, 20 Jul 2006 14:18:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/nsthompson/comments/85812.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/nsthompson/archive/2006/07/20/MomCategoryAdded.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/nsthompson/comments/commentRss/85812.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/nsthompson/services/trackbacks/85812.aspx</trackback:ping>
        </item>
    </channel>
</rss>