首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQOPEN给出了错误2085,这是我以前没有的

MQOPEN给出了错误2085,这是我以前没有的
EN

Stack Overflow用户
提问于 2017-07-03 18:13:55
回答 1查看 1.6K关注 0票数 0

我的一切正常,直到今天我在MQOPEN上出了差错。

代码语言:javascript
复制
 2085 MQRC\_UNKNOWN\_OBJECT\_NAME     
代码语言:javascript
复制
#include <stdio.h>   
#include <cmqc.h>    
#include <cmqxc.h>     
#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;    
MQLONG   OpenCode;    
MQOD     od = {MQOD_DEFAULT};    /* Object Descriptor */    
MQMD     md = {MQMD_DEFAULT};    
MQPMO    pmo = {MQPMO_DEFAULT};    
MQLONG   O_options;/* MQCONNX options */    
MQCNO   Connect_options = {MQCNO_DEFAULT};    
/* Client connection channel */    
MQCD    ClientConn = {MQCD_CLIENT_CONN_DEFAULT};    



#define MAX_NUM_OPEN_QUEUES     10    



int dteMqOpen(const char *name, int *qd)    
{    
    MQLONG   options;     
    MQHOBJ   hObj;    
    int      i;    
    printf("SAM\n");    
    strncpy(od.ObjectName, name, MQ_Q_NAME_LENGTH);    
    printf("SAM2\n");    
    O_options = MQOO_INPUT_AS_Q_DEF + MQOO_FAIL_IF_QUIESCING;    
    printf("SAM3\n");    
    MQOPEN(sHConn, &od, O_options, &hObj, &sCompCode, &sReason);    
    printf("MQopen = %d and %d\n",sCompCode,sReason);    
    if (sCompCode != MQCC_OK)    
    {    
        printf("RETURN %d\n",DTE_MQR_FAILED);    
        return DTE_MQR_FAILED;    
   }    
   ++sNumOpenQueues;    
  *qd = 1;    
  for(i = 0; i < MAX_NUM_OPEN_QUEUES; i++)    
  {    
      printf("In the loop1\n");    
      if(sQueues[i].handle == -1)    
      {    
          *qd = i;    
          printf("QDESC1 = %d\n",qd);    
          sQueues[i].handle = hObj;    
          sQueues[i].IsSyncpointControled = 0;    
          break;    
     }    
     printf("In the loop\n");    
   }    
   printf("QDESC = %d\n",qd);    
   return DTE_MQR_OK;    
}    

函数调用是:

代码语言:javascript
复制
qd = -1;    
dteretopen = dteMqOpen(QName, &qd);    
printf ("Return code from dteMqOpen = %d\n",dteretopen);    
if (dteretopen ==0)    
{    
    printf("MQOPEN could not open MQ, check errpr log\n");    
    exit(99);    
}    

错误2085但几天前并没有这样的错误 连接正常,但MQOPEN失败

EN

回答 1

Stack Overflow用户

发布于 2017-07-03 21:22:42

代码语言:javascript
复制
dteretopen = dteMqOpen(QName, &qd);

显然,'QName‘有一个无效的值。

你一直在发一个又一个关于同一个程序的问题。显然,您在MQ编程方面没有受过任何培训。您需要尽快得到一些MQ培训。网络和视频上也有大量的信息。

为什么你不做一些基本的调试和输出'QName?

在这里发布问题之前,您需要在调试程序时采取一些主动。我们不是来做你的工作的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44891758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档