You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Howard Gao (JIRA)" <ji...@apache.org> on 2016/09/12 15:11:20 UTC

[jira] [Comment Edited] (ARTEMIS-728) Broker doesn't support unique jms client-id (qpid-jms client)

    [ https://issues.apache.org/jira/browse/ARTEMIS-728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15484376#comment-15484376 ] 

Howard Gao edited comment on ARTEMIS-728 at 9/12/16 3:10 PM:
-------------------------------------------------------------

Here is quote from Robbie:
The broker does not support restricting a Container ID 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 asserts if the broker does this or not; ours currently does 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 then be immediately closed, the Open response should contain a property of "amqp:connection-establishment-failed". The Close frame should then be sent with "illegal-field" 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 JMS exception), the error info map should contain a map entry with symbol key "invalid-field" and symbol entry "container-id".



was (Author: gaohoward):
Here is quote from Robbie:
The broker does not support restricting a Container ID 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 asserts if the broker does this or not; ours currently does 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 then 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 JMS exception), the error info map should contain a map entry with symbol key "invalid-field" and symbol entry "container-id".


> Broker doesn't support unique jms client-id (qpid-jms client)
> -------------------------------------------------------------
>
>                 Key: ARTEMIS-728
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-728
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 1.3.0
>            Reporter: Howard Gao
>            Assignee: Howard Gao
>             Fix For: 1.4.0
>
>
> Using qpid-jms client to set a client-id that has already set on another connection does't get expected InvalidClientIDException exception.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)