【问题标题】:Synchronization for IBM MQ: need or not, if we have only one MQIBM MQ 的同步:是否需要,如果我们只有一个 MQ
【发布时间】:2017-07-16 00:28:29
【问题描述】:

我有 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 并退出循环,我们现在需要这个逻辑吗?

如果您需要,我可以将整个代码写入问题中。

【问题讨论】:

  • 如果 MAX_NUM_OPEN_QUEUES 现在为 1,则不需要循环。
  • qd - 队列描述符怎么样?
  • 显示的代码没有显示qd 是如何定义或使用的;这是不可能的。
  • 当您只有一个 MQ 与数据库通信时,您是否还需要使用 IsSyncpointControled?

标签: c ibm-mq


【解决方案1】:

我有 15 年的 C 程序连接到 IBM MQ。它有一部分 代码,它试图同步一些东西,当有几个 MQ 时, 数据库中的哪些故事。

您为什么不阅读程序的文档和代码中的 cmets 以确定它在做什么和/或不做什么以及是否需要修改代码。

其次,如果它已经工作了 15 年,那你为什么要搞一些你不懂的东西?

第三,您为什么不聘请合格的 MQ 承包商来审查代码和文档并执行程序所需的任何操作?因为您在 StackOverflow 上发布了 7 个问题,都与同一个程序相关。

【讨论】:

    猜你喜欢
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    相关资源
    最近更新 更多