IBM WebSphere MQ WCF Channels updated
Some updates to my original post since Microsoft Host Integration Server 2010 is released. My comparison now looks like this:
|
|
IBM
|
HIS2009
|
HIS2010
|
|
Fire-and-forget (oneway) client
|
+
|
+
|
+
|
|
Fire-and-forget (oneway) service
|
+
|
+
|
+
|
|
Request-reply client
|
+
|
-
|
+
|
|
Request-reply service
|
+
|
-
|
+
|
|
Local transactions
|
+
|
-
|
+
|
|
Distributed transactions (DTC)
|
-
|
+
|
+
|
|
Client side transactions (DTC)
|
-
|
+
|
+
|
|
Backout queue support
|
+
|
-
|
-
|
|
Message format
|
-
|
+
|
+
|
AppFabric support / IIS Hosting (WAS listener for IIS7) |
-
|
-
|
+
|
|
Works with .NET 3.x
|
+
|
+
|
-
|
|
Works with .NET 4.0
|
+
|
+
|
+
|
|
WMQ6 support
|
-
|
+
|
+
|
|
WMQ7 support
|
+
|
+
|
+
|
|
Sample code
|
+
|
+
|
+
|
|
Documentation
|
+
|
-
|
-
|
|
Licensing
|
+
|
-
|
-
|
So what has changed in the meanwhile with HIS2010 since HIS2009?
- Request-reply: Microsoft added request reply support to their channel for both the client and the service side. Not a big surprise that this was coming since when you paid attention you saw with Reflector that already some bits and pieces where available in the HIS2009 one. Request reply is available in a separate binding. Unfortunately the Microsoft implementation also suffers from the #2 Oneway calls over WMQ can still block issue. Hope they resolve that soon.
- Local transaction support through the WCF 4 ReceiveContext feature. Means you don't always need DTC anymore when local transactions are sufficient.
- AppFabric support: HIS2010 added an IIS7 WAS process listener for the WebSphere MQ (WMQ) protocol. This opens up AppFabric integration with WMQ. This means that you can now host WMQ services in IIS7 with the AppFabric dashboard functionality. No more custom build windows services!
- Support for AppFabric and the WCF 4 ReceiveContext feature also means the HIS2010 channel now only works with .NET 4.
- Documentation mains pretty poor, haven't found too much info.
- Licensing unfortunately still means that you have to license via BizTalk. See my original post for details.
- Still no backout queue support: this in fact means that while transaction support (local and distributed) seems to be nice but is pretty useless. You always hit a poison message that goes on forever when a transaction fails. Normally you want these messages to go to a defined backout queue after n times tried.
Conclusion
We’re still staying on the IBM channel for now. Maybe if the HIS team adds backout support to a future version we’ll consider switching for services. Services become more interesting in the HIS channel due to support for AppFabric which can save development and maintenance time. For client side we’ll probably stay on the IBM channel anyway due to the licensing costs of the Microsoft channel.