BizTalk Server: Integration With MQ Series
Introduction
BizTalk provides two adapters to communicate with MQ. One is MQSC and another one is MQ Series Adapter. If you are thinking to integrate BizTalk with MQ then you need to decide which adapter to use. IBM’s MQ series provides robust asynchronous message queuing. Mostly it is used by enterprise to communicate with legacy applications. For more details about MQ Series, Please see this WIKI article.
There are always decisions needs to be taken about choosing the right adapter in BizTalk to communicate to MQ. Two options available in Microsoft BizTalk server to integrate with MQ Series Server, one is MQSeries (Server based) and MQSC (Client based).
Server Base Adapter
The server based adapter relies on MQSeries Server running on Microsoft Windows Server. This design of this adapter guarantees reliable messaging because it supports Microsoft Distributed Transaction Coordinator (MSDTC). The adapter supports clustered MQSeries Servers and clustered MQSeries Queue Managers, and also clustered BizTalk servers.
For more details about MQSeries Adapter, Please refer this MSDN Page
Advantage:
- Full MQM (Queue Manager) functionality and performance.
- Disconnect processing at the Windows MQM (Queue Manager) infrastructure boundary.
- Enterprise level scalability.
- Supports Transactional scenarios.
- Guarantees once and only once delivery of messages.
Client Based Adapter
The Client bases adapter is available to connect to Those MQ Servers which are not running on Windows machines. They might be running on UNIX/AIX etc. If there is a requirement to communicate with a MQ server which is running over non windows serves, the solution is use MQSC adapter. In order to use this adapter you would need to install HIS (Host Integration Server) from Microsoft. Refer this dedicated MSDN article about MQ Adapters.
**
Advantage:**
- Does not require MQ Server to be on Windows Platform
- Uses IBM Client MQI API
- Provides direct access to non-Windows MQM (Queue Manager)
- Free non-transactional client (Base)
Common Problems While using MQ Adapter
- Access Denied-Sometime this problem occurs while setting the configuration data for the Queue Definition in Send Port or /Receive Location. This is indeed a permissions problem,
- Resolution- You need to add your account (BizTalk Service Account/BizTalk Administrator) to the role created in the MQSAgent COM+ Application on the MQSeries Server. Also you might need to Add the BizTalk account in “Distributed COM ” .
- Error Code 2018-sometime this error comes while configuring the MQ Queue details on send port / receive location. This is caused because the Identity of the MQSAgent COM+ Application isn't in the 'mqm' windows group on MQ Server
- >Resolution-You need to add the identity in the correct group on MQ Server, where BizTalk MQSAgent is running.
- **Error Code (**Reason code) = 2195- This occurs because of MSDTC settings.
- Resolution-You need to enable the Network DTC Access, Allow Outbound and Allow Network Clients & Outbound for the client and the server respectively.
The MQSeries adapter uses MSDTC for transactions so it is absolute necessary to check below things before starting:
- Ensure MQSAgent is installed on MQ Server; make sure to use the correct version of BizTalk Setup.
- Make sure below are installed on the windows machine.
- If MQSAgent is on a Windows 2000 Server, ensure “No Authentication Required” is selected in the MSDTC Security Configuration dialog box.
- Ensure Firewall are not blocking RPC ports.
- Enable support for XA transactions.
Resources
MSDN
- MQ Series Adapter Architecture
- MQ Series Adapter Whitepaper
- Walkthrough: Creating a BizTalk Application That Uses the MQSeries Adapter
- Troubleshooting DTC Problems While using MQSeries Adapter - Agent
- Understanding MSDTC and BizTalk – When using MQ Series
- MSDTC Security Settings – When you get Errors while configuring a Queue on send/receive port
- MQ Series Message context properties
- Known Issues with the MQSeries Adapter
- Snap Shot of BizTalk 2006 Solutions For MQSeries
- MQ Series Adapter Performance Optimization
- Ordered Delivery using MQSeries Adapter
- Analyzing MQSeries Adapter Errors with the Trace Tools
- HOW TO: Set Up and Test the BizTalk Adapter for MQSeries
MSDN – social discussion threads
- Client based or Server Based
- MQ Series Adapter - Which Adapter to Choose
- MQSeries adapter throws 'c0c1100c
- BizTalk writing Message in EBCDIC instead of ASCII to Websphere MQ
- BizTalk 2009 MQSeries Adapter in 64 bit mode
Hot Fixes
- Article-893059-The BizTalk Server Adapter for MQSeries version 2.0 no longer retrieves messages from a clustered MQSeries queue manager when the queue manager fails over to a different cluster node
- KB929635-The BizTalk Adapter for MQSeries 2.0 may not send active messages to an MQSeries queue that is on an MQSeries cluster when the active cluster node fails over to passive mode in BizTalk Server 2004
- KB939202- An update is available that enables you to install the client-based BizTalk Adapter for WebSphere MQ on 64-bit versions of Windows
- KB941494 - When you use BizTalk Adapter for MQSeries in BizTalk Server 2006 or in BizTalk Server 2004, the BizTalk application may slow down, and the BizTalk application may eventually stop responding
- KB950048 - The MQSeries Client Adapter (MQSC Adapter) fails when you try to send or receive a message that is larger than 4 MB in BizTalk Server 2006 R2 or in BizTalk Server 2006
- KB938986 - BizTalk Server 2004 or BizTalk Server 2006 does not immediately handle some messages when you use BizTalk Adapter for MQSeries 2.0 to receive messages from an IBM MQSeries server
- KB 951673 - A warning is logged when you use the MQSeries adapter in a dynamic receive scenario in Microsoft BizTalk Server: "The remote procedure call failed and did not execute. (Exception from HRESULT: 0x800706BF)"
- KB932523-The messages in an IBM WebSphere MQ queue are not deleted after the BizTalk Adapter for WebSphere MQ that is included in Host Integration Server 2006 processes the messages
Blogs
The following blogs might provide guidance about understanding more about BizTalk and MQ Series:
- Clustering MQ and BizTalk - By Kent Weare
- Marriage between BizTalk Server 2006 & IBM MQ Message – By Saravana Kumar
- How to Promote MQ Server Context properties in BizTalk Orchestration - By Naushad Alam
See Also
Another important place to find a huge amount of BizTalk related articles is the TechNet Wiki itself. The best entry point is BizTalk Server Resources on the TechNet Wiki.