Visual Studio 2005 Fails To Start

Today I ran into a strange problem.  Visual Studios would not launch!  No matter what I did, it was totally dead.

I had remove Visual Studios 2005 Beta 2 a few weeks ago and upgraded to RTM.  Today, I installed BizTalk 2006 Beta 2 and configured it with no problems.  I went to open Visual Studios to work with BizTalk and nothing happened.

I got the Visual Studio Launch screen for about 5 seconds and then gone.  I could see the program start in the task manger but then it just disappeared.  I was not getting any errors in the event log.

I start by reinstalling VS with no luck.  So, I tried uninstalling and reinstalling VS.  Yep, that took some time; still no luck. 

I then took a look at all my installed programs.  I found two products that I probably should have uninstalled with Beta 2. 

They were:

Windows Workflow Foundations Components for Visual Studios 2005

Software Development Kit for WinFX

I removed both of these items and Visual Studios opened as expected with no problems. 

I’m guessing it was the Windows Workflow that was causing the problem since it was not RTM friendly. 


I was surprised that having this installed would actually prevent Visual Studios from running.

So, the moral of the story is make sure you get all the different beta products removed when you upgrade to the RTM of Visual Studios.

BizTalk, Another Custom XSLT mapping sample.

The below mapping example could most likely be accomplished using a series of BizTalk maps. In the maps,  Table Looping / Table Extractor / Looping functoids etc. could be used to perform the transformation. Sometimes it makes sense to craft your own custom XSLT to execute the complete transformation. The sample input / output messages for the transformation as below. Also included is the custom XSLT for the transformation. You can also download the source code (at end of this blog entry). 

INPUT Message:

–> For each “contenedor” node, in the output message must repeat the sequence of segments ORC + RQD (According to the standard HL7 v.2.3.1)
–> For each “prueba” node, in the output message must repeat the sequence of segments ORC + OBR
–> For each “parametro” node, in the output message must repeat the segment NTE

For the below output, the order of the nodes is also important. The order relates back to the input message.

OUTPUT Message should be:


The custom XSLT for the mapping/transformation looks like below:

The above XSLT can be placed in a scripting functoid in the map as discussed HERE
Or the custom XSLT can be placed in a separate file, with the map’s property ->  Custom XSLT Path pointing to the file (see below)

Download the solution HERE

Conclusion: In some cases it is much simpler to write your own custom XSLT for a BizTalk map.
Note: You can also perform a transformation in a BizTalk map using a combination of custom XSLT and links/functoids (see below links)
Note: Using functoids or a combination of functoids in a map are sometimes not enough to perform a transformation or a portion of a transformation. Using custom XSLT for the transformation or a portion of the transformation may be the answer.

Below is more information on using custom XSLT in BizTalk maps:

Extending Mapper (BizTalk Server SDK Samples)

Creating Nodes from Flat Data in BizTalk 2004 Maps

Logical Message Splitting in BizTalk Server 2004

Implementation of Message Transformation Normaliser Pattern in the BizTalk 2004

Sorting XML Nodes with the BizTalk Mapper

Debugging XSLT

Interview Questions for Biztalk Server 2004

Wow, it has been some time now since I last blogged.  I would like to say I have been super busy with tons of project work. But, actually I have been on vacation most of the time.

From time to time I get the chance to interview prospective Biztalk resource to join various projects.  Since Biztalk 2004 is such a broad and relatively new product, it can sometimes be hard to compare different resources that might have had totally different experiences.

I have put together a few questions that I like to use when interviewing possible resources to give you an idea of the types of questions you might get asked in a BizTalk interview.

The point is not to know all the answers but to be able to demonstrate experience with the product and problem solving skills.  I never penalize people for not knowing something as long as they can tell me how they would find out more about it.

At a high level, what should you know in order to be successful on a Biztalk project?

·         General to moderate .net skills

·         Basic SQL skills

·         Debugging skills

·         Understanding of Biztalk development

·         Understanding of Biztalk design (if needed)

Development Focused Questions

What is BizTalk?

In BizTalk 2002, schemas were DTD based and allowed Xml Elements to be in any order inside a record using the <Any> keyword.  How is this different in BizTalk 2004?

What is a Message Type (i.e. BTS.MessageType) and how is it used in BizTalk?

How do you call a Non-Serializable .Net helper class inside an Expression Shape?

What if the class is Serializable?

What does the Value Mapping Functoid do?

How do you use Auto Mapping in the BizTalk 2004 mapper?

What is the default mapping for Auto Mapping?

Step-by-step, how do you set up a basic, pure messaging solution taking in a flat file and send an Xml File out to 5 different places?

Design (Architecture) Focused Questions

What is the difference between a Distinguished field and a Promoted Property?

How do you achieve First-In-First-Out message processing of messages received from multiple sources using an Orchestration?

At high level, what do Receive Ports and Orchestration Send Port really do in terms of messaging?  What about Send Ports and Orchestration Receive Ports?

When working with Schemas, Maps, Pipelines, and Orchestrations how should the projects be structured?

What is direct binding?

What is BAM used for?

What is the Rules Engine?

What are Persistence Points and what causes them?

What group does a user need to belong to in order to submit messages to the message box? 

What user rights to you need to perform most actions in HAT?

When installing Biztalk in a multi-server configuration with a remote SQL and Analysis Services, what SQL components do you need on the Biztalk Server?

When installing Biztalk and SQL on a Windows XP SP2 Desktop, what pre-requests are required?

Please note that knowing that Ctrl-Alt-Z opens the Biztalk Explore when working inside Visual Studios did NOT make my list of questions.

Working with BizTalk artifacts

BizTalk has a lot of “artifacts”. That’s the name of the BTS objects.

Here I try to classify these artifacts from a point of view “Which tool is used to work with artifacts”:


PS Unfortunately I’ve lost comments when copy this table from Excel. If you want to receive the whole table give me know and I’ll send the original table to. you.

Artifacts \ Tools BTS Adm. Console BTS Explorer Orchestration View
Message Boxes ? %u009d
Servers %u00ba%u00bd
Hosts ?%u00bd
Adapters ? %u009d
Receive Handlers ?
Send Handlers ?
Pipelines are created in Soluton Explorer
Assemblies %u009d are created in Soluton Explorer
Orchestrations %u00bd %u00bd are created in Soluton Explorer
Parties ?
Roles ?
Role Links/R. L. Types ?
Send Port Groups %u009d ?
Send Ports %u00bd ? ?
Receive Ports ? ?
Receive Locations %u00bd ?
Port Types ?
Correlation Sets / C.S. Types ?
Messages ?
Multi-part Message Types ?
You can:
%u009d – View
%u00ba – Tune up
%u00bd – Start/Stop or Enable/Desable
? – Create & Tune up
– this color marked the “live creatures”

BizTalk 2006 – ManageRefCountLog Job Fails in beta 2

If you have installed BizTalk 2006 with SQL Server 2005 you may have noticed that the MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb job is failing as shown in the job history capture below.

The detail of the error is as follows:

Executed as user: SomeUser. SQLServerAgent Error: Request to run job MessageBox_Message_Cleanup_BizTalkMsgBoxDb (from User SomeUser) refused because the job is already running from a request by User SomeUser. [SQLSTATE 42000] (Error 22022).  The step failed.

There is nothing to be concerned about however. The error stems from this job attempting to start a secondary sql agent job. If that job is already running we get an error. This job is important so do not disable it.

Update: Microsoft have posted a more detailed description on one of their blogs here

BizTalk 2006 – Beta 2 EDI Memory Leak

If you have installed the EDI option with BizTalk 2006 beta 2, but are not actively using it I would recommend that you disable it – just stop the BizTalk Base EDI Service in Service Manager. You may have noticed this already, but if not there is a memory leak in a covast component, displaying itself as the esp_srv.exe process slowly but surely eating up all your memory as a Task Manager screen capture shows below. Nasty little chap!

Note that this has been fixed for the next release.

Figure 1 – On this machine it had been running a week


BizTalk 2006 – Pipeline Component Wizard

I have used the Pipeline Component Wizard written by Martijn Hoogendoorn on a few occasions now and would say it is an excellent weapon in your BizTalk armoury, especially for those who are new to writing custom pipeline components. Up until now I had been using the old version with VS 2003 and then converting the project to VS 2005, as it had not been working with VS 2005. However, Martijn has now updated the wizard to work with BizTalk 2006 beta 2. You can download this from here.

December Connected Systems User Group Meeting

The December Connected Systems User Group meeting is right around the corner and we have a great speaker lined-up. Come to the meeting and learn how to effectively use BizTalk’s pub/sub model to create decoupled solutions. Time/Date: December 13th – 6pm Cost: Free For more information about December 13th’s meeting visit the Northwest Connected Systems website at: Thank you! -Brennan…

MOM, the MOM Resource Kit and BizTalk Management Packs

I have been spending a lot of time on my current project working on the operations and monitoring phase of the project life cycle.


During discussions about the differences between MOM 2000 and MOM 2005 there have been many questions and a bit of confusion about the support for the different BizTalk Management Packs.


There are two management packs for BizTalk.  One that targets BizTalk 2004 and the other that targets BizTalk 2006.  These two management packs are not completely interchangeable between MOM 2000 and MOM 2005.


The compatibility is:

MOM 2000 will provide monitoring of BizTalk 2004 through the BizTalk 2004 Management Pack

MOM 2000 will NOT provide monitoring of BizTalk 2006 as the Management Pack is not compatible with MOM 2000


MOM 2005 will provide monitoring of BizTalk 2006 through the upcoming BizTalk 2006 Management Pack.  This is now available out on BetaPlace.

MOM 2005 will provide monitoring of BizTalk 2004 through the BizTalk 2004 Management Pack using MOM 2005’s backward compatibility.


In addition to the Management Packs, the other tool that I found is in the MOM 2005 Resource Kit.  There are a number of tools in the Resource Kit but the one that I found the most interesting (since it relates to BizTalk of course) is the Business Activity Monitoring (BAM) Wizard.


This wizard creates a management pack to monitor business processes.  It uses BAM performance indicators (KPIs) and will raise alerts when the KPIs change from the desired operating conditions.


Lastly, Scott Colestock wrote a whitepaper titled Advanced Microsoft BizTalk 2004 and Microsoft Operations Manager 2005 Scenarios.  This white paper provides a great walkthrough on using the BizTalk Management Pack.  I was glad to see that this whitepaper also has a section about developing a custom management pack for your custom applications titled Developing Your Application-Specific Management Pack.


After working on the operations side it has opened my eyes to how great the need is for us to be developing our own management packs for our custom applications.  I encourage all of you to read the whitepaper and take a look at creating your own custom management packs.


Debatching Design and Performance Considerations Whitepaper

In some business scenarios you may be required to receive a batch file that must be broken up and processed as single messages by BizTalk Server 2004. This could allow for individual record level processing, selective content based routing, or single message mapping.

Get more information from the original blog post on this topic: