8

All documemtation and information shows that we have to have an MQ Series client installed on the machine where we want to use it.

Does anyone know of a DLL (or whatever) that allows us to include MQ Series support in a .net project that does not require a local install?

T.Rob
  • 31,522
  • 9
  • 59
  • 103
gbn
  • 422,506
  • 82
  • 585
  • 676

5 Answers5

8

Updated with info on official IBM MQ Redistributable Client.

Excerpt:

From IBM MQ Version 8.0.0, Fix Pack 4, native redistributable client runtime libraries are provided for Linux x86-64 and Windows 64-bit platforms to make it simple to distribute both applications and the required IBM MQ runtime libraries. A third package, which is not platform-specific, contains the runtime files that are required for the Java™/JMS applications, including the IBM MQ resource adapter for JMS applications that are running under an application server.

The redistributable client that is supplied with IBM MQ is also a non-installed and relocatable image. Maintenance of a redistributable, non-installed image, is achieved through replacement; that is, you download newer versions of the runtime components when they are shipped.

A redistributable client implies distributing the required run time with an application both inside and outside of your environment.

A relocatable client implies putting the files somewhere else other than a fixed default location. For example, instead of installing into /opt/ installing into /usr/local.

A non-installed client implies that you are not required to lay down client files, and that these files can be copied as required.

The IBM IPLA license agreement is extended for IBM MQ to enable you to download a number of additional runtime files from Fix Central.

From IBM MQ Version 9.0.5, XMS .NET is shipped as part of the redistributable client. XMS .NET requires the IBM MQ .NET client (amqmdnet.dll). If unmanaged mode is to be used, then the IBM MQ C client libraries are also needed along with amqmdnet.dll.

See also the Redistributable clients on Windows page which explains how to generate packages for redistribution and notes that "IBM support is only able to provide assistance with the full, unmodified set of files contained within the redistributable client packages." This page discusses approaches to distribute the libraries in software that does not need Admin privileges to install.

You will need an IBM ID to download the redistributable MQ client from Fix Central but the download is free and when packaged per IBM's instructions is fully supported when connecting to a supported instance of MQ Server.

The previous accepted answer of a wrapper over the Java libraries still works however the same caveat applies - if IBM support is required it needs to be IBM's Java client install. Fortunately, this too now comes in a more friendly single-jar package called allclient.jar which is documented here. IBM also now documents which jar files can be relocated from the MQ Server installation and still be eligible for full support. This is discussed on the What is installed for IBM MQ classes for JMS page.

T.Rob
  • 31,522
  • 9
  • 59
  • 103
  • 1
    Thanks. It isn't the admin rights but the lack of portability and having a dependency. I can't just deploy my app cleanly as and when. – gbn Mar 24 '11 at 17:42
  • 1
    Ah, I understand. But if you did that then you'd hit a licensing situation because there's no redistributable WMQ Client. Although this may seem inconvenient, remember, the full client install is both free and *supported* by IBM. I would argue that requiring users to agree to the license terms and install IBM's diagnostic facilities doesn't seem like too much to ask for support of a free product. But then I'm a bit biased and not a developer or reseller. :-) – T.Rob Mar 25 '11 at 02:41
  • Not having the library available in Nuget means that you have to include the DLL for client-side applications in your repository - far from ideal. Or you don't include it and every developer needs to unnecessarily create an account then download/install it. Seems like a way for IBM to grab all of your personal info since they require an account to download it. There are tons of organizations who provide software FOR FREE. Msft with .NET Core would be just one example - remember the license agreement and account you had to create to download that? Neither do I. – Levi Fuller Sep 27 '19 at 21:50
  • You can download the linux and win64 redist clients from 9.1.0.0 and later (both LTS abd CD) from https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/messaging/mqdev/redist/ without an IBM ID. The allclient jar is available in maven central as well. – JoshMc Oct 05 '19 at 18:57
4

OK, we have a result.

Use a .net wrapper around the Java JMS libraries that don't require a local install..

HTH

gbn
  • 422,506
  • 82
  • 585
  • 676
4

I am using .NET (C#) and all I needed was the two dlls that you can grab from you IBM client installation directory.

amqmdnet.dll amqmdxcs.dll

Then in your .NET code (if you are using .NET that is) using IBM.WMQ;

Jimi
  • 41
  • 1
  • Since MQ 9.1.1, the libraries are called `amqmdnetstd.dll` and `amqmxmsstd.dll`, see [Installing IBM MQ classes for .NET Standard](https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.dev.doc/q132490_.htm) and [Using XMS with Microsoft .NET Core](https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.xms.doc/xms_q132500.htm). – Daniel Steinmann Jul 02 '19 at 14:44
1

I have developed one client for IBM MQ with very light weight component, can you please check:

http://sourceforge.net/projects/jackibmmqexplorer/

CharithJ
  • 46,289
  • 20
  • 116
  • 131
Jack
  • 11
  • 1
1

Grab the 2 dlls from the WMQ bin folder: amqmdnet.dll amqmdxcs.dll

I found for WMQ 7.5 you need to register the 2 dll's in the GAC for it to work correctly. you need admin persmissions to register them.

the reference the libraries in your project to use the native WMQ objects

Herre Kuijpers
  • 719
  • 8
  • 7