3

I'm building a program which will start listening to an IBM queue. And for this I'm using the IBM.XMS.dll which came with the Websphere MQ Client installation for Windows. I'm asking myself, when I deploy this to acceptance or production, then probably I have to install the Websphere MQ Client also on that machine?

And my other question is, do I have to reference the IBM.XMS.dll like this: C:\Program Files\IBM\WebSphere MQ\bin\IBM.XMS.dll? I tried with just putting the IBM.XMS.dll in my build folder of my .NET solution but that doesn't work because the dll has dependencies to other dll's.

EDIT

After looking at samples, I've seen that the samples written by IBM are referencing the dlls in the GAC. So I did the same.

  1. press Ctrl + R
  2. Type C:\WINDOWS\assembly\GAC_MSIL\IBM.XMS
  3. Press Enter
  4. Find the IBM.XMS.dll and reference this one in your solution
JoshMc
  • 10,239
  • 2
  • 19
  • 38
Ozkan
  • 3,880
  • 9
  • 47
  • 78
  • 1
    I found this page in the knowledge center that describes how to use the amqmdnet.dll standalone: "[Using the stand-alone IBM MQ .NET client](https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q123550_.htm)", I did not find similar information on IBM.XMS.net. @Shashi may be able to provide more detail on why, it could be that the documentation is just missing. He may be able to also explain why IBM.XMS.dll is not included in the Redistributable client package for Window. – JoshMc Apr 28 '17 at 23:55
  • Ozkan, I found by chance in this [comment](https://stackoverflow.com/questions/50973110/receiving-messages-on-ibm-mq-without-relying-on-exceptions-based-on-sample-code#comment89025659_50973110) from @subbaraoc that MQ v9.0.5 now contains the XMS.NET dlls in the Redistributable package (I downloaded and verified this is a true statement). MQ v9.1.0.0 which IBM has said should be out soon is the next LTS (Long Term Support) release and is based on 9.0.5 so I would guess it will also include the XMS.NET dlls. – JoshMc Jun 26 '18 at 20:11

1 Answers1

1

After looking at samples, I've seen that the samples written by IBM are referencing the dlls in the GAC. So I did the same.

  1. press Ctrl + R
  2. Type C:\WINDOWS\assembly\GAC_MSIL\IBM.XMS
  3. Press Enter
  4. Find the IBM.XMS.dll and reference this one in your solution
Ozkan
  • 3,880
  • 9
  • 47
  • 78
  • 1
    Note that you can also package it along with your app now as of 9.0.5 CDS or 9.1.0.0 and higher as part of the redistributable client instead of needing to install the full client. – JoshMc Feb 21 '19 at 10:38
  • Perfect, I've read it before. This is better instead of a OS level dependency. Now we can isolate the dependency like in Docker containers. I wonder if IBMMQ would work in a containerized way (with Docker). – Ozkan Feb 21 '19 at 10:58
  • IBM has some docker examples on github. – JoshMc Feb 21 '19 at 11:03
  • Also to note 9.1.1 added .net core support with what i understand is a single new dll that includes xms. – JoshMc Feb 21 '19 at 11:04
  • @JoshMc I know, I digged into the decompiled ibm code a lot to find the cause of the IBM bugs we were getting :). They merged all separate dlls into one dll (IBM.XMS) with separate namespaces. – Ozkan Feb 21 '19 at 11:07
  • Is that `amqmxmsstd.dll` ? – JoshMc Feb 21 '19 at 11:17
  • 1
    `amqmxmsstd.dll` is the new .net standard/core library for XMS, I understand it does not require any other dll but also no longer has an unmanaged mode. It does list windows dockerized container support. Probably does not have compression. See https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.xms.doc/xms_q132500.htm – JoshMc Feb 21 '19 at 14:31
  • We need to connect using unmanaged mode. This is was one of the requirements (needed for SSL or something else, I'm not sure at the moment). But it's cool to see IBM is making progress on supporting these. – Ozkan Feb 21 '19 at 14:41
  • It does support TLS as does managed mode on v8 and higher, but as you noted in a prior question compression is only supported in unmanaged mode. – JoshMc Feb 22 '19 at 03:03