Connecting IBM MQ queue using F5 virtual ip and C++

Viewed 364

I am trying to connect to some IBM MQ queues using C++. These queues have been defined under different manager queues in different servers. The idea is to connect to a VIP that will balance the workload pointing to each server.

The problem I have is I am using cmqc.h libraries, and in order to connect I have to make use of MQCONN or MQCONNX, for which I need the queue manager name, something that I cannot know as at the moment of the connection I don´t know which one will be used due to F5 balancer.

The code I am currently using as example is the following:

#include <cmqc.h>
#include <cmqxc.h> 
#include <string.h>
#include <stdio.h>
#include <sstream>
#include <stdlib.h>
int main()
{
    MQHCONN connectionHandle;
    MQHOBJ m_SourceQueue;
    MQLONG completionCode = 0;
    MQLONG reasonCode = 0;

    setenv("MQSERVER","SYSTEM.DEF.SVRCONN/TCP/<SERVER_IP_ADDRESS>(56245)",1);
    MQCONN(<QUEUE_MANAGER_NAME>, &connectionHandle, &completionCode, &reasonCode);


    if(MQCC_OK != completionCode)
    {            
        printf ("%s \n", "Error");
        printf ("%s %d \n", "Completion Code", completionCode);
        printf ("%s %d \n", "Reason Code", reasonCode);
    }
    MQDISC(&connectionHandle, &completionCode, &reasonCode);
}

Does somebody have any idea how to connect to the queue when queue manager name is not available?

1 Answers
Related