【问题标题】:Websphere MQ queue Connetion factories Can not create queue connectionWebsphere MQ 队列连接工厂无法创建队列连接
【发布时间】:2018-02-13 18:22:23
【问题描述】:

我使用 WebSphere MQ 消息传递提供程序在 Websphere 中创建了一个队列连接工厂。 使用 JNDI 获取此资源,并尝试在同一主机上创建队列连接。 第一次,一切正常,但是当我第二次时,它会抛出一个 JMS 异常:

javax.jms.JMSException: Failed to create queue connection
    at com.ibm.ejs.jms.JMSCMUtils.mapToJMSException(JMSCMUtils.java:141)
    at com.ibm.ejs.jms.JMSQueueConnectionFactoryHandle.createQueueConnection(
         JMSQueueConnectionFactoryHandle.java:90)

【问题讨论】:

  • 请提供显示链接异常的堆栈跟踪部分。 (JMS 异常是一种多层数据结构,其中存在链接异常以保存特定于供应商的异常诊断数据。您正在在捕获 JMS 异常的任何位置打印出链接异常,对吗?)
  • 关于 JMSException 的信息很少。这就是我从日志中得到的全部信息。

标签: connection websphere message-queue


【解决方案1】:

帖子中的信息很少,除了猜测之外很难做任何事情。我首先要查找的是应用程序或队列是否设置为独占使用。当然,这假设您正在打开输入队列,并且问题中没有提到该细节。拥有将提供实际 WMQ 原因和完成代码的链接异常可以肯定地告诉您,但问题中也没有提供这些。

如果 JMS 代码不打印链接异常,许多商店将其视为 Sev-1 缺陷。这不是特定于 WMQ 的事情,而是打印出所有可用诊断信息的情况,而不管传输提供商如何。如果您想了解更多信息,请参阅 WMQ Ifocenter JMS exception handling topic

【讨论】:

  • 谢谢,罗布。实际上,我是第一次将消息放入队列(我可以正确创建队列连接)。我已经打印出 JMS 异常的根本原因,这就是我从日志中得到的全部内容。
【解决方案2】:

最大连接在 WAS 控制台中。如果连接数超过最大连接数且未释放资源(QueueConnection、QueueSender 和 QueueSession),则在下一次连接时将无法从连接池中获取连接。只有重新启动服务器后,您才能释放连接。这可以通过在代码中正确关闭所有资源(QueueConnection、QueueSender 和 QueueSession)来解决。

【讨论】:

    猜你喜欢
    • 2018-12-17
    • 1970-01-01
    • 2014-09-05
    • 2012-01-25
    • 2010-11-12
    • 2012-10-05
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    相关资源
    最近更新 更多