Azure: How to Check your Bill

Introduction

I have been playing with the Azure toolset lately in preparation for taking beta exam 71-583, which is the MCPD (Pro) exam on Windows Azure technologies. I had worked with these technologies on and off over the past 2 years during the early releases. One thing I have heard from many people is that they will see a bill come in somewhat unexpectedly. During the early pre-production releases everything was free so I did not worry about the charges. I signed up with the cover of my MVP MSDN subscription but I did need to enter my credit card information in case of overages. It is like a hotel – you still have to give your credit card for the mini-bar, long-distance room calls and the movies on the tv.

One thing that seems to be relatively poorly documented is how to check your bill or tab. I gave this feedback on a recent MPRP study but apparently it has not gotten through about how many in the community seem to be stunned by the charges. So I thought it would be good to do a quick post on how to check your bill in the current Azure product. While some of the screenshots seem relatively self-explanatory, you do need to choose 5 links to drill down deep enough into the account details to actually get the meaningful charges information. This really should be easier.

Walkthrough

  1. First, go to one of the Azure configuration portals, either at http://sql.azure.com, http://windows.azure.com, or http://appfabric.azure.com. If you have used the service, you should see a screen similar to the one for me below:
  2. Click on the “Billing” link in the upper right hand portion of the screen under your Windows Live Id.
  3. The next page displayed will be https://mocp.microsoftonline.com/site/default.aspx, which you could alternately go to directly. You will then need to authenticate again. After authenticating with your Windows Live ID the site will be shown similar to the picture below:
  4. So the next thing to do is to click on “View My Bills”. Again, this seems obvious but this is the only entry point I have found into this important report. A pop up window will open. The popup will load a list of your bills as shown for me below:
  5. Next you click on View Online Bill/Invoice. This will bring back an itemized list of your current charges. You can see my bill below. I have been using some of the Azure services but it is covered up to a point by my MSDN benefits:
  6. Finally you have to click on the links like AppFabrc Usage Charges, Data Transfer Usage Charges, or SQL Azure Usage Charges to get the real statistical information about how much you owe. For MSDN subscribers, this is where you check how many minutes you have left in your plan :). Below I show my charges for the data transfer:
  7. I tried taking the URL for this report and copying it out to a different browser session but was unsuccessful. I wish it were easier to see the expected charges or maybe get a text if I were about to be charged actual money. I wonder if there is a cloudapp for that.

Good luck managing your cloud accounts! Thanks,

BizTalk 2010 Party Migration Tool Issues & Workarounds

Introduction

Back during the BizTalk 2010 beta I was testing out the Party Migration tool. This tool enables a smoother migration path from BizTalk 2006 R2 and BizTalk 2009 to BizTalk 2010. It is very useful once you get it to run successfully. Back during the beta I experienced quite a few issues and apparently these issues remain in the final version (RTM) of the tool. This post will describe these issues and give the full steps for a workaround. I am using very similar steps I used during the beta here.

Issues

The party migration tool can be found on the install media at <install media path>\core\BT Server\PartyMigrationTool\PartyMigrationTool.exe. The help description found at http://technet.microsoft.com/en-us/library/aa578307(BTS.70).aspx mentions this should be run from a CD.  It would be nice to know this when trying to run the tool but this is not mentioned in the error messages.

Back during the beta the files were distributed just as they are now with the BizTalk 2010 Developer edition – as an extractable exe that does not come as an ISO. This is problematic because the intention for running this tool is that it will be loaded on an ISO or removable media. So you will need to either burn an ISO or use a workaround.

This tool does require you to right-click Run as Administrator or to execute it from an elevated prompt. Otherwise you will get odd CAS errors:

Request for the permission of type ‘System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ failed.. For more details please see the event log.

Initially, if you are using the BizTalk 2010 Developer edition or have not burned an ISO, and try to open the PartyMigrationTool.exe you will receive assembly not found errors like this:

System.IO.FileNotFoundException was unhandled
Message: Could not load file or assembly ‘Microsoft.BizTalk.Migration.PartnerManagement, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The system cannot find the file specified.

If you run off the ISO or removable media everything works but there is another way for this to work.

Workaround

  1. If you are using BizTalk Developer edition or did not make an ISO, go to the PartyMigrationTool folder. Keep this open.
  2. You will need to add 3 assemblies to the GAC next. I found it easiest to copy these three assemblies to the PartyMigrationTool folder to keep everything together. All of these assemblies are found on the BizTalk 2010 install media. The assemblies you will need are:
    a. Microsoft.BizTalk.B2B.PartnerManagement.dll in \core\BT Server\MSI\Program Files\Developer Tools
    b. Microsoft.BizTalk.Migration.PartnerManagement.dll in \core\BT Server\MSI\Program Files
    c. Microosft.BizTalk.Migration.PartnerManagement.XmlSerializers.dll in \core\BT Server\MSI\Program Files
  3. [Note]: I had previously recommended modifying the PartyMigrationTool.exe.config to redirect the assemblies but upon retrying with the RTM bits I thought it was just easier to GAC everything necessary. 2.a. fails anyway because there is not an entry for it in the config.

I did want to mention one other note. When you finally get the tool running, you will need to connect to SQL Server using Windows authentication, SQL authentication is not supported.

Thanks,

BizTalk 2010 Likely Compatible with Commerce Server 2007 Adapters

Based on a thread today on the MSDN forums I tried working with BizTalk 2010 RTM and the Commerce Server 2007 adapters. These are the same adapters used for Commerce Server 2009. I had worked with these adapters on a recent project with BizTalk 2009. I just wanted to post that the adapter install went successfully and I was able to add the adapters in the BizTalk 2010 administration console and able to create ports like normal. So this is an excellent compatibility story.

I had already confirmed these adapters worked with W2K8 R2 about a year ago. My test today of BizTalk 2010 RTM was also on W2K8 R2 with SQL 2K8 R1. Be aware that I only tested the BizTalk adapters and did not work with the Commerce Server business applications or any other aspect of Commerce Server.

Last year Cactus eventually certified/verified that these same adapters appeared to work successfully with BizTalk 2009: http://blogs.msdn.com/b/rdonovan/archive/2009/07/22/biztalk-server-2009-now-works-with-commerce-server.aspx, so I would expect a similar announcement eventually.

Thanks,

Known Compatibility Issue between Windows SDK 6.1, VS 2008 Team Suite affects ESB Toolkit 2.0

Overview

As part of my work installing the ESB Toolkit 2.0 on BizTalk 2009 I have been encountering some significant traps in the configuration of VS 2008 Team Suite and ESB Toolkit 2.0.  I have found that it is very important for you to install Visual C++ as part of the VS 2008 install if you want to build the ESB Toolkit locally. This is not a directly expressed dependency in the documentation so this is something to watch out for. On my VMs to preserve space I will typically avoid installing extra features (such as C++, SQL replication, or Books online) that I usually do not need on the applications I work with but I found out the hard way that you should not take the C++ shortcut with the ESB Toolkit.

Another gotcha I have encountered deals with the Windows SDK 6.1. The current version of the ESB Toolkit 2.0 install documentation will refer you the SDK 6.1 download but I think the install originally referenced Windows SDK 6.0A. For all general purposes, the SDK 6.1 is fine but you are recommended to also install a hotfix, http://support.microsoft.com/kb/974479 if you install the SDK 6.1 after having installed VS 2008 SP1.  This hotfix overcomes some of the changes brought with 6.1 that alter the behavior of the SDK 6.0A. VS 2008 itself installs the SDK 6.0A if it is functioning correctly. The problem I experienced was that VS 2008 Team Suite does not work properly after VS 2008 SP1 and this leads to many unresolvable problems.

Detail

The issues I experienced were because VS 2008 Team Suite does not correctly keep track of the installed features after VS 2008 SP1 is installed. The Team Suite installer behaves unpredictably and will not adequately keep track of the extracted files found in C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC or C:\Program Files\Microsoft SDKs\Windows\v6.0A.  If I leave C++ checked during the Team Suite install I will usually always need to go back and repair the install after VS 2008 SP1 because some of the C++ components will be missing or the Windows SDK 6.0A files will be missing by the time I try to compile the ESB Toolkit.

One of the problems I experienced included the problem of the VS 2008 Team Suite installer giving the message (similar to problem identified in this thread: http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/2f3d0378-3175-49ae-acb7-012594a1bf3c):

A selected drive is no longer valid.

The install order I took when encountering this issue was:

  • BizTalk prerequisites – W2K8 R1 x64, SQL 2008 R1, SQL 2008 R1 SP1
  • VS 2008 Team Suite with C++ unchecked (SQL express was also unchecked)
  • VS 2008 SP1
  • BizTalk 2009 x64
  • Other BizTalk 2009 installs such as WCF LOB SDK, Adapter Pack, etc.
  • BizTalk 2009 ESB Toolkit Pre-Requisites such as MSChart, VS 2008 SDK
  • Windows SDK 6.1 

Conclusion

Unfortunately, I was not able to come up with a corrective solution for handling this configuration incompatibility. I tried a couple things but was unsuccessful:

  • Install the hotfix 974479 which should resolve most of the problems with the Windows 6.1 and VS 2008 SP1. I was still unable to get the VS 2008 Team Suite installer to work
  • Uninstall the hotfix 974479.
  • Uninstall Windows SDK 6.1 
  • Uninstall VS 2008 SP1

These last attempts certainly show some despiration but I found that once the Windows SDK 6.1 is installed the VS 2008 Team Suite installer seemed to me to always fail. VS 2008 SP1 is a requirement for BizTalk 2009 so I could not choose to avoid this. I recommend avoiding the Windows SDK 6.1 if possible on a computer or VM with VS 2008 Team Suite and SP1 otherwise you may not be able to compile the ESB Toolkit.

Thanks,

Using a Named SQL Instance with the ESB Toolkit

Introduction

Lately I have been working on building out some VMs for working with BizTalk 2009/ESBT 2.0 and for BizTalk 2010/ESBT 2.1. I am working on a project that is targeting BizTalk 2010/ESBT 2.1 but there is a feature we would like to use which is currently only compatible with BizTalk 2009/ESBT 2.0. So I am working on managing the feature migration as well as planning for how things will work with BizTalk 2010.

One of the proprietary systems I work with uses a named instance in development for the SQL database and no default SQL instance exists. To keep everything relatively simple I have been installing BizTalk on the same named SQL instance. For most of the BizTalk prerequisites and setup this is straight-forward, but once I start working on the ESB Toolkit there are so many changes to make because the ESB Toolkit samples are all based on a default SQL instance.

It seems that the documentation is quite poor in this regard so I wanted to make a list of the things I have had to change to get a named instance to work properly. I did see Andy Morrison’s article mentioning bits of my content at http://geekswithblogs.net/andym/archive/2010/02/02/137753.aspx but it does not mention all of the relevant items specifically for a named instance. Some of the items listed below are steps done before the ESB Toolkit itself but I am including them here for completeness.

Pre-Requisite Setup

  • Install SQL using a named instance
  • Configure BizTalk using the named instance. Most of the steps in the wizard will work automatically(if SQL is local) but the BAM Tools lines for BAM Analysis and BAM Star Schema databases will still require you to manually enter the named instance information.
  • The UDDI configuration wizard will pick up the named instance automatically (if SQL is local) so no extra work here.

ESB Toolkit Setup

  • During the ESB Toolkit Configuration Tool you will need to specify the name of the named instance. If SQL is local you can use “.\<instance name>”.

ESB Toolkit Management Portal Setup

  • Edit the web.config in c:\Projects\Microsoft.Practices.ESB\Samples\Management Portal\ESB.Portal
  • Edit the App.Config in c:\Projects\Microsoft.Practices.ESB\Samples\Management Portal\ESB.UDDI.PublisherService
  • Edit the web.config in c:\Projects\Microsoft.Practices.ESB\Samples\Management Portal\ESB.Exceptions.Service\ESB.Exceptions.Service
  • Edit the App.config in c:\Projects\Microsoft.Practices.ESB\Samples\Management Portal\ESB.Exceptions.Service\ESB.Exceptions.Service.Implementation
  • Edit the web.config in c:\Projects\Microsoft.Practices.ESB\Samples\Management Portal\ESB.BAM.Service\ESB.BAM.Service
  • Edit the App.config in c:\Projects\Microsoft.Practices.ESB\Samples\Management Portal\ESB.BAM.Service\ESB.BAM.Service.Implementation
  • Edit the App.config in C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\ESB.AlertService
  • Open the ESB.Portal solution in C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\ESB.Portal and do a find on “data source=” to find a few other locations where the default SQL instance is used with Entity Data Models and other files
  • Open the ESBFunctions.ps1 file in C:\Projects\Microsoft.Practices.ESB\Source\Install\Scripts and search for “sqlcmd” to find places where SQL is being called using the default instance. I did a find/replace on “sqlcmd” and replaced it with “sqlcmd -S .\<instance name>” because my named instance was local. You can enter something different if your named instance is remote.

As you can see, there are so many different places that must be changed in order to use the ESB Toolkit with a named SQL instance. This list holds true for both BizTalk 2009 and BizTalk 2010.

Thanks,

Installation Challenges for BizTalk 2010 RTM

Introduction

Today I kicked off the install of BizTalk 2010 RTM. On Friday of last week the BizTalk 2010 downloads were made available to MSDN customers and over the weekend the ESB Toolkit 2.1 RTM downloads also became available (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8b24d2a7-f079-4123-8428-7699e732a736). For some reason the Standard and Enterprise edition downloads are now almost twice the size of the Developer edition download.

In this post I just wanted to document a couple installation differences and challenges I encountered when installing BizTalk 2010 RTM. I decided to try to install onto the same VM where I had installed BizTalk 2010 Beta. Usually this has worked for me in the past unless there was some uninstall problem. For the timid, please start with a clean VM image.

Challenges

Here are the things you should do if you are installing on a VM where BizTalk existed already:

  1. Remove all existing installs with BizTalk in the name.
  2. Remove Microsoft Enterprise Single Sign-On
  3. Remove all existing BizTalk databases
  4. Remove all existing BAM DTS packages – Open SQL Management Studio under Integration Services and check the packages under MSDB. Remove all of them. These are not removed by the uninstaller.
  5. Open the SQL Configuration manager and disable Shared Memory from the connectivity options. *new*

Next  I will give a little extra background and mention a few errors I got.

My first step was to uninstall anything with “BizTalk” in the name. So I did this. I started the installer next and got a message that a previous version of  Microsoft Enterprise Single Sign-On was installed and asked to remove this. I am guessing the version information in the registry must have changed between Beta and RTM. So I allowed it to uninstall and remove the SSO component. It ran a little longer but then I got an error about SSO:

The following platform components failed to install and will need to be manually installed before setup can proceed: Enterprise Single Sign-On Administration.

This problem was a little difficult to understand. I handled the problem by uninstalling SSO before running the BizTalk installer again. I had been installing BizTalk over the virtual network share VMWare provides but apparently this causes a problem for SSO. I copied the install files locally and then it no longer had a problem.

Another thing I found out changed with SSO between Beta and RTM is that now it is not acceptable for the SSO install to use the Shared Memory SQL connectivity option. Perhaps this is a security fix. Here is the error I got when trying to setup SSO on BizTalk 2010 with Shared memory enabled:

Failed to create the SQL database ‘SSODB’ on SQL Server ‘<machine name>\<instance name>’ (with SSO Administrator account ‘SSO Administrators’). (SSO)
For help, click: http://go.microsoft.com/fwlink/events.asp?ProdName=Microsoft+BizTalk+Server+2010&ProdVer=3.9.469.0&EvtSrc=SSO&EvtID

ADDITIONAL INFORMATION:
(0xC0002A21) An error occurred while attempting to access the SSO database.
(SSO)
For help, click: http://go.microsoft.com/fwlink/events.asp?ProdName=Microsoft+BizTalk+Server+2010&ProdVer=3.9.469.0&EvtSrc=SSO&EvtID

An error occurred while attempting to access the SSO database. See the event log (on computer ‘<machine name>’) for more details.
(SQL: 0x000000E9: A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 – No process is on the other end of the pipe.)) (SSO)

For help, click: http://go.microsoft.com/fwlink/events.asp?ProdName=Microsoft+BizTalk+Server+2010&ProdVer=3.9.469.0&EvtSrc=SSO&EvtID

I had Shared Memory enabled when installing the BizTalk 2010 beta. This is actually now documented in the BizTalk install guide (I saw it in the Win 7 one): http://www.microsoft.com/downloads/details.aspx?FamilyID=b77d6a4f-8b41-470e-a58c-730dc5859b38. I also saw this in a good visual walkthrough BizTalk 2010 install guide made by Jay Kladiva at http://www.microsoftconnectedsystems.net/downloads/BizTalk%202010%20Installation%20and%20Configuration%20Guide%20-%20Development%20and%20Test%20Build.docx.

It is interesting that Shared Memory actually has to be disabled because enabling Shared Memory or Named Pipes is typically the remedy for errors like this. I am guessing when the BizTalk installer sees this option for connectivity and tries to use it.

Once I get through the rest of the installation I will post back here if I encounter any other issues. Thanks!

Awarded BizTalk MVP again – Woohoo!

Thanks Microosft for again awarding me as a BizTalk MVP today! It is a big honor to be in the program. This will be my third year in the MVP program.

Since I am still in the process of transitioning my blog from the old Live Spaces location, I do not yet have some of the logos for the MVP Award and links to my forums posts. I will be working on getting this added to my blog site this weekend. For anyone that is interested, here is a link to my MVP profile: https://mvp.support.microsoft.com/profile=F7CEAEDD-3119-4F75-B12C-A520904557C1. It mentions some of the various technical communities I am active in as well as some of the publications and speaking sessions I have done.

I realized that I have not really spoken much in a public way about the benefits of the MVP program. I am not sure if these comments about the program will hold true for all MVPs, this is just my experience. What I describe here is above and beyond all the software benefits given through the MVP program. In my mind the greater benefits are the many opportunities for career advancement and extension.

Here are a few things I love about the MVP program:

  • Great opportunities to be a bridge between Microsoft and technical communities – I have advocated on both clients and Microsoft’s behalf in many discussions. This is particularly helpful because there is a lot of miscommunication.
  • Early access to many products, initiatives, and planning sessions
  • Many opportunities for understanding how Microsoft works and functions
  • Excellent networking opportunities for connecting with other industry experts and veterans
  • Being in the MVP program requires me to stay competitive and relevant. This helps me keep up to date on my technical knowledge and focused on the future.

For anyone not in the MVP program, it is definitely something to aspire to and I think it is worth all of the hard, fun work. 🙂

Thanks,

New Blog Home & a New BizTalk Version

Blog Update

Yesterday I found out about the big change Microsoft was making to abandon the Live Spaces blog platform. I had been using this platform for the past three years so I am sorry to see it go. It was definitely not perfect but I found it to have better search engine rankings and it worked fairly well for what I needed. Today I converted my blog over to WordPress so bear with me while I go through a few growing pains. I know of a few issues that I will have to correct:

  • Some of the images are showing up in a limited preview/thumbnail mode. I have started fixing this and should have this all updated shortly.
  • The links from the MSDN forums are no longer correct. I am still working on a great solution for this. If anyone knows of a way to handle this, please let me know.

I anticipate there will be a few other hiccups along the way. Please reply to this post and let me know if you see anything not working correctly. There are a couple improvements to the blogging experience I am excited about with the move to WordPress:

  • Much better extensibility
  • Spam controls – this was a major annoyance on Live Spaces and it was very difficult to manage
  • More designer capabilities

So today i am turning a page on a new blog experience and later this week we will be welcoming the next version of BizTalk being completely released. In my part of the Northern hemisphere the leaves are changing now with Fall so I suppose it is a suitable time for so many changes. 🙂

New BizTalk Version RTM coming 10/1

If you have been following along with the BizTalk news lately you know that the next major version of BizTalk is due to be released near the end of Q3 2010. Here is the link to the BizTalk server team blog announcing that BizTalk 2010 will be available on October 1, 2010: http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2010/09/22/biztalk-server-2010-released-for-manufacturing.aspx. The core part of BizTalk server in the developer edition is now being offered for free at http://www.microsoft.com/downloads/en/details.aspx?FamilyID=938102b8-a677-4c20-906d-f6ae472b3a6a&displaylang=en. Perhaps this is a win for those of us who have been requesting a lite or express version of BizTalk for lower cost projects. It is nice to see that the developer edition is being offered which normally includes all of the features of the enterprise edition but with a license that cannot be used for production purposes. I had a few observations on the current status of the release I wanted to make for anyone checking for the latest downloads of BizTalk 2010.

  • The free download of BizTalk 2010 does not include the extension packs such as the adapter pack or accelertors so I am not sure if the license model may have changed with the new free version. If I were to guess, I would anticipate that these will still be included with the free version but they are just not available yet for download. For example, fixes for the issues with the ESBT 2.1 made after the beta release has not been posted for general consumption.
  • During the BizTalk 2009 launch, there was a period of time when the documentation had not been completed and people were starting to use the RTM product without all of the MSDN articles being available. It looks like Microsoft learned a lesson last time and has already released much of the BizTalk 2010 documentation. Here is an example of the RTM documentation that was posted with the free BizTalk 2010 developer edition: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=74b202a2-272a-4b27-b7dd-0dced1bead22&displaylang=en
  • At this point MSDN has not been updated with the new downloads so I would expect this to happen right before 10/1. The Connect site that was used for feedback during the Beta is still up but it has not changed much in the last days of the beta.
  • To aggregate a little of the information gleaned from some of the beta bugs and MSDN forums, the BizTalk adapter pack with BizTalk 2010 will be supporting Oracle 11g Release 2 (R2) but will not be supporting any new Siebel versions. This new version information should now be available for the BizTalk adapter pack.

I am excited about the new capabilities of my blog and BizTalk 2010. Stay tuned for more of my BizTalk blog posts. Thanks!

Trying to Rehost the BizTalk Mapper Activity (AppFabric Connect)

Introduction

Recently I was working on a technical question and proof of concept about being able to reuse the BizTalk mapping designer functionality. The goal was to be able to reuse the functionality within a business user application to enable an information worker to create a map. One of my personal goals was to try to do this in an environment that did not incorporate Visual Studio. This is challenging because until recently with BizTalk 2010 there was not really any way (that I know of) to export or hijack the BizTalk extensions from Visual Studio and reuse them in a separate non development environment.

With the BizTalk 2010 beta it has been possible to develop message transforms within the VS 2010 workflow projects once you install the WCF LOB SDK beta. A Windows workflow (WF) activity known as the BizTalk mapper activity shows up in the VS toolbox. A few other articles exist on using this activity, see the following for a good summary: http://seroter.wordpress.com/2010/05/24/using-the-new-biztalk-mapper-shape-in-a-windows-workflow-service/.

I decided that it would be interesting to know whether or not you could work with this activity within a WF rehosted environment because this would provide the ability to reuse the mapper functionality in a partial trust, non VS environment. A WF rehosted environment provides a lighter-weight visual editing environment for a workflow that is either stopped or running.

This post shows what I encountered when trying to rehost and manipulate a workflow that use the BizTalk mapper. Unfortunately I found that in the current beta it is not possible to easily manipulate the BizTalk mapper activity in a rehosted workflow. Upon further investigation, the API for the mapper depends on the presence of Visual Studio and simply compiling a project that references the mapper toolbox activity requires extensive Visual studio references. Hopefully this post will save you some time from trying to do this yourself.

 

Process

To start out with a good basis for the test, I found a blog post which provided a good WF 4 rehost sample. I chose the one at http://msmvps.com/blogs/theproblemsolver/archive/2009/12/23/rehosting-the-workflow-designer-in-wf4.aspx. Thanks to Maurice for this great WF 4 post. Basically this enables you to open an Activity.xaml file for a coded workflow and then view it in the rehost environment with the toolbars at the left like in VS. To add the BizTalk mapper activity I did the following steps:

1. Directly referenced the assemblies relating to the BizTalk Mapper activity. Below I give a little more detail on these:

There are a couple of assemblies related to the beta version of the BizTalk mapper activity, but all of them install into “C:Program Files (x86)Microsoft BizTalk Server 2010Developer Tools” (on a 64-bit system) rather than the typical WCF LOB SDK path of “C:Program FilesWCF LOB Adapter SDKBin”.
  • Microsoft.ServiceModel.Channels.MapGenerator – Creates the cs or vb code for the code behind of the map.
  • Microsoft.ServiceModel.Channels.MapperActivity – WF 4 activity classes, and also includes the type selector form pop up form that generates the BizTalk schemas and default maps.
  • Microsoft.ServiceModel.Channels.MapperToolboxItem – additional packaging that basically wraps the MapperActivity but relies extensively on the VS packaging assemblies.

2. Then I started trying to build the project for the new references because I want to try to manipulate a workflow with the mapper activity already added in and/or add it to a new workflow. To help with this I opened the three assemblies above in Reflector to look at the references. Quickly we see that the MapperActivity assembly does itself rely on Microsoft.VisualStudio.Shell.Interop (v. 7.1 so this is VS 2003) as well as the BizTalk mapper compiler.

If you keep all three of the assemblies from #1 referenced then you have to also reference a couple of other VS assemblies commonly used with VS extensions (obviously the MapperActivity was not meant for use outside of VS):

  • Microsoft.VisualStudio.OLE.Interop
  • Microsoft.VisualStudio.Shell.10.0
  • Microsoft.VisualStudio.Shell.Interop.10.0
  • Microsoft.VisualStudio.Shell.Interop.9.0
  • Microsoft.VisualStudio.Shell.Interop.8.0
  • Microsoft.VisualStudio.Shell.Interop (v. 7.1)
  • System.Drawing (for basic ComponentModel extensibility)

Basically to illustrate some of these dependencies, here are the first and third assemblies in reflector with references shown:

Then here is the second one for the MapperActivity:

You can also see that the MapperActivity relies on EnvDTE (related to VS) and also ole32.dll (unmanaged code).

3. Also add reference to Microsoft.XLANGs.BaseTypes.dll for handling the BizTalk type system and some other essentials.

4. Add code for adding the Mapper activity to the constructed toolbox:

// Add the BizTalk mapper
var bizTalkcat = new ToolboxCategory(“BizTalk Activity”);
var assembliesBTS = new List();

assembliesBTS.Add(typeof(Microsoft.ServiceModel.Channels.MapperActivity.MapActivityDesigner).Assembly);

var queryMapper = from asm in assembliesBTS
from type in asm.GetTypes()
where type.IsPublic &&
!type.IsNested &&
!type.IsAbstract
&& type.ContainsGenericParameters    // Only matches the Mapper activity
select new ToolboxItemWrapper(type.FullName, type.Assembly.FullName, null, “MapperActivity”);

queryMapper.ToList().ForEach(ti => bizTalkcat.Add(ti));

toolbox.Categories.Add(bizTalkcat);

Conclusion

So after configuring the WF 4 rehost to handle managing the BizTalk mapper activity, the activity shows up in the toolbox and can be added to the workflow editing screen but cannot be effectively managed and configured. Here is a screenshot of the running host with the BizTalk activity and a workflow rehost showing the mapper activity:This is great until you try to configure the BizTalkMapClass via the Edit button on the designer surface or via the property grid and you get an error that the project cannot be found as shown below:

This is because the Mapper activity relies on the EnvDTE project that does not exist outside of VS. I will attempt to do some other workarounds for managing the mapper activity outside of VS but for now it looks like the mapper is restricted to use within VS. I welcome all comments on other approaches to making this work. Also, the code for my attempts so far may be found here: Ben’s SkyDrive public folder

Thanks,

How to Abort a Commerce Server Catalog Import Part II

A couple months ago I wrote a post about a dirty way of aborting a Commerce Server catalog import which involved stopping SQL Server and various other invasive procedures. Tonight I found out there is at least one but maybe two ways of doing this, one supported and other basically a hack.  
 
First for the supported way. I was able to dig up this API method for cancelling an import as part of the ImportProgress class. It seems like the cancel method would be on a catalog import class rather than on the progress tracking class but I am just glad to know there is a supported way: http://msdn.microsoft.com/en-us/library/microsoft.commerceserver.catalog.importprogress.abort(CS.70).aspx. Once I can build a utility class to do this I will post it here.
 
I did find another approach that seemed to work too. A colleague suggested looking at the CatalogStatus table in the productcatalog table to watch the status of the imports. When looking at this table I noticed the AbortRequested field which is a bit flag that can be set to cancel a pending or ongoing import. It seemed like this would be documented better and I did find a small amount of information on this field: http://msdn.microsoft.com/en-us/library/bb509008(CS.70).aspx. I set the field to 1 in order to stop some pending imports and they did not start. The statement to run is based on the StatusId column which seems to hold an arbitrary value so I am not sure if it is possible to get this value from somewhere else. So you would run something like this to cancel a catalog import with a StatusId of 1:
 
Update [MyCommerceSite_productcatalog].[dbo].[CatalogStatus]
Set AbortRequested = 1
Where StatusId = 1
 
Again, I wish this were documented better but was quite glad to have at least a hack to save me a couple hours waiting for some imports to finish. Thanks!

Blog at WordPress.com.

Up ↑