According to the BizTalk Server 2004 documentation, once you've installed the MSMQT adapter, it cannot be uninstalled. Try it, and you'll see the warning is correct. However, it does not mean it cannot be done.

As it turns out, the only reason that the adapter cannot be removed is because it is "Delete Protected", but this protection can be easily overriden. Here's how:

  1. Shut down the BizTalk Application Host the MSMQT adapter is bound to.
  2. Delete all send and receive ports you have bound to the MSMQT Adapter using BizTalk Explorer or a similar tool.
  3. Open up the SQL Server management tools (either Enterprise Manager, or Query Analizer) and connect to the BizTalk management database (usually BizTalkMgmtDb).
  4. Open the adm_Adapter table, and look for the record which has the Name column with the "MSMQT" value.
  5. Once located, notice that this record has the Capabilities column set to 16495 (0x406F). Here lies the trick: This flag includes the eProtocolDeleteProtected (0x0020) flag. What we need to do here is modify this value to remove that particular flag. Now, just set the value of the Capabilities column to 0x406F &~0x0020 == 0x404F == 16463. Make sure you save the changes to the record.
  6. Open the BizTalk Administration Console, look for the MSMQT Adapter, righ click on it and select Delete.
  7. Restart your application host.

And that's it. After doing this, you should've been able to remove the MSMQT adapter. You're now free, for example, to install the recently released MSMQ adapter without having to go through the whole unconfigure/reconfigure cycle.

Do this at your own risk; I do not know of any possible side effects of doing this (although I haven't noticed any yet) as opposed to doing the unconfigure/configure. You probably don't want to do this in a production machine, though!


Tomas Restrepo

Software developer located in Colombia.