gpt4 book ai didi

java - QueueManager 未连接,出现异常 : MQJE001:

转载 作者:行者123 更新时间:2023-11-30 05:47:51 27 4
gpt4 key购买 nike

在访问多个站点了解了一些有关 MQ 的知识后,我编写了一个 Java MQ 客户端来写入和读取消息。当我运行客户端代码时,出现如下错误:

        MQJE001: Completion Code '2', Reason '2540'.

我放入了一条日志语句,它在下面的位置显示了异常

private void selectQMgr() throws MQException {
logger.info("qMgrName in selectQMgr method: "+ qMgrName);
qMgr = new MQQueueManager(qMgrName, mqht);

mqht 是哈希表引用,其中包含我从脚本传递的主机名、端口和 channel 属性。

我的系统有 v 7.5 MQ 客户端,我使用了编译和运行所需的所有 jar。

我还转到/opt/mqm/samp/bin 并运行以下命令

     •  $ amqsput TESTQ QMGR
• Sample AMQSPUT0 start
• MQCONN ended with reason code 2058
• $ MQCONN ended with reason code 2058

上面给出的错误不确定我是否尝试正确。

我是 MQ 的新手,在阅读下面提到的 IBM 网站后有点困惑: • 不支持队列管理器组。 • 不存在具有指定名称的队列管理器组。

从支持团队获得的 MQ 连接所需的所有属性不确定是什么问题。是不是我的系统没有连接。

请帮忙解决这个问题。提前致谢

最佳答案

有两种类型的连接模型:

  1. 绑定(bind)模式 - 当应用程序以绑定(bind)模式连接到队列管理器时,应用程序必须与队列管理器在同一服务器上运行。该应用程序也不指定主机、端口号和 channel 名称。

  2. 客户端模式 - 意味着应用程序必须指定主机、端口号和 channel 名称,因为应用程序与队列管理器不在同一服务器上。

$ amqsput TESTQ QMGR

IBM 有一个可执行文件的命名标准:

  1. 如果可执行文件不以“c”结尾(即 amqsput),则它会被编译并链接到绑定(bind)模式。即本地队列管理器

  2. 如果可执行文件确实以“c”结尾(即 amqsputc),则它会被编译并链接到客户端模式。因此,您需要通过设置 MQCHLLIB & MQCHLTAB 来使用 CCDT 文件。环境变量或设置MQSERVER环境变量。

现在,在远程服务器上,可以运行 1 个或多个队列管理器。每个队列管理器都有自己的 MQ 监听器监听端口。即 1414。如果服务器上运行 3 个队列管理器,则使用的端口可能是 1414、1415 和 1416 或 14001、14002 和 14003。您需要向 MQAdmin 询问该特定队列管理器的正确端口号。

原因代码 2540 (MQRC_UNKNOWN_CHANNEL_NAME) 表示您使用的 channel 名称未在队列管理器上定义。注意:所有对象都区分大小写。即“Test.Chl”与“TEST.CHL”不同。另外,将 MQ Reason Code 添加为书签页面,因为它是您需要经常引用的内容。

最后,由于您是MQ新手,我强烈建议您参加MQ Technical Conference (MQTC)。 MQTC 是全局最大的专门讨论 IBM MQ 的 session 。 3天的技术培训,价格 super 便宜。

关于java - QueueManager 未连接,出现异常 : MQJE001:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54537571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com