DebugView Not working on Windows 7 64 bit

Mostly I use DebugView while developing my BizTalk projects for quick trace and logging purpose. However recently I had a strange experience with DebugView.

I started my BizTalk application of one of our Windows 7 machine and DebugView was not showing any output while execution. I dig a lot ,however nothing was working for me and it was becoming very touch for me to follow the trace of the application.

Then after trying different settings on DebugView, it finally started to show the output. The settings which i changed on DebugView is:

  • Started running DebugView with administrator rights on machine
  • Enabled “Capture Global Win32” from the menu.

Please see this blog post, about how to use DebugView.

Thanks for reading!

Advertisements

BizTalk Rule Engine Policies Not Working

I recently created one policy and deployed on my another development Box, But it was strange, because it was not modifying my input XML.

I checked the logic of my rule and imported few times, Also restarted my Rule Engine Services, however it did not work for me. The only change which i was doing is, deploying on a different operating system. My other development Box was running Windows 7, 64 bit.

I searched a lot about the issue but did not find much information.

My Rule us using XmlHelper class to modify the input xml using some decisions based on the supplied values in xml file.

Finally after searching more about this class, I figured out the problem and fixed it. The steps are below:

  • I had to make some changes in my registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BusinessRules\3.0\StaticSupport

  • I created the key and it started working fine.

About the Registry Key:

I had to set the value 2 of the above registry key, which tells BizTalk Rule engine to support usage of static objects , details are:

  • 2 – An instance of the object is NOT required, but the static method will be called at rule translation time (only if the parameters are constants). This is primarily meant as a performance optimization. However, note that static members used as actions will NOT be executed at translation time, but static methods used as parameters may be.

The Key was not there in my registry So i have created and set the value 2, It started working.

Finally I found more details about this problem in a blog post here by Richard. Please see the blog post for more details.

My First Article on Technet-BizTalk Server:Integration with MQ Series

I have published my first article on Microsoft Technet site today. In summary the article covers following points

  • What to use MQSC or MQSeries Adapter
  • List of common Hot fixes from Microsoft related with MQ Adapter
  • List of useful MSDN articles
  • List of useful discussions on msdn social forum
  • List of useful blog post by BizTalk community members

Please feel free to read and update the “BizTalk Server:Integration with MQ Series” wiki article.

Filter Unique Records Using BizTalk XSL

  • Requirement

I have a XML file which contains some duplicate records. The XML file looks like below:

<ns0:DataNode xmlns:ns0=”https://alamnaushad.wordpress.com/DataNode”>
    <ns0:MainNode>
        <ns0:ID>123</ns0:ID>
        <ns0:name>First Index</ns0:name>
    </ns0:MainNode>
    <ns0:MainNode>
        <ns0:ID>123</ns0:ID>
        <ns0:name>Second Index</ns0:name>
    </ns0:MainNode>
    <ns0:MainNode>
        <ns0:ID>123</ns0:ID>
        <ns0:name>Last Index</ns0:name>
    </ns0:MainNode>
    <ns0:MainNode>
        <ns0:ID>1234</ns0:ID>
        <ns0:name>First Index</ns0:name>
    </ns0:MainNode>
</ns0:DataNode>

The requirement here to get only unique records based on the value of ID element. Also We have to get the last occurrence of ManinNode for which ID is unique in the XML.

After the MAP Output should be like below XML

<ns0:DataNode xmlns:ns0=”https://alamnaushad.wordpress.com/DataNode“>

<ns0:MainNode>

<ns0:ID>123</ns0:ID>

<ns0:name>Last Index</ns0:name>

</ns0:MainNode>

<ns0:MainNode>

<ns0:ID>1234</ns0:ID>

<ns0:name>First Index</ns0:name>

</ns0:MainNode>

</ns0:DataNode>

  • Solution Approach

    I would write a custom XSL to achieve the above requirement . To get the last occurrence of from a node set I would use last() xsl function.

  • Code

      I would perform following steps to create a MAP and use the XSL in MAP to achieve my requirement.  My XSL code looks like below
         

      <?xml version=”1.0″ encoding=”UTF-16″?>
      <xsl:stylesheet xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” xmlns:msxsl=”urn:schemas-microsoft-com:xslt” xmlns:var=”http://schemas.microsoft.com/BizTalk/2003/var” exclude-result-prefixes=”msxsl var” version=”1.0″ xmlns:ns0=”https://alamnaushad.wordpress.com/DataNode”>
          <xsl:output omit-xml-declaration=”yes” method=”xml” version=”1.0″ />

          <xsl:key name=”item-by-value” match=”ns0:ID” use=”.”/>
          <xsl:template match=”/”>
              <ns0:DataNode>
              <xsl:apply-templates select=”/ns0:DataNode/ns0:MainNode/ns0:ID” />
              </ns0:DataNode>
          </xsl:template>
              <xsl:template match=”ns0:ID”>
                  <xsl:for-each select=”.”>
                      <xsl:if test=”generate-id() = generate-id(key(‘item-by-value’, normalize-space(.))[last()])”>
                      <ns0:MainNode>
                          <ns0:ID>
                              <xsl:value-of select=”.” />
                          </ns0:ID>
                          <ns0:name>
                              <xsl:value-of select=”following-sibling::*”/>
                          </ns0:name>
                      </ns0:MainNode>
                      </xsl:if>
                  </xsl:for-each>
          </xsl:template>
      </xsl:stylesheet>

    1. Created a Schema to hold the input xml message
    2. Created A Map to transform the input to desired output
    3. Created a XSL file which contains all my transformation logic
    4. Set the property of BizTalk Map to use the custom XSL file Path like below.

    2-24-2012 12-23-18 AM

    I have uploaded the complete project here, Please download and feel free to use it!!

     

      Uninstall XCode-Completely

      Following command can be used to uninstall XCode (any version) from your MAC.

      sudo /Developer/Library/uninstall-devtools –mode=all

       

      A great article for BizTalk Questions

      If your are going for an Interview, These concepts and questions might help you ..

       

      http://geekswithblogs.net/LeonidGaneline/archive/2012/01/10/biztalk-advanced-questions.aspx

       

      Minimum BizTalk Hotfixes on Production Servers

      If you have Microsoft BizTalk Server 2006 R1 on you production farm, I would recommend you to deploy following hot fixes.

      KB 943165

      KB 944426

      KB 944838

      KB 944158

      KB 970070

        Always Check MS documentation before doing these on production.
        Thanks

        Windows Live Writer for Windows Server 2003

        I use Windows Server 2003 for my work and development purpose, When i tried to get Live Writer 2011, it says it doesn’t support this operating system. Officially I could not   find anything from Microsoft’s download page. I did Google and after couple of searches i managed to find a BUILD of Live writer for Windows Server 2003, and its working.

        I was wondering why it is not on Microsoft Official download site.

        In case you want then Please download it from following location,

        Windows Live Writer for windows Server 2003

         

        Thanks

        How To Promote MQ Services Context Properties in BizTalk

        Recently there was a requirement in my BizTalk solution to Promote “MQSeries.MQMD_Expiry” message context property to a outgoing message. At the starting I thought it is quite easy because BizTalk support and promotes most of the system properties of MQ Services in MQ adapter.

        I was able to view this property at send port but I was not sure how will I set a value to this property in orchestration.

        If I list all the filter properties on send port I can see this property.

        1-9-2011 6-57-44 PM

        In The Orchestration

        When I tried to get the same property in orchestration I could not find it.That is really strange!!.

        1-9-2011 7-03-11 PM

        It was quite strange for me to see that this context property is available on send port while not in orchestration. Then I figured out from admin console the assembly which contains the property schema for MQ Series.

        1-9-2011 7-05-33 PM

        I added the reference of this dll to my orchestration and yes now I could see this property in orchestration

        1-9-2011 7-09-46 PM

        1-9-2011 7-12-45 PM

        At this I was able to set the value of this property. Now the next step was to promote this property .

        Correlation Set and Correlation Value

        Yes I have to create a correlation set and a correlation value so that it can be initialized at send port. This is the trick here, other wise this context property will be written but not promoted.

        Created  a correlated type and selected MQSeries.MQMD_Expiry property

        1-9-2011 7-18-27 PM

        Created a Correlation Set and set the correlation type to above created correlation type variable.

        Click on Send Port and open properties and select the Correlation Set in the “Initialize Correlation Set ” property box.

        1-9-2011 7-21-48 PM

        With this the exercise gets completed. I tested a sample message and yes I could see it promoted.

        I know this is quite simple but Ii found it interesting.

        BizTalk HotRod Jan 2011 edition is out

        I always like reading HotRod editions. The latest one for Jan 2011 is out , It is available at
        http://biztalkhotrod.com/Documents/BizTalkHotrod11_Q4_2010.pdf

        There are really good articles in this edition.