Java-клиент Vertx выдает "Ошибка ответа SMF AD bind" при подключении к серверу solace vmr

Когда я пытаюсь подключиться, утешить VMR Server и доставить сообщения от клиента Java под названием Vertx AMQP Bridge.

Я могу подключиться к серверу Solace VMR, но после подключения не могу отправлять сообщения для утешения VMR. Я использую ниже код отправителя от клиента Vertx.

public class Sender extends AbstractVerticle {

    private int count = 1;

    // Convenience method so you can run it in your IDE
    public static void main(String[] args) {
        Runner.runExample(Sender.class);
    }

    @Override
    public void start() throws Exception {
    AmqpBridge bridge = AmqpBridge.create(vertx);

    // Start the bridge, then use the event loop thread to process things thereafter.
    bridge.start("13.229.207.85", 21196,"UserName" ,"Password", res -> {
        if(!res.succeeded()) {
            System.out.println("Bridge startup failed: " + res.cause());
            return;
        }

        // Set up a producer using the bridge, send a message with it.
        MessageProducer<JsonObject> producer = 
            bridge.createProducer("T/GettingStarted/pubsub");

        // Schedule sending of a message every second
        System.out.println("Producer created, scheduling sends.");
        vertx.setPeriodic(1000, v -> {
            JsonObject amqpMsgPayload = new JsonObject();

            amqpMsgPayload.put(AmqpConstants.BODY, "myStringContent" + count);
            producer.send(amqpMsgPayload);

            System.out.println("Sent message: " + count++);
        });
    });
}

}

Я получаю ошибку ниже:

Ошибка запуска моста: io.vertx.core.impl.NoStackTraceThrowable: Error{условие =amqp: не найдено, описание ='Ошибка ответа связывания SMF AD', info={solace.response_code=503, solace.response_text= Неизвестная очередь}} 27 апреля 2018 15:07:29 io.vertx.proton.impl.ProtonSessionImpl ВНИМАНИЕ: Приемник закрыт с ошибкой io.vertx.core.impl.NoStackTraceThrowable: Ошибка {условие =amqp: не найдено, описание ='SMF Ошибка ответа AD AD ', info={solace.response_code=503, solace.response_text= Неизвестная очередь}}

Я создал очередь, а также тему правильно в утешении VMR, но не смог отправлять / получать сообщения. Я скучаю по какой-либо конфигурации со стороны сервера VMR утешения? Требуется ли изменение кода в Java-коде Vertx Sender выше? Я получаю сообщение об ошибке выше при доставке сообщения. Может ли кто-то помочь на том же?

Java-клиент Vertx AMQP Bridge: https://vertx.io/docs/vertx-amqp-bridge/java/

1 ответ

Решение

Есть несколько причин, по которым вы можете столкнуться с этой ошибкой.

Возможно, клиент не авторизован для публикации гарантированных сообщений. Чтобы это исправить, вам нужно включить "гарантированное создание конечной точки" в профиле клиента на стороне маршрутизатора Solace.

Также может быть, что приложение использует обработку ответа. В настоящее время это не поддерживается маршрутизатором Solace. Поддержка этого будет добавлена ​​в выпуске 8.11 Solace VMR. Обходной путь для этого должен был бы установить ReplyHandlingSupport в false.

AmqpBridgeOptions().setReplyHandlingSupport(false);

Существует также известная проблема в Solace VMR, которая вызывает эту ошибку при отписке от конечной точки долгосрочной темы. Исправление для этой проблемы также будет в 8.11 выпуске Solace VMR. Обходной путь для этого состоит в том, чтобы отключить клиент без предварительной отписки.

Другие вопросы по тегам