🎄 Happy Holidays! 🥳

Most of Solace is closed December 24–January 1 so our employees can spend time with their families. We will re-open Thursday, January 2, 2024. Please expect slower response times during this period and open a support ticket for anything needing immediate assistance.

Happy Holidays!

Please note: most of Solace is closed December 25–January 2, and will re-open Tuesday, January 3, 2023.

Apache Qpid Messaging C++ rejection

rwiskow
rwiskow Member Posts: 1
edited March 2022 in General Discussions #1

I'm trying to write a small program using the Apache Qpid Messaging C++ library to send AMQP1.0 messages to a Solace broker.

When I send a message to the broker, it looks like I'm getting a reject:

delivery 0 refused: amqp:not-allowed: SMF AD ack response error

I get the same result if I use the examples provided with the library. I don't understand what the error is trying to tell me. Is it saying that AMQP is not allowed? I did write something using Apache Qpid Proton, and that was able to send and receive just fine. The management interface confirms that AMQP is enabled, and when my program connects it's classified as an AMQP connection.


This is the code from my send function. sender_ is a qpid::messaging::Sender

  bool sendMessage(const Message& msg)
  {
    qpid::messaging::Message qpid_msg;
    qpid_msg.setContent(reinterpret_cast<const char*>(&msg), sizeof(msg));
    sender_.send(qpid_msg, true);
    return true;
  }


Tagged:

Answers

  • TomF
    TomF Member, Employee Posts: 412 Solace Employee

    Hi @rwiskow, the broker is sending you a negative acknowledgement, so the chances are it's a configuration issue on the broker. Check:

    1) You're sending to the right port. Are you sending to the AMQP port, or the normal messaging port? The normal SMF port is 55555 or 55443. You can look up the ports associated with a service by looking at the "Service" tab in PubSub+ Broker Manager

    2) The Broker is configured to accept Guaranteed (AD) messages. Check the client profile settings ("Send/Receive Guaranteed Messages") for the client username that your code is using to connect (which could be "default")