MQ Reconnect не работает с Wildfly. Как правильно его настроить? - PullRequest
0 голосов
/ 17 февраля 2020

MQ переподключение не работает. Можете ли вы предложить способы исправить это?

Я использую Wildfly 12.0.0.Final

Driver is wmq.jmsra-9.1.2.0.rar

Пытался использовать эти способы настроить переподключение

Первый

<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>

Второй (два последних свойства)

    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();
    }

1 Ответ

4 голосов
/ 17 февраля 2020

Классы IBM MQ для адаптера ресурсов JMS не поддерживают Automati c Переподключение клиента JMS.


См. Страницу центра знаний IBM MQ v9.1 Разработка приложений> Разработка JMS и Java приложения> Использование классов IBM MQ для JMS> Написание классов IBM MQ для приложений JMS> Доступ к функциям IBM MQ из классов IBM MQ для приложения JMS :

Использование этой реализации of automati c переподключение клиента не поддерживается на Java ™ Platform, серверах приложений Enterprise Edition. См. Использование автоматического c переподключения клиента в Java EE для альтернативной реализации.


Как указано выше, см. Страницу Центра знаний IBM MQ v9.1 Разработка приложений> Разработка приложений JMS и Java> Использование классов IBM MQ для JMS> Написание классов IBM MQ для приложений JMS> Доступ к функциям IBM MQ из классов IBM MQ для приложения JMS> Automati c Переподключение клиента JMS> Использование автоматизированное c переподключение клиента в Java SE и Java EE :

Примечание


Automati c переподключение клиента со спецификациями активации с использованием функций, предоставляемых классами IBM MQ для JMS, не поддерживается. Адаптер ресурсов IBM MQ предоставляет свой собственный механизм для повторного подключения спецификаций активации, если администратор очередей, к которому подключалась спецификация активации, становится недоступным.

...