<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>All About Interop : MQ</title><link>http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx</link><description>Tags: MQ</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Weblogic JMS with .NET</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/10/09/weblogic-jms-with-net.aspx</link><pubDate>Thu, 09 Oct 2008 18:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8991973</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8991973.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8991973</wfw:commentRss><description>&lt;P&gt;This came out last month, I just learned about it from an email from&amp;nbsp;&lt;A class="" href="http://weblogs.asp.net/gsusx/default.aspx" mce_href="http://weblogs.asp.net/gsusx/default.aspx"&gt;Jesus&lt;/A&gt; today. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;WebLogic Server 10gR3 now has &lt;A class="" href="http://edocs.bea.com/wls/docs103/jms_dotnet/overview.html" mce_href="http://edocs.bea.com/wls/docs103/jms_dotnet/overview.html"&gt;an officially-supported .NET client&lt;/A&gt; for its JMS provider&lt;/STRONG&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;EM&gt;Very cool.&lt;/EM&gt;&amp;nbsp; Some of you might be wondering, &lt;EM&gt;just what does that mean?&amp;nbsp; &lt;/EM&gt;It means there is a queue mechanism in the WebLogic Server, for a long time this has been called "Weblogic JMS".&amp;nbsp; And you can connect to that queue subsystem&amp;nbsp;via .NET applications. James Bayer has a blog entry on it, which you should &lt;A class="" href="http://blogs.oracle.com/jamesbayer/2008/09/jms_with_net_weblogic_server_1.html" mce_href="http://blogs.oracle.com/jamesbayer/2008/09/jms_with_net_weblogic_server_1.html"&gt;check out&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;pet peeve alert!&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp; Calling a queue "JMS" is strange and confusing.&amp;nbsp; It would be like calling the Oracle database "Oracle JDBC"&amp;nbsp;&amp;nbsp; or "Oracle ADO.NET".&amp;nbsp; Oracle Database is not the same as JDBC.&amp;nbsp; JDBC is an API.&amp;nbsp; ADO.NET is the name for an API.&amp;nbsp; The database is not the API.&amp;nbsp; The database (whether Oracle, Microsoft SQL Server, IBM DB2, or something else) exposes mutliple API families - some for Java, some for .NET languages, some for C and C++.&amp;nbsp; The programmatic interfaces are distinct from the implementation.&lt;/P&gt;
&lt;P&gt;With JMS, Sun and the Java guys have confused the issue.&amp;nbsp; Maybe even on purpose: remember back when JMS was conceived, Sun had aspirations to make Java itself &lt;EM&gt;a platform &lt;/EM&gt;- everything contained within Java as other things like the operating system and the database itself, and to the point, a messaging subsystem, recede into the background.&amp;nbsp; Well, that didn't really happen, despite the huge popularity of Java as a programming language.&amp;nbsp;&amp;nbsp; Operating systems still matter, databases still matter, message queues did not get subsumed into the programming language.&amp;nbsp; Java is a language and a VM and a base class library, but not a platform.&amp;nbsp;&amp;nbsp; Regardless, the side effect of Sun's unfulfilled platform aspirations for Java is that today, people call message and queue subsystems "JMS."&amp;nbsp;&amp;nbsp; Developers speak of JMS topics, JMS queues, JMS messages.&amp;nbsp; But it is clear: just as &lt;A class="" href="http://java.sun.com/javase/technologies/database/index.jsp" mce_href="http://java.sun.com/javase/technologies/database/index.jsp"&gt;JDBC is a Sun/Java&amp;nbsp;API for databases&lt;/A&gt;, &amp;nbsp;&lt;A class="" href="http://java.sun.com/products/jms/" mce_href="http://java.sun.com/products/jms/"&gt;JMS is a Java&amp;nbsp;API for Messaging subsystems&lt;/A&gt;.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;IBM has always been very clear about this with its &lt;A class="" href="http://ibm.com/software/mqseries" mce_href="http://ibm.com/software/mqseries"&gt;MQ product&lt;/A&gt;, later called MQSeries and then changed to "WebSphere MQ".&amp;nbsp;&amp;nbsp; (For this post I'll just call it &lt;STRONG&gt;MQ&lt;/STRONG&gt;.)&amp;nbsp;&amp;nbsp; MQ is the implementation, and MQ exposes a bunch of different APIs - for C, for .NET, for Java, and I'm sure, for other languages.&amp;nbsp; In what looks like a bit of schizophrenia, IBM also has &lt;A class="" href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.express.doc/info/exp/ae/ucli_ovrvw.html#ucli_ovrvw" mce_href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.express.doc/info/exp/ae/ucli_ovrvw.html#ucli_ovrvw"&gt;message service within WebSphere Application Server&lt;/A&gt;, which is called WebSphere JMS if I am not mistaken, and which... you guessed it, exposes more than just a JMS programming interface.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;For some reason, the queue infrastructure&amp;nbsp;for&amp;nbsp;&lt;EM&gt;some &lt;/EM&gt;products has been called "JMS" as if that is the only API that has ever mattered.&amp;nbsp; Seems like a result of shortsighted and wrongheaded product planning to me.&amp;nbsp; And it's darned confusing, to boot.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;A separate issue is that JMS is not merely an API!&amp;nbsp; JMS actually injects some&amp;nbsp;message protocol&amp;nbsp;behavior, specifically the RFH2 header formatting stuff, which makes for tricky interop with other, non-Java applications through queue subsystems.&amp;nbsp; Designing JMS this way presented a big, unnecessary obstacle to interop, and &lt;A class="" href="http://blogs.msdn.com/dotnetinterop/search.aspx?q=JMS&amp;amp;p=1" mce_href="http://blogs.msdn.com/dotnetinterop/search.aspx?q=JMS&amp;amp;p=1"&gt;I've blogged on it previously&lt;/A&gt;.&amp;nbsp;&amp;nbsp; IBM has had to introduce &lt;A class="" href="http://www.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html" mce_href="http://www.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html"&gt;new APIs&lt;/A&gt; for MQ and its other queue subsystems, specifically to work around this interop barrier.&amp;nbsp; I don't know a better way to solve it, than the way IBM did.&amp;nbsp; But make a note to yourself - if you ever design a queue system or queue API, keep the API separate from the application protocol and message formatting. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Check it out!&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8991973" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JMS/default.aspx">JMS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Oracle/default.aspx">Oracle</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WebLogic/default.aspx">WebLogic</category></item><item><title>PowerShell CMDLets for WebSphere MQ - administer queues on Windows or Linux</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/06/30/powershell-cmdlets-for-websphere-mq.aspx</link><pubDate>Tue, 01 Jul 2008 00:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8673308</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8673308.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8673308</wfw:commentRss><description>&lt;P&gt;Last year, I &lt;A class="" href="http://blogs.msdn.com/dotnetinterop/archive/2007/02/16/ibm-s-mq-blog-includes-some-good-net-stuff.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2007/02/16/ibm-s-mq-blog-includes-some-good-net-stuff.aspx"&gt;wrote about&lt;/A&gt; &lt;EM&gt;the idea &lt;/EM&gt;of PowerShell CmdLets for WebSphere MQ.&amp;nbsp; PowerShell is a beautiful scripting environment, you see, and it allows you to load any managed class library and then call into it.&amp;nbsp; This is what allows me to, for example, &lt;A class="" href="http://blogs.msdn.com/dotnetinterop/archive/2008/06/26/zip-creation-within-powershell.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2008/06/26/zip-creation-within-powershell.aspx"&gt;create zip files within Powershell&lt;/A&gt;.&amp;nbsp;&amp;nbsp;But there are of course a zillion other possibilities.&amp;nbsp; On the other hand if you are doing scripting, another opportunity for integration with PowerShell is &lt;A class="" href="http://msdn.microsoft.com/en-us/magazine/cc163293.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/cc163293.aspx"&gt;CmdLets&lt;/A&gt;.&amp;nbsp; CmdLets are little bits of function that get added to the Powershell base function.&amp;nbsp; All the capabilities within PowerShell are exposed via commands that have a verb-noun structure, like Get-ChildItem.&amp;nbsp; Or Write-Output.&amp;nbsp; If you create a new cmdlet and add it to PowerShell , you've added to its vocabulary of functions.&amp;nbsp; CmdLets offer better utility in a scripting environment, as compared to&amp;nbsp;just loading an assembly and calling into the loaded class library. &lt;/P&gt;
&lt;P&gt;It seems IBM have been busy doing CmdLets for MQ, and &lt;EM&gt;somehow this escaped my attention&lt;/EM&gt;.&amp;nbsp;Starting back in December 2007, Dale Lane at IBM published a series of posts about the topic of PowerShell CmdLets for MQ.&amp;nbsp; There is also now an &lt;EM&gt;&lt;A class="" href="http://www-1.ibm.com/support/docview.wss?rs=171&amp;amp;uid=swg24017698" mce_href="http://www-1.ibm.com/support/docview.wss?rs=171&amp;amp;uid=swg24017698"&gt;official SupportPac&lt;/A&gt;&lt;/EM&gt; for this stuff, it goes by the catchy name of mo74. (direct FTP link &lt;A class="" href="ftp://ftp.software.ibm.com/software/integration/support/supportpacs/individual/mo74.zip" mce_href="ftp://ftp.software.ibm.com/software/integration/support/supportpacs/individual/mo74.zip"&gt;here&lt;/A&gt;).&amp;nbsp;&amp;nbsp;&amp;nbsp; In IBM-speak, a SupportPac is an add-on to the IBM product (in this case WMQ).&amp;nbsp; Very good to see!&amp;nbsp; Keep in mind that there are different categories of SupportPac&amp;nbsp; and just because it says "support" in the name does not mean it is a "supported" part of the IBM product in the sense that you can call up their support engineers and ask for bugfix on it.&amp;nbsp;&amp;nbsp;mo74 is listed as Category 2, which means it is AS-IS software.&amp;nbsp; SupportPacs &lt;EM&gt;can &lt;/EM&gt;transition from "AS-IS" to a supported part of the product; this happens when customers demand it.&amp;nbsp; Last updated April 16th, mo74 is currently&amp;nbsp;at version 1.6.&amp;nbsp; &amp;nbsp; &lt;/P&gt;
&lt;P&gt;One of the things&amp;nbsp;you can do with the MQ cmdlets included in the mo74.zip SupportPac is administer queue managers on remote machines, including machines running MQ on Windows, Linux, or Unix. (If you know MQ, this shouldn't be too surprising, as&amp;nbsp;you know that MQ&amp;nbsp;can use the queue itself to send administrative commands.)&amp;nbsp;&amp;nbsp;IBM plans to add z/OS to the list of platforms that can be administered remotely using PowerShell.&amp;nbsp;&amp;nbsp;You can read about their plans and progress on integrating PowerShell with WMQ on the &lt;A class="" href="http://hursleyonwmq.wordpress.com/" mce_href="http://hursleyonwmq.wordpress.com/"&gt;"Hursley on MQ" blog&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;By the way, &lt;A class="" href="http://dalelane.co.uk/blog/?p=235" mce_href="http://dalelane.co.uk/blog/?p=235"&gt;Dale also has a personal blog&lt;/A&gt;, where he writes about a bunch of stuff, some&amp;nbsp;of which is&amp;nbsp;related&amp;nbsp; to PowerShell and&amp;nbsp;WMQ. &lt;/P&gt;
&lt;P&gt;It's good to see this integration.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8673308" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Powershell/default.aspx">Powershell</category></item><item><title>JMS Adapters for .NET &amp;amp; BizTalk</title><link>http://blogs.msdn.com/dotnetinterop/archive/2007/11/16/jms-adapters-for-net-biztalk.aspx</link><pubDate>Fri, 16 Nov 2007 19:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6286359</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/6286359.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=6286359</wfw:commentRss><description>&lt;P&gt;Love it!&amp;nbsp; &lt;A class="" href="http://blogs.msdn.com/dotnetinterop/archive/2007/07/16/jnbridge-jms-adapter-beta.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2007/07/16/jnbridge-jms-adapter-beta.aspx"&gt;I previously posted about a beta&lt;/A&gt; of the JNBridge JMS Adapters.&amp;nbsp; I just got a form&amp;nbsp;email from the company that they've publicly released their adapters.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;There's a version of the adpater for .NET apps - this allows any .NET app to connect to any JMS resource.&amp;nbsp; Think about that.&amp;nbsp; It's really useful.&amp;nbsp; If you have an IBM MQSeries queue, and you're using IBM's MQ JMS&amp;nbsp;provider to get to it, you can use this new adapter to enable any .NET application to get to the same JMS resource.&amp;nbsp;&amp;nbsp;The thing is&amp;nbsp;based on the &lt;A class="" href="http://blogs.msdn.com/dotnetinterop/archive/2007/09/12/wcf-line-of-business-adapter-sdk.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2007/09/12/wcf-line-of-business-adapter-sdk.aspx"&gt;WCF Line-of-Business Adapter SDK&lt;/A&gt;, which means any .NET application that can consume a WCF endpoint, can use the adapter. &lt;/P&gt;
&lt;P&gt;There's a similar adapter that works for BizTalk Server applications, but it is not WCF-based. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;These adapters work with any JMS server, and you don't have to change the JMS infrastructure to use them. They both use the .NET-to-Java bridging magic in JNBridgePro, so&amp;nbsp;the .NET app actually connects into the JMS system via the JMS jars.&amp;nbsp; That's why you don't have to change anything.&lt;/P&gt;
&lt;P&gt;You can download a trial version on &lt;A href="http://www.jnbridge.com/"&gt;www.jnbridge.com&lt;/A&gt;. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6286359" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JMS/default.aspx">JMS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>The SOAP-over-JMS spec and interop</title><link>http://blogs.msdn.com/dotnetinterop/archive/2007/07/24/the-soap-over-jms-spec-and-interop.aspx</link><pubDate>Tue, 24 Jul 2007 17:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3999232</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/3999232.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=3999232</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;In a &lt;A class="" href="http://blogs.msdn.com/dotnetinterop/archive/2007/07/16/custom-wcf-channel-for-ibm-mq.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2007/07/16/custom-wcf-channel-for-ibm-mq.aspx"&gt;previous post&lt;/A&gt;, I wrote about a WCF Channel for MQ that IBM is building.&amp;nbsp; Some customers had asked about this project and its implementation, specifically around the interop implications if other JMS providers, other than MQ that is, were used in an environment. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;To be clear the WCF Channel for MQ is ... how can I put this?&amp;nbsp; &lt;STRONG&gt;for MQ&lt;/STRONG&gt;.&amp;nbsp; It is not an approach that particularly facilitates&amp;nbsp;interop among JMS providers.&amp;nbsp; That would best be addressed by&amp;nbsp;a spec that focuses at a different level, say &lt;A class="" href="http://www.amqp.org/" mce_href="http://www.amqp.org/"&gt;AMQP&lt;/A&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;AMQP as I understand it, is a queue-to-queue protocol that would facilitate interop between queue providers, and I believe that would be true whether or not a JMS API was used to access it.&amp;nbsp; In general the goals of AMQP are valuable when they are API-agnostic.&amp;nbsp; Heterogeneity anyone? &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;The&amp;nbsp;WCF&amp;nbsp;Channel fo MQ does&amp;nbsp;provide interop, but to a particular limited degree:&amp;nbsp;it is interop between endpoints in a messaging network that all use MQ.&amp;nbsp; .NET to CICS, .NET to WebSphere, C++-running-on-AIX &amp;nbsp;to .NET-on-Windows, and so on.&amp;nbsp; WCF isn't available on all the various IBM platforms, so how does the interop work?&amp;nbsp; It happens because IBM is using the same message format on the queue, from all those endpoints.&amp;nbsp; &lt;SPAN style="COLOR: red; FONT-STYLE: italic"&gt;[added 30 July 2007 215pm Pacific] In fact as I understand it, that is the point of the WCF Channel for MQ: the programming model at the different endpoints varies, but interop among those endpoints is still possible.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;There is a related spec effort in this space - the &lt;A class="" href="http://www.infoq.com/news/2007/01/soap-jmi-standard" mce_href="http://www.infoq.com/news/2007/01/soap-jmi-standard"&gt;SOAP-over-JMS proposal&lt;/A&gt;.&amp;nbsp; The message encoding IBM uses is NOT SOAP-over-JMS.&amp;nbsp; Why?&amp;nbsp; Because SOAP-over-JMS is an idea, not a real specification yet, let alone a standard one.&amp;nbsp;&amp;nbsp; Thinking a bit more about this, it doesn't matter very much that the WCF channel for MQ does not currently use a &lt;B&gt;standard&lt;/B&gt; encoding, as long as the encoding is &lt;B&gt;consistent&lt;/B&gt; across the endpoints that need to exchange messages. &amp;nbsp;That is to say, consistent among CTS, a Websphere EJB (MDB), a Websphere JMS app, and the WCF app, etc.&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;If and when finalized and adopted, the SOAP-over-JMS spec aims to allow heterogeneous web services stacks (AXIS, Sun JWSDP, Websphere’s built-in, etc) to interop.&amp;nbsp; But still, &lt;EM&gt;this assumes that there is a single JMS provider&lt;/EM&gt;.&amp;nbsp; The SOAP-over-JMS stack provides interop among web services stacks using a single JMS provider;&amp;nbsp; it does not provide interop among JMS providers. For that you would be&amp;nbsp;looking at something like a point-to-point bridge or to AMQP. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;What are your thoughts on this?&amp;nbsp; How much interest is there in AMQP?&amp;nbsp;Drop me a line.&lt;/SPAN&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3999232" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JMS/default.aspx">JMS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>Custom WCF Channel for IBM MQ</title><link>http://blogs.msdn.com/dotnetinterop/archive/2007/07/16/custom-wcf-channel-for-ibm-mq.aspx</link><pubDate>Mon, 16 Jul 2007 21:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3899301</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/3899301.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=3899301</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;IBM have shipped an early version of a Custom WCF Channel for MQ. &amp;nbsp;The dev team in Hursley contacted me to solicit feedback. It's apparently pretty simple now, supporting only SOAP one-way messaging, but they say if there is sufficient interest and feedback, they will consider developing it further and perhaps adding it to the MQ product (as they did with the MQ Classes for .NET, and other stuff). &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: Times New Roman"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Out of the box, WCF includes support for queued transport, over MSMQ, which is the Microsoft Message Queue, built-into Windows. This is available in the NetMsmqBinding. You can read more about it &lt;A href="http://msdn2.microsoft.com/en-us/library/ms789048.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms789048.aspx"&gt;here&lt;/A&gt;. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;What our friends at IBM are doing is similar, but different in a very important way: In the IBM channel, messages are encoded and sent via the message queue, just as with the NetMsmqBinding. However, with the IBM channel, of course, the queue is WebSphere MQ v6.0, and not the built-in MSMQ. There is one other important difference though: Messages are encoded using the SOAP over JMS (Java™ Message Service) message format described in WebSphere MQ 6.0. Why is this important? This enables interoperability with services and clients hosted by other environments that can also read or generate SOAP-over-JMS. Examples are such as CICS (Customer Information Control System) and WebSphere Application Server.&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;So this channel has the possibility of opening up some new interop capabilities between .NET / WCF applications and apps that run in non-.NET environments, including Java applications running in WebSphere Application Server. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Please do have a look: &lt;BR&gt;&lt;A href="http://www.alphaworks.ibm.com/tech/mqwcf/"&gt;http://www.alphaworks.ibm.com/tech/mqwcf/&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3899301" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Websphere/default.aspx">Websphere</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JMS/default.aspx">JMS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MSMQ/default.aspx">MSMQ</category></item><item><title>IBM's new MQ Blog includes some good .NET stuff</title><link>http://blogs.msdn.com/dotnetinterop/archive/2007/02/16/ibm-s-mq-blog-includes-some-good-net-stuff.aspx</link><pubDate>Fri, 16 Feb 2007 20:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1685312</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/1685312.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=1685312</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;The MQ Engineers at &lt;A class="" href="http://blogs.msdn.com/ControlPanel/Blogs/www.ibm.com/uk/hursley" mce_href="http://blogs.msdn.com/ControlPanel/Blogs/www.ibm.com/uk/hursley"&gt;IBM’s Hursley Lab&lt;/A&gt; (near Winchester, England) now have &lt;A class="" href="http://hursleyonwmq.wordpress.com/" mce_href="http://hursleyonwmq.wordpress.com/"&gt;a blog&lt;/A&gt;.&amp;nbsp; (By the way, the Hursley campus is just &lt;EM&gt;gorgeous&lt;/EM&gt;.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;The blog is pretty new, started only last month, as far as I can tell, but it is already chock-full of interesting, high-content posts.&amp;nbsp;&amp;nbsp; I learned about it when&amp;nbsp;Saket Rungta of IBM sent me an email. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;I want to call your attention to a couple of entries in particular.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 12pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;“&lt;B&gt;the Simplest MQ Publish/Subscribe Ever&lt;/B&gt;”, this one features &lt;A class="" href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython" mce_href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython"&gt;IronPython&lt;/A&gt;, and &lt;A class="" href="http://www-128.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html" mce_href="http://www-128.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html"&gt;XMS.NET&lt;/A&gt;.&lt;BR&gt;&lt;BR&gt;The author shows how to build a publisher and a subscriber, in python running on .NET.&amp;nbsp; The app uses the XMS.NET library to connect to the MQ Resource.&amp;nbsp; Nifty!&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://hursleyonwmq.wordpress.com/2007/02/13/simplest-websphere-mq-publishsubscribeever/"&gt;&lt;FONT face=Calibri size=3&gt;http://hursleyonwmq.wordpress.com/2007/02/13/simplest-websphere-mq-publishsubscribeever/&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;“&lt;B&gt;WebSphere MQ Scripting using PowerShell&lt;/B&gt;”&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://hursleyonwmq.wordpress.com/2007/02/12/websphere-mq-scripting-using-powershell/"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;http://hursleyonwmq.wordpress.com/2007/02/12/websphere-mq-scripting-using-powershell/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;This is pretty cool.&amp;nbsp;&amp;nbsp; See, here's the thing about &lt;/FONT&gt;&lt;A class="" href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx" mce_href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"&gt;&lt;FONT size=3&gt;Powershell&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt; - it is a .NET-enabled scripting environment, so if you have a .NET class library (Such as IBM's &lt;/FONT&gt;&lt;A class="" href="http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzav.doc/csq870z.htm" mce_href="http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzav.doc/csq870z.htm"&gt;&lt;FONT size=3&gt;MQ Classes for .NET&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;), you can do pretty much anything that is enabled by that class library.&amp;nbsp; Which means, from the script you can create queues, clear queues, delete queues, and so on.&amp;nbsp; Anything you can do from the class library. &lt;BR&gt;&lt;BR&gt;One editorial comment: &lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;One of the ideas embraced by PowerShell is that APIs are not the right level of abstraction for Administrators.&amp;nbsp; PowerShell introduces the ideas of "Cmdlets" and&amp;nbsp;"functions" - very small pieces of code focused on delivering the right user experience to admins and other people who would use scripts.&amp;nbsp; It would be cool to have a powershell library for MQ - something with&amp;nbsp;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/ms714428.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms714428.aspx"&gt;the right level of verb-noun abstractions&lt;/A&gt;.&amp;nbsp; I imagine it would be a pretty thin layer.&amp;nbsp; &lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;It's on my increasingly long list of things to investigate. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Calibri&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;Kudos to IBM for the new blog!&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1685312" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Powershell/default.aspx">Powershell</category></item><item><title>.NET Logic triggered by IBM MQ Messages</title><link>http://blogs.msdn.com/dotnetinterop/archive/2007/02/16/net-logic-triggered-by-ibm-mq-messages.aspx</link><pubDate>Fri, 16 Feb 2007 19:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1685330</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/1685330.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=1685330</wfw:commentRss><description>&lt;P&gt;I did not know about this.&lt;/P&gt;
&lt;P&gt;With WebSphere MQ v6, IBM introduced something called the "&lt;A class="" href="http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzav.doc/monitor.htm" mce_href="http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzav.doc/monitor.htm"&gt;.NET Monitor&lt;/A&gt;" feature.&amp;nbsp; The .NET Monitor, in MQ, is similar to a WebSphere MQ "trigger monitor." &lt;/P&gt;
&lt;P&gt;The doc says, developers can create .NET components and register them with the .NET Monitor.&amp;nbsp; When a message is received on a monitored queue, The .NET Monitor will instantiate the component, and hand it the message,&amp;nbsp;in the form of an MQMessage object.(The component also gets the MQQueueManager, and&amp;nbsp;MQQueue)&amp;nbsp; All the developer has to do is implement the IMQObjectTrigger interface, which is defined in the assembly &amp;lt;MQDIR&amp;gt;\bin\amqmdnm.dll.&amp;nbsp; The interface has just one method: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#006018&gt;void&lt;/FONT&gt; &lt;B&gt;Execute&lt;/B&gt;(&lt;FONT color=#006018&gt;MQQueueManager&lt;/FONT&gt; qmgr, &lt;FONT color=#006018&gt;MQQueue&lt;/FONT&gt; queue, &lt;FONT color=#006018&gt;MQMessage&lt;/FONT&gt; message, &lt;FONT color=#006018&gt;string&lt;/FONT&gt; param);&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The .NET Monitor feature of MQ v6&amp;nbsp;facilitates interop, because the incoming MQ Message can be sent by *anything*, including a CICS/COBOL program, a Java/WebSphere application, a C++ system, or whatever. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Good to know.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1685330" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>.NET integration with WebSphere Queues - Another Update</title><link>http://blogs.msdn.com/dotnetinterop/archive/2006/08/22/.NET-integration-with-WebSphere-Queues-_2D00_-Another-Update.aspx</link><pubDate>Tue, 22 Aug 2006 23:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:713164</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/713164.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=713164</wfw:commentRss><description>&lt;FONT face=Tahoma size=2&gt;
&lt;H3&gt;The IBM Message Service Client for .NET has been Updated&lt;/H3&gt;&lt;A href="http://blogs.msdn.com/dotnetinterop/search.aspx?q=JMS&amp;amp;p=1" mce_href="http://blogs.msdn.com/dotnetinterop/search.aspx?q=JMS&amp;amp;p=1"&gt;&lt;EM&gt;Part of an ongoing series on JMS and .NET interop&lt;/EM&gt;&lt;/A&gt; 
&lt;P&gt;Another update on &lt;A href="http://www-1.ibm.com/support/docview.wss?rs=171&amp;amp;uid=swg24011756&amp;amp;loc=en_US&amp;amp;cs=utf-8&amp;amp;lang=en" mce_href="http://www-1.ibm.com/support/docview.wss?rs=171&amp;amp;uid=swg24011756&amp;amp;loc=en_US&amp;amp;cs=utf-8&amp;amp;lang=en"&gt;IBM SupportPac IA9H&lt;/A&gt;, the IBM Message Service Client for .NET, aka "XMS .NET". &lt;/P&gt;
&lt;P&gt;First, it's supported! &lt;FONT color=red&gt;Woohoo!&lt;/FONT&gt; IA9H has graduated into a "category 3" SupportPac, which means if you use it with a licensed WebSphere queue product, IBM will support it. Good stuff. This is the same path the original MQ.NET library followed - it means IBM is seeing enough customer interest that they want to deliver something REAL, as opposed to sample code. &lt;/P&gt;
&lt;P&gt;Second, it works with .NET v2.0 now. The assembly itself is built with .NET v1.1, but it will work with .NET 2.0. &lt;/P&gt;
&lt;P&gt;Phil Willoughby at IBM also says there are some perf improvements. &lt;/P&gt;
&lt;P&gt;If you use Websphere messaging products and need to connect .NET apps with Java/JMS apps through those messaging products, XMS .NET is worth checking out. &lt;/P&gt;
&lt;P&gt;-Dino &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#006400&gt;[Update, 23 August 2006, 949am Pacific:&amp;nbsp; I checked the readme and had some questions, which Saket Rungta at IBM (a colleague of Willoughby I take it) graciously answered via email this morning.&amp;nbsp;&amp;nbsp; first, the readme says:&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT color=#006400&gt;In testing, we have found that XMS .NET applications sending messages through WebSphere Application Server Messaging Engines typically need to use a larger JVM heap than the default. Please see the Application Server documentation for details on changing heap configuration.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#006400&gt;The obvious question is, whats up with that?&amp;nbsp; Saket: &lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;The additional heap requirement for WAS is independent of the clients, in other words, applies equally to .NET clients, Java clients and C/C++ clients. The root cause for this is perhaps a conservative choice for default heap size from our messaging perspective, but is likely to be appropriate default heap size for the common scenarios.&lt;/FONT&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;&lt;FONT color=#006400&gt;Ok, so if you use XMS.NET (or any XMS library, I guess, or in fact any JMS client) with the embedded messaging engine in WebSphere App Server or WebSphere Process Server, you will need to bump up the heap size.&amp;nbsp; Clear enough. &lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr&gt;&lt;FONT color=#006400&gt;Next question: the readme says that XA transactions are not supported with XMS.NET.&amp;nbsp; I know that XMS.NET depends on the MQ Classes for .NET, which does support XA transactions.&amp;nbsp; So, again, what's up with this?&amp;nbsp;&amp;nbsp; Saket: &lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Arial&gt;We are evaluating customer requirements/need for this and may offer this functionality some time in the future, subject to resource availability, management approval and strategy recommendations.&lt;/FONT&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT color=#006400&gt;Good clear answers.&amp;nbsp; That's all for now... ]&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=713164" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>IBM Message Service Client for .NET</title><link>http://blogs.msdn.com/dotnetinterop/archive/2006/03/06/ibm-message-service-client-for-net.aspx</link><pubDate>Mon, 06 Mar 2006 20:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:544592</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/544592.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=544592</wfw:commentRss><description>&lt;FONT face=Tahoma size=2&gt;

&lt;h3&gt;
IBM Message Service Client for .NET
&lt;/H3&gt; 

&lt;!-- ------------------------------------------------------- --&gt;

&lt;a href="http://blogs.msdn.com/dotnetinterop/search.aspx?q=JMS&amp;p=1"&gt;
&lt;em&gt;Part of an ongoing series of posts on JMS-to-.NET interop&lt;/em&gt;&lt;/a&gt;

&lt;!-- ------------------------------------------------------- --&gt;

&lt;p&gt;
Philip Willoughby of IBM's Hursley Lab writes that IBM 
have released &lt;a href="http://www-1.ibm.com/support/docview.wss?rs=0&amp;q1=IA9H&amp;uid=swg24011756&amp;loc=en_US&amp;cs=utf-8&amp;cc=us&amp;lang=en"&gt;IBM Message Service Client for .NET&lt;/a&gt; (also known 
as XMS for .NET) as a category 2 SupportPac - IA9H is the moniker for the SupportPac tifosi out there.

&lt;/p&gt;

&lt;p&gt;
IA9H joins other notable supportPacs like MA88, the "MQ Classes for Java", and  MA7P, the progenitor of the "MQ Classes for .NET", a managed class library which is now supported as part of IBM MQ.  
&lt;/p&gt;

&lt;p&gt;
For IBM, &lt;a href="http://www-1.ibm.com/support/docview.wss?uid=swg27007205"&gt; MQ SupportPacs&lt;/a&gt; come in multiple flavors.   The Category 1 SupportPac is a fee-based service.  Category 2 SupportPracs are "freeware" - free as in puppies, and no support from IBM.  Category 3 SupportPacs are supported as extensions of the MQ product.   In some cases, as with MA88 and MA7P, Cat2 supportpacs graduate into the product. I suppose it depends on customer usage and interest? 
&lt;p&gt;

&lt;p&gt; 

The XMS.NET thing is a Category 2 SupportPac - free, but no
support included.  In general, that does not mean you won't get
help from IBM.  I don't speak for IBM, but I expect it means
that support for IA9H is given on a best-effort basis.  I'd bet if
you had problems and rang them up on their newsgroups or email,
you'd get a proper, helpful response, direct from the engineers.

&lt;/p&gt;


&lt;p&gt; The esteemed Mr. Willoughby goes on to say, 
&lt;/p&gt;

&lt;blockquote&gt;
&lt;span style="color:#005566;"&gt;

As with the beta release you can use XMS for .NET to connect your .NET 
applications to any or all of WebSphere MQ, WebSphere BI Brokers or 
WebSphere Application Server.  XMS for .NET is compatible with IBM's JMS 
providers and XMS for C/C++.

This release has some new features and a number of bug fixes as compared 
to the beta, so we advise everyone to upgrade.

&lt;/span&gt;
&lt;/blockquote&gt;

&lt;p&gt;

I'm really glad to see this thing became real. 

&lt;/p&gt;

&lt;p&gt;

The &lt;a href="ftp://ftp.software.ibm.com/software/integration/support/supportpacs/individual/ia9h.readme.txt"&gt;IA9H Readme&lt;/a&gt; states that it requires Windows 2000, XP, or 2003, as well as  .NET v1.1.  I did not inquire with Philip Willoughby about .NET 2.0 support, but I will do so presently and keep you all apprised. 

&lt;/p&gt;

&lt;p&gt;
-Dino
&lt;/p&gt;
&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=544592" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category></item><item><title>.NET can connect to WebSphere's built-in JMS</title><link>http://blogs.msdn.com/dotnetinterop/archive/2006/01/16/net-can-connect-to-websphere-s-built-in-jms.aspx</link><pubDate>Mon, 16 Jan 2006 16:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:512808</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/512808.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=512808</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Phil Willoughby of IBM dropped me a line.&amp;nbsp; Phil apparently works on the XMS stuff, I'm guessing out of IBM's Hursley lab.&amp;nbsp; Phil sez:&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face=Tahoma color=#006400 size=2&gt;
&lt;P&gt;Re: &lt;a href="http://blogs.msdn.com/dotnetinterop/archive/2005/11/04/488770.aspx"&gt;http://blogs.msdn.com/dotnetinterop/archive/2005/11/04/488770.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;FYI, XMS can be used to connect directly to the WebSphere App Server embedded JMS system. There is no requirement to have WebSphere MQ, WebSphere Message Broker or WebSphere Business Integration Event Broker installed. Of course, if you're using another vendor's app server you would need to use WMQ or one of the brokers to bridge the gap.&lt;/P&gt;
&lt;P&gt;Mark Phillips' developerworks article does a good job of explaining this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www-128.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html"&gt;http://www-128.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Hey, that's good to know!&amp;nbsp;&amp;nbsp; One more way to connect...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=512808" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Websphere/default.aspx">Websphere</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JMS/default.aspx">JMS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>PCF with IBM's MQ Classes for .NET</title><link>http://blogs.msdn.com/dotnetinterop/archive/2005/12/02/pcf-with-ibm-s-mq-classes-for-net.aspx</link><pubDate>Fri, 02 Dec 2005 18:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:499397</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/499397.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=499397</wfw:commentRss><description>&lt;H3&gt;PCF with IBM's MQ Classes for .NET &lt;/H3&gt;&lt;FONT face=Tahoma size=2&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;P&gt;For about 2 years IBM has been providing a supported class library that allows .NET apps to connect to MQSeries. There has always been PCF capability in the class library, but it's not documented and I suppose not supported either. (PCF is the Programmable Command Formats, and in a nutshell it defines a way you can administer MQSeries artifacts by sending and receiving messages to a queue. Rather than a separate admin API, MQ defines a set of message formats. When your app sends messages in the PCF format, you can query or update MQ resources, like queues, channels, queue managers, etc.) &lt;/P&gt;
&lt;P&gt;If you are facile with &lt;A href="http://www.aisto.com/roeder/dotnet/"&gt;Lutz Roeder's Reflector&lt;/A&gt; and have programmed PCF before using other environments (like Java or C or C++), then it's pretty straightforward to figure out how to use the PCF stuff in .NET. For those who don't fall under that category, here's an example of .NET PCF code using the MQ Classes for .NET that shipped in MQ v6.0. &lt;/P&gt;
&lt;STYLE type=text/css&gt;
.cf { font-family: ProFontWindows; font-size: 10pt; color: black; background: white; border-top: windowtext 1pt solid; padding-top: 0pt; border-left: windowtext 1pt solid; padding-left: 0pt; border-right: windowtext 1pt solid; padding-right: 0pt; border-bottom: windowtext 1pt solid; padding-bottom: 0pt; }
.cl { margin: 0px; }
.cb1 { color: blue; }
&lt;/STYLE&gt;

&lt;DIV class=cf&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=cb1&gt;private&lt;/SPAN&gt; &lt;SPAN class=cb1&gt;bool&lt;/SPAN&gt; MqQueueExists(&lt;SPAN class=cb1&gt;string&lt;/SPAN&gt; queuename) {&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PCFMessageAgent agent = &lt;SPAN class=cb1&gt;new&lt;/SPAN&gt; PCFMessageAgent(c.MQ_QueueManager);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PCFMessage request= &lt;SPAN class=cb1&gt;new&lt;/SPAN&gt; PCFMessage(CMQCFC.MQCMD_INQUIRE_Q_NAMES);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; request.AddParameter (MQC.MQCA_Q_NAME, queuename);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; request.AddParameter (MQC.MQIA_Q_TYPE, MQC.MQQT_LOCAL);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PCFMessage[] responses = agent.Send(request);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=cb1&gt;if&lt;/SPAN&gt; (responses==&lt;SPAN class=cb1&gt;null&lt;/SPAN&gt;) &lt;SPAN class=cb1&gt;throw&lt;/SPAN&gt; &lt;SPAN class=cb1&gt;new&lt;/SPAN&gt; Exception("bogus response from MQ PCF.");&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=cb1&gt;bool&lt;/SPAN&gt; exists= (responses.Length!=1) || (responses[0].GetCompCode()!=0); &lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=cb1&gt;return&lt;/SPAN&gt; exists;&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=cb1&gt;private&lt;/SPAN&gt; &lt;SPAN class=cb1&gt;void&lt;/SPAN&gt; MqCreateQueue(&lt;SPAN class=cb1&gt;string&lt;/SPAN&gt; queuename) {&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PCFMessageAgent agent = &lt;SPAN class=cb1&gt;new&lt;/SPAN&gt; PCFMessageAgent(c.MQ_QueueManager);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PCFMessage request= &lt;SPAN class=cb1&gt;new&lt;/SPAN&gt; PCFMessage(CMQCFC.MQCMD_CREATE_Q);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; request.AddParameter (MQC.MQCA_Q_NAME, queuename);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; request.AddParameter (MQC.MQIA_Q_TYPE, MQC.MQQT_LOCAL);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; request.AddParameter(MQC.MQCA_Q_DESC, "created by MQ.Create.exe on " + System.DateTime.Now.ToString("u"));&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PCFMessage[] responses = agent.Send(request);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=cb1&gt;private&lt;/SPAN&gt; &lt;SPAN class=cb1&gt;void&lt;/SPAN&gt; ClearQueue(&lt;SPAN class=cb1&gt;string&lt;/SPAN&gt; queuename) {&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; agent = &lt;SPAN class=cb1&gt;new&lt;/SPAN&gt; PCFMessageAgent(c.MQ_QueueManager);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PCFMessage request= &lt;SPAN class=cb1&gt;new&lt;/SPAN&gt; PCFMessage(CMQCFC.MQCMD_CLEAR_Q);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; request.AddParameter (MQC.MQCA_Q_NAME, queuename);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PCFMessage[] responses = agent.Send(request);&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;
&lt;P class=cl&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;There's lots more in PCF, not just creating queues or testing for their existence. Check the MQ header files and IBM's &lt;A href="http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzac.doc/csqzac0413.htm"&gt;PCF docs for other platforms&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;&lt;I&gt;Disclaimer:&lt;/I&gt; I'd be wary of using this .NET PCF stuff in production. Since it is not documented, and probably not supported by IBM, you'd be out on a limb if something went bad with your mission-critical system. But, I found this PCF stuff to be really useful in test/development scenario, where I wanted to reset a queue to a known state, or create a queue, etc. &lt;/P&gt;
&lt;P&gt;See the rest of the source code &lt;A href="http://cheeso.members.winisp.net/srcview.aspx?dir=interop/MQ&amp;amp;file=SetupQueues.cs"&gt;here&lt;/A&gt; 
&lt;P&gt;-Dino &lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=499397" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category></item><item><title>JMS and RFH2 messages from .NET</title><link>http://blogs.msdn.com/dotnetinterop/archive/2005/11/04/jms-and-rfh2-messages-from-net.aspx</link><pubDate>Fri, 04 Nov 2005 15:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:488770</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/488770.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=488770</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://blogs.msdn.com/dotnetinterop/archive/2005/11/03/488767.aspx"&gt;My previous entry&lt;/A&gt; related to XMS, which is IBM's library for connecting .NET apps (and C++ apps) to its MQ Brokers. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;If you don't have MQ, then how can you connect with JMS?&amp;nbsp; The JMS interop issue is still a problem. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;I found &lt;A href="http://searchvb.techtarget.com/vsnetTip/1,293823,sid8_gci930896_tax293034,00.html"&gt;this link&lt;/A&gt;, to a solution posted a long while ago, by Rodrigo Salinas.&amp;nbsp; Gracias, Amigo.&amp;nbsp;&amp;nbsp; It is sample code that allows you to generate RFH2 messages from a .NET app (including from VB.NET or C#). &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Cheers!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=488770" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>XMS whitepaper from IBM</title><link>http://blogs.msdn.com/dotnetinterop/archive/2005/11/03/xms-whitepaper-from-ibm.aspx</link><pubDate>Thu, 03 Nov 2005 21:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:488767</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/488767.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=488767</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://blogs.msdn.com/dotnetinterop/search.aspx?q=JMS&amp;amp;p=1"&gt;part of an ongoing series of posts on JMS and .NET interop&lt;/A&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;I just saw this while looking around for something else - &lt;A href="http://www-128.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html"&gt;IBM published a paper in late September on the XMS client library&lt;/A&gt; for their MQ brokers. I posted about this &lt;A href="https://blogs.msdn.com/446929.aspx"&gt;previously&lt;/A&gt;.&amp;nbsp; Essentially this is a .NET client for their MQ brokers, including an implementation of some stuff from JMS.&amp;nbsp;&amp;nbsp; That means publish/subscribe capability, partly.&amp;nbsp; The new article offers some new info and clarifies a few things for me.&amp;nbsp; Specifically, w&lt;/FONT&gt;&lt;FONT face=Tahoma size=2&gt;hen IBM says "MQ Brokers", they include the regular MQSeries in that.&amp;nbsp; Since CSD08 of MQ V5.3, IBM has offered a pub/sub capability in the base MQ.&amp;nbsp; So this XMS stuff works with that.&amp;nbsp; (IBM are now up to v6.0 of MQ.) &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;A nice interoperability option!&amp;nbsp; This fixes the JMS-is-not-interoperable issue I had raised &lt;A href="http://blogs.msdn.com/dotnetinterop/archive/2004/12/06/275958.aspx"&gt;previously&lt;/A&gt;.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Remember, the&amp;nbsp;&lt;A href="http://www-1.ibm.com/support/docview.wss?rs=203&amp;amp;uid=swg24004732&amp;amp;loc=en_US&amp;amp;cs=utf-8&amp;amp;lang=en"&gt; .NET client library for plain-old-MQ is a separate thing&lt;/A&gt; - that has been a part of IBM's MQ product since MQ5.3 CSD05.&amp;nbsp; But, what this XMS thing is, is a pub/sub client.&amp;nbsp; Something a little different.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=488767" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JMS/default.aspx">JMS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>IBM and JMS-to-.NET interop</title><link>http://blogs.msdn.com/dotnetinterop/archive/2005/08/03/ibm-and-jms-to-net-interop.aspx</link><pubDate>Wed, 03 Aug 2005 17:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:446929</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/446929.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=446929</wfw:commentRss><description>&lt;H3&gt;IBM's .NET Managed client for JMS&lt;/H3&gt;&lt;FONT face=Tahoma size=2&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;P&gt;Today I received a comment on &lt;a href="http://blogs.msdn.com/dotnetinterop/archive/2005/06/16/429635.aspx"&gt;a prior entry&lt;/A&gt; of this blog. It is noteworthy so I thought I would re-post it here. &lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px; COLOR: teal"&gt;As previously mentioned in a previous blog entry (&lt;a href="http://blogs.msdn.com/dotnetinterop/archive/2005/04/20/410178.aspx"&gt;JMS Interop, revisited&lt;/A&gt;), there is a demand for .Net and JMS interop. &lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px; COLOR: teal"&gt;IBM Message Service Client for .NET (informally known as XMS) has now started an open Beta programme. &lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px; COLOR: teal"&gt;XMS is a non-Java implementation of the Java Message Service (JMS) API, currently implemented to work with the IBM WebSphere Messaging portfolio. Specifically, it is a fully managed .NET API that can be used by applications to send and receive JMS messages via IBM WebSphere Business Integration Brokers over Real-time Transport or via the default messaging provider within IBM WebSphere Application Server v6. &lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px; COLOR: teal"&gt;We welcome you to download XMS from: &lt;A href="http://www14.software.ibm.com/webapp/download/search.jsp?go=y&amp;amp;rs=message"&gt;http://www14.software.ibm.com/webapp/download/search.jsp?go=y&amp;amp;rs=message&lt;/A&gt;, &lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px; COLOR: teal"&gt;Try it out, and give us your feedback via: news://news.software.ibm.com/ibm.software.websphere.mq.beta. &lt;/P&gt;
&lt;P&gt;Cool!&lt;/P&gt;
&lt;P&gt;First question I have is, does it work with plain old WebSphere MQ?&amp;nbsp; &amp;nbsp;I don't know what the term "WebSphere Business Integration Brokers" includes. I think there are some premium products like WBI Server, and WBI Message Broker and WBI Event Broker, and I guess all of those are included in "WBI Brokers". But what about just MQ?  [ &lt;FONT color=#ff1493&gt;note added 4 Aug 2005 : The readme for this XMS.NET thing apparently states &lt;em&gt;NB. Interaction with IBM WebSphere MQ is not supported in this release but is currently under development. &lt;/em&gt; So I think you need one of the higher-end MQ or WBI products, for now. &lt;/FONT&gt;]&lt;/P&gt;  
&lt;P&gt;Anyone trying this out? &amp;nbsp;I am interested in feedback, too!&amp;nbsp; Comment on the blog or contact me privately.&amp;nbsp; I'd love to hear if this&amp;nbsp;thing is useful.&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=446929" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JMS/default.aspx">JMS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>Setting up WinXPSP2 or WS2003 for XA transactions with MQ</title><link>http://blogs.msdn.com/dotnetinterop/archive/2005/07/06/setting-up-winxpsp2-for-xa-transactions-with-mq.aspx</link><pubDate>Wed, 06 Jul 2005 21:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:436065</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/436065.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=436065</wfw:commentRss><description>&lt;FONT face=Tahoma size=2&gt;
&lt;P&gt;In a &lt;A href="http://blogs.msdn.com/dotnetinterop/archive/2005/07/06/435864.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2005/07/06/435864.aspx"&gt;previous post&lt;/A&gt;, I talked about transactions without components, spanning MQ and SQL Server. The hardest part in doing that was setting up the environment. For posterity, here's what I did: &lt;/P&gt;
&lt;P&gt;Steps: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;install Windows XPSP2 or WS2003&lt;/LI&gt;
&lt;LI&gt;install the MQ Client or Server software. &lt;/LI&gt;
&lt;LI&gt;install the &lt;A href="http://www-306.ibm.com/software/integration/wmq/transclient.html" mce_href="http://www-306.ibm.com/software/integration/wmq/transclient.html"&gt;MQ XA Client (aka "MQ Extended Transactional Client")&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;install the &lt;A href="http://www-306.ibm.com/software/integration/mqfamily/support/summary/" mce_href="http://www-306.ibm.com/software/integration/mqfamily/support/summary/"&gt;latest fixpack for WMQ&lt;/A&gt;. For Windows v5.3, As of May 2005, this is CSD10. &lt;/LI&gt;
&lt;LI&gt;register the XA DLL in the registry. &lt;BR&gt;&lt;BR&gt;for MQ, &lt;A href="http://www-1.ibm.com/support/docview.wss?rs=171&amp;amp;context=SSFKSJ&amp;amp;q1=XA+DTC&amp;amp;uid=swg21159392&amp;amp;loc=en_US&amp;amp;cs=utf-8?=en" mce_href="http://www-1.ibm.com/support/docview.wss?rs=171&amp;amp;context=SSFKSJ&amp;amp;q1=XA+DTC&amp;amp;uid=swg21159392&amp;amp;loc=en_US&amp;amp;cs=utf-8?=en"&gt;according to IBM&lt;/A&gt;, the DLL is &lt;B&gt;&amp;lt;MQDIR&amp;gt;\bin\amqmtsxatm.dll &lt;/B&gt;but on a MQ client-only machine, it may be &lt;B&gt;&amp;lt;MQDIR&amp;gt;\bin\amqmtsxatmc.dll&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;For MQ then, it is: &lt;BR&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL]&lt;BR&gt;Key name: amqmtsxatm.dll &lt;BR&gt;Data: C:\progra~1\ibm\MQ\bin\amqmtsxatm.dll&lt;BR&gt;&lt;/LI&gt;&lt;BR&gt;
&lt;LI&gt;If you are running the app from an MQ client node, get the interim fix from IBM; I don't know which fix this is. you have to request it. It is not included in CSD10. It may be included in CSD11. If you are running the app on a MQ server node, then you do not need the interim fix. &lt;/LI&gt;
&lt;LI&gt;Turn on DTC in Windows. This is slightly different on XPSP2 and WS2003. On XPSP2, it is like this: &lt;BR&gt;Control Panel--&amp;gt; Admin Tools --&amp;gt; Component Services --&amp;gt; My Computer --&amp;gt; Properties &lt;BR&gt;&lt;BR&gt;select the MS DTC tab, click the "Security Configuration..." button. &lt;BR&gt;Check the "Network DTC Access..." box. &lt;BR&gt;Check the XA box. &lt;/LI&gt;&lt;BR&gt;
&lt;LI&gt;allow the "network service" user to read the directory in which the XA DLL resides. &lt;BR&gt;&lt;BR&gt;Use Explorer for this. For my install of MQ, this directory is &lt;BR&gt;c:\progra~1\ibm\mq\bin\ &lt;/LI&gt;
&lt;LI&gt;add "network service" user to the MQM group (or other group authorized to "perform XA recovery" on MQ). &lt;/LI&gt;
&lt;LI&gt;set the NMQ_MQ_LIB variable to c:\progra~1\ibm\mq\bin\mqic32xa.dll. This is from the "Using .NET" doc.) &lt;/LI&gt;
&lt;LI&gt;Run the app&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;That's it. &lt;/P&gt;&lt;SPAN style="COLOR: red; FONT-STYLE: italic"&gt;
&lt;P&gt;[addendum, 13 October 2008:&amp;nbsp; An attentive reader has pointed out that &lt;/P&gt;&lt;FONT face=Consolas size=3&gt;the WebSphere MQ Solutions in a Microsoft .Net Environment (SG24-7012-00) states:&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT face=Consolas size=3&gt;“WebSphere MQ applications can participate in transactions managed by Microsoft transaction managers. The application either has to be directly connected to a queue manager, or it has to use the extended transactional client function when running on a remote machine.”&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;So my assertion above, that you need the Extended Transactional Client, may not be appropriate in all cases. When in doubt, prefer the IBM documentation. Better yet, contact IBM for full details. I'm not even sure the Extended client still exists for MQ V6.0 and beyond. &lt;/P&gt;&lt;/SPAN&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=436065" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Transactions/default.aspx">Transactions</category></item></channel></rss>