MQ

 View Only
  • 1.  IBM MQ client 7.5 and 9 on same Windows machine

    Posted Mon February 05, 2024 10:45 AM
    Edited by Frank Martin Tue February 06, 2024 02:42 AM

    We are currently using IBM MQ client 7.5 on Windows Server 2019. There are several .Net applications that use this version.

    We are planning to upgrade to MQ client 9 and for that we want to install it on same machine. Will MQ client 9 work on same machine without affecting existing .Net applications that use MQ client 7.5?

    There are many .Net applications so we want to upgrade one by one to version 9 that is why we want to use both versions side by side unless all applications are upgraded. And then do the same on production.

    Is it possible?

    Code we are using to connect is given below. We use amqmdnet.dll in all .Net applications.

    Hashtable queueProperties = new Hashtable();
    MQQueueManager qMgr;
    queueProperties[MQC.HOST_NAME_PROPERTY] = "192.168.5.41";
    queueProperties[MQC.PORT_PROPERTY] = 5645;
    queueProperties[MQC.CHANNEL_PROPERTY] = "FX01";
    qMgr = new MQQueueManager("QManager", queueProperties);



    EDIT

    Ok here is the situation. 

    1. MQ client 7.5 is installed. Can I install MQ client 9 on same machine without affecting existing applications?
    2. MQ client 7.5 is installed. What if I don't want to install MQ client 9 but just use amqmdnetstd.dll in my .Net application to connect to SSL. I tried the following code but it is not working.
    Hashtable queueProperties = new Hashtable();
    MQQueueManager qMgr;
    MQEnvironment.SSLCipherSpec = "TLS_RSA_WITH_AES_256_CBC_SHA256";
    queueProperties[MQC.HOST_NAME_PROPERTY] = "192.168.5.23";
    queueProperties[MQC.PORT_PROPERTY] = 20000;
    queueProperties[MQC.CHANNEL_PROPERTY] = "SSL.MQ";
    queueProperties[MQC.USER_ID_PROPERTY] = "user";
    queueProperties[MQC.PASSWORD_PROPERTY] = "pass";
    queueProperties[MQC.TRANSPORT_PROPERTY] = MQC.TRANSPORT_MQSERIES_MANAGED;
    queueProperties.Add(MQC.SSL_CERT_STORE_PROPERTY, @"C:\Repository\Key");
    qMgr = new MQQueueManager("mqmanager", queueProperties);
    I am getting error
    MQRC_HOST_NOT_AVAILABLE
    If I change transport to following:
    queueProperties[MQC.TRANSPORT_PROPERTY] = MQC.TRANSPORT_MQSERIES_CLIENT
    Then I get error
    MQRC_FUNCTION_NOT_SUPPORTED
    This folder contain Key.kdb, Key.rdb and Key.sth files. They were generated on system where MQ 9.2.4 is running and I am also using amqmdnetstd.dll version 9.2.4 in my .Net application on this machine.


  • 2.  RE: IBM MQ client 7.5 and 9 on same Windows machine

    Posted Tue February 06, 2024 06:20 AM

    Install the full MQ 9.3 client, but in a different directory. Remember the older version (7.5) has to be the primary version.

    For each application that wants to run with MQ 9.3 client run first the environment set up: <path to mq9.3 client>\setmqenv -s [-x 32 | -x 64]

    Remember that the default MQ 9.3 is 64 bit. 

    Hope this helps



    ------------------------------
    Francois Brandelik
    ------------------------------



  • 3.  RE: IBM MQ client 7.5 and 9 on same Windows machine

    Posted Tue February 06, 2024 02:37 PM

    I'm not an SSL/TLS expert but there are many people who can help with the SSL/TLS piece.

    The first thing I would do is to get the code working using a non-SSL/TLS channel to the same queue manager. Once that is successful then move on to using a channel that is configured with SSL/TLS.

    If you want to strictly use managed mode in your .NET application with MQ v9.3 Client then you need to follow the prerequisites:

    • .NET 3.1 or higher
    • Microsoft .NET v6 or higher
    • Microsoft .NET Framework v4.7 or higher

    The next question is: do you want to use .NET Framework or .NET (aka .NET Core)?

    If you stick with managed mode (i.e. MQC.TRANSPORT_MQSERIES_MANAGED) then you only need the DLL from the NuGet Gallery:

    • amqmdnet.dll is for IBM MQ classes for .NET Framework
    • amqmdnetstd.dll is for IBM MQ classes for .NET Standard

    If you want to use client mode (i.e. MQC.TRANSPORT_MQSERIES_CLIENT) then you need to install the full IBM MQ v9.3 Client.

    later

    Roger



    ------------------------------
    Roger Lacroix
    CTO
    Capitalware Inc.
    London ON Canada
    https://capitalware.com
    ------------------------------