【发布时间】:2018-01-22 13:23:20
【问题描述】:
我正在尝试使用 C++ 连接到一些 IBM MQ 队列。这些队列已经定义在不同服务器的不同管理器队列下。这个想法是连接到一个 VIP,它将平衡指向每个服务器的工作负载。
我遇到的问题是我正在使用cmqc.h 库,为了连接我必须使用MQCONN 或MQCONNX,为此我需要队列管理器名称,这是我无法知道的在连接的那一刻,由于 F5 平衡器,我不知道将使用哪一个。
我目前用作示例的代码如下:
#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);
}
当队列管理器名称不可用时,有人知道如何连接到队列吗?
【问题讨论】:
标签: c++ ibm-mq virtualhost