Bug 1254951 - qpidd does not support limiting a container-id to a single connection (JMS ClientID enforcement)
qpidd does not support limiting a container-id to a single connection (JMS Cl...
Status: NEW
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: messaging-bugs
Messaging QE
Depends On:
  Show dependency treegraph
Reported: 2015-08-19 06:05 EDT by Robbie Gemmell
Modified: 2015-10-01 20:53 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Known Issue
Doc Text:
In this release of the product, when using +qpidd+ as the broker, there can be more than one active connection with the same JMS `client-id`. This is because +qpidd+ does not recognise the connection capability requested by the JMS client over AMQP 1.0 which allows only a single connection with the same container ID. As a workaround, +qpidd+ does allow limiting connections by userid, which may satisfy some cases.
Story Points: ---
Clone Of:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Robbie Gemmell 2015-08-19 06:05:31 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".

Note You need to log in before you can comment on or make changes to this bug.