Darren Jefford at the next BizTalk User Group meeting in Stockholm

I'm happy to announce that Darren Jefford will do two sessions at our next BizTalk user group meeting in Stockholm at the 8th of April. The first session will be about performance and testing followed by "stories from the field", and of course, lots of Q&A.

Darren Jefford is a Principal Consultant, Application Development Consulting at Microsoft UK. He is also the author of the Professional BizTalk Server 2006 book.


I've been fortunate to attend several of his sessions at TechEd and at the SOA Bpm conference. His experience with large scale BizTalk solutions, together tips & tricks and lots of knowhow, makes you really want to attend this meeting.

The invitations will be sent out next week.

Darrens Blog: http://blogs.msdn.com/darrenj/

Great MSDN white paper on Biztalk vs WF

I was just alerted to this whitepaper that has a very good discussion about using
WF versus when to use BizTalk.

For those of you that are previous readers of my blog I’m an avid fan of WF and BTS
working together to solve solutions rather than a common message voiced by at times
MS – “you *must* choose one or the other”. I did a webcast on
this years ago.

Kent Brown the author does a very good job – well done!!!

BizTalk Server 2006
or WF? Choosing the Right Workflow Tool for Your Project

Commerce Server Orders Adapter on 64-bit BizTalk in a 64-bit Host

Recently I have spent a lot of time working with the Commerce Server 2007 Orders Adapters for BizTalk. 

Getting it set-up and running on a single machine with BizTalk and Commerce Server together was not too hard (although anyone who thought BizTalk 2004 was hard to install should try installing Commerce Server).  Getting everything to work correctly on a 64-bit BizTalk Server installation was another story.

I was running BizTalk 2006 R2 64-bit with a 64-bit process Host.  I was setting up the Commerce Server Order Receive Adapter just like I had many times, only to receive the following two errors:

90% of the time:

Access to the registry key ‘HKEY_LOCAL_MACHINE\Software\Microsoft\Commerce Server 2007 BizTalk Adapters\Orders\<some key>’ is denied.

10% of the time:

The Messaging Engine failed to update the configuration for the receive location “Receive Location1” with URL “<some address>” for adapter “Commerce Server Orders”. Reason: “Object reference not set to an instance of an object.”.

For those of you who have not worked with the Orders Adapter before, when you create a new Receive Location the adapter creates a local registry key to use to store the last polling time.  When I set up this receive location, I checked the registry by doing a search for “<some key>”.  I found the key inside the registry and noticed it was automatically created for me by the BizTalk Adapter as it should have been.

So what was the registry permission problem?

This page in the Commerce Server 2007 help guide was helpful in finding the bug… I mean problem.  This states that on a 64-bit BizTalk Server, the Commerce Server Adapter uses two different registry locations depending on if your host is 32-bit or 64-bit.

For a 32-bit Host, the keys should be here:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Commerce Server 2007 BizTalk Adapters

For a 64-bit Host, the keys should be here:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Commerce Server 2007 BizTalk Adapters

Since my host is a 64-bit Host, the error message above is correct in the location it is looking for the registry settings. 

So what happened to the settings I saw in the registry?  It turns out they were put into the Wow6432Node and I did not notice the full path to the registry key.

The fix was simple.  All I had to do is move the keys the Adapter created in the incorrect location into the expected location for the 64-bit Host.  Note that this process will need to be done any time the Registry Key changes, which on a production server should be almost never or any time you add a new receive location.

To summarize:
When running a 64-bit Host with the Commerce Server Orders BizTalk Adapter, you need to move the auto created registry keys from the Wow6432Node location to the correct location.

Note that 32-bit Hosts running on 64-bit BizTalk Servers do not have any issues, nor do 32-bit BizTalk Servers.

Understanding the BizTalk Mapper: Part 13 – Is the Mapper the best choice for Transformation in BizTalk?

In this section:
Transformation Choices
BizTalk Mapper
Custom XSLT with the BizTalk Mapper
External Transform Engine
Transformation in code
Which one should you use?

Transformation Choices

When performing transformations in BizTalk, you have four
choices (that I can think of):

  1. Using the BizTalk Mapper
  2. Using a custom XSLT file with the BizTalk Mapper
  3. Using a separate transformation engine (called from code)
  4. Performing transformations in code

Each of these offers their own benefits depending on your

Normally your choice will depend on 3 factors:

  • Performance
  • Complexity
  • Maintainability

Generally you will get one (or two) of these, at the cost of
the third.

For simple transformations, you can get all three with the
Mapper using the built-in functoids.

Easy Brain Teaser 1: Quick Chores

Difficulty Level: Easy

Two children have the following chores to do, before they will be allowed to play Halo 3.

  1. Mow the lawn.

  2. Wash the dishes.

  3. Wash the car.

When done by one child each of these chores will take 1 hour to complete.  If they were to start at 9am how would they be able to finish their chores in the shortest amount of time possible, given that the two children can not work on the same chore at the same time?

Commerce Server Orders Receive Adapter: Search clause factory failed

Sometimes getting BizTalk to communicate successfully with Commerce Server 2007 using the provided Orders Adapter can be tricky.

Here is a quick tip when initially setting up the Orders Receive Adapter in BizTalk 2006 R2.

If you receive the following error:

Creating the search clause factory failed for Commerce Server Orders Receive Adapter.  Message You are not authorized to perform the requested operation. 

Make sure the user the BizTalk Host is running under is added to the Commerce Server Order Web Service using azman (I made the user an Orders Admin) and that anonymous access is disabled on the site hosting the web services.

If you are on the same domain and Windows Authentication is enabled, make sure you are not supplying a user name and password on the receive location.

Hope this helps!