首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQ重新连接不适用于Wildfly。如何正确配置?

MQ重新连接不适用于Wildfly。如何正确配置?
EN

Stack Overflow用户
提问于 2020-02-17 14:46:08
回答 1查看 485关注 0票数 0

MQ重新连接不起作用。你能提出解决办法吗?

我用的是野蝇12.0.最后

驱动程序为wmq.jmsra-9.1.2.0.rar

尝试使用此方法配置重新连接。

第一

代码语言:javascript
复制
<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
            <resource-adapters>
                <resource-adapter id="wmq.jmsra.rar" statistics-enabled="false">
                    <archive>
                        wmq.jmsra-9.1.2.0.rar
                    </archive>
                    <transaction-support>NoTransaction</transaction-support>
                    <config-property name="startupRetryInterval">
                        300
                    </config-property>
                    <config-property name="reconnectionRetryCount">
                        9000
                    </config-property>
                    <config-property name="startupRetryCount">
                        9000
                    </config-property>
                    <config-property name="reconnectionRetryInterval">
                        300
                    </config-property>
                </resource-adapter>
            </resource-adapters>
        </subsystem>

第二(最后两个属性)

代码语言:javascript
复制
    private JMSContext createJmsContext() throws JMSException {
        JmsConnectionFactory cf;
        JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
        cf = ff.createConnectionFactory();
        cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, props.getProperty(Q_HOST));
        cf.setIntProperty(WMQConstants.WMQ_PORT, Integer.valueOf(props.getProperty(Q_PORT)));
        cf.setStringProperty(WMQConstants.WMQ_CHANNEL, props.getProperty(Q_CHANNEL));
        cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
        cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, props.getProperty(Q_MANAGER));
        cf.setStringProperty(WMQConstants.WMQ_APPLICATIONNAME, "JmsPutGet (JMS)");
        cf.setBooleanProperty(WMQConstants.USER_AUTHENTICATION_MQCSP, true);
        cf.setIntProperty(WMQConstants.WMQ_CLIENT_RECONNECT_OPTIONS, WMQConstants.WMQ_CLIENT_RECONNECT_Q_MGR);
        cf.setIntProperty(WMQConstants.WMQ_CLIENT_RECONNECT_TIMEOUT, 60000);
        return cf.createContext();
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-17 17:24:50

用于JMS资源适配器的IBM类不支持自动JMS客户端重新连接。

参见IBMMQv9.1知识中心页面Developing applications>Developing JMS and Java applications>Using IBM MQ classes for JMS>Writing IBM MQ classes for JMS applications>Accessing IBM MQ features from an IBM MQ classes for JMS application

在,Enterprise应用服务器中,不支持使用这种自动客户端重新连接的实现。有关替代实现,请参见在Java环境中使用自动客户端重连接

如前所述,请参阅IBMMQv9.1知识中心页面Developing applications>Developing JMS and Java applications>Using IBM MQ classes for JMS>Writing IBM MQ classes for JMS applications>Accessing IBM MQ features from an IBM MQ classes for JMS application>Automatic JMS client reconnection>Using automatic client reconnection in Java SE and Java EE environments

Note

不支持使用IBM类为JMS提供的功能使用激活规范的自动客户端重新连接。如果激活规范所连接的队列管理器变得不可用,IBM资源适配器提供了自己的机制来重新连接激活规范。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60264912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档