编程语言
首页 > 编程语言> > 在Java程序中的IBM MQ中创建主题

在Java程序中的IBM MQ中创建主题

作者:互联网

我想在我的Java应用程序中创建一个名为“manipulation”的主题,但是我收到此错误:

Exception in thread "main" com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2085'

我的代码是:

MQTopic subscriber = new MQTopic(queueManager, null, "manipulation",CMQC.MQTOPIC_OPEN_AS_SUBSCRIPTION, CMQC.MQSO_CREATE);

如上所述:

Accessing queues, topics, and processes in IBM MQ classes for Java

解决方法:

您用于创建主题订阅的代码需要稍作修改才能使其正常工作:

MQTopic subscriber = new MQTopic(queueManager, null, "manipulation",CMQC.MQTOPIC_OPEN_AS_SUBSCRIPTION, CMQC.MQSO_CREATE);

在上面的代码片段中,您指定了第三个参数,即主题对象名称.指定主题对象名称时,该对象必须存在才能使用.在您的情况下,您在管理上创建了一个带有名称操作的主题对象,然后使用上面的构造函数来创建订阅.由于不存在主题操作,因此抛出了MQRC 2085异常.

您有两种选择:

1)在行政上创建主题对象“操纵”.

2)如果您不想创建主题对象,则在不使用主题对象名称的情况下即时创建订阅,如下所示

MQTopic subscriber = queueManager.accessTopic("manipulation", "", CMQC.MQTOPIC_OPEN_AS_SUBSCRIPTION, CMQC.MQSO_MANAGED | CMQC.MQSO_CREATE | CMQC.MQOO_FAIL_IF_QUIESCING);

标签:mq,java,message-queue,ibm-mq
来源: https://codeday.me/bug/20190829/1764424.html