Red Hat Bugzilla – Bug 1254951
qpidd does not support limiting a container-id to a single connection (JMS ClientID enforcement)
Last modified: 2015-10-01 20:53:57 EDT
The broker does not support restricting a ContainerID to having a single connection associated at a time. JMS clients depend on this to satisfy the requirement that a ClientID value is only in use by a single Connection at a time.
The JMS client uses a layered mechanism to request this by sending a desired-capability symbol of "sole-connection-for-container". If the broker supports the feature it should reply with the same as an offered-capability (the client may then choose whether it minds if the broker does this or not). If the broker does support the mechanism and the new connection is not the only one with the given container-id then it should close the connection. In order to hint to the client that the connection open has failed and the connection will actually be immediately closed, the Open response should contain a property of "amqp:connection-establishment-failed". The Close frame should then be sent with "illegal-argument" error condition. In order to convey in the Close frame that the container-id was the problem value (so the client cant tell it is a ClientID problem and throw the specific exception), the error info map should contain a map entry with symbol key "invalid-field" and symbol entry "container-id".