gpt4 book ai didi

java - JMS MQ绑定(bind)问题

转载 作者:行者123 更新时间:2023-11-30 07:35:01 25 4
gpt4 key购买 nike

我在使用 MDB 的 MQ 队列上绑定(bind) JMS 时遇到了这个奇怪的问题

The Message-Driven EJB: CrbEventMessageAsynchronousService is unable to connect to the JMS destination: queue.contratto.crb.input.publicQueue. The Error was:

javax.jms.JMSException: MQJMS1017: non-local MQ queue not valid for receiving or browsing>

我检查了 QueueManager,mq 队列被定义为本地队列,而不是异常所说的远程队列。

最佳答案

可能是应用程序打开以供读取的最顶层队列是在本地定义的。但是,WMQ 解析到的队列不是。例如,如果您在远程集群队列上定义本地别名,则解析的队列是非本地的。另一个可能的原因是您打算为输出打开的队列实际上也为输入打开。这实际上很常见。

最后,WMQ 客户端连接到与预期不同的队列管理器也很常见。例如,连接到 QMGRA,队列对象指定一个完全限定的名称,如 QUEUE@QMGRB。尽管队列位于 QMGRB 上并且 JNDI 对象按名称指定了队列管理器,但 QMGRA 上的连接将其解析为传输队列,因此将其视为非本地。

在 Dev 中解决此类错误的最佳方法之一是使用 SupportPac MA0W .此 SupportPac 作为 API 导出或 channel 导出运行,并以人类可读的语言列出所有 API 调用和为调用选择的所有选项。这将明确显示打开的对象名称、它解析的内容以及使用的选项。

或者,您可以使用 strmqtrc 打开跟踪.不要忘记使用 endmqtrc 禁用它完成后!这些跟踪在 QMgr 服务器上启用和禁用,并跟踪 WMQ API 调用。在客户端运行等效的跟踪,但这些可能不会显示您需要的详细程度。

最后,建议打印任何与 JMS 异常相关联的异常。 JMS Exception 是一个多级数据结构,其中链接的异常包含提供程序特定的值。例如,JMS 安全异常可能是 WMQ 授权错误。但话又说回来,这可能是 keystore 或文件系统中的错误。如果链接异常未显示 WMQ 2035 原因代码,则它不是 WMQ 安全错误。信息中心描述了如何在名为 Exceptions in WebSphere MQ classes for JMS 的部分中打印链接的异常数据。 .

请注意,我提供了指向 v7.0 WMQ 文档的链接。如果您在 v6 中编码,这些可能不完全准确,您需要查看 v6.0 Infocenter反而。由于 WMQ v6.0 的生命周期到 2011 年 9 月结束,因此强烈建议在 v7.0 上进行所有新开发。如果您需要 v7.0 客户端,可下载为 SupportPac MQC7并向后兼容 v6.0 WMQ 服务器。

关于java - JMS MQ绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4794667/

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