Does BizTalk 2013R2 support IBM WebSphere MQ 9?

My current customer has an integration landscape with a lot of IBM WebSphere MQ. After an upgrade to IBM WebSphere MQ 9 of a certain queue manager, we were no longer able to receive messages from a queue that was working perfectly before the upgrade. Sending was still working as before.

At that moment in time we were running BizTalk 2013R2 CU7 (on Windows Server 2012R2) with Host Integration Server (HIS) 2013 CU4 and using the IBM MQ Client 7.5.0.8 (32 Bit).

Our eventlog was full of these:

This setup was still working perfectly with IBM WebSphere MQ 7 and 8 queue managers. I also tried to update the MQ client to a higher version (8.0.0.7), but this resulted in even more errors…

The Solution: Host Integration Server (HIS) 2016

When you take a look at the System Requirements of HIS 2016 you see that it supports MQ 8. No mention of  MQ 9, I know… But it also supports BizTalk Server 2013R2! At this point we really needed a solution, so we took it for a spin!

I installed and configured everything in following order (the installation is always very import!):

  1. Install BizTalk 2013 R2
  2. Install BizTalk Adapter Pack
  3. Configure BizTalk
  4. Install BizTalk 2013 R2 CU7
  5. Install .NET 4.6.2 (required for HIS 2016)
  6. Install HIS 2016 (no configuration)
  7. Install IBM MQ Client 8.0.0.8 (64 Bit)
  8. Add MQSC Adapter to BizTalk
  9. Install HIS 2016 CU2
  10. Reboot Servers

For HIS 2016 I used the following minimal installation (as we only require the MQSC Adapter):

After all of this I was able to successfully do the following:

  • Send and Receive message from IBM WebSphere MQ 9 queues with “Transactional Supported” by using a 64 Bit Host Instance

Conclusion

At the end we reached our goal and were able to send and receive messages from an IBM WebSphere MQ 9 queue with BizTalk Server 2013R2.

Some people may ask why I didn’t use the Microsoft MQ Client. Well, I didn’t work straight away and we agreed to not further research this as we already started our migration project to BizTalk Server 2016.

Configuring the Management REST-API in BizTalk 2016 Service-Feature Pack 1

Today Microsoft release the BizTalk Server 2016 Feature Pack 1: http://biztalkfp1.azurewebsites.net/

I’m was particularly interested in the Management REST APIs, because at the current customer our team has spent a lot of time developing a custom API on top of the ExplorerOM and Operations DLLs. So maybe we could learn something the way Microsoft did this.

Starting with BizTalk Server 2016 Feature Pack 1, there’s a Windows PowerShell script that installs the REST APIs, and their swagger definitions. Using these APIs, make REST calls to remotely manage your artifacts, including ports, orchestrations, partners, agreements, pipelines, and more. Provides full support of API REST management endpoints with full swagger support.

I went to this page on MSDN for the installer instructions. Also BizTalk360 has a nice write up about this topic here.

Bot guidelines are NOT complete and are missing the part were you also need to install the ‘OperationalData’ service via a second command.

To install both the ManagmentService and the OperationalDataService, you need to do it like this:

1. Open up a Powershell(x86) prompt

2. Install the ManagementService

FeaturePack.ConfigureServices.ps1 
 -Service Management 
 -WebSiteName 'Default Web Site' 
 -ApplicationPool BtsMgmtAppPool 
 -ApplicationPoolUser BtsAdmin 
 -ApplicationPoolUserPassword Azerty123 
 -AuthorizationRoles 'BizTalk Server Administrators'

3. Install the OperationDataService

FeaturePack.ConfigureServices.ps1 
 -Service OperationalData 
 -WebSiteName 'Default Web Site' 
 -ApplicationPool BtsMgmtAppPool 
 -ApplicationPoolUser BtsAdmin 
 -ApplicationPoolUserPassword Azerty123 
 -AuthorizationRoles 'BizTalk Server Administrators'

After that, you can open the Swagger of the ManagementService at http://localhost/BizTalkManagementService/swagger to start exploring the available methods:

The complete list of available operations is also viewable on MSDN here.

After giving it a quick spin, i can conclude that it works great and all methods are doing as they are supposed.
But what about HostInstances? It would be very nice to be able to manage them as well via this new API. Just my 2 cents!

Could not find stored procedure ‘ops_ClearOperationsProgress’ after BizTalk 2013R2 CU5 install

After rolling out BizTalk 2013R2 CU5 on a development server we experienced the following error when loading the group hub:
“Could not find stored procedure ‘ops_ClearOperationsProgress'”

 

It looked like something when wrong during the installation of the cumulative update. After investigation of the log file, the following SQL error showed up:

To conclude: the installation failed because of insufficient SQL access rights.

(To bad the installer didn’t check this requirement before starting the installation…)

In the end we were able to fix the issue by taking the following steps:

  • Providing the SQL sysadmin role
  • Uninstalling the CU5 update
  • Restoring the BizTalkMsgBoxDb database prior the update
  • Installing the CU5 update again

 

My key takeaways regarding BizTalk updates:

  • Always test BizTalk updates before rolling them out!
  • Create a backup of your BizTalk databases before installing any update – even for your development environments!
  • Read the installer log file!