2017-07-13 80 views
-1

我有一個15年的C程序連接到IBM MQ。它有一部分代碼,它在嘗試同步某些內容時,有幾個MQ,這些MQ來自數據庫。同步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和圈外的?

如果您需要它,我可以將整個代碼寫入問題中。

+0

如果'MAX_NUM_OPEN_QUEUES'現在是1,則不需要循環。 –

+0

qd - 隊列描述符怎麼樣? – SamOl

+0

顯示的代碼不顯示如何定義或使用'qd';這是不可能的。 –

回答

0

我有一個連接到IBM MQ 15歲的C程序。它有 代碼的一部分,這是試圖同步的東西,當有幾個MQ, 從數據庫的故事。

爲什麼不閱讀程序的文檔和代碼中的註釋以確定它在做什麼和/或沒有做什麼以及代碼是否需要修改。

其次,如果它已經工作了15年,爲什麼你的東西,你不明白搞亂?

第三,您爲什麼不僱用合格的MQ承包商來檢查代碼和文檔,並執行該程序所需的任何操作?因爲你已經在StackOverflow上發佈了7個與同一個程序相關的問題。