【问题标题】:WAS MQ put by JmsConnectionFactory host unreachableJmsConnectionFactory 主机放置的 WAS MQ 无法访问
【发布时间】:2014-02-02 06:27:04
【问题描述】:

我正在使用这部分代码连接到队列管理器。

jmsFactory = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
jcf = jmsFactory.createConnectionFactory();

// Set the properties
jcf.setStringProperty(WMQConstants.WMQ_HOST_NAME, hostName);
jcf.setIntProperty(WMQConstants.WMQ_PORT, port);
jcf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
jcf.setStringProperty(WMQConstants.WMQ_CHANNEL, channel);

connection = jcf.createConnection();

当一切正常时,就没有问题了。但是当主机无法访问时;等待异常的时间很长。我的意思是 jcf.createConnection() 等待并尝试在 30 秒左右建立连接,然后引发异常。

我可以减少这个时间吗?如何? 当我在另一个应用程序中尝试通过线程将数千条消息发送到队列管理器并且每个线程等待 30 秒以获取连接时,这会导致严重的问题。

【问题讨论】:

  • 只是想一想,您是否检查过超时不在操作系统级别?此外,队列管理器是本地的(与您的代码运行在同一台机器上)还是远程的?
  • 不,我在另一个系统中运行我的应用程序。我想处理我的 QMGR 服务器关闭的情况。

标签: ibm-mq


【解决方案1】:

我怀疑您的 reconnectionRetryInterval 设置为默认值,我认为是 30 秒。

【讨论】:

  • 你是对的,但是这个时间间隔可以在 QMGR 启动时使用。我的问题是IP无法ping通;当IP关闭时。我想我必须在 JmsFactoryFactory 属性中设置一些参数才能将超时从 30 秒更改为 10 秒;但我不知道怎么做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
  • 1970-01-01
  • 2020-03-11
  • 2014-09-26
  • 2018-06-07
  • 1970-01-01
相关资源
最近更新 更多