Не установлено соединение между Eclipse Paho и IBM Websphere MQ

Я начинающий пользователь IBM MQ. В основном я хочу установить соединение между клиентом (Eclipse Paho) ​​и IBM MQ Queue Manager.

Я выполнил следующие шаги:

  • Я установил IBM MQ v.9.0
  • Создан диспетчер очереди
  • Запустил диспетчер очереди как службу с номером порта (1414)
  • Создайте канал сервера и назначьте его созданному администратору очередей.

На стороне клиента:

  • Загрузите Eclipse Paho, клиент MQTT Java.
  • попробуйте небольшую программу для подключения к запущенному Queue Manager.

Followinig - это программа.

import java.util.logging.Logger;

import org.eclipse.paho.client.mqttv3.MqttAsyncClient;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

public class MQMTTFactory {

    private static Logger log = Logger.getLogger(MQMTTFactory.class.getName());
    private MQMTTFactory() {

    }

    static final String BROKER_URL = "tcp://<<Ipaddress>>:1234";
    static final String M2MIO_DOMAIN = "<Insert m2m.io domain here>";
    static final String M2MIO_STUFF = "things";
    static final String M2MIO_USERNAME = "Guest";
    static final String M2MIO_PASSWORD_MD5 = "<m2m.io password (MD5 sum of password)>";
    static MqttClient myClient = null;

    public static MqttClient getMqttClient() {
        MqttConnectOptions connOpt;
        if (myClient == null) {
            connOpt = new MqttConnectOptions();
            connOpt.setCleanSession(true);
            connOpt.setKeepAliveInterval(3000);
            connOpt.setUserName(M2MIO_USERNAME);
            // connOpt.setPassword(M2MIO_PASSWORD_MD5.toCharArray());

            // Connect to Broker
            try {
                myClient = new MqttClient(BROKER_URL,
                        MqttAsyncClient.generateClientId(), new MemoryPersistence());
                myClient.connect(connOpt);
            } catch (MqttException e) {
                log.severe("Client connection to the MQTT Broker is failed");
                e.printStackTrace();
                System.exit(-1);
            }
        }
        return myClient;

    }

}

Но указанной выше программе не удалось установить соединение с сервером. Ниже приводится ошибка при запуске указанной выше программы.

   Unable to connect to server (32103) - java.net.ConnectException: Connection refused: connect

Может ли кто-нибудь сказать мне, что может быть не так? или любые предложения.


person M.S.Naidu    schedule 05.08.2017    source источник
comment
Вы проверяли AMQERR01.LOG в каталоге qmgrs / QMGRNAME на наличие ошибок? Вы уверены, что слушатель запущен? Какой тип канала вы определили?   -  person JoshMc    schedule 05.08.2017


Ответы (1)


Клиент Eclipse Paho работает только с протоколом MQTT. Это протокол публикации / подписки на основе темы и не поддерживает очереди сообщений.

Хотя IBM-MQ может поддерживать MQTT, по умолчанию он не включен.

Я предлагаю вам прочитать следующие 2 статьи, чтобы лучше понять

  1. https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/what_is_mqtt_and_how_does_it_work_with_websphere_mq?lang=en
  2. https://www.ibm.com/support/knowledgecenter/en/SS9D84_1.0.0/com.ibm.mm.tc.doc/tc00110_.htm
person hardillb    schedule 05.08.2017