我有 15 年前的 C 程序连接到 IBM MQ。它有一部分代码,它试图同步一些东西,当有几个MQ时,它的故事来自数据库。
但是现在我们只有一个 MQ。我必须使用这种同步方法吗?
#include "dte_mq.h"
#include <string.h>
#include <stdlib.h>
typedef struct tagDTE_QUEUE_DESCRIPTOR
{
MQHOBJ handle;
int IsSyncpointControled;
} DTE_QUEUE_DESCRIPTOR, *PDTE_QUEUE_DESCRIPTOR;
static MQHCONN sHConn = 0;
static MQLONG sCompCode = MQCC_OK;
static MQLONG sReason = MQRC_NONE;
static int sNumOpenQueues = 0;
static PDTE_QUEUE_DESCRIPTOR sQueues = NULL;
#define MAX_NUM_OPEN_QUEUES 10
for(i = 0; i < MAX_NUM_OPEN_QUEUES; i++)
{
if(sQueues[i].handle == -1)
{
*qd = i;
sQueues[i].handle = hObj;
sQueues[i].IsSyncpointControled = 0;
break;
}
}
我们现在是否需要这个逻辑,如果q=-1
的值在循环中它变得0
并退出循环?
如果你需要它,我可以将整个代码写进问题中。
我有 15 年前的 C 程序连接到 IBM MQ。它有一部分 代码,它试图同步某些东西,当有多个 MQ 时, 哪些故事来自数据库。
你为什么不阅读程序的文档和代码中的注释,以确定它正在做什么和/或不做什么,以及代码是否需要修改。
其次,如果它已经工作了 15 年,那你为什么要搞砸一些你不明白的东西呢?
第三,您为什么不聘请合格的MQ承包商来审查代码和文档,并做程序所需的任何事情? 因为您在 StackOverflow 上发布了 7 个问题,这些问题都与同一程序有关。