我使用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)
答案 0 :(得分:0)
在帖子中有很少的信息除了猜测之外很难做任何事情。我要寻找的第一件事是应用程序或队列是否设置为独占使用。当然,这假设您正在打开输入队列,并且问题中未提及该详细信息。具有提供实际WMQ原因和完成代码的链接异常可以确定地告诉您,但问题中也未提供这些异常。
如果JMS代码不打印链接异常,许多商店认为它是Sev-1缺陷。这不是WMQ特定的事情,而是打印出所有可用的诊断信息而不管传输提供商。如果您想了解更多信息,请参阅WMQ Ifocenter JMS exception handling topic。
答案 1 :(得分:0)
最大连接在WAS控制台中。如果连接超过Max连接并且没有释放资源(QueueConnection,QueueSender和QueueSession)而不是下次连接时它将无法从连接池获得连接。重新启动服务器后,您可以释放连接。这可以通过在代码中正确关闭所有资源(QueueConnection,QueueSender和QueueSession)来解决。