This project is read-only.

Amqp.Net Lite and QPID Java Broker

Jan 6, 2015 at 5:32 PM
I can't seem to get the spout example to connect to the QPID Java Broker.

If i enabled username/password authentication I get SASL error: Auth

If i disable SASL the Session cannot be created.
Error: Operation 'AddSession' is not valid under state: End.

Has anyone tried this and knows it should work?
Jan 6, 2015 at 8:31 PM
I get the same result as you.

With SASL disabled it looks like the spout is sending AMQP frames {Protocol-Header, open, begin, attach} before the broker finally replies with it's {Protocol-Header} frame. Then the connection sits there for a 60 second timeout as the Lite client waits for the returning open, begin, and attach.

Running the identical code to QPID C++ Broker or to ActiveMQ 5.11 Java Broker produces a successful result with the same AMQP frame traffic on the wire. That is, the client sends the header-open-begin-attach before there is any response from the broker.

This is probably (pure guess here) a QPID Java Broker bug. The Amqp.Net Lite client might be able to work around it by stalling the open-begin-attach frames until the broker replies with its Protocol-Header frame.
Jan 7, 2015 at 5:11 PM
Working a little more with this I got this working. Interop.Spout sends to the Qpid Java broker.
  1. In the broker enable PLAIN authentication on non-secure connections. Rob Godfrey suggests: in config.json add:
    "secureOnlyMechanisms" : [],
    see mail-archive
  2. In the broker web gui create queue 'my-queue'
  3. In amqp.sln, Interop.Spout properties set the Debug, Start Options, Command line arguments to
    --broker amqp://guest:guest@ --address my-queue
Jan 8, 2015 at 7:11 AM
Thanks, ActiveMQ 5.11 worked for me.

I will try your fix for the QPID Java Broker in a bit.
Jan 9, 2015 at 4:01 PM
I think that it could be a problem of QPID Java Broker that doesn't support "pipelined open" supported by AMQP 1.0 specification.