I am trying to connect with the AMQP Client API to a AMQP Service (Deutsche Börse Margin Calculator API).
The connect Fails with com.swiftmq.amqp.v100.client.UnsupportedProtocolVersionException: Incompatible AMQP protocols. Local=[ProtocolHeader, name=AMQP, id=3, major=1, minor=0, revision=0], remote=[ProtocolHeader, name=AMQP, id=1, major=1, minor=0, revision=10]
Is this the expected behaviour that i cannot connect because the Client Revision is lower than that of the Server?
I tried this with the 10.1.0 Release of the SwiftMQ AMQP Client.
You are right. The protocol negotiation is as follows:
• When the client opens a new socket Connection to a server, it MUST send a protocol header with the client’s preferred protocol version.
• If the requested protocol version is supported, the server MUST send its own protocol header with the requested version to the socket, and then proceed according to the protocol definition.
• If the requested protocol version is not supported, the server MUST send a protocol header with a supported protocol version and then close the socket.
• When choosing a protocol version to respond with, the server SHOULD choose the highest supported version that is less than or equal to the requested version. If no such version exists, the server SHOULD respond with the highest supported version.
• If the server can’t parse the protocol header, the server MUST send a valid protocol header with a supported protocol version and then close the socket.
So it seems your AMQP server does not support revision 0.
I am using the SwiftMQ AMQP Client API because it is mentioned in the documentation of the Deutsche Börse for one solution to directly use java program to access their service.
That seems to be impossible now with the actual client version then. I believe they did a AMQP upgrade recently. I never used that service before.
Is there a chance that there will be a new version of the swiftmq AMQP Client compatible with that version of the Deutsche Börse service?
I've just checked the official AMQP 1.0 docs @ OASIS. There is no revision 10 of the protocol. It is still at revision 0 as published in 2012. That's what we support. Let me investigate. I'll reply here when I found something.
I tested with simulation, but i think i can also test this next week on production. Anyway i will contact our technical account to clear things up.
UPDATE: I tested this on production with the same error as the result.
The Key Accounter told me that there would be no need to set the server to 1.0 and that a 1.0 Client should be able to connect. I asked them to verify that.
My colleagues confirmed that AMQP 1.0 was indeed by mistake not enabled in Simulation and Production. It is supposed to be enabled today during the maintenance window. So please give it a try tomorrow. Sorry for the problems.